Completion Date Must Match Stage

P2 priority p2-ts-completion-date-must-match-stage

Cards set completionDate before they are done

Stage
01-to-do
Author
Ivan Hawkes
Created
References

An open card carries a completion date, and the schema cannot see it.

Completion Date Must Match Stage

content/kanban/01-to-do/p2-us-kanban-personal-view.md sits in 01-to-do with params.completionDate: 2026-10-30, a date that has not happened yet. The technical specification says a card’s status is its stage folder and that completing a card sets completionDate, so a non-null completion date outside 03-done is a contradiction the board renders as an open card.

The schema at assets/kanban-card-front-matter.yaml types the field as string | null with format: date, so AJV accepts any date string, and JSON Schema cannot express “non-null only in the done stage” because the stage is a file path, not front matter. The validator scripts/validate-kanban-front-matter.mjs already walks the tree, so it knows each card’s stage from the path it is checking: the rule belongs there.

Goals

Acceptance Criteria