Generated banner for Code Maturity Assessor
Generated logo for Code Maturity Assessor

Code Maturity Assessor

Trail of BitsOfficialPublished by Trail of Bits

  • Skill
  • Review and audit
  • Security
  • CC-BY-SA-4.0
  • No issues found

From the author

Systematic code maturity assessment using Trail of Bits' 9-category framework. Analyzes codebase for arithmetic safety, auditing practices, access controls, complexity, decentralization, documentation, MEV risks, low-level code, and testing, then produces a scorecard with evidence-based ratings and a priority-ordered roadmap. Use when assessing or scoring the maturity of a smart contract or blockchain codebase, producing a maturity scorecard or evaluation, or judging how mature, well-tested, or well-documented such a project is against a rubric.
— the description by Trail of Bits

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

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/trailofbits/code-maturity-assessor/download
  2. Unzip 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:

  1. Explore codebase

    • Find contract/module files

    • Identify test files

    • Locate documentation

  2. Analyze each category

    • Search for relevant code patterns

    • Read key implementations

    • Assess against criteria

    • Collect evidence

  3. Interactive assessment

    • Present my findings with file references

    • Ask about processes I can't see in code

    • Discuss borderline cases

    • Determine ratings together

  4. Generate report

    • Executive summary

    • Maturity scorecard table

    • Detailed category analysis with evidence

    • Priority-ordered improvement roadmap


Rationalizations (Do Not Skip)

RationalizationWhy It's WrongRequired Action
"Found some findings, assessment complete"Assessment requires evaluating ALL 9 categoriesComplete assessment of all 9 categories with evidence for each
"I see events, auditing category looks good"Events alone don't equal auditing maturityCheck logging comprehensiveness, testing, incident response processes
"Code looks simple, complexity is low"Visual simplicity masks composition complexityAnalyze 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 assemblySearch for all low-level patterns before skipping category
"This is taking too long"Thorough assessment requires time per categoryComplete all 9 categories, ask clarifying questions about off-chain processes
"I can rate this without evidence"Ratings without file:line references = unsubstantiated claimsCollect concrete code evidence for every category assessment
"User will know what to improve"Vague guidance = no actionProvide priority-ordered roadmap with specific improvements and effort estimates

Report Format

For detailed report structure and templates, see REPORT_FORMAT.md.

Structure:
  1. Executive Summary

    • Project name and platform

    • Overall maturity (average rating)

    • Top 3 strengths

    • Top 3 critical gaps

    • Priority recommendations

  2. Maturity Scorecard

    • Table with all 9 categories

    • Ratings and scores

    • Key findings notes

  3. Detailed Analysis

    • Per-category breakdown

    • Evidence with file:line references

    • Gaps and improvement actions

  4. 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

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:

  1. Complete CRITICAL items (arithmetic spec, timelock)

  2. Address HIGH priority items (monitoring, complexity)

  3. Conduct external audit

  4. Launch with documented limitations

  5. 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