bump-core-req
Updates the minimum core version requirement for a fleet plugin in all three canonical places: `required_core_version` and `requires["claude-code-hermit"]` in…
Diagnosis loop for hard bugs and performance regressions. Builds a red-capable feedback loop and runs it before hypothesising — complements static code review (which finds bugs by reading) by running actual repros. Use when the user says 'diagnose'/'debug this', or reports
$ npx -y skills add gtapps/claude-code-hermit --skill diagnosing-bugs --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/diagnosing-bugsContext preview
The summary Claude sees to decide when to auto-load this skill.
Diagnosis loop for hard bugs and performance regressions. Builds a red-capable feedback loop and runs it before hypothesising — complements static code review (which finds bugs by reading) by running actual repros. Use when the user says 'diagnose'/'debug this', or reports
name: diagnosing-bugs description: "Diagnosis loop for hard bugs and performance regressions. Builds a red-capable feedback loop and runs it before hypothesising — complements static code review (which finds bugs by reading) by running actual repros. Use when the user says 'diagnose'/'debug this', or reports something broken/throwing/failing/slow."
A discipline for hard bugs. Skip phases only when explicitly justified.
When exploring the codebase, consult `.claude-code-hermit/compiled/` (hermit knowledge base — architecture decisions and codebase health assessments) to build a mental model of relevant modules before reading source. Check any ADRs in the area you're touching.
Diagnostic byproducts (failing-test output, stack traces, repro snapshots, instrumentation logs) go in `.claude-code-hermit/raw/` — ephemeral inputs under analysis, not `.claude-code-hermit/compiled/`. Reusable lessons from the diagnosis go to auto-memory.
**This is the skill.** Everything else is mechanical. If you have a **tight** pass/fail signal for the bug — one that goes red on _this_ bug — you will find the cause; bisection, hypothesis-testing, and instrumentation all just consume it. If you don't have one, no amount of staring at code will save you.
Spend disproportionate effort here. **Be aggressive. Be creative. Refuse to give up.**
1. **Failing test** at whatever seam reaches the bug — unit, integration, e2e. 2. **Curl / HTTP script** against a running dev server. 3. **CLI invocation** with a fixture input, diffing stdout against a known-good snapshot. 4. **Headless browser script** (Playwright / Puppeteer) — drives the UI, asserts on DOM/console/network. 5. **Replay a captured trace.** Save a real network request / payload / event log to disk (in `.claude-code-hermit/raw/`); replay it through the code path in isolation. 6. **Throwaway harness.** Spin up a minimal subset of the system (one service, mocked deps) that exercises the bug code path with a single function call. 7. **Property / fuzz loop.** If the bug is "sometimes wrong output", run 1000 random inputs and look for the failure mode. 8. **Bisection harness.** If the bug appeared between two known states (commit, dataset, version), automate "boot at state X, check, repeat" so you can `git bisect run` it. 9. **Differential loop.** Run the same input through old-version vs new-version (or two configs) and diff outputs. 10. **HITL bash script.** Last resort. If a human must click, write a script that documents the exact steps and captures output so the loop is still structured.
Build the right feedback loop, and the bug is 90% fixed.
Treat the loop as a product. Once you have _a_ loop, **tighten** it:
A 30-second flaky loop is barely better than no loop; a 2-second deterministic one is tight — a debugging superpower.
The goal is not a clean repro but a **higher reproduction rate**. Loop the trigger 100×, parallelise, add stress, narrow timing windows, inject sleeps. A 50%-flake bug is debuggable; 1% is not — keep raising the rate until it's debuggable.
Stop and say so explicitly. List what you tried. Ask the user for: (a) access to whatever environment reproduces it, (b) a captured artifact (HAR file, log dump, core dump, screen recording with timestamps), or (c) permission to add temporary production instrumentation. Do **not** proceed to hypothesise without a loop.
Phase 1 is done when the loop is **tight** and **red-capable**: you can name **one command** — a script path, a test invocation, a curl — that you have **already run at least once** (paste the invocation and its output), and that is:
If you catch yourself reading code to build a theory before this command exists, **stop — jumping straight to a hypothesis is the exact failure this skill prevents.** No red-capable command, no Phase 2.
Run the loop. Watch it go red — the bug appears.
Confirm:
Once it's red, shrink the repro to the **smallest scenario that still goes red**. Cut inputs, callers, config, data, and steps **one at a time**, re-running the loop after each cut — keep only what's load-bearing for the failure.
Why bother: a minimal repro shrinks the hypothesis space in Phase 3 (fewer moving parts left to suspect) and becomes the clean regression test in Phase 5.
Done when **every remaining element is load-bearing** — removing any one of them makes the loop go green.
Do not proceed until you have reproduced **and** minimised.
Generate **3–5 ranked hypotheses** before testing any of them. Single-hypothesis generation anchors o
If you know Claude Tag, the idea will feel familiar: hand Claude work through a channel, such as Discord, Telegram, or your custom integration, and get results back there.
Repo: gtapps/claude-code-hermit
Updates the minimum core version requirement for a fleet plugin in all three canonical places: `required_core_version` and `requires["claude-code-hermit"]` in…
Changelog and commit — lightweight motion for day-to-day plugin dev work in the monorepo. One commit per plugin scope; CHANGELOG and staging routed by detected…
Documentation-drift audit for the plugin monorepo. Audits either each scoped plugin's unreleased changelog claims or its latest shipped release from the…
Explain in plain language what a fix, feature, PR, or plan will actually change for downstream hermits and the operators chatting with them — a before/after…
Use this skill whenever the user wants to release, ship, prep, or cut versions for two or more plugins together on the current branch. Trigger on phrasings…
Daily release-pipeline digest with a change gate — reports which plugins are pending release, whether main's CI is green, which branches went stale, and GitHub…