The tier budget gets a reader, and ten branch sections agree with the code again - #198
Merged
Merged
Conversation
`tier_budget_words` occurred exactly once in this repository — its own declaration in `index.json` — so the map drifted to tiers nine times the stated figure while every gate stayed green. A declared constant with no reader is a comment. `extractTiers` and `tierBudgetIssues` are pure and exported. `--budget` reports per-tier and exits 1 on breach. `--verify` now reads the budget unconditionally and gates on it only when `tier_budget_enforced` is true. It ships false: all thirteen classes breached when this landed, and a gate that reddens CI on day one is a gate someone switches off — the same reasoning that keeps staleness out of `--verify`. Three clauses, and the second is the one usually left out. Every tier inside its band; the band carries a FLOOR as well as a ceiling, because a tier under budget was never compressed and compression is the mechanism the method rests on; and the last tier is not longer than the first, since the source study's own chain lands step 1 and step 5 at an identical 72 tokens. The counting convention lives in code rather than in the caller: three readers counting one tier by eye returned 799, 803 and 844 words for the same bytes. First run over the shipped map: 49 breaches — 31 under the floor, 14 over the ceiling, 4 chains ending longer than they start. The under-floor majority is the opposite of what the document's reputation suggested. Watched failing before being trusted. The floor clause was deleted and `--negative-control` reported BROKEN at exit 1; `tier_budget_enforced` was set true and `--verify` failed with 49 issues at exit 1. Both restored. The control now plants thirty-two conditions and exits 3; the unit suite is 53 tests. That count is repaired in every sentence stating it.
…ads a note Ten of thirteen classes were stale. One read-only sub-agent per class returned a densified replacement against its own declared paths, each claim carrying a commit, a path and line, or a command's output; every return was verified by re-running those commands before it was applied. The sections land beside the code they describe, which is what keeps them current. What the pass found, beyond currency: Three commit hashes offered as receipts resolve to nothing. C5 diagnosed the cause — a pre-squash hash never survives into the history a later reader searches, and this repository squashes. The convention needs a fix, not the three hashes. C12's own status ledger contradicted the cross-section table on whether a launch path exists. The code settles it for the table: `boot` gates on `preflight()` and claims a real VMM rather than raising, and `session_host.open_workspace_session` and `KataREPL.setup` both call it. The remaining gap is narrower and locatable — `install_scaffold` and `control` still raise, so no `GuestSupervisor` has run inside a microVM. Still not a sandbox, now for a checkable reason. That section went 2,020 words to 468. The map understated the system about as often as it overstated it. Node- level `contested` was recorded as having no consumer; the resolution pool and the self-edit pre-check both read it. The judge layer was described as near test-only; five operator entry points drive it through four runner scripts. One label rose on located code plus a passing drill. `judge_spawn.ts`'s `makeLiveJudge` was recorded as able only to refuse. It refuses on model-identity mismatch and otherwise calls `chat.completions.create`; what holds spend is the runner's `--live` plus `--confirm-paid` and the paid queue's owner hold. `MODEL_BACKEND_SEAM.md` cites construction sites at lines 353 and 589 that now sit at 424 and 737 — a record quoted verbatim into paid runs. Every section now holds the 85-95 band with its last tier no longer than its first. Repository-wide breaches: 49 to 14, the remainder in C1, C2 and C13, which were never stale and are separate work. The density-chain skill states who a note is for — human, AI and agentic readers — and derives three rules from the third, which had been standing as assertions. Its evidence base is corrected where it was wrong: the source study never compared a densified summary against an ordinary one, and no annotator saw the two side by side. The status taxonomy is stated once, six members, in the skill, the map's reading contract and the folder README alike.
One conflict, in C7: #197 rewrote that section to add the vendored record mirrors while this branch had rewritten it from the code. Resolved by keeping this branch's verified corrections and folding in the mirrors fact. The corrections kept, each re-checked against master's tree: `judge_panel.ts` cited at :38 and :464 rather than bare; the two user gates carry their real and differing flag names (`--confirm` and `--confirm-extraction`); the affirmation self-play's 8/8 attributed to its third round only, with its positive control recorded silent; the status ledger on the six declared labels. The mirrors fact folded in, recounted rather than carried: #197 added 31 mirrors to four skills, and spark-steering already held 2, so current state is 33 mirrors of 18 distinct records across five skills. T2 was densified back from 99 words to 92 to make room at the held budget.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two commits. The first gives the density-trellis's declared tier budget a reader and a floor. The second brings ten stale branch sections back into agreement with the code, and names who reads a note.
The budget had no reader
tier_budget_words: 90occurred exactly once in this repository — its own declaration indocs/density-chain/index.json. Nothing read it, so the map drifted to tiers of roughly 800 words while every gate stayed green. A declared constant with no reader is a comment.--budgetnow reads it and checks three clauses: every tier inside its band, a floor as well as a ceiling, and no class ending longer than it starts. The floor is the clause a ceiling-only rule cannot have, and it is the load-bearing one — a tier under budget was never compressed, and compression is the mechanism the format rests on (docs/density-chain/README.md; Adams et al. 2023, arXiv:2309.04269 §2).--verifyreads the field unconditionally and gates on it only whentier_budget_enforcedis true, which isfalsetoday. The branches as shipped breached, and a gate that reddens CI on day one is a gate someone switches off — the same reasoning that keeps staleness out of--verify. Flipping the flag is an operator decision, not a side effect of this change.The counting convention lives in
extractTiersrather than in each caller because three separate readers counting one tier by eye returned 799, 803 and 844 words for the same bytes.What the counter showed, which was not what was expected
Of the 49 breaches on first measurement, 31 were tiers under the floor and 14 over the ceiling. Two thirds of the drift was tiers that had never been compressed at all, not tiers that had grown. The one 799-word tier was the minority case.
Ten branch sections
Ten of thirteen classes were stale. One read-only sub-agent per class returned a densified replacement against that class's own declared paths, every claim carrying a commit, a path and line, or a command's output. Each return was verified by re-running those commands before it was applied.
Beyond currency, the pass found:
install_scaffoldandcontrolstill raise, so no guest supervisor has run inside a microVM.Breaches fell 49 → 14, all remaining in C1, C2 and C13, which were never stale and are not in scope here.
Verification run
Every CI step, run locally on this branch at
aa24d03:wiki:check --negative-controlexits 3 with all 32 planted conditions detected, up from 25; the seven new ones cover the budget clauses.Rule 19(c) — both new gates were watched failing before being trusted:
negative-control BROKEN: the gate did not exhibit an_under_floor_tier_is_caught, exit 1.tier_budget_enforcedset true →--verifyFAIL, 49 issues, exit 1.Both restored; the counts above are the restored state.