From han-coding
Performs evidence-based investigation of issues, bugs, API calls, and integrations to find root causes. Useful for debugging and troubleshooting broken software.
How this skill is triggered — by the user, by Claude, or both
Slash command
/han-coding:investigateThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- CLAUDE.md: !`find . -maxdepth 1 -name "CLAUDE.md" -type f`
find . -maxdepth 1 -name "CLAUDE.md" -type ffind . -maxdepth 3 -name "project-discovery.md" -type fhan-core:evidence-based-investigator agents for different angles simultaneously — one for the error path, one for the data flow, one for recent changes.han-core:adversarial-validator agent handles all three validation strategies (challenge evidence, challenge fix, challenge assumptions) internally.Launch at least 2 han-core:evidence-based-investigator agents in parallel, each investigating from a different angle — for example, one tracing the error path and another following the data flow.
Classify the bug from the user's symptom description before launching. Skip any specialist that does not apply. Dispatch every applicable specialist in parallel with the han-core:evidence-based-investigator agents in the same message.
Launch han-core:concurrency-analyst — when the symptom involves intermittent failures, race conditions, deadlocks, ordering issues, stale reads after writes, timeouts, dropped messages, or anything that only reproduces under load or concurrent users. Prompt: "Investigate the concurrency and async behavior of the code paths implicated by this symptom: {symptom}. Focus on race conditions, lock ordering, shared-resource contention, async error handling, and missing cancellation/timeout handling. Return numbered findings keyed to file paths and line numbers."
Launch han-core:behavioral-analyst — when the symptom involves data transformed wrong, values lost between modules, errors swallowed, state mutated unexpectedly, or integration boundaries passing bad data. Prompt: "Trace the data flow for the code paths implicated by this symptom: {symptom}. Focus on data transformation across module boundaries, error propagation and loss, state mutation, and integration-boundary assumptions. Return numbered findings keyed to file paths and line numbers."
Launch han-core:data-engineer — when the symptom involves wrong data in the database, slow queries, N+1, lock contention, migration failures, unbounded scans, lost data, broken referential integrity, or isolation-level surprises. Prompt: "Investigate the schema, queries, migrations, and data-access code implicated by this symptom: {symptom}. Focus on the specific data-engineering principles violated and the concrete data-level impact. Return numbered findings keyed to file paths, line numbers, and schema or migration references."
After all agents complete (investigators and specialists), compile an evidence summary — a numbered list of concrete findings (E1, E2, E3, ...) that will feed into the root cause analysis. Specialist findings go into the same E-series list, tagged with the specialist's domain (e.g., E3 (concurrency)).
Write to the plan file using the template at template.md. Fill the sections in the workflow order below; this is deliberately not the template's on-page order, which leads with the Summary and places the supporting Evidence Summary, Validation Results, and Coding Standards Reference near the end for the reader. Fill in these sections:
Resolve project config: read CLAUDE.md's ## Project Discovery section for docs, ADR, and coding-standards directories; fall back to project-discovery.md; fall back to Glob defaults (docs/, docs/adr/, docs/coding-standards/). Search found directories for relevant standards, ADRs, and docs. Also check CLAUDE.md, AGENTS.md, and linter/formatter configs for coding standards. If none found, infer conventions from surrounding code.
Design a fix that directly addresses the root cause from Step 2 — fix the underlying problem, not symptoms. Then fill in the remaining sections of template.md in the plan file:
Launch han-core:adversarial-validator agents and pass them the complete evidence summary (all E1-EN items with full code snippets), the root cause analysis, and the planned fix with all file changes. Do not summarize — the validator needs verbatim detail to challenge effectively. Their job is adversarial — they must actively try to disprove the findings and break the fix.
When counter-evidence is found, document it as a validation finding (V1, V2, ...), investigate whether it changes the root cause analysis, adjust the plan (evidence, root cause, and fix sections) as needed, and fill in the Adjustments Made section listing what changed and which validation finding triggered each change. When counter-evidence is not found, document what was checked and why it supports the original findings, recording it as a validation finding confirming the analysis.
After all validation is complete, incorporate the han-core:adversarial-validator agents' Confidence Assessment and Remaining Risks into the plan.
Add the Summary section at the top of the plan file with one sentence each for: root cause (what caused the problem), fix (what the planned changes will do), why correct (reference the strongest evidence), validation outcome (what validation confirmed or changed), and remaining risks (reference the Confidence Assessment).
Once the write-up draft is complete, dispatch han-core:readability-editor (one Agent call) to audit and rewrite the findings against the readability rule. This is separate from the Step 4 adversarial-validator pass: that pass checks the fix is correct (accuracy); this pass checks how the write-up reads. Keep both. Pass the editor the plan file path, the rule path ../../references/readability-rule.md, and the named audience: the engineer who will implement the fix and may be paged on the bug. It must preserve every fact and operate on prose regions only — never inside code fences, function signatures in code blocks, diagram bodies, or file:line citation identifiers. Apply its rewrite to the plan file.
Then run the standardized readability self-check from ../../references/readability-rule.md over the write-up's prose regions only — never inside code fences, function signatures, diagram bodies, or file:line citation identifiers. Confirm each criterion and fix any failure before presenting:
Fidelity wins: the standard governs how the content is said, never whether a required technical fact appears.
Present the plan file to the user for approval. The user can approve the plan (triggering implementation) or provide feedback for revisions.
npx claudepluginhub testdouble/han --plugin han-codingDetective-style investigation that follows evidence trails to find root causes, bugs, inconsistencies, and hidden problems. Works on code, performance, architecture, data, and systems. Three investigative lenses: Sherlock (deduction), Poirot (psychology/intent), Columbo (what's missing). Triggers: investigate, debug, detective, find bug, root cause, what's wrong, diagnose, trace, why is this broken, what happened.
Enforces structured root cause analysis with module freeze and evidence-based hypothesis. Use when encountering any bug, error, or unexpected behavior.
Forensic bug triage producing graded case files: symptoms, evidence, hypotheses, and handoff to dev. For investigating bugs, issues, and root causes.