#1365's fail-loud guard reused the parser's own D- grammar as its evidence test, so a populated <decisions> block using any other ID prefix (e.g. D5-01) was invisible to both parser and guard, collapsing could-not-parse into a clean none-present pass. Add an ID-shaped bold-lead-in probe as format-agnostic evidence on both parse paths; empty/prose scaffolds stay none-present. Graduates the #2371 d5-prefix representative fixture to its expected* assertion. Closes #2347. Admin-merged (self-review bypass) with full green CI.
545 B
545 B
type, pr
| type | pr |
|---|---|
| Fixed | 2389 |
The decision-coverage gate no longer fails open on unrecognized decision-ID prefixes — check.decision-coverage-plan classified a populated <decisions> block as "no trackable decisions" (a clean pass) whenever its IDs used a prefix the parser couldn't read (e.g. D5-01 instead of D-01), silently skipping the gate on real decisions. The gate now recognizes any bold-lead-in decision bullet as evidence and fails loud (could-not-parse) when it can't read a populated block, instead of passing. (#2347)