Skip to content

Register: C-110–C-112, Cluster N, and the release-readiness stubs - #293

Merged
Polichinel merged 1 commit into
developmentfrom
docs/register-c110-c112-and-falsification-stubs
Aug 22, 2026
Merged

Register: C-110–C-112, Cluster N, and the release-readiness stubs#293
Polichinel merged 1 commit into
developmentfrom
docs/register-c110-c112-and-falsification-stubs

Conversation

@Polichinel

Copy link
Copy Markdown
Collaborator

No source changes. The register, plus two xfail stubs from the release-readiness falsification audit.

Three new entries

C-110 (Tier 3) — the release path will block itself from 2026-10-18, and nothing tells the person it blocks.

Measured against the live ruleset: protect_main is active, test is a required check, bypass_actors is empty. The expiry tripwire added on 2026-08-19 reddens that check 30 days before the 2026-11-17 key expiry — so no PR merges and no release can be tagged.

The escape is real and was verified (a PR setting ACKNOWLEDGED_UNTIL is green on its own branch), which is why this is Tier 3 rather than C-86's Tier 2. The entry exists because the interaction falls between two records and is in neither: C-84 never mentions the release path, C-86 never mentions the tripwire. The ruleset was not queried when the tripwire was added — the audit queried it.

C-111 (Tier 3) — a release can change whether a delivery fails, and the version number is the only thing that says so. Three exception types can now escape into a launcher, and DeliveryNotFindableError fails a delivery that previously succeeded silently. That is C-94 working as designed. There is no changelog, so views-models would take it with no notice.

C-112 (Tier 3) — nothing here can see what production actually runs. Both launchers pin 1.1.0; the newest tag is 1.1.1, eight days old, and 1.1.0 carries the C-99 fail-open that killed the first CRAF'd delivery. Meanwhile main holds 29 unreleased commits. The obvious fix — check the pin in CI — would add a fifth repo that can redden this build, which is C-86 with zero bypass actors. Recorded as a decision, not proposed.

From /review-rr triage and strategic

  • Cluster I closed. Its own prescription had landed and nobody noticed: it asked for "a small tests/test_register_integrity.py — header counts match section counts; no RESOLVED body under Open; every reference resolves or is namespaced". That file exists, does exactly those three, and caught two real errors during this week's registrations. The residual is recorded rather than glossed — the guard covers entries, not the cluster section, which is how Cluster I sat fully resolved and unmarked until a triage read it by hand.
  • Cluster J — dropped a stale "(acute)" from a resolved C-22.
  • C-109 cross-linked to C-95, its nearest sibling.
  • C-81 re-measured. Its headline said "CI verifies 8 fewer tests than local". It is 2 (468 passed / 5 skipped CI-shaped, vs 470 / 3 local). PR C-30/C-46: the exclusion-manifest tripwire now runs in CI — the 2026-08-03 revert was the right observation with the wrong cause #280 moved four checks into the gate four days ago, and the entry whose whole job is measuring that distance kept quoting the old number. Trigger rewritten to the gap that remains — the checks needing views-datafactory artifacts that are not in its git repository.
  • Cluster N added — "This repository cannot see itself": C-109, C-107, C-95, C-110, C-111, C-112 and C-81. Six arrived in one sprint, each filed as unrelated; together they are one class. Its fix strategy is deliberately not more guards — C-109 already records why the mechanical version fails, and four of the seven were found by reading.
  • C-106 tagged [backlog].

The stubs

tests/test_falsification_release_readiness.py holds the two soft falsifications as xfail(strict=True), so the suite colour is unchanged.

They are xfail rather than plain failures deliberately: test is a required check with zero bypass actors, so committing red tests would block their own fix. That is C-110, and it seemed worth not demonstrating it accidentally.

Verification

Register 109 → 112 total, 29 → 32 open. Integrity guards green (40 tests), ruff clean, suite unchanged at the C-104 baseline (26 failed / 470 passed locally — the venv drift; CI installs from the lock).

Not in this PR

No version bump, as instructed. Also left for a decision: the CRAF'd blind spot (UPLOAD_ENABLED = False — that path has never run end-to-end, and eleven entries mention crafd without one saying so), and D-11 / D-09, which look settled by events but were not analysed deeply enough to move.

No source changes. The register, plus two xfail stubs from the release-readiness
audit.

THREE NEW ENTRIES.

C-110 (Tier 3) — the release path will block itself from 2026-10-18 and nothing
tells the person it blocks. Measured against the live ruleset: protect_main is
active, `test` is a REQUIRED check, bypass_actors is empty. The expiry tripwire
added on 2026-08-19 reddens that check 30 days before 2026-11-17, so no PR merges
and no release can be tagged. The escape is real and was verified — a PR setting
ACKNOWLEDGED_UNTIL is green on its own branch — which is why it is Tier 3 rather
than C-86's Tier 2. This entry exists because the interaction falls between two
records and is in neither: C-84 never mentions the release path, C-86 never
mentions the tripwire. The ruleset was not queried when the tripwire was added.

C-111 (Tier 3) — a release can change whether a delivery fails, and the version
number is the only thing that says so. Three exception types can now escape into
a launcher, and DeliveryNotFindableError fails a delivery that previously
succeeded silently. That is C-94 working as designed. There is no changelog, so
views-models would take it with no notice.

C-112 (Tier 3) — nothing here can see what production actually runs. Measured:
both launchers pin 1.1.0; the newest tag is 1.1.1, eight days old, and 1.1.0
carries the C-99 fail-open that killed the first CRAF'd delivery. Meanwhile main
holds 29 unreleased commits. The obvious fix — check the launchers' pin in CI —
would add a fifth repo that can redden this build, which is C-86 with no bypass
actors, so it is recorded as a decision rather than proposed.

FROM review-rr TRIAGE AND STRATEGIC.

- Cluster I closed: its own prescription landed. It asked for a
  test_register_integrity.py checking header counts, no RESOLVED under Open, and
  reference resolution. That file exists, does exactly those, and caught two real
  errors this week. The residual is recorded: the guard covers entries, not the
  cluster section — which is how Cluster I sat fully resolved and unmarked.
- Cluster J: dropped a stale "(acute)" from a resolved C-22.
- C-109 cross-linked to C-95, its nearest sibling.
- C-81 re-measured. Its headline said CI verifies 8 fewer tests than local; it is
  2 (468/5 skipped vs 470/3). PR #280 moved four checks into the gate four days
  ago and the entry — whose whole job is measuring that distance — kept quoting
  the old number. Trigger rewritten to the gap that remains: the checks needing
  views-datafactory artifacts that are not in its git repository.
- Cluster N added, "This repository cannot see itself": C-109, C-107, C-95,
  C-110, C-111, C-112 and C-81. Six arrived in one sprint, each filed as
  unrelated. Its fix strategy is deliberately NOT more guards — C-109 records why
  the mechanical version fails; four of the seven were found by reading.
- C-106 tagged [backlog].

THE STUBS. tests/test_falsification_release_readiness.py holds the two soft
falsifications as xfail(strict=True), so the suite colour is unchanged. They are
xfail rather than plain failures deliberately: `test` is a required check with
zero bypass actors, so committing red tests would block their own fix — which is
C-110.

Register: 109 -> 112 total, 29 -> 32 open. Integrity guards green (40 tests),
ruff clean, suite unchanged at the C-104 baseline.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Polichinel
Polichinel merged commit 91e89c5 into development Aug 22, 2026
4 checks passed
@Polichinel
Polichinel deleted the docs/register-c110-c112-and-falsification-stubs branch August 22, 2026 19:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant