gsd-tools detects plan files by matching the glob `*-PLAN.md`
(e.g. 01-01-PLAN.md). When the planner generates files using a
different convention — wave-based names, wrong prefix order, or
lowercase — the tool returns plan_count: 0 and execution cannot
proceed.
Root cause: the write_phase_prompt step only said
"Write to .../XX-name/{phase}-{NN}-PLAN.md" — ambiguous enough
for the agent to produce PLAN-01-auth.md, 01-PLAN-01.md, etc.
Observed across real usage (306 sessions analyzed):
- Phases 2, 3, 4: plan files used wave-based names instead of the
numeric format gsd-tools expects; required manual detection and
adaptation before execution could proceed each time
- gsd-tools roadmap get-phase failed on Phase 3 due to format
mismatch; Claude fell back to parsing ROADMAP.md manually
- Naming mismatch caused friction in at least 4 separate sessions,
each requiring a manual workaround
Fix: add a CRITICAL naming block in write_phase_prompt with the
exact required pattern, component definitions, correct/incorrect
examples, and explicit ❌ markers for variants that break detection.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>