Guidelines Advisor
Purpose
Systematically analyzes the codebase and provides guidance based on Trail of Bits' development guidelines:
- Generate documentation and specifications (plain English descriptions, architectural diagrams, code documentation)
- Optimize on-chain/off-chain architecture (only if applicable)
- Review upgradeability patterns (if your project has upgrades)
- Check delegatecall/proxy implementations (if present)
- Assess implementation quality (functions, inheritance, events)
- Identify common pitfalls
- Review dependencies
- Evaluate test suite and suggest improvements
Framework: Building Secure Contracts - Development Guidelines
How This Works
Phase 1: Discovery & Context
Explores the codebase to understand:
- Project structure and platform
- Contract/module files and their purposes
- Existing documentation
- Architecture patterns (proxies, upgrades, etc.)
- Testing setup
- Dependencies
Phase 2: Documentation Generation
Helps create:
- Plain English system description
- Architectural diagrams (using Slither printers for Solidity)
- Code documentation recommendations (NatSpec for Solidity)
Phase 3: Architecture Analysis
Analyzes:
- On-chain vs off-chain component distribution (if applicable)
- Upgradeability approach (if applicable)
- Delegatecall proxy patterns (if present)
Phase 4: Implementation Review
Assesses:
- Function composition and clarity
- Inheritance structure
- Event logging practices
- Common pitfalls presence
- Dependencies quality
- Testing coverage and techniques
Phase 5: Recommendations
Provides:
- Prioritized improvement suggestions
- Best practice guidance
- Actionable next steps
Assessment Areas
I analyze 11 comprehensive areas covering all aspects of smart contract development. For detailed criteria, best practices, and specific checks, see ASSESSMENT_AREAS.md.
Quick Reference:
Documentation & Specifications
- Plain English system descriptions
- Architectural diagrams
- NatSpec completeness (Solidity)
- Documentation gaps identification
On-Chain vs Off-Chain Computation
- Complexity analysis
- Gas optimization opportunities
- Verification vs computation patterns
Upgradeability
- Migration vs upgradeability trade-offs
- Data separation patterns
- Upgrade procedure documentation
Delegatecall Proxy Pattern
- Storage layout consistency
- Initialization patterns
- Function shadowing risks
- Slither upgradeability checks
Function Composition
- Function size and clarity
- Logical grouping
- Modularity assessment
Inheritance
- Hierarchy depth/width
- Diamond problem risks
- Inheritance visualization
Events
- Critical operation coverage
- Event naming consistency
- Indexed parameters
Common Pitfalls
- Reentrancy patterns
- Integer overflow/underflow
- Access control issues
- Platform-specific vulnerabilities
Dependencies
- Library quality assessment
- Version management
- Dependency manager usage
- Copied code detection
Testing & Verification
- Coverage analysis
- Fuzzing techniques
- Formal verification
- CI/CD integration
Platform-Specific Guidance
- Solidity version recommendations
- Compiler warning checks
- Inline assembly warnings
- Platform-specific tools
For complete details on each area including what I'll check, analyze, and recommend, see ASSESSMENT_AREAS.md.
Example Output
When the analysis is complete, you'll receive comprehensive guidance covering:
- System documentation with plain English descriptions
- Architectural diagrams and documentation gaps
- Architecture analysis (on-chain/off-chain, upgradeability, proxies)
- Implementation review (functions, inheritance, events, pitfalls)
- Dependencies and testing evaluation
- Prioritized recommendations (CRITICAL, HIGH, MEDIUM, LOW)
- Overall assessment and path to production
For a complete example analysis report, see EXAMPLE_REPORT.md.
Deliverables
I provide four comprehensive deliverable categories:
1. System Documentation
- Plain English descriptions
- Architectural diagrams
- Documentation gaps analysis
2. Architecture Analysis
- On-chain/off-chain assessment
- Upgradeability review
- Proxy pattern security review
3. Implementation Review
- Function composition analysis
- Inheritance assessment
- Events coverage
- Pitfall identification
- Dependencies evaluation
- Testing analysis
4. Prioritized Recommendations
- CRITICAL (address immediately)
- HIGH (address before deployment)
- MEDIUM (address for production quality)
- LOW (nice to have)
For detailed templates and examples of each deliverable, see DELIVERABLES.md.
Assessment Process
When invoked, I will:
Explore the codebase
- Identify all contract/module files
- Find existing documentation
- Locate test files
- Check for proxies/upgrades
- Identify dependencies
Generate documentation
- Create plain English system description
- Generate architectural diagrams (if tools available)
- Identify documentation gaps
Analyze architecture
- Assess on-chain/off-chain distribution (if applicable)
- Review upgradeability approach (if applicable)
- Audit proxy patterns (if present)
Review implementation
- Analyze functions, inheritance, events
- Check for common pitfalls
- Assess dependencies
- Evaluate testing
Provide recommendations
- Present findings with file references
- Ask clarifying questions about design decisions
- Suggest prioritized improvements
- Offer actionable next steps
Rationalizations (Do Not Skip)
| Rationalization |
Why It's Wrong |
Required Action |
| "System is simple, description covers everything" |
Plain English descriptions miss security-critical details |
Complete all 5 phases: documentation, architecture, implementation, dependencies, recommendations |
| "No upgrades detected, skip upgradeability section" |
Upgradeability can be implicit (ownable patterns, delegatecall) |
Search for proxy patterns, delegatecall, storage collisions before declaring N/A |
| "Not applicable" without verification |
Premature scope reduction misses vulnerabilities |
Verify with explicit codebase search before skipping any guideline section |
| "Architecture is straightforward, no analysis needed" |
Obvious architectures have subtle trust boundaries |
Analyze on-chain/off-chain distribution, access control flow, external dependencies |
| "Common pitfalls don't apply to this codebase" |
Every codebase has common pitfalls |
Systematically check all guideline pitfalls with grep/code search |
| "Tests exist, testing guideline is satisfied" |
Test existence ≠ test quality |
Check coverage, property-based tests, integration tests, failure cases |
| "I can provide generic best practices" |
Generic advice isn't actionable |
Provide project-specific findings with file:line references |
| "User knows what to improve from findings" |
Findings without prioritization = no action plan |
Generate prioritized improvement roadmap with specific next steps |
Notes
- I'll only analyze relevant sections (won't hallucinate about upgrades if not present)
- I'll adapt to your platform (Solidity, Rust, Cairo, etc.)
- I'll use available tools (Slither, etc.) but work without them if unavailable
- I'll provide file references and line numbers for all findings
- I'll ask questions about design decisions I can't infer from code
Ready to Begin
What I'll need:
- Access to your codebase
- Context about your project goals
- Any existing documentation or specifications
- Information about deployment plans
Let's analyze your codebase and improve it using Trail of Bits' best practices!
1---2name: guidelines-advisor3description: Smart contract development advisor based on Trail of Bits' best practices. Analyzes codebase to generate documentation/specifications, review architecture, check upgradeability patterns, assess implementation quality, identify pitfalls, review dependencies, and evaluate testing. Use when asking whether a smart contract project follows development best practices, reviewing on-chain/off-chain split, upgradeability, or delegatecall proxy patterns against guidelines, or seeking recommendations on contract design, inheritance, events, documentation, dependencies, or test strategy.4---5
6# Guidelines Advisor
7
8## Purpose
9
10Systematically analyzes the codebase and provides guidance based on Trail of Bits' development guidelines:
11
121. **Generate documentation and specifications** (plain English descriptions, architectural diagrams, code documentation)
132. **Optimize on-chain/off-chain architecture** (only if applicable)
143. **Review upgradeability patterns** (if your project has upgrades)
154. **Check delegatecall/proxy implementations** (if present)
165. **Assess implementation quality** (functions, inheritance, events)
176. **Identify common pitfalls**
187. **Review dependencies**
198. **Evaluate test suite and suggest improvements**
20
21**Framework**: Building Secure Contracts - Development Guidelines
22
23---
24
25## How This Works
26
27### Phase 1: Discovery & Context
28Explores the codebase to understand:
29- Project structure and platform
30- Contract/module files and their purposes
31- Existing documentation
32- Architecture patterns (proxies, upgrades, etc.)
33- Testing setup
34- Dependencies
35
36### Phase 2: Documentation Generation
37Helps create:
38- Plain English system description
39- Architectural diagrams (using Slither printers for Solidity)
40- Code documentation recommendations (NatSpec for Solidity)
41
42### Phase 3: Architecture Analysis
43Analyzes:
44- On-chain vs off-chain component distribution (if applicable)
45- Upgradeability approach (if applicable)
46- Delegatecall proxy patterns (if present)
47
48### Phase 4: Implementation Review
49Assesses:
50- Function composition and clarity
51- Inheritance structure
52- Event logging practices
53- Common pitfalls presence
54- Dependencies quality
55- Testing coverage and techniques
56
57### Phase 5: Recommendations
58Provides:
59- Prioritized improvement suggestions
60- Best practice guidance
61- Actionable next steps
62
63---
64
65## Assessment Areas
66
67I analyze 11 comprehensive areas covering all aspects of smart contract development. For detailed criteria, best practices, and specific checks, see [ASSESSMENT_AREAS.md](resources/ASSESSMENT_AREAS.md).
68
69### Quick Reference:
70
711. **Documentation & Specifications**
72 - Plain English system descriptions
73 - Architectural diagrams
74 - NatSpec completeness (Solidity)
75 - Documentation gaps identification
76
772. **On-Chain vs Off-Chain Computation**
78 - Complexity analysis
79 - Gas optimization opportunities
80 - Verification vs computation patterns
81
823. **Upgradeability**
83 - Migration vs upgradeability trade-offs
84 - Data separation patterns
85 - Upgrade procedure documentation
86
874. **Delegatecall Proxy Pattern**
88 - Storage layout consistency
89 - Initialization patterns
90 - Function shadowing risks
91 - Slither upgradeability checks
92
935. **Function Composition**
94 - Function size and clarity
95 - Logical grouping
96 - Modularity assessment
97
986. **Inheritance**
99 - Hierarchy depth/width
100 - Diamond problem risks
101 - Inheritance visualization
102
1037. **Events**
104 - Critical operation coverage
105 - Event naming consistency
106 - Indexed parameters
107
1088. **Common Pitfalls**
109 - Reentrancy patterns
110 - Integer overflow/underflow
111 - Access control issues
112 - Platform-specific vulnerabilities
113
1149. **Dependencies**
115 - Library quality assessment
116 - Version management
117 - Dependency manager usage
118 - Copied code detection
119
12010. **Testing & Verification**
121 - Coverage analysis
122 - Fuzzing techniques
123 - Formal verification
124 - CI/CD integration
125
12611. **Platform-Specific Guidance**
127 - Solidity version recommendations
128 - Compiler warning checks
129 - Inline assembly warnings
130 - Platform-specific tools
131
132For complete details on each area including what I'll check, analyze, and recommend, see [ASSESSMENT_AREAS.md](resources/ASSESSMENT_AREAS.md).
133
134---
135
136## Example Output
137
138When the analysis is complete, you'll receive comprehensive guidance covering:
139
140- System documentation with plain English descriptions
141- Architectural diagrams and documentation gaps
142- Architecture analysis (on-chain/off-chain, upgradeability, proxies)
143- Implementation review (functions, inheritance, events, pitfalls)
144- Dependencies and testing evaluation
145- Prioritized recommendations (CRITICAL, HIGH, MEDIUM, LOW)
146- Overall assessment and path to production
147
148For a complete example analysis report, see [EXAMPLE_REPORT.md](resources/EXAMPLE_REPORT.md).
149
150---
151
152## Deliverables
153
154I provide four comprehensive deliverable categories:
155
156### 1. System Documentation
157- Plain English descriptions
158- Architectural diagrams
159- Documentation gaps analysis
160
161### 2. Architecture Analysis
162- On-chain/off-chain assessment
163- Upgradeability review
164- Proxy pattern security review
165
166### 3. Implementation Review
167- Function composition analysis
168- Inheritance assessment
169- Events coverage
170- Pitfall identification
171- Dependencies evaluation
172- Testing analysis
173
174### 4. Prioritized Recommendations
175- CRITICAL (address immediately)
176- HIGH (address before deployment)
177- MEDIUM (address for production quality)
178- LOW (nice to have)
179
180For detailed templates and examples of each deliverable, see [DELIVERABLES.md](resources/DELIVERABLES.md).
181
182---
183
184## Assessment Process
185
186When invoked, I will:
187
1881. **Explore the codebase**
189 - Identify all contract/module files
190 - Find existing documentation
191 - Locate test files
192 - Check for proxies/upgrades
193 - Identify dependencies
194
1952. **Generate documentation**
196 - Create plain English system description
197 - Generate architectural diagrams (if tools available)
198 - Identify documentation gaps
199
2003. **Analyze architecture**
201 - Assess on-chain/off-chain distribution (if applicable)
202 - Review upgradeability approach (if applicable)
203 - Audit proxy patterns (if present)
204
2054. **Review implementation**
206 - Analyze functions, inheritance, events
207 - Check for common pitfalls
208 - Assess dependencies
209 - Evaluate testing
210
2115. **Provide recommendations**
212 - Present findings with file references
213 - Ask clarifying questions about design decisions
214 - Suggest prioritized improvements
215 - Offer actionable next steps
216
217---
218
219## Rationalizations (Do Not Skip)
220
221| Rationalization | Why It's Wrong | Required Action |
222|-----------------|----------------|-----------------|
223| "System is simple, description covers everything" | Plain English descriptions miss security-critical details | Complete all 5 phases: documentation, architecture, implementation, dependencies, recommendations |
224| "No upgrades detected, skip upgradeability section" | Upgradeability can be implicit (ownable patterns, delegatecall) | Search for proxy patterns, delegatecall, storage collisions before declaring N/A |
225| "Not applicable" without verification | Premature scope reduction misses vulnerabilities | Verify with explicit codebase search before skipping any guideline section |
226| "Architecture is straightforward, no analysis needed" | Obvious architectures have subtle trust boundaries | Analyze on-chain/off-chain distribution, access control flow, external dependencies |
227| "Common pitfalls don't apply to this codebase" | Every codebase has common pitfalls | Systematically check all guideline pitfalls with grep/code search |
228| "Tests exist, testing guideline is satisfied" | Test existence ≠ test quality | Check coverage, property-based tests, integration tests, failure cases |
229| "I can provide generic best practices" | Generic advice isn't actionable | Provide project-specific findings with file:line references |
230| "User knows what to improve from findings" | Findings without prioritization = no action plan | Generate prioritized improvement roadmap with specific next steps |
231
232---
233
234## Notes
235
236- I'll only analyze relevant sections (won't hallucinate about upgrades if not present)
237- I'll adapt to your platform (Solidity, Rust, Cairo, etc.)
238- I'll use available tools (Slither, etc.) but work without them if unavailable
239- I'll provide file references and line numbers for all findings
240- I'll ask questions about design decisions I can't infer from code
241
242---
243
244## Ready to Begin
245
246**What I'll need**:
247- Access to your codebase
248- Context about your project goals
249- Any existing documentation or specifications
250- Information about deployment plans
251
252Let's analyze your codebase and improve it using Trail of Bits' best practices!