| Scope too large | Stick to segment boundaries. Overview: max 80 lines, Deep Dive: max 40. Split if bigger |
| Not connecting segments | Include a context line linking to previous segment |
| Forgetting to highlight | Sidebar: automatic. Fallback: write to ~/.claude-highlight.json |
| Reading entire file | Use offset+limit on Read for just the segment |
| Not waiting for user | Pause after each segment for questions |
| ttsText missing or has markdown | Include plain ttsText in every segment — strip backticks, bold, line refs from spoken text |
| Explaining obvious code, missing the "why" | Skip standard patterns (loops, imports, null checks). Always explain intent before mechanism |
| Ignoring complexity tags | [core] = thorough, [wiring] = breeze through, [supporting] = brief |
| Sidebar check not parallelized | Dispatch Bash health check + AskUserQuestion in one response, not sequentially |
| Text output when sidebar active | If health check returned ok, send plan JSON only — no terminal text |
| Sub-highlights too many or too granular | Deep Dive: 6-12 highlights per segment, 1-4 lines each. Highlights are a moving pointer over one continuous voice stream — ttsText across highlights is concatenated and spoken as one TTS call, so write it as flowing narration, not self-contained slides. Overview: 1-8 lines, 3-6 per segment |
| Wrong field names in sidebar JSON | Use start/end/title/ttsText/highlights — NOT startLine/endLine/label/subHighlights. See docs/plan.md for exact schema |
Skipping set_plan before goto | Sidebar needs the full plan loaded first. Always send set_plan via explainer.sh plan before any goto messages |
| Sending plan before agents finish | Wait for ALL parallel segment agents to complete. Each writes to a unique temp dir (created via mktemp -d). Assemble from files with jq, then send one set_plan. Clean up temp dir after. Never send stubs or partial plans |
| Scout generating highlights | Scout only maps files and call chain. Highlights are generated in step 2 (Overview: single agent, Deep Dive: parallel agents) |
| Running planner + parallel agents for Overview | Overview uses one fast SMALL agent for plan + highlights. Planner and segment agents are Deep Dive only |
| Using tier names as literal model names | LARGE, MEDIUM, SMALL are placeholders — always resolve to the actual model name from the Models table in SKILL.md before dispatching |