Commit fe4afc0
committed
Blind-spot fix #1 (classifier): structural-literal divergences GATE, never conceded as a "fuzz frontier limit"
The generative scope≡role net FOUND the self-close `/` bug all along — `node test/generative.ts html`
printed it — but `isGated` classified a `#24` structural-literal→content divergence found via the FUZZ
strategy as "a standing flat-TM frontier limit → report-only", so it never failed CI. That heuristic
baked a PROVEN-limit assumption (the [[feedback-tm-impossible-proof]] anti-pattern) into the test suite:
it conceded a fixable bug by assumption.
Every structural-literal divergence found this session (value-position, flow-in-key, self-close,
mixed-case raw-text, non-first-item compact) was a fixable depth/structure bug, closed by deriving a
region — never a frontier limit. So gating is now by KIND (the bug class), not discovery STRATEGY:
`isGated` gates every `#23` / `#comment` / structural-literal divergence on every strategy including
fuzz. A genuinely-proven TextMate limit, if ever established, would be excluded by an explicit
fingerprint allowlist, not a blanket strategy concession. Green today (0 such divergences after the
3 fixes); it now turns a FUTURE structural mis-paint into a hard failure that forces a fix.
gap-ledger-selftest's `probeDivergence` found its test divergence via `!isGated` (the old report-only
set) — decoupled to find the self-close by token, matching the real ledger (gap-ledger.ts classifies by
the parse5 oracle, not isGated). Added a classifier-lock assertion (the four real-bug kinds all gate).
26/26 gates green.1 parent 6de9adf commit fe4afc0
3 files changed
Lines changed: 26 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
116 | 125 | | |
117 | 126 | | |
118 | 127 | | |
| |||
128 | 137 | | |
129 | 138 | | |
130 | 139 | | |
131 | | - | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
132 | 144 | | |
133 | 145 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
231 | 231 | | |
232 | 232 | | |
233 | 233 | | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
182 | 182 | | |
183 | 183 | | |
184 | 184 | | |
185 | | - | |
| 185 | + | |
186 | 186 | | |
187 | 187 | | |
188 | 188 | | |
| |||
0 commit comments