I3009 — No record's prose and no board announcement holds a template delimiter
Refuse a template delimiter (a double brace, a brace-percent or a brace-hash) in every prose field of a plan record, at plan validate and in the commit hook, naming the record, the field and the remedy; and refuse one in a board announcement or claim text when it is made, since the continue prompt renders the live board.
READY wave 0 · p2 · implementation profile · parallel safe
Ready. Every dependency is done, so majordomus plan start I3009 will be accepted.
Objective
Refuse a template delimiter (a double brace, a brace-percent or a brace-hash) in every prose field of a plan record, at plan validate and in the commit hook, naming the record, the field and the remedy; and refuse one in a board announcement or claim text when it is made, since the continue prompt renders the live board.
Why
On 2026-10-18 I3007's objective quoted the templates' commit link literally; Zola read it on /plan/i3007 as an unresolved placeholder and the 0.30.1 top's site job failed. On 2026-10-19 a board announcement quoting the same delimiters reached the rendered continue prompt, and core-check, which refuses an unrendered token there, failed for another session.
Current state
Nothing refuses a delimiter in record prose or in board text; each one is found by a red site job or a red core-check.
Desired state
A delimiter in record prose or board text is refused where it is written, with the field and the remedy named.
Scope
- apps/majordomus-cli/src/plan.rs
- lib/plan.sh
- .githooks
- apps/majordomus-cli/src/capability/builtin/peers.rs
- test/cases
- .ai/repo/project/issues/I3009.yaml
- docs
- site
Out of scope
- Template files themselves, where the delimiters belong
Dependencies
None. This issue is a root of the graph.
Acceptance criteria
- plan validate names a record and field whose prose holds a template delimiter, with the remedy, and exits non-zero
- An announcement whose text holds a template delimiter is refused with the remedy
- Removing either check turns its case red
Validation
- majordomus plan validate
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I3009.yaml. Read it back with majordomus plan show I3009.