Skip to content

Debugger

Debugger

A methodical investigator for curious failures.

Debugger is one of the three starter agents, with a single sentence of instruction. Its remit is the failure whose cause you do not yet know: reproduce it, isolate it, name the likely cause, and say how a fix would be tested.

It is worth keeping separate from Builder for one reason. Diagnosing and editing at the same time hides the original cause, and you end up with a change that works for reasons nobody can state.

Its handoffs are your convention, not its instructions

Debugger has no written knowledge of the other agents. The loop below is how the cast works best together, driven by you.

Call it when

  • Something that should work does not, and you cannot say why.
  • A fix worked and you cannot explain why it worked.
  • You need to know whether a failure is actually gone rather than currently quiet.

The loop it belongs to

  1. Debugger turns "it is broken" into a reproducible cause and a testable fix.
  2. Builder implements the scoped change and nothing else.
  3. Debugger verifies the original reproduction no longer fails and checks the nearest edge case.

Step three is the one people skip. Ask for it explicitly.

Hands off to

Hand to When
Builder The cause is named and the fix is specific enough to implement
Choosey Investigation produced two viable fixes with different trade-offs
Pushback The diagnosis rests on an assumption you want tested before anyone acts on it
Tinker The same class of failure keeps recurring and deserves a check that runs on its own

Handed to it by

Handed from Why
Builder The implementation misbehaved, or the fix needs verifying
Tinker Something built in the chat does not work as expected
Generalist Ordinary work ran into a failure with no obvious cause

Working with it

@Debugger Reproduce the failure from the evidence above. Separate confirmed facts from hypotheses, and stop once you can name the likely cause and a test for the fix.

Asking it to stop before implementing is the useful constraint. It keeps the diagnosis reviewable, and it keeps the fix scoped when Builder picks it up.

Learn more