Skip to content

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

Part of surfaces-never-disagree — Every surface projects the same state, says when it was observed, and keeps no list of its own.

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.

Searches the titles and descriptions of every page this site publishes.