.claude/skills/solidity-guard/skills/report-generator/SKILL.md
Generates professional security audit reports from findings. Creates OpenZeppelin/Trail of Bits style reports with executive summary, methodology, severity-classified findings, and remediation recommendations.
npx skillsauth add alt-research/solidityguard report-generatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Transform raw security findings into professional, actionable audit reports following industry standards from OpenZeppelin, Trail of Bits, and Cyfrin.
# Security Audit Report
## [Protocol Name]
**Prepared by**: SolidityGuard Security Audit Tool
**Date**: [YYYY-MM-DD]
## 1. Executive Summary
[Overview, scope, key findings, deployment recommendation]
## 2. Scope & Methodology
[Files reviewed, tools used, commit hash, limitations]
## 3. Findings Overview
| Severity | Count | Fixed | Open |
|----------|-------|-------|------|
| Critical | X | X | X |
| High | X | X | X |
| Medium | X | X | X |
| Low | X | X | X |
| Info | X | - | - |
## 4. Detailed Findings
### 4.1 Critical
[Each finding with description, evidence, impact, PoC, recommendation]
### 4.2 High
[...]
## 5. Recommendations
### Immediate (Pre-deployment)
### Short-term (30 days)
### Long-term (Ongoing)
## 6. Appendix
### A. File Listing
### B. Tool Versions
### C. Glossary
## [CRITICAL] SG-001: Reentrancy in withdraw()
**Location**: `contracts/Vault.sol:45`
**Pattern**: ETH-001 (SWC-107)
**Status**: Open
### Description
The withdraw function sends ETH before updating the user's balance,
allowing an attacker to re-enter and drain the contract.
### Impact
Complete loss of all vault funds.
### Proof of Concept
```solidity
contract Attacker {
Vault target;
function attack() external payable {
target.deposit{value: 1 ether}();
target.withdraw(1 ether);
}
receive() external payable {
if (address(target).balance >= 1 ether) {
target.withdraw(1 ether);
}
}
}
function withdraw(uint amount) external nonReentrant {
require(balances[msg.sender] >= amount);
balances[msg.sender] -= amount;
(bool success, ) = msg.sender.call{value: amount}("");
require(success);
}
## 5. Security Score
Score = 100 - (Critical × 15) - (High × 8) - (Medium × 3) - (Low × 1)
| Score | Risk | Recommendation |
|-------|------|----------------|
| 90-100 | Minimal | Deploy with monitoring |
| 70-89 | Low | Fix findings, re-review |
| 50-69 | Medium | Major remediation required |
| 25-49 | High | Critical remediation |
| 0-24 | Critical | Do NOT deploy |
## 6. Quality Checklist
- [ ] All findings have exact file:line locations
- [ ] Code snippets are accurate and from source
- [ ] Severity classifications are justified
- [ ] Attack scenarios are realistic and specific
- [ ] Recommendations are actionable with code
- [ ] No speculation or hallucination
- [ ] Executive summary matches detailed findings
- [ ] Metrics are accurate
tools
Advanced Solidity/EVM smart contract security auditor with 104 vulnerability patterns, multi-tool integration, and professional report generation.
development
Comprehensive Solidity contract security scanner detecting 104 vulnerability patterns across reentrancy, access control, arithmetic, DeFi, proxy, and token categories. Integrates Slither, Aderyn, and Mythril with manual analysis.
testing
Analyzes storage layout, proxy patterns, and state variable security in Solidity contracts. Detects storage collisions, uninitialized pointers, and upgrade risks. Use when auditing proxy/upgradeable contracts.
development
Validates Solidity implementation against specification documents. Extracts behavior from docs (README, specs, NatSpec) and verifies code matches documented intent. Uses Trail of Bits methodology for divergence detection.