Skip to content

Plan lifecycle: ban em dashes and require durable solutions - #28

Merged
DocksDocks merged 1 commit into
mainfrom
27-ban-em-dashes-and-require-durable-plan-solutions
Aug 24, 2026
Merged

Plan lifecycle: ban em dashes and require durable solutions#28
DocksDocks merged 1 commit into
mainfrom
27-ban-em-dashes-and-require-durable-plan-solutions

Conversation

@DocksDocks

Copy link
Copy Markdown
Owner

Closes #27

Implements the reviewed plan #27:

  • grammar_cutover - the v3 record grammar is ASCII-hyphen only: ### Plan review - <date>, ### Code review round <n> - <date>, - finding separators, and - for empty Steps Depends and queue Depends on cells. Em-dash records are ineligible exactly like malformed records; the live queue sentinel is migrated.
  • body_dash_ban - check refuses any U+2014 in a plan body (check 10 family, count stays 13); new refuses U+2014 in title and goal before gh issue create; status <n> blocked --reason refuses an em-dash reason before the composed-body write.
  • durable_policy - one shared clause on every policy surface (manager drafting, reviewer lens, both shipped wrappers, both Codex TOMLs, codex templates, plan-contract.md, docs/PLAN.md, template): plans deliver durable root-cause solutions; a temporary fix requires an explicit user request recorded in the plan; reviewers treat an unrequested temporary fix as a finding.
  • docs_grammar - zero U+2014 bytes remain in lifecycle-owned skills, references, wrappers, the authoring node, docs/PLAN.md, and both test suites; docs/PLAN.md stays byte-identical to the template fence; closed em-dash-era plans yield no trusted verdict (pinned by fixtures).

Reviews: plan review rounds 1-4 repair (AGENTS.md scope, record-standard policy surfaces, show/archive legacy behavior, createPlan and blocked-reason write paths, live queue sentinel), round 5 pass; code review round 1 pass with no findings. This plan's own body was migrated to the hyphen grammar mid-flight through the new validation.

Verification: scripts/tests/plan-cli.mjs, plan-skill-phases.mjs, plugin selftest, scripts/ci.mjs --plugin plan-lifecycle, and full scripts/ci.mjs all exit 0.

Cuts the v3 record grammar over to ASCII hyphens: review headings,
finding separators, empty Steps Depends and queue cells. Em-dash
records become ineligible like any malformed record; closed plans
keep theirs as history. checkPlan refuses U+2014 anywhere in a plan
body, and new/status-blocked refuse it before any GitHub write.

Adds the shared durable-solutions clause to the manager drafting
rules, reviewer lens, both shipped wrappers, both Codex TOMLs, the
codex templates, and the record standard with its byte-identical
docs/PLAN.md and template mirrors.

Closes #27
@DocksDocks DocksDocks linked an issue Aug 24, 2026 that may be closed by this pull request
@DocksDocks
DocksDocks merged commit 7b991e3 into main Aug 24, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ban em dashes and require durable plan solutions

1 participant