/report
Generate submission-ready reports for all confirmed findings. Runs dedup, PoC builder, quality check, and report writer. Usage: /report bounty or /report pentest
$ npx -y skills add H-mmer/pentest-agents --skill report --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/report
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generate submission-ready reports for all confirmed findings. Runs dedup, PoC builder, quality check, and report writer. Usage: /report bounty or /report pentest
SKILL.md
report.SKILL.mdname: report
description: "Generate submission-ready reports for all confirmed findings. Runs dedup, PoC builder, quality check, and report writer. Usage: /report bounty or /report pentest"
disable-model-invocation: false
Generate reports for confirmed findings. Format: $ARGUMENTS (default: bounty)
This runs the full reporting pipeline. Run this AFTER /pipeline and /validate.
Step 1: Dedup and Inventory
Run `uv run python3 $CLAUDE_PROJECT_DIR/tools/dedup_findings.py --scan-dir scans/ --db findings.json --stats` Read findings.md and brain effective techniques. Show the user a numbered list of confirmed findings.
Step 2: For EACH confirmed finding (one at a time):
2a: Check if PoC exists
Look in poc/ directory. If no PoC for this finding, launch `poc-builder` agent: "Create PoC for: [finding details]. You MUST write files to poc/<finding-slug>/. Create reproduce.sh and poc.html (if client-side). Do NOT just output to terminal — write the actual files."
2b: Check if evidence exists
Look in evidence/ directory. If no screenshots/recordings exist:
- Do NOT claim screenshots exist if they haven't been taken
- Do NOT hallucinate file paths — verify files exist with `ls` before referencing them
- Tell the user: "No evidence captured yet. Run /evidence screenshot to capture, or note 'evidence pending' in the report."
2c: Determine CVSS version
Read `scope.yaml` to check the `platform:` field.
- If `platform: hackerone` → use **CVSS 3.1** (HackerOne does not support CVSS 4.0)
- All other platforms → use **CVSS 4.0**
2d: Draft the report
Launch `report-writer` agent: "Write a bug bounty report for: [finding details]. Format: $ARGUMENTS. Platform: [platform from scope.yaml]. CVSS version: [3.1 if hackerone, 4.0 otherwise]. CRITICAL INSTRUCTIONS: 1. You MUST write the report to reports/drafts/<finding-slug>.md using the Write tool. Do NOT just output to terminal. 2. Use the CVSS version specified above. HackerOne requires CVSS 3.1. All other platforms use CVSS 4.0. 3. Title formula: [Vuln] in [Component] Enables [Impact]. 4. Only reference PoC files and screenshots that ACTUALLY EXIST on disk — verify with ls before citing. 5. Include PoC at [path] and evidence at [path] ONLY if those files exist. 6. NEVER hardcode the researcher username, email, password, or token. If you need to embed the reporter identity (e.g., in a sample signup or PoC), write the env-var symbol like `${HACKERONE_EMAIL_ALIAS}` (HackerOne), `${BUGCROWD_EMAIL_ALIAS}` (Bugcrowd), `${INTIGRITI_EMAIL_ALIAS}` (Intigriti), or `${YESWEHACK_EMAIL}` (YesWeHack). Substitution happens at submit time. See `rules/identities.md` for the full table."
2e: Quality check
Launch `quality-check` agent on the draft. If score < 7, show issues and ask user if they want to fix and re-check.
Step 3: Summary
After all findings are processed, show:
Reports generated:
1. [title] — score: X/10 — reports/drafts/finding-1.md
2. [title] — score: X/10 — reports/drafts/finding-2.md
...
Ready for submission:
/dupcheck <finding> — check for duplicates
/submit <finding> — submit to platform
Step 4: Sync
Run `uv run python3 $CLAUDE_PROJECT_DIR/tools/global_brain.py sync-from-local` Run `uv run python3 $CLAUDE_PROJECT_DIR/tools/statusline.py`
Top-Tier Report Standard
A report is ready when a tired triager can reproduce and justify it without guessing.
Hard requirements:
- title states vuln, component, and proven impact
- summary explains the business risk in two sentences
- steps use exact accounts, URLs, headers, payloads, and expected markers
- impact section maps the primitive to customer, tenant, financial, admin, secret, or execution consequence
- evidence paths exist and are referenced accurately
- CVSS version follows platform rules and vector matches final proven impact
- duplicate risk and known prior art are addressed when relevant
- remediation names the broken control, not just "validate input"
If any confirmed finding lacks PoC or evidence, stop report generation for that finding and send it back to `/validate` or `/chain`.
Read more
name: report description: "Generate submission-ready reports for all confirmed findings. Runs dedup, PoC builder, quality check, and report writer. Usage: /report bounty or /report pentest" disable-model-invocation: false
Generate reports for confirmed findings. Format: $ARGUMENTS (default: bounty)
This runs the full reporting pipeline. Run this AFTER /pipeline and /validate.
Step 1: Dedup and Inventory
Run `uv run python3 $CLAUDE_PROJECT_DIR/tools/dedup_findings.py --scan-dir scans/ --db findings.json --stats` Read findings.md and brain effective techniques. Show the user a numbered list of confirmed findings.
Step 2: For EACH confirmed finding (one at a time):
2a: Check if PoC exists
Look in poc/ directory. If no PoC for this finding, launch `poc-builder` agent: "Create PoC for: [finding details]. You MUST write files to poc/<finding-slug>/. Create reproduce.sh and poc.html (if client-side). Do NOT just output to terminal — write the actual files."
2b: Check if evidence exists
Look in evidence/ directory. If no screenshots/recordings exist:
- Do NOT claim screenshots exist if they haven't been taken
- Do NOT hallucinate file paths — verify files exist with `ls` before referencing them
- Tell the user: "No evidence captured yet. Run /evidence screenshot to capture, or note 'evidence pending' in the report."
2c: Determine CVSS version
Read `scope.yaml` to check the `platform:` field.
- If `platform: hackerone` → use **CVSS 3.1** (HackerOne does not support CVSS 4.0)
- All other platforms → use **CVSS 4.0**
2d: Draft the report
Launch `report-writer` agent: "Write a bug bounty report for: [finding details]. Format: $ARGUMENTS. Platform: [platform from scope.yaml]. CVSS version: [3.1 if hackerone, 4.0 otherwise]. CRITICAL INSTRUCTIONS: 1. You MUST write the report to reports/drafts/<finding-slug>.md using the Write tool. Do NOT just output to terminal. 2. Use the CVSS version specified above. HackerOne requires CVSS 3.1. All other platforms use CVSS 4.0. 3. Title formula: [Vuln] in [Component] Enables [Impact]. 4. Only reference PoC files and screenshots that ACTUALLY EXIST on disk — verify with ls before citing. 5. Include PoC at [path] and evidence at [path] ONLY if those files exist. 6. NEVER hardcode the researcher username, email, password, or token. If you need to embed the reporter identity (e.g., in a sample signup or PoC), write the env-var symbol like `${HACKERONE_EMAIL_ALIAS}` (HackerOne), `${BUGCROWD_EMAIL_ALIAS}` (Bugcrowd), `${INTIGRITI_EMAIL_ALIAS}` (Intigriti), or `${YESWEHACK_EMAIL}` (YesWeHack). Substitution happens at submit time. See `rules/identities.md` for the full table."
2e: Quality check
Launch `quality-check` agent on the draft. If score < 7, show issues and ask user if they want to fix and re-check.
Step 3: Summary
After all findings are processed, show:
Reports generated: 1. [title] — score: X/10 — reports/drafts/finding-1.md 2. [title] — score: X/10 — reports/drafts/finding-2.md ... Ready for submission: /dupcheck <finding> — check for duplicates /submit <finding> — submit to platform
Step 4: Sync
Run `uv run python3 $CLAUDE_PROJECT_DIR/tools/global_brain.py sync-from-local` Run `uv run python3 $CLAUDE_PROJECT_DIR/tools/statusline.py`
Top-Tier Report Standard
A report is ready when a tired triager can reproduce and justify it without guessing.
Hard requirements:
- title states vuln, component, and proven impact
- summary explains the business risk in two sentences
- steps use exact accounts, URLs, headers, payloads, and expected markers
- impact section maps the primitive to customer, tenant, financial, admin, secret, or execution consequence
- evidence paths exist and are referenced accurately
- CVSS version follows platform rules and vector matches final proven impact
- duplicate risk and known prior art are addressed when relevant
- remediation names the broken control, not just "validate input"
If any confirmed finding lacks PoC or evidence, stop report generation for that finding and send it back to `/validate` or `/chain`.
Bug bounty agent framework for Claude Code, Codex, Gemini, Cursor, Windsurf, Copilot, and OpenClaw — 48 agents, 26 commands, 19 CLI tools, 2 MCP servers, autonomous hunt loops, exploit chain builder.
Repo: H-mmer/pentest-agents
Other skills on pentest-agents.
- /analyze
Analyze recon output with AI to suggest high-value targets and attack strategies. Usage: /analyze <target>
Open skill - /autopilot
Autonomous hunt orchestrator. INSATIABLE in --autonomous mode: enforces an EXHAUSTION CONTRACT (26 canonical hunter classes, surface probe A-I, depth-engine ≥25 attempts/class, wall-clock floor 90 min/target, PRE-COMPLETION GATE before any summary). No early stops, no clarifying
Open skill - /brain
Manage the engagement brain. Subcommands: 'init' to set up, 'brief <target>' for pre-flight, 'status' for overview, 'exhausted [target]' to see dead ends.
Open skill - /chain
Build deep exploit chains — dispatches chain-builder agent. Given bug A, recursively walks the chain graph. Usage: /chain (then describe bug A)
Open skill - /correlate
Run the finding correlation engine to discover attack chains from individual findings.
Open skill - /cost
Show cost tracking and ROI for this engagement.
Open skill

