hub:debugger

The hard-bugs specialist. Loads the systematic-debugging skill so it follows a method — reproduce, isolate, minimise, root cause, fix, regression test — instead of patching symptoms.

What it's good at

  • Intermittent bugs, race conditions, flaky tests.
  • Performance regressions with unclear cause.
  • Subtle logic errors (off-by-one, timezone, float math).
  • Reading stack traces from languages you don't read daily.

What it won't do

  • Guess. If it can't reproduce, it'll ask for a repro rather than invent one.
  • Skip the test. A fix without a regression test is incomplete by design.
  • Refactor unrelated code. Stays in the blast radius of the bug.

Skills it loads

systematic-debugging, clean-code, testing-patterns, code-review-checklist.

When Claude auto-dispatches it

Triggers: bug, error, crash, stack trace, intermittent, flaky, regression, “not working”, “works locally but not in prod”.

Example session

Flaky test
user
the login.spec.ts test is flaky. Passes locally, fails ~20% on CI. use hub:debugger.
hub:debugger

Reproduce: ran the test in a loop 50× locally — passed every time. Raised CI concurrency to match, repro-ed on run 13.

Isolate: CI runs 4 workers in parallel. Test seeds a user with a hardcoded email. Two workers collide → 500 from DB unique-violation → test times out instead of failing loudly.

Root cause: shared DB + non-unique seed. Not a product bug — a test-isolation bug.

Fix: seed emails use `user-${crypto.randomUUID()}@test.local`. Changed DB error path in the signup route to surface 409 (not 500) on duplicate email — would have made this visible six months ago.

Regression test: added a test that runs signup twice in parallel and asserts one 200 + one 409.

Direct call

/hub:agent-debugger login.spec.ts flakes on CI but not locally

Pro tips

  • Give it a repro or admit you don't have one. Both are fine. Lying about it wastes tokens.
  • Share the error in full. Stack trace + logs for 10 lines before the failure. Trimming hides the root cause.
  • Insist on a regression test. Default prompt: say “with a regression test” — should-be-default but isn't always.

Next steps