skills/exhaustive-systems-analysis/SKILL.md
Perform evidence-driven, multi-subsystem audits of real codebases to find correctness bugs, race conditions, security gaps, stale documentation, dead code, and production-readiness risks. Use when asked to audit a system end-to-end, verify agent-written code before shipping, analyze a subsystem for correctness across multiple modules, or produce a structured risk report for a real implementation. Prefer other skills for a single isolated bug, a proposal or document review, or a dedicated dead-code cleanup.
npx skillsauth add petekp/claude-code-setup exhaustive-systems-analysisInstall 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.
Use this skill for full-system correctness work. The job is to map the system, identify the highest-risk behaviors, prove or refute concrete failure hypotheses, and leave behind a report another engineer can act on without re-reading the whole codebase.
chat-first output. Return findings inline unless the user asks for docs or the audit clearly needs multi-session artifacts.artifact mode for large or resumable audits. Use docs/audit/ or .claude/docs/audit/, matching the repo's existing conventions.Before reading deeply, write a one-screen scope brief using the template in references/templates.md.
Capture:
chat-first or artifact modeIf the request is broad, narrow it to the modules that can actually change user outcomes or ship readiness.
Read only the materials that establish intended behavior:
README, CLAUDE.md, architecture docs, ADRsTODO, FIXME, HACK, and "known issues"Extract:
Map the system into subsystems before deep analysis. Use the coverage ledger template in references/templates.md.
For each subsystem record:
planned | in_progress | done | follow_upPrioritize by user impact first, then by side effects, concurrency, privilege, and recent churn. Folder structure alone is not a priority system.
For each high- or medium-risk subsystem, write 2-3 concrete hypotheses before diving in. Good hypotheses are falsifiable and tied to a behavior boundary.
Examples:
Update or discard hypotheses as evidence comes in. This step prevents aimless scanning.
Read the subsystem end-to-end:
Select only the relevant checklist sections from references/checklists.md. Do not load every checklist if the subsystem only needs one or two.
When subagents are available, assign one bounded subsystem per subagent with disjoint files and ask for:
Every finding must separate observation from inference.
Required fields:
Severity: Critical | High | Medium | LowStatus: Confirmed | Likely | Needs follow-upConfidence: High | Medium | LowType: Bug | Race condition | Security | Stale docs | Dead code | Design flaw | ReliabilityLocation: exact file path and line or functionImpacted behavior: the user-visible workflow, invariant, or contract at riskObserved evidence: code citation, command output, test result, log, or search resultInference: why that evidence implies the reported problemWhat I checked: searches, tests, docs, commits, or alternate explanations ruled outRecommendation: the smallest credible next actionNext verification step: required when status is Needs follow-upUse Confirmed only when the bug is directly demonstrated by code, a failing test, a repro path, or a hard contradiction. Use Likely when the reasoning is strong but not directly reproduced. Use Needs follow-up when something is suspicious but the evidence is incomplete.
After subsystem reviews:
Prefer stronger evidence over more words. From strongest to weakest:
Static reasoning alone can still be valuable, but it should usually produce Likely, not Confirmed.
For dead code or stale docs, always show what you searched and why you believe the code or documentation is obsolete. A dead-code claim without a consumer search is incomplete.
Use the templates in references/templates.md for:
Use single-session mode for small audits. For large audits or when context is tight, create a lightweight control plane:
00-plan.md for the scope brief and coverage ledgerSUMMARY.md for consolidated findings and fix orderHANDOFF.md if work will continue laterA good handoff includes:
Needs follow-upThe audit is complete when:
development
Draft short, plainspoken notes in the author's voice that help reviewers understand non-obvious choices, boundaries, and preserved behavior in the author's own pull request or local diff. Use when the user asks to self-review, annotate, or add reviewer context to their PR or changes. Draft locally when no PR exists, and post approved notes as one GitHub review when a PR does exist. Do not use for reviewing someone else's PR, writing code comments, explaining code generally, or drafting a PR description. Never post without explicit approval.
tools
Design and build pure-CSS (zero-JavaScript) Tailwind CSS v4 plugins of unusual depth and craft. Use when the user wants to create, architect, or refine a Tailwind utility plugin or CSS effect — e.g. "make a tailwind plugin", "build a tw-* plugin", "a CSS-only shimmer/fade/glow/grain/noise utility", "tailwind v4 @utility", "package this effect as a plugin", or wants an effect with surprising visual depth (gradients, masks, filters, SVG filter tricks, scroll-driven animation). Pairs deep CSS/SVG technique research with a bespoke tuning workbench for dialing the effect in. Inspired by tw-fade and tw-shimmer.
content-media
Create clear, polished before-and-after screenshots for a GitHub pull request. Use when a UI change needs visual proof: capture matching states, crop to the relevant UI, stitch and caption one comparison image, attach it natively to the PR, and keep the image out of the repository.
testing
--- name: latent-potential description: First-principles, team-of-experts assessment of a software project that surfaces latent potential; underexploited assets, a sharper north star, missing high-leverage capabilities, better framing and messaging. Produces a prioritized, evidence-grounded report with cheap probes, a reframe candidate, a stop-doing list, and an honest skeptic's case. Use whenever the user wants fresh eyes on a project they have built: "what am I sitting on", "what could this be