fix(consistency): C-14 ghost-duplicate check + CLAUDE.md sync rule
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>
This commit is contained in:
12
CLAUDE.md
12
CLAUDE.md
@@ -102,6 +102,18 @@ Every Claude Code session in this repository must follow this ritual:
|
||||
This syncs task blocks → DB and updates task statuses. Without this step, the
|
||||
"Open Workstreams by Domain" chart will show 0 progress even for completed work.
|
||||
|
||||
**Workplan ↔ DB sync rule (prevents ghost workstreams):**
|
||||
When creating a new workstream backed by a workplan file, **always write the file
|
||||
first, then run `make fix-consistency`** — never call `create_workstream()` /
|
||||
`create_task()` manually for file-backed work. Calling the MCP bootstrap tools
|
||||
before the file exists creates a "ghost" workstream that the consistency checker
|
||||
cannot see (it has `repo_id=null`). The checker then creates a second workstream
|
||||
from the file, and the ghost stays active forever showing false partial progress.
|
||||
|
||||
Rule of thumb:
|
||||
- **Workplan file will be written → file first, then `fix-consistency`**
|
||||
- **No workplan file (bootstrap / first-session only) → `create_workstream()` is fine**
|
||||
|
||||
The state hub is the episodic memory of this system. A session that produces no progress events is invisible to future sessions and to Bernd.
|
||||
|
||||
## Governance Constraints
|
||||
|
||||
Reference in New Issue
Block a user