scripts/check_grammar_alignment.py (added by #1279 for #683) holds rule-name headers aligned between vera/grammar.lark and spec Chapter 10. Three classes of Chapter-10 drift remain outside its sight, and two live drift instances sit in the chapter today.
Gate blind spots (each demonstrated during #1279's review)
- Terminals. Re-adding a deleted terminal — or adding a fabricated
BOGUS_TERMINAL to §10.2 — leaves the gate green (_HEADER requires a lowercase lead). No declared-vs-referenced audit exists: SOME, NONE, OK, ERR, COLON are declared and referenced by no production, while DOUBLE_COLON is referenced by module_call and declared nowhere.
- Rule references. Restoring the
assert_stmt SEMICOLON | assume_stmt SEMICOLON ambiguity to statement leaves the gate green — only headers are compared, never right-hand sides.
- Production bodies. Of the seven
grammar.lark edits since the spec chapter's creation, five changed bodies or terminals only — the class the gate cannot see.
Live drift in the chapter
- Typed holes:
"?" -> hole_expr has been in grammar.lark since 2026-03-30 and appears nowhere in Chapter 10's primary_expr.
- §10.2's
BLOCK_COMMENT: /\{-[\s\S]*?-\}/ is non-nesting, contradicting §1.3 ("They nest") and the implementation ({- a {- b -} c -} parses).
Direction
Extend the gate side-aware (terminal audit both directions, reference-set comparison) or fold Chapter 10 toward the DESIGN Grammar row's actual promise — a shared grammar, single-sourced — rather than a second hand-maintained copy held honest by ever-wider cross-checks. The two live drift items above are fixable independently of which direction the gate takes.
scripts/check_grammar_alignment.py(added by #1279 for #683) holds rule-name headers aligned betweenvera/grammar.larkand spec Chapter 10. Three classes of Chapter-10 drift remain outside its sight, and two live drift instances sit in the chapter today.Gate blind spots (each demonstrated during #1279's review)
BOGUS_TERMINALto §10.2 — leaves the gate green (_HEADERrequires a lowercase lead). No declared-vs-referenced audit exists:SOME,NONE,OK,ERR,COLONare declared and referenced by no production, whileDOUBLE_COLONis referenced bymodule_calland declared nowhere.assert_stmt SEMICOLON | assume_stmt SEMICOLONambiguity tostatementleaves the gate green — only headers are compared, never right-hand sides.grammar.larkedits since the spec chapter's creation, five changed bodies or terminals only — the class the gate cannot see.Live drift in the chapter
"?" -> hole_exprhas been ingrammar.larksince 2026-03-30 and appears nowhere in Chapter 10'sprimary_expr.BLOCK_COMMENT: /\{-[\s\S]*?-\}/is non-nesting, contradicting §1.3 ("They nest") and the implementation ({- a {- b -} c -}parses).Direction
Extend the gate side-aware (terminal audit both directions, reference-set comparison) or fold Chapter 10 toward the DESIGN Grammar row's actual promise — a shared grammar, single-sourced — rather than a second hand-maintained copy held honest by ever-wider cross-checks. The two live drift items above are fixable independently of which direction the gate takes.