One register, enforced by a gate; closed work compressed into siblings (R-376..R-378)
gates / gates (push) Successful in 16s

Records and process only. No machine contacted.

ONE REGISTER (operator ruling). 17 roadmap rows moved into OPEN-ITEMS.md keeping their
identifiers, evidence and original filing dates - the oldest R-10, filed 2026-07-15, 38 days.
15 ideas stay in ROADMAP.md, which is their home; the gate exempts them by their own state
word. 59 already-closed rows stay as history. Sorting rule recorded in the roadmap header:
does the item assert something about the shipped product a reader could check and find false?

scripts/one_register_gate.py, wired as the 11th gate. Control run: baseline passes, a planted
open roadmap-only row is convicted by name, removing it passes with the file byte-identical,
and a planted `idea` row is correctly exempt. Its four residual holes are in its docstring.

The gate earned its keep immediately: it caught R-103, a READY finding my hand-sort mis-read as
done because my regex matched the whole row where the body contains "shipped" - the gate matches
the state cell. It also caught R-203 and R-163, recorded closed in the register and still open in
the roadmap; the roadmap copies are marked SUPERSEDED with the register's verdict.

HOUSEKEEPING. OPEN-ITEMS 672,376 -> 327,109 bytes (-51%); ROADMAP 239,306 -> 78,110 (-67%).
Closed work compressed to 17% into CLOSED-ITEMS.md and ROADMAP-HISTORY.md; every entry names the
commit whose git show returns the full original text. Rule-sentences are kept verbatim under
"Reasoning kept" rather than judged entry by entry - 25 carry one.

CONTEXT.md deliberately NOT compressed and the disagreement is argued in the report: 86% of it is
standing rulings still in force, this prompt's own 3.4 says the log is never edited, and it has no
per-ruling delimiter. Filed as R-377 - the problem is navigational, not volumetric.

The hot/bulk placement decision was NEVER recorded as a decision anywhere - established, not
assumed. Now marked [DESIGN] with a pointer honest about having no original date, given a
decision-log entry that records what was rejected, and the [DESIGN]/[FACT] legend carried from 1
of 8 architecture documents to 8 of 8. Existing statements deliberately left unmarked (R-376).

PROMPT-TEMPLATE gains N.7: compress what you closed, rehome live reasoning before it goes, state
the register's size before and after.

Ceiling R-375 -> R-378.
This commit is contained in:
2026-08-22 12:13:54 +02:00
parent fddfe00ce2
commit ef6ac6fe74
18 changed files with 1166 additions and 488 deletions
+22
View File
@@ -1,3 +1,25 @@
## one_register_gate.py v1.0.0 + repo_gates registration — one register, enforced (2026-08-22)
**Operator ruling: one register.** `OPEN-ITEMS.md` calls itself the single source of truth for open
work; `ROADMAP.md` also held it. R-107 — a READY finding filed 2026-07-28 — sat in the roadmap alone
and was invisible to every rule that says *"grep the register"*, until an overnight drill rediscovered
it from scratch **25 days later**.
The gate fails when a roadmap row is **neither an idea nor done** and has no counterpart row in the
register. **The predicate is the roadmap's own state column**, so it reads data that already exists.
**Two things it taught while being built, both worth keeping:**
1. **Match the LEADING verdict, not the whole field.** A first cut matched the state words anywhere in
the row — and a finding's body routinely contains "shipped". The same bug appeared independently in
this session's compressor, where `PARTLY CLOSED` and `OPEN — NOT FIXED` both read as closed and
moved six still-open rows out of the register (R-378).
2. **`BANKED` and `PROVEN-LIVE` are this project's own done-words**, found by running the gate rather
than by reading the vocabulary.
**Residual holes are in the docstring, not implied:** a finding filed as `idea` escapes, a finding with
no `R-` id escapes entirely, and the gate checks that a counterpart exists — never that the two agree.
## render_stands.py — the page stopped disagreeing with its own source (2026-08-22)
**The header's commit shas were hardcoded in the renderer, not read from the YAML.** `verified_on`