Code Maturity Assessor
Trail of BitsOfficialPublished by Trail of Bits
- Skill
- Review and audit
- 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 Code Maturity Assessor provides a structured, evidence-based evaluation of blockchain projects using a 9-category framework. It guides users through a discovery and analysis phase, examining aspects such as arithmetic safety, access controls, decentralization, and testing. The skill produces a comprehensive scorecard and a priority-ordered roadmap to help developers and auditors identify critical gaps and improve the overall maturity of their smart contract systems.
What it does
- Evaluates codebases across 9 specific security and maturity categories.
- Provides evidence-based ratings from Missing to Strong.
- Generates a detailed maturity scorecard with file-level references.
- Creates a priority-ordered improvement roadmap with effort estimates.
- Conducts an interactive assessment to clarify off-chain processes.
- Delivers an executive summary highlighting project strengths and critical gaps.
When to use it
- When auditing the security and operational maturity of a smart contract project.
- When preparing a codebase for a formal security review.
- When you need to justify architectural improvements to stakeholders.
- When assessing the readiness of a decentralized application for mainnet deployment.
Advantages
- Standardized evaluation based on established industry frameworks.
- Reduces subjectivity by requiring concrete evidence for every rating.
- Actionable output that translates findings into a clear development roadmap.
- Covers both on-chain code and off-chain operational practices.
Usage examples
- “Assess the maturity of my DeFi protocol codebase located in the current directory.”
- The agent will scan the files, analyze the 9 categories, ask questions about your incident response and monitoring, and generate a maturity report.
- “Evaluate my NFT contract against the 9-category maturity framework.”
- The agent will provide a scorecard and a roadmap detailing necessary improvements for arithmetic safety, access control, and testing.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/trailofbits/code-maturity-assessor/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip code-maturity-assessor.zip -d .agents/skills
Documentation by Trail of Bits
Code Maturity Assessor
Purpose
Systematically assesses codebase maturity using Trail of Bits' 9-category framework. Provides evidence-based ratings and actionable recommendations.
Framework: Building Secure Contracts - Code Maturity Evaluation v0.1.0
How This Works
Phase 1: Discovery
Explores the codebase to understand:
Project structure and platform
Contract/module files
Test coverage
Documentation availability
Phase 2: Analysis
For each of 9 categories, I'll:
Search the code for relevant patterns
Read key files to assess implementation
Present findings with file references
Ask clarifying questions about processes I can't see in code
Determine rating based on criteria
Phase 3: Report
Generates:
Executive summary
Maturity scorecard (ratings for all 9 categories)
Detailed analysis with evidence
Priority-ordered improvement roadmap
Rating System
Missing (0): Not present/not implemented
Weak (1): Several significant improvements needed
Moderate (2): Adequate, can be improved
Satisfactory (3): Above average, minor improvements
Strong (4): Exceptional, only small improvements possible
Rating Logic:
ANY "Weak" criteria → Weak
NO "Weak" + SOME "Moderate" unmet → Moderate
ALL "Moderate" + SOME "Satisfactory" met → Satisfactory
ALL "Satisfactory" + exceptional practices → Strong
The 9 Categories
I assess 9 comprehensive categories covering all aspects of code maturity. For detailed criteria, analysis approaches, and rating thresholds, see ASSESSMENT_CRITERIA.md.
Quick Reference:
1. ARITHMETIC
Overflow protection mechanisms
Precision handling and rounding
Formula specifications
Edge case testing
2. AUDITING
Event definitions and coverage
Monitoring infrastructure
Incident response planning
3. AUTHENTICATION / ACCESS CONTROLS
Privilege management
Role separation
Access control testing
Key compromise scenarios
4. COMPLEXITY MANAGEMENT
Function scope and clarity
Cyclomatic complexity
Inheritance hierarchies
Code duplication
5. DECENTRALIZATION
Centralization risks
Upgrade control mechanisms
User opt-out paths
Timelock/multisig patterns
6. DOCUMENTATION
Specifications and architecture
Inline code documentation
User stories
Domain glossaries
7. TRANSACTION ORDERING RISKS
MEV vulnerabilities
Front-running protections
Slippage controls
Oracle security
8. LOW-LEVEL MANIPULATION
Assembly usage
Unsafe code sections
Low-level calls
Justification and testing
9. TESTING & VERIFICATION
Test coverage
Fuzzing and formal verification
CI/CD integration
Test quality
For complete assessment criteria including what I'll analyze, what I'll ask you, and detailed rating thresholds (WEAK/MODERATE/SATISFACTORY/STRONG), see ASSESSMENT_CRITERIA.md.
Example Output
When the assessment is complete, you'll receive a comprehensive maturity report including:
Executive Summary: Overall score, top 3 strengths, top 3 gaps, priority recommendations
Maturity Scorecard: Table with all 9 categories rated with scores and notes
Detailed Analysis: Category-by-category breakdown with evidence (file:line references)
Improvement Roadmap: Priority-ordered recommendations (CRITICAL/HIGH/MEDIUM) with effort estimates
For a complete example assessment report, see EXAMPLE_REPORT.md.
Assessment Process
When invoked, I will:
Explore codebase
Find contract/module files
Identify test files
Locate documentation
Analyze each category
Search for relevant code patterns
Read key implementations
Assess against criteria
Collect evidence
Interactive assessment
Present my findings with file references
Ask about processes I can't see in code
Discuss borderline cases
Determine ratings together
Generate report
Executive summary
Maturity scorecard table
Detailed category analysis with evidence
Priority-ordered improvement roadmap
Rationalizations (Do Not Skip)
| Rationalization | Why It's Wrong | Required Action |
|---|---|---|
| "Found some findings, assessment complete" | Assessment requires evaluating ALL 9 categories | Complete assessment of all 9 categories with evidence for each |
| "I see events, auditing category looks good" | Events alone don't equal auditing maturity | Check logging comprehensiveness, testing, incident response processes |
| "Code looks simple, complexity is low" | Visual simplicity masks composition complexity | Analyze cyclomatic complexity, dependency depth, state machine transitions |
| "Not a DeFi protocol, MEV category doesn't apply" | MEV extends beyond DeFi (governance, NFTs, games) | Verify with transaction ordering analysis before declaring N/A |
| "No assembly found, low-level category is N/A" | Low-level risks include external calls, delegatecall, inline assembly | Search for all low-level patterns before skipping category |
| "This is taking too long" | Thorough assessment requires time per category | Complete all 9 categories, ask clarifying questions about off-chain processes |
| "I can rate this without evidence" | Ratings without file:line references = unsubstantiated claims | Collect concrete code evidence for every category assessment |
| "User will know what to improve" | Vague guidance = no action | Provide priority-ordered roadmap with specific improvements and effort estimates |
Report Format
For detailed report structure and templates, see REPORT_FORMAT.md.
Structure:
Executive Summary
Project name and platform
Overall maturity (average rating)
Top 3 strengths
Top 3 critical gaps
Priority recommendations
Maturity Scorecard
Table with all 9 categories
Ratings and scores
Key findings notes
Detailed Analysis
Per-category breakdown
Evidence with file:line references
Gaps and improvement actions
Improvement Roadmap
CRITICAL (immediate)
HIGH (1-2 months)
MEDIUM (2-4 months)
Effort estimates and impact
Ready to Begin
Estimated Time: 30-40 minutes
I'll need:
Access to full codebase
Your knowledge of processes (monitoring, incident response, team practices)
Context about the project (DeFi, NFT, infrastructure, etc.)
Let's assess this codebase!
Files
- ATTRIBUTION.mdAdded by AutoGineer963 B
- LICENSELicence file added by AutoGineer19.7 KiB
- SKILL.md7.1 KiB
- agents/openai.yaml242 B
- assets/trail-of-bits-mark.svg3.0 KiB
- resources/ASSESSMENT_CRITERIA.md9.6 KiB
- resources/EXAMPLE_REPORT.md7.4 KiB
- resources/REPORT_FORMAT.md726 B
resources/EXAMPLE_REPORT.md
Example Output
When the assessment is complete, you'll receive a comprehensive maturity report:
=== CODE MATURITY ASSESSMENT REPORT ===
Project: DeFi DEX Protocol
Platform: Solidity (Ethereum)
Assessment Date: March 15, 2024
Assessor: Trail of Bits Code Maturity Framework v0.1.0
---
## EXECUTIVE SUMMARY
Overall Maturity Score: 2.7 / 4.0 (MODERATE-SATISFACTORY)
Top 3 Strengths:
✓ Comprehensive testing with 96% coverage and fuzzing
✓ Well-documented access controls with multi-sig governance
✓ Clear architectural documentation with diagrams
Top 3 Critical Gaps:
⚠ Arithmetic operations lack formal specification
⚠ No event monitoring infrastructure deployed
⚠ Centralized upgrade mechanism without timelock
Priority Recommendation:
Implement arithmetic specification document and add 48-hour timelock
to all governance operations before mainnet launch.
---
## MATURITY SCORECARD
| Category | Rating | Score | Notes |
|-----------------------------|---------------|-------|---------------------------------|
| 1. Arithmetic | WEAK | 1/4 | Missing specification |
| 2. Auditing | MODERATE | 2/4 | Events present, no monitoring |
| 3. Authentication/Access | SATISFACTORY | 3/4 | Multi-sig, well-documented |
| 4. Complexity Management | MODERATE | 2/4 | Some functions too complex |
| 5. Decentralization | WEAK | 1/4 | Centralized upgrades |
| 6. Documentation | SATISFACTORY | 3/4 | Comprehensive, minor gaps |
| 7. Transaction Ordering | MODERATE | 2/4 | Some MEV risks documented |
| 8. Low-Level Manipulation | SATISFACTORY | 3/4 | Minimal assembly, justified |
| 9. Testing & Verification | STRONG | 4/4 | Excellent coverage & techniques |
**OVERALL: 2.7 / 4.0** (Moderate-Satisfactory)
---
## DETAILED ANALYSIS
### 1. ARITHMETIC - WEAK (1/4)
**Evidence:**
✗ No arithmetic specification document found
✗ AMM pricing formula not documented (src/SwapRouter.sol:89-156)
✗ Slippage calculation lacks precision analysis
✓ Using Solidity 0.8+ for overflow protection
✓ Critical functions tested for edge cases
**Critical Gap:**
File: src/SwapRouter.sol:127
```solidity
uint256 amountOut = (reserveOut * amountIn * 997) / (reserveIn * 1000 + amountIn * 997);No specification for:
Expected liquidity depth ranges
Precision loss analysis
Rounding direction justification
To Reach Moderate (2/4):
Create arithmetic specification document
Document all formulas and their precision requirements
Add explicit rounding direction comments
Test arithmetic edge cases with fuzzing
Files Referenced:
src/SwapRouter.sol:89-156
src/LiquidityPool.sol:234-267
src/PriceCalculator.sol:178-195
2. AUDITING - MODERATE (2/4)
Evidence: ✓ Events emitted for all critical operations ✓ Consistent event naming (Action + noun) ✓ Indexed parameters for filtering ✗ No off-chain monitoring infrastructure ✗ No monitoring plan documented ✗ No incident response plan
Events Found: 23 events across 8 contracts
Swap, AddLiquidity, RemoveLiquidity ✓
PairCreated, LiquidityProvided ✓
OwnershipTransferred, GovernanceProposed ✓
Critical Gap: No monitoring alerts for:
Large swaps causing significant price impact
Oracle price deviations
Unusual liquidity withdrawal patterns
To Reach Satisfactory (3/4):
Deploy off-chain monitoring (Tenderly/Defender)
Create monitoring playbook document
Set up alerts for critical events
Test incident response plan quarterly
3. AUTHENTICATION/ACCESS CONTROLS - SATISFACTORY (3/4)
Evidence: ✓ All privileged functions have access controls ✓ Multi-sig (3/5) controls governance ✓ Role separation (Admin, Operator, Pauser) ✓ Roles documented in ROLES.md ✓ Two-step ownership transfer ✓ All access patterns tested ✓ Emergency pause by separate role
Access Control Implementation:
OpenZeppelin AccessControl used consistently
4 roles defined with non-overlapping privileges
Emergency functions require multi-sig
Minor Gap: Multi-sig is EOA-based (should upgrade to Governor contract)
To Reach Strong (4/4):
Replace multi-sig EOAs with on-chain Governor
Add timelock to all parameter changes
Document key compromise scenarios
Test governor upgrade path
Files Referenced:
All contracts use consistent access patterns
ROLES.md comprehensive
test/access/* covers all scenarios
9. TESTING & VERIFICATION - STRONG (4/4)
Evidence: ✓ 96% line coverage, 94% branch coverage ✓ 287 unit tests, all passing ✓ Echidna fuzzing for 12 invariants ✓ Integration tests for all workflows ✓ Mutation testing implemented ✓ Tests run in CI/CD ✓ Fork tests against mainnet state
Testing Breakdown:
Unit: 287 tests (forge test)
Integration: 45 scenarios (end-to-end flows)
Fuzzing: 12 invariants (Echidna, 10k runs each)
Formal: 3 key properties (Certora)
Fork: Tested against live Uniswap/SushiSwap
Uncovered Code:
Emergency migration (tested manually)
Governance upgrade path (one-time)
Why Strong: Exceeds all satisfactory criteria with formal verification and extensive fuzzing. Test quality is exceptional.
IMPROVEMENT ROADMAP
CRITICAL (Fix Before Mainnet - Week 1-2)
1. Create Arithmetic Specification [HIGH IMPACT]
Effort: 3-5 days
Document all formulas with ground-truth models
Analyze precision loss for each operation
Justify rounding directions
Impact: Moves Arithmetic from WEAK → MODERATE
2. Add Governance Timelock [HIGH IMPACT]
Effort: 2-3 days
Deploy TimelockController (48-hour delay)
Update all governance functions
Document emergency override procedure
Impact: Moves Decentralization from WEAK → MODERATE
HIGH PRIORITY (Fix Before Launch - Week 3-4)
3. Deploy Monitoring Infrastructure [MEDIUM IMPACT]
Effort: 3-4 days
Set up Tenderly/OpenZeppelin Defender
Create alert rules for critical events
Document monitoring playbook
Impact: Moves Auditing from MODERATE → SATISFACTORY
4. Simplify Complex Functions [MEDIUM IMPACT]
Effort: 5-7 days
Split SwapRouter.getAmountOut() (cyclomatic complexity: 15)
Extract PriceCalculator._validateSlippage() logic
Impact: Moves Complexity from MODERATE → SATISFACTORY
MEDIUM PRIORITY (Improve for V2 - Month 2-3)
5. Document MEV Risks
Effort: 2-3 days
Create MEV analysis document
Add slippage protection where missing
Impact: Moves Transaction Ordering from MODERATE → SATISFACTORY
6. Upgrade to On-Chain Governance
Effort: 1-2 weeks
Replace multi-sig with Governor contract
Add voting period and quorum
Impact: Moves Authentication from SATISFACTORY → STRONG
CONCLUSION
The codebase demonstrates MODERATE-SATISFACTORY maturity (2.7/4.0), with excellent testing practices and good documentation. Primary concerns are arithmetic specification gaps and centralized upgrade control.
Recommended Path to Mainnet:
Complete CRITICAL items (arithmetic spec, timelock)
Address HIGH priority items (monitoring, complexity)
Conduct external audit
Launch with documented limitations
Implement MEDIUM priority items in V2
Timeline: 3-4 weeks to address critical/high items before audit.
Assessment completed using Trail of Bits Building Secure Contracts Code Maturity Evaluation Framework v0.1.0
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.
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/code-maturity-assessor · 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 or Trail of Bits.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download code-maturity-assessor.zip