Repository navigation
Decide: shrink-only delta-ratchet for check-durability-degradation-log-level — measured at 0 net decreases/month over 3,195 commits #9882
Description
Follow-on from #9747 / PR #9875, filed by the domain:devx PM seat under ruling Q1 → A. The pilot was explicitly ruled visibility-only, no new merge-blocking failure, so PR #9875 measured this and did not build it. The numbers below are the whole point: this card starts priced, not speculative.
The measurement
Method: each commit's changed files replayed through the gate's own recognizer (a copy of the gate file, proved byte-identical above its CLI epilogue at build time). Window: 3,195 first-parent commits on origin/main, 2026-07-19 → 2026-08-19.
269.
check-durability-degradation-log-level:
| keying | commits changing the set | keys entering | keys leaving |
|---|---|---|---|
| file | 9 (0.28%) | — | — |
| file + callee | 12 (0.38%) | 12 | 1 |
The single leave — packages/runtime/src/http-dispatcher.ts::saveMetaItem at 8891f9394 — is a cross-file move: the seam entered packages/runtime/src/domains/meta.ts in the same commit. Repo-wide total 1 → 1.
⇒ 0 net legitimate decreases per month. This reproduces #9680's zero on a different rule.
What that means
A shrink-only delta-ratchet on this rule is free — the population only grows, so the ratchet would have reddened CI zero times in the last month. That is the same profile that justified the ratchet in PR #9712 for check-engine-double-contract.
⛔ Why this is NOT a general "ratchet the family" card
The sibling rule in the same gate measures the opposite way, and PR #9875's central finding is that the nuisance rate is a property of the POPULATION, not of the proposal:
| rule | keys enter / leave | commit-level net losses that would redden CI |
|---|---|---|
| durability log-level | 12 / 1 (a move) | 0 / month |
| durability read-seam | 25 / 15 | 10 / month — one red every 2–7 working days |
The read-seam losses are genuine deletions, and their commit subjects say so: "remove the unreachable legacy raw-engine save path" (−3), "retire sys_fetch_previous_delete" (−1), "four read seams that failed no longer answer from …" (−1).
⇒ Ratcheting must be decided per rule, on measurement. Do not widen this card to the read-seam rule; on today's numbers that would ship a nuisance.
The decision this card needs
Building it means adding a merge-blocking failure mode, which is why it is not a dev card yet:
- A — build the shrink-only ratchet on the log-level rule. Free on today's numbers. Cost: a new way for CI to go red, and a maintenance surface when a seam is legitimately deleted (~0×/month, but not never).
- B — do not build it. The rule's population is 29 seams, small enough to eyeball; the
UNRECOGNISEDline PR feat(gate): give the three pilot gates an UNRECOGNISED verdict distinct from clean #9875 shipped already makes drift visible without blocking anything. - C — re-measure in a month and decide then. The replay method is cheap and reusable, so the cost of waiting is near zero — and one month of data on a repo doing ~3,200 first-parent commits/month is a thin base for a permanent merge-blocking rule.
My read: C, then A. The measurement is real but single-window, and the visibility line shipped in #9875 covers the interim. Nothing is currently going undetected, so the urgency that would justify A-now is absent.
Refs: #9747 (family) · PR #9875 (the measurement) · #9680 / PR #9712 (the same ratchet, engine doubles) · #9878 (why an earlier count said 269).
Ruled 2026-08-19 — option C (maintainer, via the maintainer-directed PM session; see the ruling comment for the full record). Held on the restart criterion below.
Restart-when: today >= 2026-09-19 — re-run the PR #9875 replay measurement over the fresh window; if net legitimate decreases are still 0/month, promote to pm:queue and build the shrink-only ratchet (ruling A), keyed file + callee.
Activity
fix(pm): H9's issue-ref class requires the reference at the declarati…
hotlong commentedon Sep 17, 2026
Closed not_planned — director seat, batch #149 item 4 (#16233, ruling C +
AGENTS.mdcorrection) · maintainer 「同意」 2026-09-17T14:41ZThe maintainer ruled that
check-durability-degradation-log-levelreceives no further investment: the gate stays as it is, return-propagating seams are recorded as its boundary (header limitation 4, censusscripts/measure-return-propagating-durability-seams.mjs), and the durability invariant is held by per-file tests. This card is one of the four open improvement cards on that one gate and closes with the ruling — ⛔ not a verdict on its reading, which stands. If a real incident (silent data loss reaching a user) is ever traced to the gap this card describes, that incident is the card to file.Generated by Claude Code