Development record
The supply-regime check has a flag mode in code but no seam that can select it, so the design's degradation path cannot be taken
The supply-regime check has a flag mode in code but no seam that can select it, so the design's degradation path cannot be taken
The governing framework (v4, section 8.9) names a degradation path for the supply-regime check: where a signature proves noisy in practice, the check degrades to recording the regime and flagging a suspected violation for researcher review rather than refusing, and the change is recorded so the property claimed weakens from enforced to observed. The itd-185 fidelity audit established that the signatures are noisy: fourteen of thirty-four realistic outputs were refused, all by the disposition detector matching a bare token followed by a colon or equals sign, which this repository's records carry everywhere (iss-2608311518056854).
The code carries the mode. SignatureFlag exists beside SignatureEnforce in
internal/core/reading/ingest_regime.go, and a flagged signature produces a
review flag rather than a refusal. What does not exist is any way to select it:
the mode on each shipped signature is a Go literal, every one is enforce, and
no configuration, flag or record can move one to flag. The generative regime
already runs flag-only by construction, so the flag path itself is exercised.
The consequence is that the decision the framework anticipates cannot be taken
without a code change and a release, and the first ingest of a real reading
will refuse legitimate output at the measured rate. Either a committed,
reviewed seam selects the mode per signature (the reading presets file is the
nearest precedent for a committed configuration inside the dirty gate), or the
mode is ruled fixed at enforce and the framework's degradation clause is
declared not taken. Whichever is chosen, the record must say which, because the
framework's own words are that the property claimed weakens when this path is
taken, and a weakening that no record states is the shape brief invariant 16
forbids.
Related: iss-2608311517547712 (the provenance field is a signature-free channel) and iss-2608311518109233 (the reserved-name tables are mutation-vacuous), both of which bear on the same gate.
Grounds
- declined: Ruled 2026-09-02: the supply-regime check is the framework's section 8.9 as written, the reserved-name refusals enforced and the prose detectors flagging until their withdrawal lands; the mode of a signature is code-pinned by a test and moves by a commit, never by a setting, so no seam is built.
Frontmatter
| id | iss-2609012259571458 |
|---|---|
| type | issue |
| lifecycle | wontfix |
| severity | major |
.abcd/work/issues/wontfix/iss-2609012259571458-the-supply-regime-check-has-a-flag-mode.md
open on GitHub ↗ · commit history ↗
mentions6
- dcn-26090200000000072026-09-02 — The supply-regime signatures stay in flag mode, code-pinned by a test, and no configuration seam is built (maintainer; the 2026-09-01 ruling that degraded the four semantic signatures on the measured over-catching already records the weakening the framework's section 8.9 requires, and the mode is reconsidered on the evidence of the first real reading rather than flipped by a setting). iss-2609012259571458 is settled as will-not-fix.
- dcn-26090200000000152026-09-02 — On the supply-regime check, the 2026-09-01 maintainer ruling governs and the "stay in flag mode" entry of this day is superseded by it: the framework's section 8.9 names two structural signatures (aggregation at evaluative, fix-proposing at registrative) and a record-shape check at explicative, and those refuse, enforced; the four prose detectors were an addition the framework never asked for, proved noisy on synthetic evidence, and are withdrawn rather than left flagging. The property the case report claims is therefore enforced for the structural check and unclaimed for prose. No configuration seam is built; the wontfix on iss-2609012259571458 stands on this ground.
- iss-2608311517547712The provenance field is a signature-free channel through the supply-regime gate. The semantic detectors read the body text only, and the envelope pattern field is excluded from it, so an item whose pattern carries the registry's exact phrasing lands with exit 0 at every regime: a registrative pattern reading that the fix is to rewrite the charter, an explicative one carrying a disposition, an evaluative one recommending a candidate. No byte is substituted and no phrasing is novel; the detector simply does not read that field. By the intent's own test, which puts the registry's own phrasing on the defect side and only novel phrasing on the residue side, this is a defect and a wider one than the confusables class that IS disclosed. It is also the field every item must carry, so the channel is always available.
- iss-2608311518056854The supply-regime registry refuses a reading for quoting the document it read, and the rate is high: fourteen of thirty-four realistic reading outputs were refused, all by one failure mode. The disposition detector matches the bare token followed by a colon or equals, and this repository's records carry that token everywhere, so any explicative claim that quotes a record refuses. So do a claim reporting that a clause settles a licensing question, a claim quoting a paper that closes by recommending further study, a claim reporting that a suite scores below a threshold, and a detection reading that one section says a fix is merged while another says it is pending, which is the canonical shape of a detection finding. This is not the NFKC normalisation, which was measured innocent: an A/B over thirty-four cases flipped five outcomes and every one was the registry's own phrase in compatibility code points, with no innocent case newly refused. The noise predates it and is structural, because the detectors cannot distinguish a reading that PROPOSES from a reading that REPORTS someone else proposing, and the second is most of what a reading legitimately does. The intent records signature noise as its open question, but the disclosed residue names only under-catching; on this evidence over-catching is the larger risk and the residue should say so.
- iss-2608311518109233All three reserved-name tables in the supply-regime gate are mutation-vacuous: emptying any of them leaves the whole package green, because every test iterates the table under test rather than naming what it should contain. No test anywhere pins the literal field names that three acceptance criteria enumerate, so the criteria are satisfied by a gate that would still pass if the names it refuses were deleted. The signature registry has a floor asserting a minimum count; the reserved tables have none. The earlier vacuity sweep on this branch swept code BRANCHES and never data tables, which is why the shape was invisible to it: a guard whose behaviour is driven by a table is only as bound as the table is pinned. Also unpinned by the same reasoning: the per-position body field sets.
- itd-185One ingest verb validates every cold-reading output — including what the reading was licensed to produce, not only what it saw