Commit d11300484c6b8ba56ddade8b0ac57edc7cad2fe6

Authored by graphlemon
2 parents 72a71825 640ba9f0

graphlemon: merge 78bf2de1-bf20-4f28-a3c6-4446ae6b26a6

.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.
... ...