Skip to contentWolf-Rayet

Decision records

ADR-0085 The roster's last row, and a ladder the scene took away

Accepted2026-09-06Phase 4, reopened

#Context

link is the last row on ADR-0021's roster. Three consecutive audits removed eleven rows around it and kept this one: ADR-0081 refused six in section C, ADR-0082 refused four across D and G, and both times this row survived on two separations rather than one — from button on governed copy, because a part obliged to name a destination is not a part obliged to name an action, and from navigation-item on layer, because §3's question gives two answers and a link cannot be current.

ADR-0082 named two questions for the build and settled neither. ADR-0084 answered the first: the component draws no ground, so ADR-0045's turned corner had nothing to turn, and that record generalised the rule from a corner to the perimeter. This one answers the second, and the answer is not the one the row expected.

#The ladder was two rungs and the scene took one away

The row read 1 to 3. ADR-0082 argued the ceiling down to Marked from §2's language column — Directed reads *"Imperative. Names the next action"*, and this component's one part is obliged to name a destination, so a link that reached Directed would either have stopped naming a destination or become a Button. That argument holds and it is the first ceiling in this system derived from the language column rather than the light column.

So the component was built at [1, 2], and fixture 66 measured what those two rungs are worth.

#link-ambient  L1  0.000273
#link-marked   L2  0.000277

A 1.5% step for a full rung. The same component, the same words, the same prose, one rung apart.

And thickening the rule did not fix it. The first response was that the tier was wrong rather than the ladder: weight was border-standard at both rungs, so the step was carried by the mark colour alone. Raising the upper rung to border-heavy moved the Scope's total by 4.6e-5 and moved the links' shares not at all — they stayed at 0.000273 and 0.000277.

The cause is structural and it is this component's whole shape. Its pixels are the glyphs of its own label plus a hairline. The glyphs carry text-primary at every rung, because the tier's text roles are not keyed on level — the ladder lives in mark and geometry, which for this component is two or three pixels of rule. Every other Emitter puts its rung in a fill, an edge or a bar with real area. This one has none.

#Decision

link declares one rung, Marked, and it is the first single-rung Emitter in the system.

The ceiling is §2's language column, as above and as ADR-0082 argued it.

The floor is its own affordance. §2's Ambient is *"at or near the substrate: minimal deviation in either direction. Resting content"*, and ADR-0084 makes the rule under this component's text the thing that says a reader may act on it. A link at minimal deviation is an actable thing the reader cannot find.

Both bounds were argued from different columns of §2 and they land on the same step. That is what makes it one rung rather than a range, and it is why the ladder is not a shortage: there was never a second rung to draw, and the measurement is what said so.

A component whose light channel cannot carry a step does not have two rungs. Declaring them anyway would have put a ladder in the tier that no reader could see and no receipt could show — §2's own thesis inverted, since that section exists to stop a system claiming a hierarchy it does not draw.

And the component drops its level prop with the rung, on region's and live-feed's precedent: one legal rung is a constant in the contract, so there is nothing to ask a caller.

#Rejected options

Keep two rungs and accept a small step. The path of least change, and it is the one §2 refuses. That section's premise is that light, language and motion ride one ladder so that *any one of them can carry the hierarchy alone*. A rung whose light step is 1.5% is a rung the light channel does not carry, and a system that declared it would be asserting a hierarchy its own engine cannot show.

Level-key the text roles so the glyphs carry the rung. It would work — the glyphs are where the pixels are — and it is a change to the tier for one component. Every other component's ladder lives in mark and geometry by design, because those are what a component *draws about its state* while text is what it *says*. Moving the rung into the text colour would make a link's words dimmer at the lower rung, which is a legibility decision dressed as a ladder, and ADR-0044's floors exist to stop exactly that.

Give the link a ground so it has pixels to put a rung in. Available, and it destroys the row: ADR-0084 built the underline carrier because this component has no box, and a link with a box is a Button with different words in it — the separation ADR-0082 kept the row on.

Keep the row at 1 to 3 and let the ceiling be the build's problem. ADR-0082's own decision, and it was right to defer: the ceiling argument was available before the build and the floor argument was not. What closed the floor is a number, and the number needed the component to exist.

#Consequences

The roster is complete: 38 rows, 38 built, zero to build. Phase 4's component set is done, and its exit criterion — restated by ADR-0021 as the build sequence — is met.

The set has its first single-rung Emitter, and its first ceiling and floor argued from different columns of §2 onto the same step.

link is the first component to take ADR-0084's underline carrier, which means that rule is no longer asserted against an empty set. tokens:verify reports corner 9, shape 1, underline 1 and 10 of 11 draw a surface-* ground.

And the scene measured what a groundless Emitter costs, which nothing in this repository had: 37% of a grounded Emitter's share at the same rung — #link-run 0.000273 against #press-02 0.000729, in the same Scope, in the same run.

Fixture 66 changed shape twice while proving one thing. It was built to show a ladder, it disproved the ladder, and what it holds now is one link — because that is all there is to hold. Its generated caption records both drafts rather than only the surviving one.

No engine change, no check kind, and one check gained its first subject.

#Measured

  • Fixture 66, first draft at [1, 2]: #link-ambient 0.000273, #link-marked 0.000277 — *darwin-arm64, this pass*.
  • The same scene with weight raised to border-heavy at the upper rung: the Scope's load moved 0.043475 → 0.043521 and both link shares were unchanged — *darwin-arm64, this pass*.
  • Fixture 66 as committed, one link at one rung: #link-run 0.000273 at level 2, against #press-02 0.000729 and #grinder-01 0.000625, both grounded Emitters in the same Scope — 37% — *darwin-arm64, this pass*.
  • tokens:verify — VERIFY OK; link: 9 token(s), 12 non-text APCA checks against all three grounds, worst link-destination-2-mark on surface-inset in interior-light |Lc| 42.8 / floor 30; affordance 11 component(s) accept input, by carrier: corner 9, shape 1, underline 1 — *darwin-arm64, this pass*.
  • pnpm roster:check — 38 rows, 38 built, 0 to build — *this pass*.
  • pnpm battery — the verdict this pass is measured by.