Epic 4: record why direction was negative, and what is left

The first measurement offered three readings for a direction of -0.14. The
third one — the arc is not reaching the image — was correct, and it is now
+0.24 against an arcless reference of -0.02, with the floor rising exactly as
§8 predicted.

Records what the two dead channels were, since neither was visible from the
source and both passed every gate that existed: the overlay path had an empty
candidate set (0/144 stacks), and the camera moved the frame by a median of
0.029 of a half-frame at a random angle so successive shots cancelled. Both
cleared their checks because every bound on them was a ceiling. A gate on a
device needs a floor.

Also ranks what remains, with the broken seed-variety instrument first: three
of the four open items are measurements and they all report through it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Dejvino 2026-08-19 06:58:27 +02:00
parent 1ca9fa2f1f
commit 518e9ea731

View File

@ -288,3 +288,109 @@ The no-story control arm (the same report with the story layer bypassed) **did n
complete** — the run hung in the browser after the first arm, so the floor and separation complete** — the run hung in the browser after the first arm, so the floor and separation
figures above are not yet attributable to this work either way. That comparison is the next figures above are not yet attributable to this work either way. That comparison is the next
thing to run, and it should be run before any conclusion is drawn from the numbers. thing to run, and it should be run before any conclusion is drawn from the numbers.
---
## 12. The second direction measurement — reading 3 was right
Same invocation, `checks.html?variety=1&library=0&seeds=6`, after the two fixes in §12.1:
```
§11 now
direction -0.14 +0.24 arcless reference -0.02
floor 0.1697 0.2130
```
§8 predicted direction moves off zero **upward** and that the floor **rises**, because that
is what progression is. Both happened, and the epic's headline hypothesis is confirmed.
Of the three readings offered in §11, **reading 3 was the correct one**: the arc was not
reaching the image. The story layer was never the problem — it had nothing to speak
through. Two of the channels a narrative would have to travel down were inert, and neither
failure was visible from the source:
**The overlay path was structurally dead.** `buildStack` gated layering on
`surfaceOf(m) === 'composable'`, and no scene in the library declared `surface` — so the
only scene that could ever sit on top was the one declaring `role: 'accent'`, which the
overlay roster excluded by construction. Empty intersection, every time: **0/144 stacks
carried an overlay**. `population` had been wired to the overlay chance per §4 and moved a
number nothing read. Fixed by labelling the library from the phase 12 coverage gate — the
37 scenes painting under 30% of the frame are composable — and collapsing the reserved
accent slot into one path. 1 distinct overlay scene became 27, at 34% of stacks.
**The camera was inert.** `framing.shift` moved the frame by a median of **0.029** of a
half-frame at a fresh uniform angle every shot, so successive offsets cancelled and the
median jump at a cut was **0.014**. `closeness` reached shot SIZE per §4; the recentre got a
per-track constant and a die roll. Fixed by `look/Camera.js` — see §12.1. Median offset is
now 0.190 and the median reframe 0.135.
This is the same failure mode the slow axis had before scenes declared `slowAxis`, exactly
as reading 3 predicted, and it had the same shape: a lever that existed, was wired, was
covered by gates, and moved nothing. **Both passed every check that existed**, because every
bound on them was a ceiling. A device doing nothing clears a ceiling comfortably.
> The lesson worth carrying out of this epic: a gate on a *device* needs a floor, not only a
> limit. Three of the four new camera checks are floors for this reason.
Readings 1 and 2 are still uncontrolled — the recap arch and the small sample both still
apply, and the honest statement is that direction was measured under them both times, so the
*change* is attributable even though neither absolute figure is clean.
### 12.1 Built since §11
* `look/Camera.js` — the director's camera department, and the answer to "who translates
story into imagery". Story says tension, order and act; this turns that into where the
frame looks and how it travels there. Each director in `directors.js` names a camera.
Jump distance follows tension and act, speed follows energy, curve is one of four, and a
cut chooses between reframing and matching so two scenes can still read as one place.
94% of shots now move *during* the shot — the recentre is no longer per-shot constant,
which is a deliberate departure from the rule in `framing.js` (that rule was right about
size and wrong about where the camera is looking).
* `surface` declared across the library, `role: 'accent'` retired in favour of
`surface: 'composable'` plus `background: false`, and one layering path instead of two.
* Four camera gates in phase 11, each with a floor.
---
## 13. What is left
Ranked. Three of the four are measurements, and they all report through an instrument that
is currently broken — hence the ordering.
**13.1 The seed-variety instrument does not report.** Not in the original plan, and now the
first thing to fix:
```
separation — not computable: the reference landed below the floor
floor 0.2130 · ceiling 0.2179 · all six seeds read "thin"
```
The ceiling — videos built from casts sharing *no scenes* — is 0.2179 against a floor of
0.2130. Real seeds already differ by about as much as maximally-unrelated ones, so
separation divides by a near-zero interval and comes back `NaN`. This is the `separation
NaN` in the standing phase 12 failure, and it has been there across every run including the
pre-work baseline.
§11 anticipated this precisely — *"the instrument is what is wrong"* — and proposed the
direction split as the fix. But direction was added **alongside** the broken separation
rather than replacing it, so the gate now leads with an unreadable number while a working
one sits underneath. The decision to make: repair the ceiling, or retire separation and read
**(floor, direction)** as the pair.
**13.2 The coherence bound (§6).** Never built. Optional while direction sat at zero;
load-bearing now that it is +0.24, because nothing currently stops future work from buying
direction by making adjacent sections incoherent — the named failure mode in §6.
**13.3 Recurrence (§6).** Never built. `phase13` has a spec-level cousin — was the kind
recast, did tension move more than 0.08 — but not the descriptor-distance statistic
`d(first, last) > d(first, middle)`. That is the ratchet measured in the image rather than
in the spec, and §5.3 calls it the one a viewer names as "it kept going somewhere".
**13.4 Punctuation (§5.5).** Still the only part of the plan wholly unbuilt. Nothing in
`src/` mentions it. Needs the flash-gate review, which is why it was deferred; §11 said to
do it once the numbers were understood, and they now are.
**13.5 The no-story control arm.** Still never completed. Less urgent than when §11 was
written — direction clears the arcless reference by 0.26, which is hard to explain without
a story — but it remains the only thing that would attribute the floor rise (0.1697 →
0.2130) to this work rather than to everything else that changed alongside it.