skills/bug-scrub/SKILL.md
Comprehensive project health diagnostic — collects signals from CI tools, existing reports, deferred issues, and code markers into a prioritized finding report
npx skillsauth add jankneumann/agentic-coding-tools bug-scrubInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Perform a comprehensive project health check by collecting signals from multiple sources, aggregating findings into a unified schema, and producing a prioritized report.
This is a read-only diagnostic skill — it does not modify any code. Use /fix-scrub to remediate findings.
$ARGUMENTS - Optional flags:
--source <list> (comma-separated sources; default: all available)--severity <level> (minimum severity: critical, high, medium, low, info; default: low)--project-dir <path> (directory with pyproject.toml; default: auto-detect)--out-dir <path> (default: docs/bug-scrub)--format <md|json|both> (default: both)Valid sources: pytest, ruff, mypy, openspec, architecture, security, deferred, markers
Scripts live in <agent-skills-dir>/bug-scrub/scripts/. Each agent runtime substitutes <agent-skills-dir> with its config directory:
.claude/skills.codex/skills.gemini/skillsIf scripts are missing, run skills/install.sh to sync them from the canonical skills/ source.
openspec sourcepython3 <agent-skills-dir>/bug-scrub/scripts/main.py \
--source <sources-or-omit-for-all> \
--severity <level> \
--project-dir <path> \
--out-dir docs/bug-scrub \
--format both
The orchestrator produces:
docs/bug-scrub/bug-scrub-report.md — human-readable prioritized reportdocs/bug-scrub/bug-scrub-report.json — machine-readable for /fix-scrubSignal Sources:
Severity Levels (descending): critical > high > medium > low > info
Staleness Warnings: Reports older than 7 days trigger a refresh recommendation.
/fix-scrub --tier auto for tool-native auto-fixes (ruff)/fix-scrub for auto + agent-assisted fixes/fix-scrub --dry-run to see what would be fixed/fix-scrub --severity high for high-priority items only/plan-feature proposal for findings that need design decisionspython3 -m pytest <agent-skills-dir>/bug-scrub/tests -q
| Rationalization | Why it's wrong | |---|---| | "CI is green, so a bug-scrub is unnecessary" | CI runs only the configured checks at the configured strictness. Bug-scrub aggregates signals CI does not surface — deferred OpenSpec tasks, code markers, stale architecture diagnostics, security-report findings. | | "I'll skip mypy/ruff because the project doesn't enforce them" | The collectors skip unavailable tools by design; running them surfaces latent issues even on projects that do not gate on them. The cost is one command. | | "The report from last week is fine" | The skill's staleness logic flags reports older than 7 days for a reason — code drifts, deferred lists grow, new TODOs land daily. A stale report under-reports current debt. | | "I'll just look at high-severity findings" | High-severity findings are loud but rarely the root cause; clusters of medium-severity findings in one hotspot file usually signal the deeper structural problem. Filter only after reading the hotspot summary. |
bug-scrub-report.json older than 7 days being used as input to /plan-feature or /fix-scrub without a refresh — staleness warning was ignored.pytest, ruff, AND mypy simultaneously — almost certainly the collectors did not actually execute (missing tools, wrong project-dir).deferred source returns zero entries on a project with multiple active OpenSpec changes — the OpenSpec CLI was not on the PATH or --project-dir pointed outside the repo.stat -c %y docs/bug-scrub/bug-scrub-report.json (or equivalent) returns a recent timestamp.sources field has length ≥ 3) — a single-source report is incomplete.--project-dir was wrong.development
Open the artifacts relevant to a review (OpenSpec proposal, branch changes, or explicit paths) in VS Code, in a curated read-order, in the right worktree.
tools
Render and seed coordinator-owned task status block in OpenSpec tasks.md
testing
User-invocable skill that omits the tail block
tools
Missing several required keys