Fully autonomous bug hunting pipeline — discover bugs in a scoped area using parallel subagents, independently triage each finding, fix confirmed issues with subagents, then audit all fixes against repo constraints and target platforms. Runs end-to-end without user interaction.
62
72%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Critical
Do not install without reviewing
Fix and improve this skill with Tessl
tessl review fix ./.agents/skills/bughunt/SKILL.mdFully autonomous pipeline: find, triage, fix, and audit bugs in a scoped area of a codebase. Five phases, each using subagents to parallelize work and provide independent assessments.
This skill runs end-to-end without asking the user any questions. Do not pause for confirmation, approval, or input between phases. Make autonomous decisions at every step — section splits, severity judgments, fix strategies, conflict resolution. Log progress to the report so the user can review the final output, but never block on user input.
| Parameter | Default | Example override |
|---|---|---|
| Scope | (required) | the install script, src/auth/, the CLI argument parser |
| Sections | auto-split from scope | split by platform, one per module |
| Platforms | inferred from repo | Linux, macOS, WSL |
| Output | /tmp/bughunt-output/<project>/ | Output directory: ./qa/ |
<project> is the basename of the repo root (e.g. /tmp/bughunt-output/harbor/). The output directory — and therefore prior-run memory — is always per-project; never read or write another project's reports.
1. Orient Read the target code, identify natural section boundaries
2. Discover Parallel bugbash subagents, one per section
3. Triage Independent subagent per finding — confirm, dispute, or adjust severity
4. Fix Subagent per confirmed issue — investigate, implement, self-review
5. Audit Verify all fixes against repo constraints and target platformsRead the target files yourself. Identify section boundaries for parallel discovery. Do not delegate this phase — you need the full picture to write good subagent prompts in later phases.
Good splits follow the code's own structure:
Write the section list and file ranges, then proceed immediately to Discovery. Each section needs enough context in isolation for a subagent to reason about it.
Create the output directory and initialize the report:
mkdir -p {OUTPUT_DIR}/evidenceBefore launching discovery, check the output directory for reports from previous runs (report.md, report-*.md). Prior-run memory is per-project: only reports under this project's output directory count. If using the default location, also check the legacy global /tmp/bughunt-output/ root for reports whose stated scope matches this repo, and migrate them into the project subdirectory. If any exist:
report-<n>.md) — never overwrite it.Launch one subagent per section using the Agent tool, all in parallel (send all Agent calls in a single message). Each subagent:
You are bugbashing [project]. Your section is [section name] in
[file path].Read the file and focus on [specific areas and line ranges].
For each real bug, provide:
- Issue ID (e.g., SEC-001)
- Severity (Critical/High/Medium/Low)
- Description
- File:Line
- Repro scenario
- Evidence (code snippet)
- Expected vs Actual
Only report bugs a real user could hit — no style nits or hypotheticals.
Compile findings into the report. Deduplicate issues reported by multiple sections. Assign each a canonical ID. Update summary counts. Proceed immediately to Triage — do not wait for user input.
Launch one subagent per finding using the Agent tool, all in parallel (send all Agent calls in a single message). Each triage agent:
You are an independent triage reviewer. Read the code, assess whether the bug is real.
Finding [ID] (claimed [severity]): [one-paragraph description with file:line]
Read
[file]lines [range]. Answer:
- Is this a real bug? Can a user actually hit it?
- What preconditions are required? How likely are they?
- Is [severity] the right severity?
- Are there mitigating factors the original report missed?
Return a short verdict: CONFIRMED / DISPUTED / DOWNGRADE with reasoning (under 200 words).
The fix bar does not flex to fill the run. A run that confirms zero fixable bugs is a successful run — report "no findings above the fix bar" and the full rejection table, and stop. Do not lower the threshold because the report would otherwise look thin. The rejection table is a first-class deliverable: a well-refuted false positive is worth as much as a fix.
Update the report with triage results. Proceed immediately to Fix — do not wait for user input.
Launch one subagent per confirmed issue using the Agent tool, all in parallel (send all Agent calls in a single message). Each fix agent:
You are fixing a confirmed [severity] bug in
[file].Bug [ID]: [description]
Read [file] lines [range].
Fix requirements:
- [specific behavioral requirements for this fix]
- Keep the fix minimal — don't restructure surrounding code
Return: the exact
old_stringandnew_stringfor an Edit tool call. Include enough surrounding context to make the match unique.Self-review: after writing the fix, re-read it and check:
- [fix-specific verification questions]
- Does the fix handle the error/edge case that triggered the bug?
- Does it introduce any new failure modes?
Multiple agents may edit the same file. Applying edits in parallel causes conflicts. Instead, collect all proposed edits, review them for overlap, then apply sequentially.
bash -n, python -m py_compile, tsc --noEmit, etc.)Verify every fix against repo-level constraints. This is where platform-specific bugs, lint violations, and convention breaks get caught.
Before auditing, identify what constraints exist in the repo:
Sources: CI configs, linter configs, CLAUDE.md, CONTRIBUTING.md, Makefile targets, existing lint rules/fixtures.
For each fix, check:
head -c, readlink -f, grep -P, sed -i without backup suffix)/bin/shtimeout, getent, sudo)If a fix fails the audit:
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.