v1.4.0 - Stated grammars #62

Merged
crenshawdev merged 83 commits from cadence/v1.4.0 into main 2026-07-28 16:46:51 +00:00
crenshawdev commented 2026-07-28 16:46:10 +00:00 (Migrated from github.com)

Four formats Cadence owns were parsed by accreted heuristic regexes, and each failed silently in both directions: an over-read fabricated a requirement id, an under-read dropped a real path and handed the parallel gate a false overlaps: []. Both look like success.

Each reader is now a stated grammar with a written-down reference, an out-of-grammar table, and a parser-level test per row:

  • Plan-file frontmatter - one normalized classifying pass; every out-of-grammar input carries a named diagnostic instead of changing what was read. Paths reach plan-overlap byte-exact.
  • The shell text both git rails read - one quote-state tokenizer replacing six regex arms; seven push shapes that reached the network with no prompt now ask.
  • The roadmap phase list - an empty ## Phases is a derived closed-milestone state rather than unparseable-roadmap, so /cad-progress works between milestones.
  • The ## Active requirement section - an unpicked id breaks /cad-audit while a milestone is only partly planned, closing the blind spot that let the v1.2.0 and v1.3.1 closes through.

Plus the spine's own bookkeeping: /cad-plan seeds the traceability rows a milestone close used to need by hand, and a worktree executor asserts its own plan file before task 1.

Breaking changes and known gaps are listed under [1.4.0] in CHANGELOG.md.

727 tests, tsc -p tsconfig.ci.json clean, self-verify clean.

Four formats Cadence owns were parsed by accreted heuristic regexes, and each failed silently in both directions: an over-read fabricated a requirement id, an under-read dropped a real path and handed the parallel gate a false `overlaps: []`. Both look like success. Each reader is now a stated grammar with a written-down reference, an out-of-grammar table, and a parser-level test per row: - **Plan-file frontmatter** - one normalized classifying pass; every out-of-grammar input carries a named diagnostic instead of changing what was read. Paths reach `plan-overlap` byte-exact. - **The shell text both git rails read** - one quote-state tokenizer replacing six regex arms; seven push shapes that reached the network with no prompt now ask. - **The roadmap phase list** - an empty `## Phases` is a derived closed-milestone state rather than `unparseable-roadmap`, so `/cad-progress` works between milestones. - **The `## Active` requirement section** - an unpicked id breaks `/cad-audit` while a milestone is only partly planned, closing the blind spot that let the v1.2.0 and v1.3.1 closes through. Plus the spine's own bookkeeping: `/cad-plan` seeds the traceability rows a milestone close used to need by hand, and a worktree executor asserts its own plan file before task 1. Breaking changes and known gaps are listed under `[1.4.0]` in CHANGELOG.md. 727 tests, `tsc -p tsconfig.ci.json` clean, `self-verify` clean.
Sign in to join this conversation.
No description provided.