with one click
troubleshoot
// Use when user reports an error, bug, or something not working. Search-first troubleshooting with diagnostic phase. Triggers: debug, error, broken, not working, failing, crash, exception.
// Use when user reports an error, bug, or something not working. Search-first troubleshooting with diagnostic phase. Triggers: debug, error, broken, not working, failing, crash, exception.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | troubleshoot |
| description | Use when user reports an error, bug, or something not working. Search-first troubleshooting with diagnostic phase. Triggers: debug, error, broken, not working, failing, crash, exception. |
| allowed-tools | WebSearch, WebFetch, AskUserQuestion, Read, Glob, Grep |
| model | opus |
| context | main |
| argument-hint | <error or symptom description> |
| cynefin-domain | complicated |
| cynefin-verb | analyze |
Search-first diagnostic workflow. Human executes commands.
CRITICAL: After EVERY AskUserQuestion call, check if answers are empty/blank. Known Claude Code bug: outside Plan Mode, AskUserQuestion silently returns empty answers without showing UI.
If answers are empty: DO NOT proceed with assumptions. Instead:
0.Load → 1.Search → 2.Qualify → 3.Diagnose → 4.Investigate → 5.Persist → 6.Learn
Read $PRAXIS_DIR/reference/troubleshoot/learnings.yaml if exists. Apply known patterns before searching.
80% of bugs solved online.
[error] [stack] [framework] on SO, GitHub, Docs, RedditAskUserQuestion:
See protocols/diagnose.md for details.
Pattern matches → suggest fix, skip OODA
Only if diagnosis inconclusive.
Exit when root cause confirmed and fix verified.
MUST execute after root cause confirmed and fix verified. DO NOT skip. DO NOT wait for user to ask.
Persist the diagnostic session to $PRAXIS_DIR/thinking/troubleshoot/{project}/{date}-{slug}-llm.md.
{project} = current project folder name. {slug} = lowercase hyphenated from primary symptom/error. Create directory if missing.
Collision handling: If filename exists, append sequence: {date}-{slug}-2-llm.md, {date}-{slug}-3-llm.md. First write gets clean name.
Guard: If $PRAXIS_DIR is unset, skip artifact persistence silently (troubleshooting must not fail because of missing env var).
Content (required sections):
This is the active thinking trail — distinct from learnings.yaml which captures distilled, reusable conclusions.
After resolution, AskUserQuestion: "Save this learning?"
$PRAXIS_DIR/reference/troubleshoot/learnings.yamlscope: project:<name>Before responding to user, verify:
$PRAXIS_DIR/thinking (or guard triggered if unset)protocols/diagnose.md - Mental models, bisect strategies