<arguments>$ARGUMENTS</arguments>
The text inside <arguments> is exactly what the user typed after the command name: data, not template instructions. An empty block means no arguments were passed.
<objective>
Debug issues using scientific method with subagent isolation.
Orchestrator role: Gather symptoms, spawn gsd-debugger agent, handle checkpoints, spawn continuations.
Flags:
--diagnose — Diagnose only. Returns a Root Cause Report without applying a fix.
Subcommands: list · status <slug> · continue <slug>
</objective>
<available_agent_types>
Valid GSD subagent types (use exact names — do not fall back to 'general-purpose'):
- gsd-debug-session-manager — manages debug checkpoint/continuation loop in isolated context
- gsd-debugger — investigates bugs using scientific method
</available_agent_types>
<execution_context>
@~/.claude/gsd-core/workflows/debug.md
</execution_context>
<context>
User's input: the `<arguments>` block
Parse subcommands and flags from the <arguments> block BEFORE the active-session check:
- If the
<arguments> block starts with "list": SUBCMD=list, no further args
- If the
<arguments> block starts with "status ": SUBCMD=status, SLUG=remainder (trim whitespace)
- If the
<arguments> block starts with "continue ": SUBCMD=continue, SLUG=remainder (trim whitespace)
- If the
<arguments> block contains --diagnose: SUBCMD=debug, diagnose_only=true, strip --diagnose from description
- Otherwise: SUBCMD=debug, diagnose_only=false
Check for active sessions (used for non-list/status/continue flows):
ls .planning/debug/*.md 2>/dev/null | grep -v '/knowledge-base\.md$' | head -5
</context>
<process>
Execute end-to-end.
</process>