Audit Prep Assistant
Trail of BitsOfficialPublished by Trail of Bits
- Skill
- Workflow
- Security
- CC-BY-SA-4.0
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The Audit Prep Assistant streamlines the process of getting a codebase ready for an external security review. By following a structured approach based on industry best practices, it helps developers define review goals, clean up code, improve test coverage, and generate necessary documentation. The skill ensures that auditors receive a well-organized, accessible, and documented project, which significantly improves the efficiency and effectiveness of the security assessment process.
What it does
- Helps define security review goals, concerns, and threat scenarios.
- Executes static analysis tools to identify and triage vulnerabilities.
- Analyzes and improves test coverage to ensure critical paths are verified.
- Identifies and removes dead code and unused dependencies.
- Generates essential documentation including flowcharts, user stories, and glossaries.
- Verifies build instructions and creates a stable, frozen version for auditors.
When to use it
- One to two weeks before an scheduled external security audit.
- When preparing a repository to be handed over to a third-party security firm.
- When you need to define clear security objectives and scope for an assessment.
- When you want to ensure your codebase meets professional standards for audit readiness.
Advantages
- Reduces audit friction by providing clear, organized project documentation.
- Increases the likelihood of finding critical issues during the audit by cleaning up low-hanging fruit.
- Ensures auditors spend their time on complex logic rather than setup issues.
- Provides a structured checklist to track preparation progress.
Usage examples
- “I have a security audit in two weeks. Can you help me prepare my Solidity project?”
- The agent will initiate the four-step preparation process, starting with setting review goals and running static analysis tools like Slither.
- “What documentation do I need to provide to my security auditors?”
- The agent will generate a list of required artifacts, including architecture diagrams, user stories, and a glossary of domain-specific terms.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/trailofbits/audit-prep-assistant/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip audit-prep-assistant.zip -d .agents/skills
Documentation by Trail of Bits
Audit Prep Assistant
Purpose
Helps prepare for a security review using Trail of Bits' checklist. A well-prepared codebase makes the review process smoother and more effective.
Use this: 1-2 weeks before your security audit
The Preparation Process
Step 1: Set Review Goals
Helps define what you want from the review:
Key Questions:
What's the overall security level you're aiming for?
What areas concern you most?
Previous audit issues?
Complex components?
Fragile parts?
What's the worst-case scenario for your project?
Documents goals to share with the assessment team.
Step 2: Resolve Easy Issues
Runs static analysis and helps fix low-hanging fruit:
Run Static Analysis:
For Solidity:
slither . --exclude-dependenciesFor Rust:
dylint --allFor Go:
golangci-lint runFor Go/Rust/C++:
# CodeQL and Semgrep checksThen I'll:
Triage all findings
Help fix easy issues
Document accepted risks
Increase Test Coverage:
Analyze current coverage
Identify untested code
Suggest new tests
Run full test suite
Remove Dead Code:
Find unused functions/variables
Identify unused libraries
Locate stale features
Suggest cleanup
Goal: Clean static analysis report, high test coverage, minimal dead code
Step 3: Ensure Code Accessibility
Helps make code clear and accessible:
Provide Detailed File List:
List all files in scope
Mark out-of-scope files
Explain folder structure
Document dependencies
Create Build Instructions:
Write step-by-step setup guide
Test on fresh environment
Document dependencies and versions
Verify build succeeds
Freeze Stable Version:
Identify commit hash for review
Create dedicated branch
Tag release version
Lock dependencies
Identify Boilerplate:
Mark copied/forked code
Highlight your modifications
Document third-party code
Focus review on your code
Step 4: Generate Documentation
Helps create documentation:
Flowcharts and Sequence Diagrams:
Map primary workflows
Show component relationships
Visualize data flow
Identify critical paths
User Stories:
Define user roles
Document use cases
Explain interactions
Clarify expectations
On-chain/Off-chain Assumptions:
Data validation procedures
Oracle information
Bridge assumptions
Trust boundaries
Actors and Privileges:
List all actors
Document roles
Define privileges
Map access controls
External Developer Docs:
Link docs to code
Keep synchronized
Explain architecture
Document APIs
Function Documentation:
System and function invariants
Parameter ranges (min/max values)
Arithmetic formulas and precision loss
Complex logic explanations
NatSpec for Solidity
Glossary:
Define domain terms
Explain acronyms
Consistent terminology
Business logic concepts
Video Walkthroughs (optional):
Complex workflows
Areas of concern
Architecture overview
How I Work
When invoked, I will:
Help set review goals - Ask about concerns and document them
Run static analysis - Execute appropriate tools for your platform
Analyze test coverage - Identify gaps and suggest improvements
Find dead code - Search for unused code and libraries
Review accessibility - Check build instructions and scope clarity
Generate documentation - Create flowcharts, user stories, glossaries
Create prep checklist - Track what's done and what's remaining
Adapts based on:
Your platform (Solidity, Rust, Go, etc.)
Available tools
Existing documentation
Review timeline
Rationalizations (Do Not Skip)
| Rationalization | Why It's Wrong | Required Action |
|---|---|---|
| "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 |
| "Static analysis already ran, no need to run again" | Codebase changed since last run | Execute static analysis tools, generate fresh report |
| "Test coverage looks decent" | "Looks decent" isn't measured coverage | Run coverage tools, identify specific untested code paths |
| "Not much dead code to worry about" | Dead code hides during manual review | Use automated detection tools to find unused functions/variables |
| "Architecture is straightforward, no diagrams needed" | Text descriptions miss visual patterns | Generate actual flowcharts and sequence diagrams |
| "Can freeze version right before audit" | Last-minute freezing creates rushed handoff | Identify and document commit hash now, create dedicated branch |
| "Terms are self-explanatory" | Domain knowledge isn't universal | Create comprehensive glossary with all domain-specific terms |
| "I'll do this step later" | Steps build on each other - skipping creates gaps | Complete all 4 steps sequentially, track progress with checklist |
Example Output
When I finish helping you prepare, you'll have concrete deliverables like:
=== AUDIT PREP PACKAGE ===
Project: DeFi DEX Protocol
Audit Date: March 15, 2024
Preparation Status: Complete
---
## REVIEW GOALS DOCUMENT
Security Objectives:
- Verify economic security of liquidity pool swaps
- Validate oracle manipulation resistance
- Assess flash loan attack vectors
Areas of Concern:
1. Complex AMM pricing calculation (src/SwapRouter.sol:89-156)
2. Multi-hop swap routing logic (src/Router.sol)
3. Oracle price aggregation (src/PriceOracle.sol:45-78)
Worst-Case Scenario:
- Flash loan attack drains liquidity pools via oracle manipulation
Questions for Auditors:
- Can the AMM pricing model produce negative slippage under edge cases?
- Is the slippage protection sufficient to prevent sandwich attacks?
- How resilient is the system to temporary oracle failures?
---
## STATIC ANALYSIS REPORT
Slither Scan Results:
✓ High: 0 issues
✓ Medium: 0 issues
⚠ Low: 2 issues (triaged - documented in TRIAGE.md)
ℹ Info: 5 issues (code style, acceptable)
Tool: slither . --exclude-dependencies
Date: March 1, 2024
Status: CLEAN (all critical issues resolved)
---
## TEST COVERAGE REPORT
Overall Coverage: 94%
- Statements: 1,245 / 1,321 (94%)
- Branches: 456 / 498 (92%)
- Functions: 89 / 92 (97%)
Uncovered Areas:
- Emergency pause admin functions (tested manually)
- Governance migration path (one-time use)
Command: forge coverage
Status: EXCELLENT
---
## CODE SCOPE
In-Scope Files (8):
✓ src/SwapRouter.sol (456 lines)
✓ src/LiquidityPool.sol (234 lines)
✓ src/PairFactory.sol (389 lines)
✓ src/PriceOracle.sol (167 lines)
✓ src/LiquidityManager.sol (298 lines)
✓ src/Governance.sol (201 lines)
✓ src/FlashLoan.sol (145 lines)
✓ src/RewardsDistributor.sol (178 lines)
Out-of-Scope:
- lib/ (OpenZeppelin, external dependencies)
- test/ (test contracts)
- scripts/ (deployment scripts)
Total In-Scope: 2,068 lines of Solidity
---
## BUILD INSTRUCTIONS
Prerequisites:
- Foundry 0.2.0+
- Node.js 18+
- Git
Setup:
```bash
git clone https://github.com/project/repo.git
cd repo
git checkout audit-march-2024 # Frozen branch
forge install
forge build
forge testVerification: ✓ Build succeeds without errors ✓ All 127 tests pass ✓ No warnings from compiler
DOCUMENTATION
Generated Artifacts: ✓ ARCHITECTURE.md - System overview with diagrams ✓ USER_STORIES.md - 12 user interaction flows ✓ GLOSSARY.md - 34 domain terms defined ✓ docs/diagrams/contract-interactions.png ✓ docs/diagrams/swap-flow.png ✓ docs/diagrams/state-machine.png
NatSpec Coverage: 100% of public functions
DEPLOYMENT INFO
Network: Ethereum Mainnet Commit: abc123def456 (audit-march-2024 branch) Deployed Contracts:
SwapRouter: 0x1234...
PriceOracle: 0x5678... [... etc]
PACKAGE READY FOR AUDIT ✓ Next Step: Share with Trail of Bits assessment team
---
## What You'll Get
**Review Goals Document**:
- Security objectives
- Areas of concern
- Worst-case scenarios
- Questions for auditors
**Clean Codebase**:
- Triaged static analysis (or clean report)
- High test coverage
- No dead code
- Clear scope
**Accessibility Package**:
- File list with scope
- Build instructions
- Frozen commit/branch
- Boilerplate identified
**Documentation Suite**:
- Flowcharts and diagrams
- User stories
- Architecture docs
- Actor/privilege map
- Inline code comments
- Glossary
- Video walkthroughs (if created)
**Audit Prep Checklist**:
- [ ] Review goals documented
- [ ] Static analysis clean/triaged
- [ ] Test coverage >80%
- [ ] Dead code removed
- [ ] Build instructions verified
- [ ] Stable version frozen
- [ ] Flowcharts created
- [ ] User stories documented
- [ ] Assumptions documented
- [ ] Actors/privileges listed
- [ ] Function docs complete
- [ ] Glossary created
---
## Timeline
**2 weeks before audit**:
- Set review goals
- Run static analysis
- Start fixing issues
**1 week before audit**:
- Increase test coverage
- Remove dead code
- Freeze stable version
- Start documentation
**Few days before audit**:
- Complete documentation
- Verify build instructions
- Create final checklist
- Send package to auditors
---
## Ready to Prep
Let me know when you're ready and I'll help you prepare for your security review!Files
- ATTRIBUTION.mdAdded by AutoGineer959 B
- LICENSELicence file added by AutoGineer19.7 KiB
- SKILL.md9.8 KiB
- agents/openai.yaml240 B
- assets/trail-of-bits-mark.svg3.0 KiB
agents/openai.yaml
interface: display_name: "Audit Prep Assistant" short_description: "Prepare a codebase for an external security audit" icon_small: "assets/trail-of-bits-mark.svg" icon_large: "assets/trail-of-bits-mark.svg" brand_color: "#D83A34"
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs a command-line tool
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Trail of Bits
- Publisher
- Trail of Bits (Official)
- Source
- trailofbits/skills · plugins/building-secure-contracts/skills/audit-prep-assistant · commit e4dd0bb
- Licence
- Creative Commons Attribution-ShareAlike 4.0 International (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Trail of Bits.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download audit-prep-assistant.zip