Report Writer Skill
Generate professional audit reports with structured findings, severity classifications, proof-of-concept code, and actionable recommendations. Based on industry standards from Trail of Bits, OpenZeppelin, Cyfrin, Spearbit, and Code4rena.
Report Components
| Component |
Purpose |
Length |
| Executive Summary |
Non-technical overview for stakeholders |
1-2 paragraphs |
| Scope |
Files/contracts reviewed, commit hash, exclusions |
Table |
| Methodology |
How the audit was conducted |
1 paragraph |
| Finding Summary |
Table of all findings by severity |
Table |
| Detailed Findings |
Full write-up of each finding |
Per finding |
| Centralization Risks |
Admin/owner privilege analysis |
Section |
| Gas Optimizations |
Optional efficiency improvements |
List |
| Appendix |
Tools used, out-of-scope items |
Section |
Severity Classification
Based on the industry-standard Likelihood × Impact matrix:
|
Low Impact |
Medium Impact |
High Impact |
| High Likelihood |
Medium |
High |
Critical |
| Medium Likelihood |
Low |
Medium |
High |
| Low Likelihood |
Info |
Low |
Medium |
Likelihood Assessment
| Level |
Criteria |
| High |
Exploitable by anyone, no special conditions, low cost |
| Medium |
Requires specific conditions, timing, or moderate skill |
| Low |
Requires unlikely conditions, high cost, or privileged access |
Impact Assessment
| Level |
Criteria |
| High |
Direct loss of funds, protocol takeover, permanent DoS |
| Medium |
Conditional fund loss, temporary DoS, incorrect state |
| Low |
Inconvenience, minor gas waste, edge case behavior |
Finding ID Convention
| Prefix |
Severity |
Example |
| C |
Critical |
C-01, C-02 |
| H |
High |
H-01, H-02 |
| M |
Medium |
M-01, M-02 |
| L |
Low |
L-01, L-02 |
| I |
Informational |
I-01, I-02 |
| G |
Gas Optimization |
G-01, G-02 |
Writing Quality Standards
Good Finding Characteristics
Specific title — Describes the vulnerability, not just the location
- BAD: "Issue in withdraw function"
- GOOD: "Missing reentrancy guard in withdraw() allows ETH drain via malicious token callback"
Clear description — A reader unfamiliar with the code can understand the issue
Precise location — Contract name, function, line numbers
Demonstrated impact — Concrete scenario showing what an attacker achieves
Working PoC — For Critical/High, a test case that proves exploitability
Actionable fix — Specific code change, not "fix the issue"
Resources
- Finding Templates
- Report Template
Workflows
1---2name: report-writer3description: Generate professional audit reports with structured findings, severity classifications, proof-of-concept code, and actionable recommendations. Use when writing individual findings, composing full audit reports, or formatting results for Code4rena, Sherlock, or client engagements.4---56# Report Writer Skill78Generate professional audit reports with structured findings, severity classifications, proof-of-concept code, and actionable recommendations. Based on industry standards from Trail of Bits, OpenZeppelin, Cyfrin, Spearbit, and Code4rena.910---1112## Report Components1314| Component | Purpose | Length |15|-----------|---------|--------|16| Executive Summary | Non-technical overview for stakeholders | 1-2 paragraphs |17| Scope | Files/contracts reviewed, commit hash, exclusions | Table |18| Methodology | How the audit was conducted | 1 paragraph |19| Finding Summary | Table of all findings by severity | Table |20| Detailed Findings | Full write-up of each finding | Per finding |21| Centralization Risks | Admin/owner privilege analysis | Section |22| Gas Optimizations | Optional efficiency improvements | List |23| Appendix | Tools used, out-of-scope items | Section |2425---2627## Severity Classification2829Based on the industry-standard Likelihood × Impact matrix:3031| | Low Impact | Medium Impact | High Impact |32|---|---|---|---|33| **High Likelihood** | Medium | High | Critical |34| **Medium Likelihood** | Low | Medium | High |35| **Low Likelihood** | Info | Low | Medium |3637### Likelihood Assessment3839| Level | Criteria |40|-------|----------|41| High | Exploitable by anyone, no special conditions, low cost |42| Medium | Requires specific conditions, timing, or moderate skill |43| Low | Requires unlikely conditions, high cost, or privileged access |4445### Impact Assessment4647| Level | Criteria |48|-------|----------|49| High | Direct loss of funds, protocol takeover, permanent DoS |50| Medium | Conditional fund loss, temporary DoS, incorrect state |51| Low | Inconvenience, minor gas waste, edge case behavior |5253---5455## Finding ID Convention5657| Prefix | Severity | Example |58|--------|----------|----------|59| C | Critical | C-01, C-02 |60| H | High | H-01, H-02 |61| M | Medium | M-01, M-02 |62| L | Low | L-01, L-02 |63| I | Informational | I-01, I-02 |64| G | Gas Optimization | G-01, G-02 |6566---6768## Writing Quality Standards6970### Good Finding Characteristics71721. **Specific title** — Describes the vulnerability, not just the location73 - BAD: "Issue in withdraw function"74 - GOOD: "Missing reentrancy guard in withdraw() allows ETH drain via malicious token callback"75762. **Clear description** — A reader unfamiliar with the code can understand the issue77783. **Precise location** — Contract name, function, line numbers79804. **Demonstrated impact** — Concrete scenario showing what an attacker achieves81825. **Working PoC** — For Critical/High, a test case that proves exploitability83846. **Actionable fix** — Specific code change, not "fix the issue"8586---8788## Resources89- [Finding Templates](resources/finding-templates.md)90- [Report Template](resources/report-template.md)9192## Workflows93- [Report Workflow](workflows/report-workflow.md)