Parent
#360
What to build
A report generator that produces one HackerOne-formatted markdown file per in-scope finding, written to workspaces/<workspace>/hackerone/. Findings that touched out-of-scope URLs (per the scope validator) are excluded from HackerOne output but retained in the executive summary. The existing executive report continues to be generated alongside.
End-to-end path:
apps/worker/src/services/hackerone-reporter.ts — takes assembled findings, BountyConfig, and ScopeViolation[]; for each finding determines scope status; for each in-scope finding makes an LLM call with report-hackerone.txt template to produce the structured report; writes to workspaces/<workspace>/hackerone/finding-NNN-<slug>.md
apps/worker/prompts/report-hackerone.txt — per-finding template producing: Title, Severity, CVSS vector (marked [SUGGESTED CVSS — review before submitting]), Asset (mapped from program's asset list), Summary, Steps to Reproduce (exact HTTP request, payload, auth state required, expected vs actual response), PoC, Impact, Suggested Fix
- Wired into the reporting activity in
activities.ts; only runs when bountyConfig is present
- Active campaign asset name from
bountyConfig used to populate the Asset field in reports
Acceptance criteria
Blocked by
#366
Parent
#360
What to build
A report generator that produces one HackerOne-formatted markdown file per in-scope finding, written to
workspaces/<workspace>/hackerone/. Findings that touched out-of-scope URLs (per the scope validator) are excluded from HackerOne output but retained in the executive summary. The existing executive report continues to be generated alongside.End-to-end path:
apps/worker/src/services/hackerone-reporter.ts— takes assembled findings,BountyConfig, andScopeViolation[]; for each finding determines scope status; for each in-scope finding makes an LLM call withreport-hackerone.txttemplate to produce the structured report; writes toworkspaces/<workspace>/hackerone/finding-NNN-<slug>.mdapps/worker/prompts/report-hackerone.txt— per-finding template producing: Title, Severity, CVSS vector (marked[SUGGESTED CVSS — review before submitting]), Asset (mapped from program's asset list), Summary, Steps to Reproduce (exact HTTP request, payload, auth state required, expected vs actual response), PoC, Impact, Suggested Fixactivities.ts; only runs whenbountyConfigis presentbountyConfigused to populate the Asset field in reportsAcceptance criteria
workspaces/<workspace>/hackerone/contains one.mdfile per in-scope findinghackerone/but present in executive summaryreport-executive.md) is still generated alongside HackerOne fileshackerone/directoryBlocked by
#366