Commit 640ba9f0f6c65d1f1ab8e95e31716daf956f7fc1
1 parent
72a71825
graphlemon: auto-commit uncommitted changes for 78bf2de1-bf20-4f28-a3c6-4446ae6b26a6
Showing
2 changed files
with
30 additions
and
0 deletions
.claude/agent-memory/validator/MEMORY.md
| ... | ... | @@ -4,3 +4,4 @@ |
| 4 | 4 | - [Fake-DOM escapeHtml harness gotcha](feedback_fake_dom_escapehtml_harness.md) — ad hoc app.js DOM harnesses need real textContent->innerHTML escaping or escapeHtml() falsely looks blank |
| 5 | 5 | - [Known pre-existing supervisor test failure](project_known_preexisting_supervisor_failure.md) — RollbackPathBFailureTest fails deterministically, unrelated to src/ diffs; confirmed via pre-image checkout |
| 6 | 6 | - [Thin test_report placeholder, solid diff](project_thin_test_report_placeholder.md) — task 837fc183 test_report.md was just a launch stub; code_diff was solid, verified independently anyway |
| 7 | +- [Status-enum drift is a skill_defect](project_status_enum_drift_skill_gap.md) — task.status hardcoded in 2+ independent app.js lists, both stale vs schema.py after ea19c7d; file as skill_defect not coder | ... | ... |
.claude/agent-memory/validator/project_status_enum_drift_skill_gap.md
0 → 100644
| 1 | +--- | |
| 2 | +name: project-status-enum-drift-skill-gap | |
| 3 | +description: task.status hardcoded enum copies (frontend/app.js) drift from schema.py CHECK constraint; recurring skill_defect, not a one-off coder mistake | |
| 4 | +metadata: | |
| 5 | + type: project | |
| 6 | +--- | |
| 7 | + | |
| 8 | +`src/schema.py`'s `task.status` CHECK constraint has grown a hardcoded mirror in at least two | |
| 9 | +independent `frontend/app.js` locations: `TASK_STATUSES` (line ~979, `v_task_board` status | |
| 10 | +filter dropdown, introduced 2026-07-31 commit `e026f9e`) and `NAV_STATUS_BUCKETS` (line ~214, | |
| 11 | +nav-bar status summary, introduced 2026-08-07 commit `958b55a`). Both were correct when written | |
| 12 | +but went stale the moment commit `ea19c7d` (2026-08-08, Org Graph unification Phase 1) added an | |
| 13 | +11th status `reviewing_planner_output` to the schema — neither list was updated, and no test | |
| 14 | +asserts the frontend lists match `schema.py`'s CHECK constraint. | |
| 15 | + | |
| 16 | +**Why:** confirmed via `git log -S`/blame that this exact drift pattern happened twice, | |
| 17 | +independently, across two unrelated Units separated by a week — not a one-off mistake in a | |
| 18 | +single Coder session. `skills/code-task-development/SKILL.md` (the Coder skill used for both) | |
| 19 | +has no step instructing the Coder to grep for/update other hardcoded copies of a schema.py | |
| 20 | +enum/CHECK-constraint list when adding or changing one. Filed as `root_cause_category: | |
| 21 | +skill_defect` (not `coder`) for this reason on the nav-bar-project-context validation task | |
| 22 | +(2026-08-13). | |
| 23 | + | |
| 24 | +**How to apply:** if a future validation surfaces another stale hardcoded status/enum list | |
| 25 | +anywhere in `frontend/app.js` or elsewhere, treat it as the same recurring `skill_defect` | |
| 26 | +(propagate to `c_org_loop_route`/whoever owns `skills/code-task-development/SKILL.md`) rather | |
| 27 | +than re-filing as an isolated `coder` mistake each time. The actual fix (deriving the enum from | |
| 28 | +one shared source, or a schema-consistency test) has not landed as of this writing — check | |
| 29 | +`frontend/app.js` and `src/schema.py`'s CHECK constraint directly before assuming it's fixed. | ... | ... |