Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Armur-Ai/Pentest-Swarm-AI/llms.txt

Use this file to discover all available pages before exploring further.

pentestswarm report provides commands for working with generated report drafts after the swarm has finished a campaign. The primary subcommand is polish, which re-runs the AI quality-gate rubric on a draft you have hand-edited. This gives you an objective readiness score — backed by the same grading model that triage engineers use — before you paste the report into a platform’s submission form.

Synopsis

pentestswarm report <subcommand> [args] [flags]

Subcommands

report polish <path-to-draft.md>

Re-grade a draft submission on three axes using an LLM quality-gate rubric. The draft file is never modifiedpolish is a read-only readiness check.
pentestswarm report polish ./submissions/sql-injection.md
Run report polish after every manual edit to a campaign-generated draft. A passing score (≥ 6.0/10) means the draft is ready to paste into HackerOne, Bugcrowd, or Intigriti. The check takes roughly 10–30 seconds and costs a fraction of a cent in LLM tokens.

Quality-gate rubric

The grader scores the draft on three independent axes, each from 0 to 10:
DimensionWhat it measures
ClarityCould a stranger reproduce and understand this on their first read? Is the vulnerability type clear? Are the prerequisites spelled out?
ImpactDoes the “Impact” section explain real-world consequences rather than just “attacker can do X”? Is the business risk quantified?
ReproducibilityAre the steps specific enough that triage doesn’t have to guess? Are payloads, parameters, and expected outputs included?
Overall score is the minimum of the three — the report is only as strong as its weakest section. A report that scores 9 on clarity but 4 on reproducibility gets an overall of 4.0. Pass threshold: 6.0 / 10 Reports below the threshold exit with a non-zero code so CI pipelines and pre-submit scripts can gate on the check.

Example output

Passing draft:
  [polish] ./submissions/sql-injection.md

  Overall:          PASS (8.2/10)
  Clarity:          8.5/10
  Impact:           9.0/10
  Reproducibility:  8.2/10

  Suggestions:
    • Add the database version returned by the blind boolean payload
    • Include a screenshot of the extracted data to strengthen the PoC

  Ready to submit. Paste the draft into the platform's report form.
Failing draft:
  [polish] ./submissions/xss-draft.md

  Overall:          FAIL (4.5/10)
  Clarity:          7.0/10
  Impact:           6.5/10
  Reproducibility:  4.5/10

  Blocking issue:  Steps 3 and 4 assume browser context that is never established.

  Suggestions:
    • Replace "navigate to the vulnerable page" with the exact URL including all required parameters
    • Add the exact payload string, not just "a JavaScript payload"
    • Specify which browser and version was used for reproduction

Error: draft below quality threshold

Quality-gate internals

The grader uses Claude’s tool-use capability (grade_submission tool) with a structured JSON schema that enforces score ranges and requires at least two concrete suggestions. The system prompt instructs the model to act as a senior bug-bounty triage engineer who is “tough but fair.” The model must set blocking_issue if it would refuse to file the report itself. The gate requires a tool-use-capable provider (Claude). Running report polish against a local Ollama model that does not support tool use will return an error:
Error: quality gate requires a tool-use-capable provider (Claude)

API key requirement

report polish uses the same API key as scan. Resolve the key by running pentestswarm init or exporting ANTHROPIC_API_KEY.

Examples

# Polish a single submission draft
pentestswarm report polish ./submissions/sql-injection.md

# Polish a draft you hand-edited after the scan
pentestswarm report polish ./submissions/reflected-xss.md

# Use in CI to block low-quality drafts (exits 1 if score < 6.0)
pentestswarm report polish ./submissions/ssrf-finding.md && echo "Ready"

scan

Generate report drafts by running the AI swarm with --format md

campaign

View the findings that were generated by a completed campaign

scope

Import program scope before scanning to keep findings in-scope

doctor

Verify API key and LLM provider configuration

Build docs developers (and LLMs) love