hackerone — Claude Code skill: what it does, how to install
Parses HackerOne scope tables, runs parallel pentesting agents per asset, and formats verified reports after checking exploit PoCs.
npx skills add transilienceai/communitytools --skill hackerone -a claude-codeWhat hackerone does
This skill automates bug bounty routines for HackerOne engagements. It uses skills/hackerone/tools/csv_parser.py to ingest program scope and filters out any asset where eligible_for_submission is not true. For each eligible target, the orchestrator spawns an isolated background coordinator. Running ten assets in parallel typically cuts execution down to 2-4 hours instead of 20-40 hours sequentially.
Submission safety relies entirely on the validate-findings gate. The skill blocks unverified bugs from reaching submission drafts. Every candidate finding must supply a poc.py, execution proof in poc_output.txt, manual steps, and raw evidence. The workflow cross-checks CVE data against NVD and CISA KEV, recomputes the CVSS score from the vector, and runs adversarial refutation votes to eliminate false positives.
Rejected findings get permanently filed under artifacts/false-positives/ and are excluded from all summaries. Once an issue receives a VALID or REPAIRED verdict, the skill generates a compliant markdown report and checks its structure with report_validator.py.
What it helps with
- parse HackerOne scope CSV files and isolate eligible targets
- orchestrate background testing agents across multiple assets in parallel
- eliminate false positives through adversarial validation and CISA KEV checks
- repair broken PoC scripts to prove exploitability
- compile platform-ready markdown reports with recalculated CVSS scores
Example prompts for the agent
- Parse scope.csv and spin up coordinators for all eligible targets
- Run validate-findings on asset output directory with strict mode enabled
- Generate HackerOne submission reports from the validated artifacts
How to install hackerone
1Skills CLI (Vercel)
npx skills add transilienceai/communitytools --skill hackerone -a claude-code2Manually: put the files in place
~/.claude/skills/hackerone/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/hackerone/
1Skills CLI (Vercel)
npx skills add transilienceai/communitytools --skill hackerone -a codex2Manually: put the files in place
.agents/skills/hackerone/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add transilienceai/communitytools --skill hackerone -a cursor2Manually: put the files in place
.cursor/skills/hackerone/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install transilienceai/communitytools hackerone2Manually: put the files in place
.github/skills/hackerone/SKILL.md1Skills CLI (Vercel)
npx skills add transilienceai/communitytools --skill hackerone -a gemini-cli2Platform CLI
gemini skills install https://github.com/transilienceai/communitytools --path skills/hackeroneManually: put the files in place
.devin/skills/hackerone/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add transilienceai/communitytools --skill hackerone -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about hackerone
How to install the hackerone skill in Claude Code?
Run npx skills add transilienceai/communitytools --skill hackerone -a claude-code. The skill will be available at ~/.claude/skills/hackerone/SKILL.md.
What does the hackerone skill do?
It coordinates the bug bounty workflow: scope parsing, parallel target testing, strict finding validation with PoC execution, and platform-ready report generation.
Which findings can be submitted to HackerOne?
Only findings marked VALID or REPAIRED by the validation gate. Any finding marked REJECTED is treated as a false positive and excluded from submission files.
Source text
SKILL.md · MIT
---
name: hackerone
description: HackerOne bug bounty automation - parses scope CSVs, deploys parallel pentesting agents per asset, validates PoCs, and generates platform-ready submission reports.
---
# HackerOne Bug Bounty
Automates: scope parsing → parallel testing per asset → **authoritative finding validation** → submission reports.
## Quick start
1. Input: HackerOne program URL or scope CSV.
2. Parse scope and program guidelines.
3. Spawn one coordinator per eligible asset (parallel).
4. Each coordinator runs the standard engagement flow (see `skills/coordination/SKILL.md`).
5. Run the **`validate-findings` workflow per asset** (authoritative submission gate). Generate HackerOne reports from the validated set ONLY — never submit a finding that is not `VALID`/`REPAIRED`.
## Scope CSV format
Expected columns:
- `identifier` — asset URL/domain.
- `asset_type` — URL, WILDCARD, API, CIDR.
- `eligible_for_submission` — must be `true`.
- `max_severity` — critical / high / medium / low.
- `instruction` — asset-specific notes.
Parse with `skills/hackerone/tools/csv_parser.py`. Filter for `eligible_for_submission=true`.
## Agent deployment
One coordinator per asset, spawned in parallel:
```python
coordinator_role = Read("skills/coordination/SKILL.md")
Agent(prompt=f"{coordinator_role}\n\nTARGET: {asset_url}\nSCOPE: {program_guidelines}\nOUTPUT_DIR: ...",
run_in_background=True)
```
10 assets → 10 parallel coordinators (~2-4 h vs 20-40 h sequential). Each coordinator follows `skills/coordination/SKILL.md` and `reference/role-matrix.md`.
## Finding validation (authoritative submission gate)
Every finding requires `poc.py` (executable exploit), `poc_output.txt` (timestamped execution proof), manual repro steps, and evidence (screenshots / HTTP captures / video). This is the input the validator consumes.
**After each asset's coordinator returns, the orchestrator runs the `validate-findings` workflow for that asset and submits ONLY findings it marks `VALID` or `REPAIRED`:**
```python
v = Workflow(name="validate-findings", args={
"output_dir": asset_output_dir, # the coordinator's OUTPUT_DIR
"target": asset_url,
"business_tier": "revenue", # production/external bug-bounty scope; else "unknown"
"votes": 3, # adversarial refuters per finding (bounty = stricter)
"repair": True, # regenerate broken/absent PoCs so each finding has a runnable evidence script
"strict": True, # one failed gate => REJECTED
})
# v.counts -> {total, valid, repaired, rejected}; v.validated[] / v.rejected[]
# Verdicts at {asset_output_dir}/artifacts/validated/{id}.json (+ false-positives/).
# Asset report at {asset_output_dir}/reports/validation-report.md.
```
`validate-findings` is the authoritative gate because it directly preempts the most common HackerOne rejections: it verifies each CVE against **NVD + a recomputed CVSS base score (from the vector) + CISA KEV + the vendor advisory**, **runs (and repairs) every PoC** until it emits the evidence that proves the issue, **recomputes the risk/severity**, corroborates every claim against raw evidence, and kills false positives via **adversarial refutation**.
The orchestrator is the only layer that runs this workflow (it is top-level; the workflow is one level below — legal nesting). To avoid double work, coordinators may treat their **interleaved per-finding validators** (run the instant each candidate is materialized) as a provisional self-check; the standalone `validate-findings` verdict is authoritative for submission. A `REJECTED` finding is a false positive — it never enters a submission, an appendix, or a count; its `artifacts/false-positives/{id}.json` is the sole record. Likewise a coordinator-dropped candidate (uncured DEMOTED, in `artifacts/dropped/`) is never submitted.
The HackerOne PoC contract is a superset of the standard finding contract (`skills/coordination/reference/validator-role.md`).
## Submission report format
Build each report from a validated finding only. Required sections per HackerOne standard:
1. Summary (2-3 sentences).
2. Severity (CVSS + business impact; v4.0 primary, v3.1 → v3.0 → v2.0 fallback) — use the score `validate-findings` recomputed from the vector and the risk bucket it assigned, not a hand-typed number.
3. Steps to Reproduce (numbered, clear) — mirror the validated `verification-script.py`.
4. Visual Evidence (from `evidence/validation/`).
5. Impact (realistic attack scenario).
6. Remediation (actionable fixes).
Validate report *format* with `skills/hackerone/tools/report_validator.py` (complements the finding validation).
## Output structure
Standard `OUTPUT_DIR` (`skills/coordination/reference/output-discipline.md`) plus a per-asset `reports/submissions/` containing the platform-ready markdown. `validate-findings` writes the verdicts under `artifacts/validated|false-positives/` and the asset `reports/validation-report.md`.
```
{OUTPUT_DIR}/
├── findings/
│ └── finding-NNN/evidence/validation/ # validate-findings proof packages
├── reports/
│ ├── submissions/ # built ONLY from artifacts/validated/
│ │ ├── H1_CRITICAL_001.md
│ │ └── H1_HIGH_001.md
│ ├── validation-report.md # validate-findings asset report
│ └── SUBMISSION_GUIDE.md
├── recon/
├── logs/
└── artifacts/
├── validated/ # {id}.json — submit these
└── false-positives/ # {id}.json — never submit these
```
## Program selection
**High-value:** new programs (< 30 days), fast response (< 24 h), high bounties, large attack surface. **Avoid:** slow response (> 1 week), low bounties, restrictive scope.
## Submission checklist
- [ ] **`validate-findings` verdict = `VALID` or `REPAIRED`** (`artifacts/validated/{id}.json` exists). Never submit a `REJECTED` finding.
- [ ] CVSS **recomputed from the vector** (v4.0 primary; v3.1 → v3.0 → v2.0 fallback) and matching NVD when a CVE applies (`evidence/validation/cve-verification.md`).
- [ ] Working PoC with `poc_output.txt` (the validator re-ran/repaired it and confirmed the evidence token).
- [ ] Step-by-step reproduction.
- [ ] Visual evidence.
- [ ] Realistic impact (risk score/bucket from `evidence/validation/risk-assessment.md`).
- [ ] Remediation guidance.
- [ ] Sensitive data sanitized.
- [ ] Asset is `eligible_for_submission=true`.
## Common rejections (preempt)
| Rejection | Prevention |
|-----------|------------|
| Out of Scope | Verify `eligible_for_submission=true` and asset-type match |
| Cannot Reproduce | `validate-findings` re-runs (and repairs) the PoC 3× and requires a vuln-class evidence token — only reproducible findings pass the gate |
| Duplicate | Search disclosed reports before submission; submit quickly |
| Insufficient Impact | Document realistic attack scenario; `validate-findings` recomputes risk/severity so the rating is defensible |
| Incorrect severity / CVSS | `validate-findings` recomputes the base score from the vector and cross-checks NVD + KEV; any mismatch is flagged before you submit |
## Tools
- `skills/hackerone/tools/csv_parser.py` — parse HackerOne scope CSVs.
- **`validate-findings` workflow** — authoritative per-asset finding validation (NVD/CVSS-math/KEV/exploit-run/repair/risk/adversarial). The submission gate; run once per asset.
- `skills/hackerone/tools/report_validator.py` — validate report *format* completeness (the 6 submission sections). Complements `validate-findings` (which validates the *finding*); run it on each report built from a validated finding.
- `skills/coordination/SKILL.md` — coordinator scaffold.
## Usage
```bash
/hackerone <program_url_or_csv_path>
```
© transilienceai · MIT · transilienceai/communitytools