| name | debug |
| description | Use for non-trivial unexpected behavior or reported defects that require causal investigation: reproduce the issue, trace the real path, and isolate the root cause before an authorized fix. |
| argument-hint | [request or context] |
Contextual selection
CoderKit is an optional helper framework, not a mandatory process. Self-select this workflow when the current request clearly matches its purpose and the added structure will materially improve a substantive development task. Never ask the user whether to activate CoderKit or whether to use CoderKit instead of normal host behavior: workflow selection is an internal execution decision, not a user decision.
Skip CoderKit for simple questions, routine commands, obvious one-line edits, or work whose outcome and path are already clear. Select only the smallest useful workflow; do not run the full explore → plan → implement → verify → commit sequence as ceremony. When no workflow adds enough value to justify its overhead, continue with normal host behavior.
Ask only when the outcome, scope, or required authority is materially unclear; never ask merely to choose or confirm a workflow. Automatic selection does not expand the user's authority or permit adjacent work.
Prompting envelope
Structure the work in this order:
- Outcome: state the result the user wants before choosing an approach.
- Relevant context: gather what the prompt, repository, and named artifacts already provide before asking for anything.
- Important boundaries: identify the scope, authority, and constraints the work must not cross.
- Work: execute against the outcome within those boundaries.
- Verification: prove the outcome with the completion evidence this tool requires.
Ask only when missing information materially changes the result or required authority. Accept steering without restarting the workflow.
Proportionality
Right-size the workflow to the task. Use a fast path when the outcome and evidence are obvious; use deeper investigation only when uncertainty, risk, or scope warrants it. Do not create documents, dispatch agents, add process infrastructure, or expand test coverage merely because the workflow can — the work artifacts below are the one exception: they are mandated completion evidence, not discretionary documents. Stop when the completion evidence is satisfied. A finished, verified result is better than a perfect process.
Treat user-named files, URLs, tools, and prior artifacts as authoritative inputs: inspect them before substituting a generic alternative. Keep tangential cleanup and speculative improvements out of the active scope unless the user asks for them.
Work artifacts
Persistent work products live in the target project under docs/work/NNN-short-name/: NNN is a zero-padded index allocated as the highest existing index plus one (starting at 000), and short-name is a kebab-case name derived from the request.
plan.md — written by plan whenever it runs; the stable contract later tools read as authority.
tasks.md — created and maintained by implement from the plan's units: main tasks, subtasks, and any subagent or orchestration assignments, with statuses updated as work progresses.
tasks/ — optional subfolder, created only when a single task needs a dedicated brief (for example a subagent fan-out).
Explore produces no artifact. Tools other than plan and implement read these files but do not create them.
Completion
Finish with the evidence required by this tool. Select another CoderKit workflow only when it is genuinely needed and the user's existing request already authorizes that work; never chain the whole lifecycle by default. Otherwise stop and report the result or natural next step without asking the user to activate anything. Never turn workflow selection into a confirmation prompt, and never treat automatic selection as authorization for Git publication, deployment, destructive changes, or other adjacent work.
Debug
Method
- Triage the report. Use a fast path for an obvious typo, missing import, or direct one-line failure; otherwise investigate before proposing a fix.
- Reproduce the behavior with the smallest reliable case and record expected versus actual results. If it cannot reproduce, document the attempts and missing conditions.
- Check environment sanity where relevant: branch, dependencies, runtime version, configuration, required services, and stale artifacts.
- Trace backward from the symptom through the real caller, control, and data path until valid state first becomes invalid. Observe boundary values rather than assuming them.
- Form ranked hypotheses grounded in observations. For each uncertain causal link, state a prediction that would be true elsewhere if the hypothesis is correct.
- Test one hypothesis at a time and change one variable at a time. A fix that works while its prediction fails is a symptom patch, not a confirmed cause.
- Do not proceed to a fix until the causal chain has no material gap, unless the user explicitly accepts the best available hypothesis.
- If two or three hypotheses fail, stop and reassess the mental model, environment, or architecture instead of trying random variants.
- Distinguish authorization to diagnose from authorization to edit. After an authorized fix, re-run the original reproduction and the smallest regression check that should prevent recurrence.
Guardrails
- Search recent code and issue/PR history when the symptom looks recurrent or regressive.
- Do not repeat a prior failed attempt without new evidence.
- Report diagnosis separately from the patch so the causal explanation remains auditable.
Completion evidence
Reproduction, root cause, observations, and verification of any fix.