generated from coulomb/repo-seed
Root cause analysis: calling create_workstream() before writing the workplan file creates a ghost workstream with repo_id=null. When fix-consistency later runs on the file, it creates a second workstream and writes its ID into the file — leaving the ghost permanently active and showing false partial progress in the dashboard. C-14: after checking file-backed workstreams, query active workstreams on the same topic with repo_id=null. Flag any whose title matches a file-backed workstream as a probable ghost duplicate. CLAUDE.md: add explicit "workplan ↔ DB sync rule" prohibiting create_workstream() for file-backed work. Write file first, then make fix-consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>