[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-trail-of-bits-audit-prep-assistant":3,"mdc-h8jo4v-key":38,"related-org-trail-of-bits-audit-prep-assistant":1198,"related-repo-trail-of-bits-audit-prep-assistant":1346},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":33,"sourceUrl":36,"mdContent":37},"audit-prep-assistant","prepare codebases for security audits","Prepares codebases for security review using Trail of Bits' checklist. Helps set review goals, runs static analysis tools, increases test coverage, removes dead code, ensures accessibility, and generates documentation (flowcharts, user stories, inline comments).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"trail-of-bits","Trail of Bits","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftrail-of-bits.png","trailofbits",[13,17,20,23],{"name":14,"slug":15,"type":16},"Security","security","tag",{"name":18,"slug":19,"type":16},"Audit","audit",{"name":21,"slug":22,"type":16},"Engineering","engineering",{"name":24,"slug":25,"type":16},"Code Analysis","code-analysis",6139,"https:\u002F\u002Fgithub.com\u002Ftrailofbits\u002Fskills","2026-07-18T05:47:39.210985",null,541,[32],"agent-skills",{"repoUrl":27,"stars":26,"forks":30,"topics":34,"description":35},[32],"Trail of Bits Claude Code skills for security research, vulnerability detection, and audit workflows","https:\u002F\u002Fgithub.com\u002Ftrailofbits\u002Fskills\u002Ftree\u002FHEAD\u002Fplugins\u002Fbuilding-secure-contracts\u002Fskills\u002Faudit-prep-assistant","---\nname: audit-prep-assistant\ndescription: Prepares codebases for security review using Trail of Bits' checklist. Helps set review goals, runs static analysis tools, increases test coverage, removes dead code, ensures accessibility, and generates documentation (flowcharts, user stories, inline comments).\n---\n\n# Audit Prep Assistant\n\n## Purpose\n\nHelps prepare for a security review using Trail of Bits' checklist. A well-prepared codebase makes the review process smoother and more effective.\n\n**Use this**: 1-2 weeks before your security audit\n\n---\n\n## The Preparation Process\n\n### Step 1: Set Review Goals\n\nHelps define what you want from the review:\n\n**Key Questions**:\n- What's the overall security level you're aiming for?\n- What areas concern you most?\n  - Previous audit issues?\n  - Complex components?\n  - Fragile parts?\n- What's the worst-case scenario for your project?\n\nDocuments goals to share with the assessment team.\n\n---\n\n### Step 2: Resolve Easy Issues\n\nRuns static analysis and helps fix low-hanging fruit:\n\n**Run Static Analysis**:\n\nFor Solidity:\n```bash\nslither . --exclude-dependencies\n```\n\nFor Rust:\n```bash\ndylint --all\n```\n\nFor Go:\n```bash\ngolangci-lint run\n```\n\nFor Go\u002FRust\u002FC++:\n```bash\n# CodeQL and Semgrep checks\n```\n\nThen I'll:\n- Triage all findings\n- Help fix easy issues\n- Document accepted risks\n\n**Increase Test Coverage**:\n- Analyze current coverage\n- Identify untested code\n- Suggest new tests\n- Run full test suite\n\n**Remove Dead Code**:\n- Find unused functions\u002Fvariables\n- Identify unused libraries\n- Locate stale features\n- Suggest cleanup\n\n**Goal**: Clean static analysis report, high test coverage, minimal dead code\n\n---\n\n### Step 3: Ensure Code Accessibility\n\nHelps make code clear and accessible:\n\n**Provide Detailed File List**:\n- List all files in scope\n- Mark out-of-scope files\n- Explain folder structure\n- Document dependencies\n\n**Create Build Instructions**:\n- Write step-by-step setup guide\n- Test on fresh environment\n- Document dependencies and versions\n- Verify build succeeds\n\n**Freeze Stable Version**:\n- Identify commit hash for review\n- Create dedicated branch\n- Tag release version\n- Lock dependencies\n\n**Identify Boilerplate**:\n- Mark copied\u002Fforked code\n- Highlight your modifications\n- Document third-party code\n- Focus review on your code\n\n---\n\n### Step 4: Generate Documentation\n\nHelps create documentation:\n\n**Flowcharts and Sequence Diagrams**:\n- Map primary workflows\n- Show component relationships\n- Visualize data flow\n- Identify critical paths\n\n**User Stories**:\n- Define user roles\n- Document use cases\n- Explain interactions\n- Clarify expectations\n\n**On-chain\u002FOff-chain Assumptions**:\n- Data validation procedures\n- Oracle information\n- Bridge assumptions\n- Trust boundaries\n\n**Actors and Privileges**:\n- List all actors\n- Document roles\n- Define privileges\n- Map access controls\n\n**External Developer Docs**:\n- Link docs to code\n- Keep synchronized\n- Explain architecture\n- Document APIs\n\n**Function Documentation**:\n- System and function invariants\n- Parameter ranges (min\u002Fmax values)\n- Arithmetic formulas and precision loss\n- Complex logic explanations\n- NatSpec for Solidity\n\n**Glossary**:\n- Define domain terms\n- Explain acronyms\n- Consistent terminology\n- Business logic concepts\n\n**Video Walkthroughs** (optional):\n- Complex workflows\n- Areas of concern\n- Architecture overview\n\n---\n\n## How I Work\n\nWhen invoked, I will:\n\n1. **Help set review goals** - Ask about concerns and document them\n2. **Run static analysis** - Execute appropriate tools for your platform\n3. **Analyze test coverage** - Identify gaps and suggest improvements\n4. **Find dead code** - Search for unused code and libraries\n5. **Review accessibility** - Check build instructions and scope clarity\n6. **Generate documentation** - Create flowcharts, user stories, glossaries\n7. **Create prep checklist** - Track what's done and what's remaining\n\nAdapts based on:\n- Your platform (Solidity, Rust, Go, etc.)\n- Available tools\n- Existing documentation\n- Review timeline\n\n---\n\n## Rationalizations (Do Not Skip)\n\n| Rationalization | Why It's Wrong | Required Action |\n|-----------------|----------------|-----------------|\n| \"README covers setup, no need for detailed build instructions\" | READMEs assume context auditors don't have | Test build on fresh environment, document every dependency version |\n| \"Static analysis already ran, no need to run again\" | Codebase changed since last run | Execute static analysis tools, generate fresh report |\n| \"Test coverage looks decent\" | \"Looks decent\" isn't measured coverage | Run coverage tools, identify specific untested code paths |\n| \"Not much dead code to worry about\" | Dead code hides during manual review | Use automated detection tools to find unused functions\u002Fvariables |\n| \"Architecture is straightforward, no diagrams needed\" | Text descriptions miss visual patterns | Generate actual flowcharts and sequence diagrams |\n| \"Can freeze version right before audit\" | Last-minute freezing creates rushed handoff | Identify and document commit hash now, create dedicated branch |\n| \"Terms are self-explanatory\" | Domain knowledge isn't universal | Create comprehensive glossary with all domain-specific terms |\n| \"I'll do this step later\" | Steps build on each other - skipping creates gaps | Complete all 4 steps sequentially, track progress with checklist |\n\n---\n\n## Example Output\n\nWhen I finish helping you prepare, you'll have concrete deliverables like:\n\n```\n=== AUDIT PREP PACKAGE ===\n\nProject: DeFi DEX Protocol\nAudit Date: March 15, 2024\nPreparation Status: Complete\n\n---\n\n## REVIEW GOALS DOCUMENT\n\nSecurity Objectives:\n- Verify economic security of liquidity pool swaps\n- Validate oracle manipulation resistance\n- Assess flash loan attack vectors\n\nAreas of Concern:\n1. Complex AMM pricing calculation (src\u002FSwapRouter.sol:89-156)\n2. Multi-hop swap routing logic (src\u002FRouter.sol)\n3. Oracle price aggregation (src\u002FPriceOracle.sol:45-78)\n\nWorst-Case Scenario:\n- Flash loan attack drains liquidity pools via oracle manipulation\n\nQuestions for Auditors:\n- Can the AMM pricing model produce negative slippage under edge cases?\n- Is the slippage protection sufficient to prevent sandwich attacks?\n- How resilient is the system to temporary oracle failures?\n\n---\n\n## STATIC ANALYSIS REPORT\n\nSlither Scan Results:\n✓ High: 0 issues\n✓ Medium: 0 issues\n⚠ Low: 2 issues (triaged - documented in TRIAGE.md)\nℹ Info: 5 issues (code style, acceptable)\n\nTool: slither . --exclude-dependencies\nDate: March 1, 2024\nStatus: CLEAN (all critical issues resolved)\n\n---\n\n## TEST COVERAGE REPORT\n\nOverall Coverage: 94%\n- Statements: 1,245 \u002F 1,321 (94%)\n- Branches: 456 \u002F 498 (92%)\n- Functions: 89 \u002F 92 (97%)\n\nUncovered Areas:\n- Emergency pause admin functions (tested manually)\n- Governance migration path (one-time use)\n\nCommand: forge coverage\nStatus: EXCELLENT\n\n---\n\n## CODE SCOPE\n\nIn-Scope Files (8):\n✓ src\u002FSwapRouter.sol (456 lines)\n✓ src\u002FLiquidityPool.sol (234 lines)\n✓ src\u002FPairFactory.sol (389 lines)\n✓ src\u002FPriceOracle.sol (167 lines)\n✓ src\u002FLiquidityManager.sol (298 lines)\n✓ src\u002FGovernance.sol (201 lines)\n✓ src\u002FFlashLoan.sol (145 lines)\n✓ src\u002FRewardsDistributor.sol (178 lines)\n\nOut-of-Scope:\n- lib\u002F (OpenZeppelin, external dependencies)\n- test\u002F (test contracts)\n- scripts\u002F (deployment scripts)\n\nTotal In-Scope: 2,068 lines of Solidity\n\n---\n\n## BUILD INSTRUCTIONS\n\nPrerequisites:\n- Foundry 0.2.0+\n- Node.js 18+\n- Git\n\nSetup:\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fproject\u002Frepo.git\ncd repo\ngit checkout audit-march-2024  # Frozen branch\nforge install\nforge build\nforge test\n```\n\nVerification:\n✓ Build succeeds without errors\n✓ All 127 tests pass\n✓ No warnings from compiler\n\n---\n\n## DOCUMENTATION\n\nGenerated Artifacts:\n✓ ARCHITECTURE.md - System overview with diagrams\n✓ USER_STORIES.md - 12 user interaction flows\n✓ GLOSSARY.md - 34 domain terms defined\n✓ docs\u002Fdiagrams\u002Fcontract-interactions.png\n✓ docs\u002Fdiagrams\u002Fswap-flow.png\n✓ docs\u002Fdiagrams\u002Fstate-machine.png\n\nNatSpec Coverage: 100% of public functions\n\n---\n\n## DEPLOYMENT INFO\n\nNetwork: Ethereum Mainnet\nCommit: abc123def456 (audit-march-2024 branch)\nDeployed Contracts:\n- SwapRouter: 0x1234...\n- PriceOracle: 0x5678...\n[... etc]\n\n---\n\nPACKAGE READY FOR AUDIT ✓\nNext Step: Share with Trail of Bits assessment team\n```\n\n---\n\n## What You'll Get\n\n**Review Goals Document**:\n- Security objectives\n- Areas of concern\n- Worst-case scenarios\n- Questions for auditors\n\n**Clean Codebase**:\n- Triaged static analysis (or clean report)\n- High test coverage\n- No dead code\n- Clear scope\n\n**Accessibility Package**:\n- File list with scope\n- Build instructions\n- Frozen commit\u002Fbranch\n- Boilerplate identified\n\n**Documentation Suite**:\n- Flowcharts and diagrams\n- User stories\n- Architecture docs\n- Actor\u002Fprivilege map\n- Inline code comments\n- Glossary\n- Video walkthroughs (if created)\n\n**Audit Prep Checklist**:\n- [ ] Review goals documented\n- [ ] Static analysis clean\u002Ftriaged\n- [ ] Test coverage >80%\n- [ ] Dead code removed\n- [ ] Build instructions verified\n- [ ] Stable version frozen\n- [ ] Flowcharts created\n- [ ] User stories documented\n- [ ] Assumptions documented\n- [ ] Actors\u002Fprivileges listed\n- [ ] Function docs complete\n- [ ] Glossary created\n\n---\n\n## Timeline\n\n**2 weeks before audit**:\n- Set review goals\n- Run static analysis\n- Start fixing issues\n\n**1 week before audit**:\n- Increase test coverage\n- Remove dead code\n- Freeze stable version\n- Start documentation\n\n**Few days before audit**:\n- Complete documentation\n- Verify build instructions\n- Create final checklist\n- Send package to auditors\n\n---\n\n## Ready to Prep\n\nLet me know when you're ready and I'll help you prepare for your security review!\n",{"data":39,"body":40},{"name":4,"description":6},{"type":41,"children":42},"root",[43,51,58,64,75,79,85,92,97,107,145,150,153,159,164,173,178,213,218,238,243,263,268,283,288,306,315,338,347,370,380,383,389,394,403,426,435,458,467,490,499,522,525,531,536,545,568,577,600,609,632,641,664,673,696,705,733,742,765,775,793,796,802,807,881,886,909,912,918,1095,1098,1104,1109,1119,1124,1127,1133,1138,1143,1146,1152,1157,1175,1178,1183,1192],{"type":44,"tag":45,"props":46,"children":47},"element","h1",{"id":4},[48],{"type":49,"value":50},"text","Audit Prep Assistant",{"type":44,"tag":52,"props":53,"children":55},"h2",{"id":54},"purpose",[56],{"type":49,"value":57},"Purpose",{"type":44,"tag":59,"props":60,"children":61},"p",{},[62],{"type":49,"value":63},"Helps prepare for a security review using Trail of Bits' checklist. A well-prepared codebase makes the review process smoother and more effective.",{"type":44,"tag":59,"props":65,"children":66},{},[67,73],{"type":44,"tag":68,"props":69,"children":70},"strong",{},[71],{"type":49,"value":72},"Use this",{"type":49,"value":74},": 1-2 weeks before your security audit",{"type":44,"tag":76,"props":77,"children":78},"hr",{},[],{"type":44,"tag":52,"props":80,"children":82},{"id":81},"the-preparation-process",[83],{"type":49,"value":84},"The Preparation Process",{"type":44,"tag":86,"props":87,"children":89},"h3",{"id":88},"step-1-set-review-goals",[90],{"type":49,"value":91},"Step 1: Set Review Goals",{"type":44,"tag":59,"props":93,"children":94},{},[95],{"type":49,"value":96},"Helps define what you want from the review:",{"type":44,"tag":59,"props":98,"children":99},{},[100,105],{"type":44,"tag":68,"props":101,"children":102},{},[103],{"type":49,"value":104},"Key Questions",{"type":49,"value":106},":",{"type":44,"tag":108,"props":109,"children":110},"ul",{},[111,117,140],{"type":44,"tag":112,"props":113,"children":114},"li",{},[115],{"type":49,"value":116},"What's the overall security level you're aiming for?",{"type":44,"tag":112,"props":118,"children":119},{},[120,122],{"type":49,"value":121},"What areas concern you most?\n",{"type":44,"tag":108,"props":123,"children":124},{},[125,130,135],{"type":44,"tag":112,"props":126,"children":127},{},[128],{"type":49,"value":129},"Previous audit issues?",{"type":44,"tag":112,"props":131,"children":132},{},[133],{"type":49,"value":134},"Complex components?",{"type":44,"tag":112,"props":136,"children":137},{},[138],{"type":49,"value":139},"Fragile parts?",{"type":44,"tag":112,"props":141,"children":142},{},[143],{"type":49,"value":144},"What's the worst-case scenario for your project?",{"type":44,"tag":59,"props":146,"children":147},{},[148],{"type":49,"value":149},"Documents goals to share with the assessment team.",{"type":44,"tag":76,"props":151,"children":152},{},[],{"type":44,"tag":86,"props":154,"children":156},{"id":155},"step-2-resolve-easy-issues",[157],{"type":49,"value":158},"Step 2: Resolve Easy Issues",{"type":44,"tag":59,"props":160,"children":161},{},[162],{"type":49,"value":163},"Runs static analysis and helps fix low-hanging fruit:",{"type":44,"tag":59,"props":165,"children":166},{},[167,172],{"type":44,"tag":68,"props":168,"children":169},{},[170],{"type":49,"value":171},"Run Static Analysis",{"type":49,"value":106},{"type":44,"tag":59,"props":174,"children":175},{},[176],{"type":49,"value":177},"For Solidity:",{"type":44,"tag":179,"props":180,"children":185},"pre",{"className":181,"code":182,"language":183,"meta":184,"style":184},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","slither . --exclude-dependencies\n","bash","",[186],{"type":44,"tag":187,"props":188,"children":189},"code",{"__ignoreMap":184},[190],{"type":44,"tag":191,"props":192,"children":195},"span",{"class":193,"line":194},"line",1,[196,202,208],{"type":44,"tag":191,"props":197,"children":199},{"style":198},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[200],{"type":49,"value":201},"slither",{"type":44,"tag":191,"props":203,"children":205},{"style":204},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[206],{"type":49,"value":207}," .",{"type":44,"tag":191,"props":209,"children":210},{"style":204},[211],{"type":49,"value":212}," --exclude-dependencies\n",{"type":44,"tag":59,"props":214,"children":215},{},[216],{"type":49,"value":217},"For Rust:",{"type":44,"tag":179,"props":219,"children":221},{"className":181,"code":220,"language":183,"meta":184,"style":184},"dylint --all\n",[222],{"type":44,"tag":187,"props":223,"children":224},{"__ignoreMap":184},[225],{"type":44,"tag":191,"props":226,"children":227},{"class":193,"line":194},[228,233],{"type":44,"tag":191,"props":229,"children":230},{"style":198},[231],{"type":49,"value":232},"dylint",{"type":44,"tag":191,"props":234,"children":235},{"style":204},[236],{"type":49,"value":237}," --all\n",{"type":44,"tag":59,"props":239,"children":240},{},[241],{"type":49,"value":242},"For Go:",{"type":44,"tag":179,"props":244,"children":246},{"className":181,"code":245,"language":183,"meta":184,"style":184},"golangci-lint run\n",[247],{"type":44,"tag":187,"props":248,"children":249},{"__ignoreMap":184},[250],{"type":44,"tag":191,"props":251,"children":252},{"class":193,"line":194},[253,258],{"type":44,"tag":191,"props":254,"children":255},{"style":198},[256],{"type":49,"value":257},"golangci-lint",{"type":44,"tag":191,"props":259,"children":260},{"style":204},[261],{"type":49,"value":262}," run\n",{"type":44,"tag":59,"props":264,"children":265},{},[266],{"type":49,"value":267},"For Go\u002FRust\u002FC++:",{"type":44,"tag":179,"props":269,"children":271},{"className":181,"code":270,"language":183,"meta":184,"style":184},"# CodeQL and Semgrep checks\n",[272],{"type":44,"tag":187,"props":273,"children":274},{"__ignoreMap":184},[275],{"type":44,"tag":191,"props":276,"children":277},{"class":193,"line":194},[278],{"type":44,"tag":191,"props":279,"children":281},{"style":280},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[282],{"type":49,"value":270},{"type":44,"tag":59,"props":284,"children":285},{},[286],{"type":49,"value":287},"Then I'll:",{"type":44,"tag":108,"props":289,"children":290},{},[291,296,301],{"type":44,"tag":112,"props":292,"children":293},{},[294],{"type":49,"value":295},"Triage all findings",{"type":44,"tag":112,"props":297,"children":298},{},[299],{"type":49,"value":300},"Help fix easy issues",{"type":44,"tag":112,"props":302,"children":303},{},[304],{"type":49,"value":305},"Document accepted risks",{"type":44,"tag":59,"props":307,"children":308},{},[309,314],{"type":44,"tag":68,"props":310,"children":311},{},[312],{"type":49,"value":313},"Increase Test Coverage",{"type":49,"value":106},{"type":44,"tag":108,"props":316,"children":317},{},[318,323,328,333],{"type":44,"tag":112,"props":319,"children":320},{},[321],{"type":49,"value":322},"Analyze current coverage",{"type":44,"tag":112,"props":324,"children":325},{},[326],{"type":49,"value":327},"Identify untested code",{"type":44,"tag":112,"props":329,"children":330},{},[331],{"type":49,"value":332},"Suggest new tests",{"type":44,"tag":112,"props":334,"children":335},{},[336],{"type":49,"value":337},"Run full test suite",{"type":44,"tag":59,"props":339,"children":340},{},[341,346],{"type":44,"tag":68,"props":342,"children":343},{},[344],{"type":49,"value":345},"Remove Dead Code",{"type":49,"value":106},{"type":44,"tag":108,"props":348,"children":349},{},[350,355,360,365],{"type":44,"tag":112,"props":351,"children":352},{},[353],{"type":49,"value":354},"Find unused functions\u002Fvariables",{"type":44,"tag":112,"props":356,"children":357},{},[358],{"type":49,"value":359},"Identify unused libraries",{"type":44,"tag":112,"props":361,"children":362},{},[363],{"type":49,"value":364},"Locate stale features",{"type":44,"tag":112,"props":366,"children":367},{},[368],{"type":49,"value":369},"Suggest cleanup",{"type":44,"tag":59,"props":371,"children":372},{},[373,378],{"type":44,"tag":68,"props":374,"children":375},{},[376],{"type":49,"value":377},"Goal",{"type":49,"value":379},": Clean static analysis report, high test coverage, minimal dead code",{"type":44,"tag":76,"props":381,"children":382},{},[],{"type":44,"tag":86,"props":384,"children":386},{"id":385},"step-3-ensure-code-accessibility",[387],{"type":49,"value":388},"Step 3: Ensure Code Accessibility",{"type":44,"tag":59,"props":390,"children":391},{},[392],{"type":49,"value":393},"Helps make code clear and accessible:",{"type":44,"tag":59,"props":395,"children":396},{},[397,402],{"type":44,"tag":68,"props":398,"children":399},{},[400],{"type":49,"value":401},"Provide Detailed File List",{"type":49,"value":106},{"type":44,"tag":108,"props":404,"children":405},{},[406,411,416,421],{"type":44,"tag":112,"props":407,"children":408},{},[409],{"type":49,"value":410},"List all files in scope",{"type":44,"tag":112,"props":412,"children":413},{},[414],{"type":49,"value":415},"Mark out-of-scope files",{"type":44,"tag":112,"props":417,"children":418},{},[419],{"type":49,"value":420},"Explain folder structure",{"type":44,"tag":112,"props":422,"children":423},{},[424],{"type":49,"value":425},"Document dependencies",{"type":44,"tag":59,"props":427,"children":428},{},[429,434],{"type":44,"tag":68,"props":430,"children":431},{},[432],{"type":49,"value":433},"Create Build Instructions",{"type":49,"value":106},{"type":44,"tag":108,"props":436,"children":437},{},[438,443,448,453],{"type":44,"tag":112,"props":439,"children":440},{},[441],{"type":49,"value":442},"Write step-by-step setup guide",{"type":44,"tag":112,"props":444,"children":445},{},[446],{"type":49,"value":447},"Test on fresh environment",{"type":44,"tag":112,"props":449,"children":450},{},[451],{"type":49,"value":452},"Document dependencies and versions",{"type":44,"tag":112,"props":454,"children":455},{},[456],{"type":49,"value":457},"Verify build succeeds",{"type":44,"tag":59,"props":459,"children":460},{},[461,466],{"type":44,"tag":68,"props":462,"children":463},{},[464],{"type":49,"value":465},"Freeze Stable Version",{"type":49,"value":106},{"type":44,"tag":108,"props":468,"children":469},{},[470,475,480,485],{"type":44,"tag":112,"props":471,"children":472},{},[473],{"type":49,"value":474},"Identify commit hash for review",{"type":44,"tag":112,"props":476,"children":477},{},[478],{"type":49,"value":479},"Create dedicated branch",{"type":44,"tag":112,"props":481,"children":482},{},[483],{"type":49,"value":484},"Tag release version",{"type":44,"tag":112,"props":486,"children":487},{},[488],{"type":49,"value":489},"Lock dependencies",{"type":44,"tag":59,"props":491,"children":492},{},[493,498],{"type":44,"tag":68,"props":494,"children":495},{},[496],{"type":49,"value":497},"Identify Boilerplate",{"type":49,"value":106},{"type":44,"tag":108,"props":500,"children":501},{},[502,507,512,517],{"type":44,"tag":112,"props":503,"children":504},{},[505],{"type":49,"value":506},"Mark copied\u002Fforked code",{"type":44,"tag":112,"props":508,"children":509},{},[510],{"type":49,"value":511},"Highlight your modifications",{"type":44,"tag":112,"props":513,"children":514},{},[515],{"type":49,"value":516},"Document third-party code",{"type":44,"tag":112,"props":518,"children":519},{},[520],{"type":49,"value":521},"Focus review on your code",{"type":44,"tag":76,"props":523,"children":524},{},[],{"type":44,"tag":86,"props":526,"children":528},{"id":527},"step-4-generate-documentation",[529],{"type":49,"value":530},"Step 4: Generate Documentation",{"type":44,"tag":59,"props":532,"children":533},{},[534],{"type":49,"value":535},"Helps create documentation:",{"type":44,"tag":59,"props":537,"children":538},{},[539,544],{"type":44,"tag":68,"props":540,"children":541},{},[542],{"type":49,"value":543},"Flowcharts and Sequence Diagrams",{"type":49,"value":106},{"type":44,"tag":108,"props":546,"children":547},{},[548,553,558,563],{"type":44,"tag":112,"props":549,"children":550},{},[551],{"type":49,"value":552},"Map primary workflows",{"type":44,"tag":112,"props":554,"children":555},{},[556],{"type":49,"value":557},"Show component relationships",{"type":44,"tag":112,"props":559,"children":560},{},[561],{"type":49,"value":562},"Visualize data flow",{"type":44,"tag":112,"props":564,"children":565},{},[566],{"type":49,"value":567},"Identify critical paths",{"type":44,"tag":59,"props":569,"children":570},{},[571,576],{"type":44,"tag":68,"props":572,"children":573},{},[574],{"type":49,"value":575},"User Stories",{"type":49,"value":106},{"type":44,"tag":108,"props":578,"children":579},{},[580,585,590,595],{"type":44,"tag":112,"props":581,"children":582},{},[583],{"type":49,"value":584},"Define user roles",{"type":44,"tag":112,"props":586,"children":587},{},[588],{"type":49,"value":589},"Document use cases",{"type":44,"tag":112,"props":591,"children":592},{},[593],{"type":49,"value":594},"Explain interactions",{"type":44,"tag":112,"props":596,"children":597},{},[598],{"type":49,"value":599},"Clarify expectations",{"type":44,"tag":59,"props":601,"children":602},{},[603,608],{"type":44,"tag":68,"props":604,"children":605},{},[606],{"type":49,"value":607},"On-chain\u002FOff-chain Assumptions",{"type":49,"value":106},{"type":44,"tag":108,"props":610,"children":611},{},[612,617,622,627],{"type":44,"tag":112,"props":613,"children":614},{},[615],{"type":49,"value":616},"Data validation procedures",{"type":44,"tag":112,"props":618,"children":619},{},[620],{"type":49,"value":621},"Oracle information",{"type":44,"tag":112,"props":623,"children":624},{},[625],{"type":49,"value":626},"Bridge assumptions",{"type":44,"tag":112,"props":628,"children":629},{},[630],{"type":49,"value":631},"Trust boundaries",{"type":44,"tag":59,"props":633,"children":634},{},[635,640],{"type":44,"tag":68,"props":636,"children":637},{},[638],{"type":49,"value":639},"Actors and Privileges",{"type":49,"value":106},{"type":44,"tag":108,"props":642,"children":643},{},[644,649,654,659],{"type":44,"tag":112,"props":645,"children":646},{},[647],{"type":49,"value":648},"List all actors",{"type":44,"tag":112,"props":650,"children":651},{},[652],{"type":49,"value":653},"Document roles",{"type":44,"tag":112,"props":655,"children":656},{},[657],{"type":49,"value":658},"Define privileges",{"type":44,"tag":112,"props":660,"children":661},{},[662],{"type":49,"value":663},"Map access controls",{"type":44,"tag":59,"props":665,"children":666},{},[667,672],{"type":44,"tag":68,"props":668,"children":669},{},[670],{"type":49,"value":671},"External Developer Docs",{"type":49,"value":106},{"type":44,"tag":108,"props":674,"children":675},{},[676,681,686,691],{"type":44,"tag":112,"props":677,"children":678},{},[679],{"type":49,"value":680},"Link docs to code",{"type":44,"tag":112,"props":682,"children":683},{},[684],{"type":49,"value":685},"Keep synchronized",{"type":44,"tag":112,"props":687,"children":688},{},[689],{"type":49,"value":690},"Explain architecture",{"type":44,"tag":112,"props":692,"children":693},{},[694],{"type":49,"value":695},"Document APIs",{"type":44,"tag":59,"props":697,"children":698},{},[699,704],{"type":44,"tag":68,"props":700,"children":701},{},[702],{"type":49,"value":703},"Function Documentation",{"type":49,"value":106},{"type":44,"tag":108,"props":706,"children":707},{},[708,713,718,723,728],{"type":44,"tag":112,"props":709,"children":710},{},[711],{"type":49,"value":712},"System and function invariants",{"type":44,"tag":112,"props":714,"children":715},{},[716],{"type":49,"value":717},"Parameter ranges (min\u002Fmax values)",{"type":44,"tag":112,"props":719,"children":720},{},[721],{"type":49,"value":722},"Arithmetic formulas and precision loss",{"type":44,"tag":112,"props":724,"children":725},{},[726],{"type":49,"value":727},"Complex logic explanations",{"type":44,"tag":112,"props":729,"children":730},{},[731],{"type":49,"value":732},"NatSpec for Solidity",{"type":44,"tag":59,"props":734,"children":735},{},[736,741],{"type":44,"tag":68,"props":737,"children":738},{},[739],{"type":49,"value":740},"Glossary",{"type":49,"value":106},{"type":44,"tag":108,"props":743,"children":744},{},[745,750,755,760],{"type":44,"tag":112,"props":746,"children":747},{},[748],{"type":49,"value":749},"Define domain terms",{"type":44,"tag":112,"props":751,"children":752},{},[753],{"type":49,"value":754},"Explain acronyms",{"type":44,"tag":112,"props":756,"children":757},{},[758],{"type":49,"value":759},"Consistent terminology",{"type":44,"tag":112,"props":761,"children":762},{},[763],{"type":49,"value":764},"Business logic concepts",{"type":44,"tag":59,"props":766,"children":767},{},[768,773],{"type":44,"tag":68,"props":769,"children":770},{},[771],{"type":49,"value":772},"Video Walkthroughs",{"type":49,"value":774}," (optional):",{"type":44,"tag":108,"props":776,"children":777},{},[778,783,788],{"type":44,"tag":112,"props":779,"children":780},{},[781],{"type":49,"value":782},"Complex workflows",{"type":44,"tag":112,"props":784,"children":785},{},[786],{"type":49,"value":787},"Areas of concern",{"type":44,"tag":112,"props":789,"children":790},{},[791],{"type":49,"value":792},"Architecture overview",{"type":44,"tag":76,"props":794,"children":795},{},[],{"type":44,"tag":52,"props":797,"children":799},{"id":798},"how-i-work",[800],{"type":49,"value":801},"How I Work",{"type":44,"tag":59,"props":803,"children":804},{},[805],{"type":49,"value":806},"When invoked, I will:",{"type":44,"tag":808,"props":809,"children":810},"ol",{},[811,821,831,841,851,861,871],{"type":44,"tag":112,"props":812,"children":813},{},[814,819],{"type":44,"tag":68,"props":815,"children":816},{},[817],{"type":49,"value":818},"Help set review goals",{"type":49,"value":820}," - Ask about concerns and document them",{"type":44,"tag":112,"props":822,"children":823},{},[824,829],{"type":44,"tag":68,"props":825,"children":826},{},[827],{"type":49,"value":828},"Run static analysis",{"type":49,"value":830}," - Execute appropriate tools for your platform",{"type":44,"tag":112,"props":832,"children":833},{},[834,839],{"type":44,"tag":68,"props":835,"children":836},{},[837],{"type":49,"value":838},"Analyze test coverage",{"type":49,"value":840}," - Identify gaps and suggest improvements",{"type":44,"tag":112,"props":842,"children":843},{},[844,849],{"type":44,"tag":68,"props":845,"children":846},{},[847],{"type":49,"value":848},"Find dead code",{"type":49,"value":850}," - Search for unused code and libraries",{"type":44,"tag":112,"props":852,"children":853},{},[854,859],{"type":44,"tag":68,"props":855,"children":856},{},[857],{"type":49,"value":858},"Review accessibility",{"type":49,"value":860}," - Check build instructions and scope clarity",{"type":44,"tag":112,"props":862,"children":863},{},[864,869],{"type":44,"tag":68,"props":865,"children":866},{},[867],{"type":49,"value":868},"Generate documentation",{"type":49,"value":870}," - Create flowcharts, user stories, glossaries",{"type":44,"tag":112,"props":872,"children":873},{},[874,879],{"type":44,"tag":68,"props":875,"children":876},{},[877],{"type":49,"value":878},"Create prep checklist",{"type":49,"value":880}," - Track what's done and what's remaining",{"type":44,"tag":59,"props":882,"children":883},{},[884],{"type":49,"value":885},"Adapts based on:",{"type":44,"tag":108,"props":887,"children":888},{},[889,894,899,904],{"type":44,"tag":112,"props":890,"children":891},{},[892],{"type":49,"value":893},"Your platform (Solidity, Rust, Go, etc.)",{"type":44,"tag":112,"props":895,"children":896},{},[897],{"type":49,"value":898},"Available tools",{"type":44,"tag":112,"props":900,"children":901},{},[902],{"type":49,"value":903},"Existing documentation",{"type":44,"tag":112,"props":905,"children":906},{},[907],{"type":49,"value":908},"Review timeline",{"type":44,"tag":76,"props":910,"children":911},{},[],{"type":44,"tag":52,"props":913,"children":915},{"id":914},"rationalizations-do-not-skip",[916],{"type":49,"value":917},"Rationalizations (Do Not Skip)",{"type":44,"tag":919,"props":920,"children":921},"table",{},[922,946],{"type":44,"tag":923,"props":924,"children":925},"thead",{},[926],{"type":44,"tag":927,"props":928,"children":929},"tr",{},[930,936,941],{"type":44,"tag":931,"props":932,"children":933},"th",{},[934],{"type":49,"value":935},"Rationalization",{"type":44,"tag":931,"props":937,"children":938},{},[939],{"type":49,"value":940},"Why It's Wrong",{"type":44,"tag":931,"props":942,"children":943},{},[944],{"type":49,"value":945},"Required Action",{"type":44,"tag":947,"props":948,"children":949},"tbody",{},[950,969,987,1005,1023,1041,1059,1077],{"type":44,"tag":927,"props":951,"children":952},{},[953,959,964],{"type":44,"tag":954,"props":955,"children":956},"td",{},[957],{"type":49,"value":958},"\"README covers setup, no need for detailed build instructions\"",{"type":44,"tag":954,"props":960,"children":961},{},[962],{"type":49,"value":963},"READMEs assume context auditors don't have",{"type":44,"tag":954,"props":965,"children":966},{},[967],{"type":49,"value":968},"Test build on fresh environment, document every dependency version",{"type":44,"tag":927,"props":970,"children":971},{},[972,977,982],{"type":44,"tag":954,"props":973,"children":974},{},[975],{"type":49,"value":976},"\"Static analysis already ran, no need to run again\"",{"type":44,"tag":954,"props":978,"children":979},{},[980],{"type":49,"value":981},"Codebase changed since last run",{"type":44,"tag":954,"props":983,"children":984},{},[985],{"type":49,"value":986},"Execute static analysis tools, generate fresh report",{"type":44,"tag":927,"props":988,"children":989},{},[990,995,1000],{"type":44,"tag":954,"props":991,"children":992},{},[993],{"type":49,"value":994},"\"Test coverage looks decent\"",{"type":44,"tag":954,"props":996,"children":997},{},[998],{"type":49,"value":999},"\"Looks decent\" isn't measured coverage",{"type":44,"tag":954,"props":1001,"children":1002},{},[1003],{"type":49,"value":1004},"Run coverage tools, identify specific untested code paths",{"type":44,"tag":927,"props":1006,"children":1007},{},[1008,1013,1018],{"type":44,"tag":954,"props":1009,"children":1010},{},[1011],{"type":49,"value":1012},"\"Not much dead code to worry about\"",{"type":44,"tag":954,"props":1014,"children":1015},{},[1016],{"type":49,"value":1017},"Dead code hides during manual review",{"type":44,"tag":954,"props":1019,"children":1020},{},[1021],{"type":49,"value":1022},"Use automated detection tools to find unused functions\u002Fvariables",{"type":44,"tag":927,"props":1024,"children":1025},{},[1026,1031,1036],{"type":44,"tag":954,"props":1027,"children":1028},{},[1029],{"type":49,"value":1030},"\"Architecture is straightforward, no diagrams needed\"",{"type":44,"tag":954,"props":1032,"children":1033},{},[1034],{"type":49,"value":1035},"Text descriptions miss visual patterns",{"type":44,"tag":954,"props":1037,"children":1038},{},[1039],{"type":49,"value":1040},"Generate actual flowcharts and sequence diagrams",{"type":44,"tag":927,"props":1042,"children":1043},{},[1044,1049,1054],{"type":44,"tag":954,"props":1045,"children":1046},{},[1047],{"type":49,"value":1048},"\"Can freeze version right before audit\"",{"type":44,"tag":954,"props":1050,"children":1051},{},[1052],{"type":49,"value":1053},"Last-minute freezing creates rushed handoff",{"type":44,"tag":954,"props":1055,"children":1056},{},[1057],{"type":49,"value":1058},"Identify and document commit hash now, create dedicated branch",{"type":44,"tag":927,"props":1060,"children":1061},{},[1062,1067,1072],{"type":44,"tag":954,"props":1063,"children":1064},{},[1065],{"type":49,"value":1066},"\"Terms are self-explanatory\"",{"type":44,"tag":954,"props":1068,"children":1069},{},[1070],{"type":49,"value":1071},"Domain knowledge isn't universal",{"type":44,"tag":954,"props":1073,"children":1074},{},[1075],{"type":49,"value":1076},"Create comprehensive glossary with all domain-specific terms",{"type":44,"tag":927,"props":1078,"children":1079},{},[1080,1085,1090],{"type":44,"tag":954,"props":1081,"children":1082},{},[1083],{"type":49,"value":1084},"\"I'll do this step later\"",{"type":44,"tag":954,"props":1086,"children":1087},{},[1088],{"type":49,"value":1089},"Steps build on each other - skipping creates gaps",{"type":44,"tag":954,"props":1091,"children":1092},{},[1093],{"type":49,"value":1094},"Complete all 4 steps sequentially, track progress with checklist",{"type":44,"tag":76,"props":1096,"children":1097},{},[],{"type":44,"tag":52,"props":1099,"children":1101},{"id":1100},"example-output",[1102],{"type":49,"value":1103},"Example Output",{"type":44,"tag":59,"props":1105,"children":1106},{},[1107],{"type":49,"value":1108},"When I finish helping you prepare, you'll have concrete deliverables like:",{"type":44,"tag":179,"props":1110,"children":1114},{"className":1111,"code":1113,"language":49},[1112],"language-text","=== AUDIT PREP PACKAGE ===\n\nProject: DeFi DEX Protocol\nAudit Date: March 15, 2024\nPreparation Status: Complete\n\n---\n\n## REVIEW GOALS DOCUMENT\n\nSecurity Objectives:\n- Verify economic security of liquidity pool swaps\n- Validate oracle manipulation resistance\n- Assess flash loan attack vectors\n\nAreas of Concern:\n1. Complex AMM pricing calculation (src\u002FSwapRouter.sol:89-156)\n2. Multi-hop swap routing logic (src\u002FRouter.sol)\n3. Oracle price aggregation (src\u002FPriceOracle.sol:45-78)\n\nWorst-Case Scenario:\n- Flash loan attack drains liquidity pools via oracle manipulation\n\nQuestions for Auditors:\n- Can the AMM pricing model produce negative slippage under edge cases?\n- Is the slippage protection sufficient to prevent sandwich attacks?\n- How resilient is the system to temporary oracle failures?\n\n---\n\n## STATIC ANALYSIS REPORT\n\nSlither Scan Results:\n✓ High: 0 issues\n✓ Medium: 0 issues\n⚠ Low: 2 issues (triaged - documented in TRIAGE.md)\nℹ Info: 5 issues (code style, acceptable)\n\nTool: slither . --exclude-dependencies\nDate: March 1, 2024\nStatus: CLEAN (all critical issues resolved)\n\n---\n\n## TEST COVERAGE REPORT\n\nOverall Coverage: 94%\n- Statements: 1,245 \u002F 1,321 (94%)\n- Branches: 456 \u002F 498 (92%)\n- Functions: 89 \u002F 92 (97%)\n\nUncovered Areas:\n- Emergency pause admin functions (tested manually)\n- Governance migration path (one-time use)\n\nCommand: forge coverage\nStatus: EXCELLENT\n\n---\n\n## CODE SCOPE\n\nIn-Scope Files (8):\n✓ src\u002FSwapRouter.sol (456 lines)\n✓ src\u002FLiquidityPool.sol (234 lines)\n✓ src\u002FPairFactory.sol (389 lines)\n✓ src\u002FPriceOracle.sol (167 lines)\n✓ src\u002FLiquidityManager.sol (298 lines)\n✓ src\u002FGovernance.sol (201 lines)\n✓ src\u002FFlashLoan.sol (145 lines)\n✓ src\u002FRewardsDistributor.sol (178 lines)\n\nOut-of-Scope:\n- lib\u002F (OpenZeppelin, external dependencies)\n- test\u002F (test contracts)\n- scripts\u002F (deployment scripts)\n\nTotal In-Scope: 2,068 lines of Solidity\n\n---\n\n## BUILD INSTRUCTIONS\n\nPrerequisites:\n- Foundry 0.2.0+\n- Node.js 18+\n- Git\n\nSetup:\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fproject\u002Frepo.git\ncd repo\ngit checkout audit-march-2024  # Frozen branch\nforge install\nforge build\nforge test\n",[1115],{"type":44,"tag":187,"props":1116,"children":1117},{"__ignoreMap":184},[1118],{"type":49,"value":1113},{"type":44,"tag":59,"props":1120,"children":1121},{},[1122],{"type":49,"value":1123},"Verification:\n✓ Build succeeds without errors\n✓ All 127 tests pass\n✓ No warnings from compiler",{"type":44,"tag":76,"props":1125,"children":1126},{},[],{"type":44,"tag":52,"props":1128,"children":1130},{"id":1129},"documentation",[1131],{"type":49,"value":1132},"DOCUMENTATION",{"type":44,"tag":59,"props":1134,"children":1135},{},[1136],{"type":49,"value":1137},"Generated Artifacts:\n✓ ARCHITECTURE.md - System overview with diagrams\n✓ USER_STORIES.md - 12 user interaction flows\n✓ GLOSSARY.md - 34 domain terms defined\n✓ docs\u002Fdiagrams\u002Fcontract-interactions.png\n✓ docs\u002Fdiagrams\u002Fswap-flow.png\n✓ docs\u002Fdiagrams\u002Fstate-machine.png",{"type":44,"tag":59,"props":1139,"children":1140},{},[1141],{"type":49,"value":1142},"NatSpec Coverage: 100% of public functions",{"type":44,"tag":76,"props":1144,"children":1145},{},[],{"type":44,"tag":52,"props":1147,"children":1149},{"id":1148},"deployment-info",[1150],{"type":49,"value":1151},"DEPLOYMENT INFO",{"type":44,"tag":59,"props":1153,"children":1154},{},[1155],{"type":49,"value":1156},"Network: Ethereum Mainnet\nCommit: abc123def456 (audit-march-2024 branch)\nDeployed Contracts:",{"type":44,"tag":108,"props":1158,"children":1159},{},[1160,1165],{"type":44,"tag":112,"props":1161,"children":1162},{},[1163],{"type":49,"value":1164},"SwapRouter: 0x1234...",{"type":44,"tag":112,"props":1166,"children":1167},{},[1168,1170],{"type":49,"value":1169},"PriceOracle: 0x5678...\n",{"type":44,"tag":191,"props":1171,"children":1172},{},[1173],{"type":49,"value":1174},"... etc",{"type":44,"tag":76,"props":1176,"children":1177},{},[],{"type":44,"tag":59,"props":1179,"children":1180},{},[1181],{"type":49,"value":1182},"PACKAGE READY FOR AUDIT ✓\nNext Step: Share with Trail of Bits assessment team",{"type":44,"tag":179,"props":1184,"children":1187},{"className":1185,"code":1186,"language":49},[1112],"\n---\n\n## What You'll Get\n\n**Review Goals Document**:\n- Security objectives\n- Areas of concern\n- Worst-case scenarios\n- Questions for auditors\n\n**Clean Codebase**:\n- Triaged static analysis (or clean report)\n- High test coverage\n- No dead code\n- Clear scope\n\n**Accessibility Package**:\n- File list with scope\n- Build instructions\n- Frozen commit\u002Fbranch\n- Boilerplate identified\n\n**Documentation Suite**:\n- Flowcharts and diagrams\n- User stories\n- Architecture docs\n- Actor\u002Fprivilege map\n- Inline code comments\n- Glossary\n- Video walkthroughs (if created)\n\n**Audit Prep Checklist**:\n- [ ] Review goals documented\n- [ ] Static analysis clean\u002Ftriaged\n- [ ] Test coverage >80%\n- [ ] Dead code removed\n- [ ] Build instructions verified\n- [ ] Stable version frozen\n- [ ] Flowcharts created\n- [ ] User stories documented\n- [ ] Assumptions documented\n- [ ] Actors\u002Fprivileges listed\n- [ ] Function docs complete\n- [ ] Glossary created\n\n---\n\n## Timeline\n\n**2 weeks before audit**:\n- Set review goals\n- Run static analysis\n- Start fixing issues\n\n**1 week before audit**:\n- Increase test coverage\n- Remove dead code\n- Freeze stable version\n- Start documentation\n\n**Few days before audit**:\n- Complete documentation\n- Verify build instructions\n- Create final checklist\n- Send package to auditors\n\n---\n\n## Ready to Prep\n\nLet me know when you're ready and I'll help you prepare for your security review!\n",[1188],{"type":44,"tag":187,"props":1189,"children":1190},{"__ignoreMap":184},[1191],{"type":49,"value":1186},{"type":44,"tag":1193,"props":1194,"children":1195},"style",{},[1196],{"type":49,"value":1197},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1199,"total":1345},[1200,1217,1227,1245,1258,1269,1281,1291,1304,1311,1323,1334],{"slug":1201,"name":1201,"fn":1202,"description":1203,"org":1204,"tags":1205,"stars":26,"repoUrl":27,"updatedAt":1216},"address-sanitizer","detect memory errors during fuzzing","AddressSanitizer detects memory errors during fuzzing. Use when fuzzing C\u002FC++ code to find buffer overflows and use-after-free bugs.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1206,1209,1212,1213],{"name":1207,"slug":1208,"type":16},"C#","c",{"name":1210,"slug":1211,"type":16},"Debugging","debugging",{"name":14,"slug":15,"type":16},{"name":1214,"slug":1215,"type":16},"Testing","testing","2026-07-17T06:05:14.925095",{"slug":1218,"name":1218,"fn":1219,"description":1220,"org":1221,"tags":1222,"stars":26,"repoUrl":27,"updatedAt":1226},"aflpp","perform multi-core fuzzing of C\u002FC++ projects","AFL++ is a fork of AFL with better fuzzing performance and advanced features. Use for multi-core fuzzing of C\u002FC++ projects.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1223,1224,1225],{"name":1207,"slug":1208,"type":16},{"name":14,"slug":15,"type":16},{"name":1214,"slug":1215,"type":16},"2026-07-17T06:05:12.433192",{"slug":1228,"name":1228,"fn":1229,"description":1230,"org":1231,"tags":1232,"stars":26,"repoUrl":27,"updatedAt":1244},"agentic-actions-auditor","audit GitHub Actions for security vulnerabilities","Audits GitHub Actions workflows for security vulnerabilities in AI agent integrations including Claude Code Action, Gemini CLI, OpenAI Codex, and GitHub AI Inference. Detects attack vectors where attacker-controlled input reaches AI agents running in CI\u002FCD pipelines, including env var intermediary patterns, direct expression injection, dangerous sandbox configurations, and wildcard user allowlists. Use when reviewing workflow files that invoke AI coding agents, auditing CI\u002FCD pipeline security for prompt injection risks, or evaluating agentic action configurations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1233,1236,1239,1240,1243],{"name":1234,"slug":1235,"type":16},"Agents","agents",{"name":1237,"slug":1238,"type":16},"CI\u002FCD","ci-cd",{"name":24,"slug":25,"type":16},{"name":1241,"slug":1242,"type":16},"GitHub Actions","github-actions",{"name":14,"slug":15,"type":16},"2026-07-18T05:47:48.564744",{"slug":1246,"name":1246,"fn":1247,"description":1248,"org":1249,"tags":1250,"stars":26,"repoUrl":27,"updatedAt":1257},"algorand-vulnerability-scanner","scan Algorand smart contracts for vulnerabilities","Scans Algorand smart contracts for 11 common vulnerabilities including rekeying attacks, unchecked transaction fees, missing field validations, and access control issues. Use when auditing Algorand projects (TEAL\u002FPyTeal).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1251,1252,1253,1254],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":14,"slug":15,"type":16},{"name":1255,"slug":1256,"type":16},"Smart Contracts","smart-contracts","2026-07-18T05:47:43.989063",{"slug":1259,"name":1259,"fn":1260,"description":1261,"org":1262,"tags":1263,"stars":26,"repoUrl":27,"updatedAt":1268},"ask-questions-if-underspecified","clarify requirements before implementation","Clarify requirements before implementing. Use when serious doubts arise.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1264,1265],{"name":21,"slug":22,"type":16},{"name":1266,"slug":1267,"type":16},"Productivity","productivity","2026-07-17T06:05:33.543262",{"slug":1270,"name":1270,"fn":1271,"description":1272,"org":1273,"tags":1274,"stars":26,"repoUrl":27,"updatedAt":1280},"atheris","fuzz Python code with Atheris","Atheris is a coverage-guided Python fuzzer based on libFuzzer. Use for fuzzing pure Python code and Python C extensions.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1275,1278,1279],{"name":1276,"slug":1277,"type":16},"Python","python",{"name":14,"slug":15,"type":16},{"name":1214,"slug":1215,"type":16},"2026-07-17T06:05:14.575191",{"slug":1282,"name":1282,"fn":1283,"description":1284,"org":1285,"tags":1286,"stars":26,"repoUrl":27,"updatedAt":1290},"audit-augmentation","augment code graphs with audit findings","Augments Trailmark code graphs with external audit findings from SARIF static analysis results, weAudit annotation files, and version-gated Trailmark 0.4.x binary-analysis graph exports. Maps findings to graph nodes by file and line overlap, creates severity-based subgraphs, and enables cross-referencing findings with pre-analysis data (blast radius, taint, etc.). Use when projecting SARIF results onto a code graph, overlaying weAudit annotations, importing binary graph findings, cross-referencing Semgrep, CodeQL, or binary-analysis findings with call graph data, or visualizing audit findings in the context of code structure.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1287,1288,1289],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":14,"slug":15,"type":16},"2026-08-01T05:44:54.920542",{"slug":1292,"name":1292,"fn":1293,"description":1294,"org":1295,"tags":1296,"stars":26,"repoUrl":27,"updatedAt":1303},"audit-context-building","build architectural context for code analysis","Enables ultra-granular, line-by-line code analysis to build deep architectural context before vulnerability or bug finding.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1297,1300,1301,1302],{"name":1298,"slug":1299,"type":16},"Architecture","architecture",{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},"2026-07-18T05:47:40.122449",{"slug":4,"name":4,"fn":5,"description":6,"org":1305,"tags":1306,"stars":26,"repoUrl":27,"updatedAt":28},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1307,1308,1309,1310],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"slug":1312,"name":1312,"fn":1313,"description":1314,"org":1315,"tags":1316,"stars":26,"repoUrl":27,"updatedAt":1322},"burpsuite-project-parser","parse Burp Suite project files","Searches and explores Burp Suite project files (.burp) from the command line. Use when searching response headers or bodies with regex patterns, extracting security audit findings, dumping proxy history or site map data, or analyzing HTTP traffic captured in a Burp project.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1317,1318,1321],{"name":18,"slug":19,"type":16},{"name":1319,"slug":1320,"type":16},"CLI","cli",{"name":14,"slug":15,"type":16},"2026-07-17T06:05:33.198077",{"slug":1324,"name":1324,"fn":1325,"description":1326,"org":1327,"tags":1328,"stars":26,"repoUrl":27,"updatedAt":1333},"c-review","audit C and C++ code","Performs comprehensive C\u002FC++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C\u002FC++ applications, reviewing daemons or services for memory safety, or hunting integer overflow \u002F use-after-free \u002F race conditions in userspace code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1329,1330,1331,1332],{"name":18,"slug":19,"type":16},{"name":1207,"slug":1208,"type":16},{"name":24,"slug":25,"type":16},{"name":14,"slug":15,"type":16},"2026-07-17T06:05:11.333374",{"slug":1335,"name":1335,"fn":1336,"description":1337,"org":1338,"tags":1339,"stars":26,"repoUrl":27,"updatedAt":1344},"cairo-vulnerability-scanner","scan Cairo and StarkNet contracts for vulnerabilities","Scans Cairo\u002FStarkNet smart contracts for 6 critical vulnerabilities including felt252 arithmetic overflow, L1-L2 messaging issues, address conversion problems, and signature replay. Use when auditing StarkNet projects.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1340,1341,1342,1343],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":14,"slug":15,"type":16},{"name":1255,"slug":1256,"type":16},"2026-07-18T05:47:42.84568",111,{"items":1347,"total":1393},[1348,1355,1361,1369,1376,1381,1387],{"slug":1201,"name":1201,"fn":1202,"description":1203,"org":1349,"tags":1350,"stars":26,"repoUrl":27,"updatedAt":1216},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1351,1352,1353,1354],{"name":1207,"slug":1208,"type":16},{"name":1210,"slug":1211,"type":16},{"name":14,"slug":15,"type":16},{"name":1214,"slug":1215,"type":16},{"slug":1218,"name":1218,"fn":1219,"description":1220,"org":1356,"tags":1357,"stars":26,"repoUrl":27,"updatedAt":1226},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1358,1359,1360],{"name":1207,"slug":1208,"type":16},{"name":14,"slug":15,"type":16},{"name":1214,"slug":1215,"type":16},{"slug":1228,"name":1228,"fn":1229,"description":1230,"org":1362,"tags":1363,"stars":26,"repoUrl":27,"updatedAt":1244},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1364,1365,1366,1367,1368],{"name":1234,"slug":1235,"type":16},{"name":1237,"slug":1238,"type":16},{"name":24,"slug":25,"type":16},{"name":1241,"slug":1242,"type":16},{"name":14,"slug":15,"type":16},{"slug":1246,"name":1246,"fn":1247,"description":1248,"org":1370,"tags":1371,"stars":26,"repoUrl":27,"updatedAt":1257},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1372,1373,1374,1375],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":14,"slug":15,"type":16},{"name":1255,"slug":1256,"type":16},{"slug":1259,"name":1259,"fn":1260,"description":1261,"org":1377,"tags":1378,"stars":26,"repoUrl":27,"updatedAt":1268},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1379,1380],{"name":21,"slug":22,"type":16},{"name":1266,"slug":1267,"type":16},{"slug":1270,"name":1270,"fn":1271,"description":1272,"org":1382,"tags":1383,"stars":26,"repoUrl":27,"updatedAt":1280},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1384,1385,1386],{"name":1276,"slug":1277,"type":16},{"name":14,"slug":15,"type":16},{"name":1214,"slug":1215,"type":16},{"slug":1282,"name":1282,"fn":1283,"description":1284,"org":1388,"tags":1389,"stars":26,"repoUrl":27,"updatedAt":1290},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1390,1391,1392],{"name":18,"slug":19,"type":16},{"name":24,"slug":25,"type":16},{"name":14,"slug":15,"type":16},77]