The committee is the dominant cost of a scaled round and it has no latency
requirement, so the tier is a real decision rather than a detail. Pricing
only the interactive tier overstates the round by about two times, which
could talk the corpus size down for no reason.
hybrid_topk fell back to the lexical list whenever vectors.json was missing
or the semantic ranking came back empty. That never fired during the round 2
grid because the vectors were present, so it shipped unnoticed. It fires
constantly in an offline sweep, where it made hybrid print lexical's exact
recall curve under its own name. An arm comparison built on that reads as a
tie between two arms rather than as a missing input.
Hybrid now exits loudly, the way semantic already did. The offline sweep
also runs arms one at a time, so an arm that needs vectors going quiet no
longer silences lexical, which needs none.
Make the committee sample rate an explicit parameter, project its cost
from context lengths alone under EVAL_DRY_RUN=1, and reuse run2's spend
ceiling, kill file and checkpoint resume so a corpus-scale audit stops
on a known number instead of discovering it. A rate below round 2's 20
percent now names the widened error bound out loud, and a rate of 0
refuses rather than shipping an unaudited corpus in silence.
Round 2 split briefs equally across the three source types. At round 3
volume that would put roughly 700 briefs on 25 primitive moves, which at
the measured intra-cluster correlation of 0.33 carry about as much
information as 3 independent ones.
choose_targets now takes a wave number and brings every catalog move up
to that many generation attempts, so cluster sizes stay uniform.
Attempts are counted rather than acceptances, which is what makes a
killed wave resumable without backfilling a move the gates rejected.
wave_report prints per-source counts, the per-move count distribution
and the unbackfilled shortfall.
Semantic recall at k=10 is 0.383, not 0.282. The 0.282 figure is semantic
k=5, which collides with lexical k=10 and was misread from the cell table.
The refusal citation now names the arm it came from.
The rule itself is unchanged. Only the background citations move, and the
correction strengthens the convergence case rather than weakening it.
fit when shown is conditioned on retrieval succeeding, and the briefs a short
list finds are the easy ones, so reading that column across cells compares
different brief sets and can invent an effect that is only difficulty. The
report now restricts the full shelf to each cell's own gold-shown briefs.
A low fit reads as the model choosing badly when the real story is often that
retrieval never showed it the answer, and those two call for opposite fixes.
Each cell now reports how often the gold move was in the list the run could
see, and its fit on just those runs.
Round one printed one card per run, which does not survive 2043 of them. This
aggregates per cell and per stratum first and shows individual runs only for
failures, keeping mountable and fit as two separate columns. It reads the
checkpoint log alone, so it runs against a grid that is still going.
The banner a reader checks before approving spend disagreed with the
arithmetic under it by a factor of sixteen, understating the output half of
every projection. The printed assumption now interpolates the constant, and a
regression pins the two together.
semantic_topk re-read and re-scored vectors.json on every call. The grid asks
for a semantic ranking 227 briefs x 4 cells, so a tens-of-megabytes parse and a
424-move cosine sweep ran roughly 900 times. The parse and the ranking are now
memoized, keyed by the vectors path so the tests that repoint VECTORS still see
their own file.
The gold sets are right by construction, but at 424 entries some moves are
near twins, so 45 of 272 briefs describe a beat that two moves answer equally
well. Three independent full-shelf readers reconstructed 227, below the 95
percent floor, and the grid stayed blocked.
Moves those 45 briefs and their gold into excluded/ rather than deleting them,
so the drop is auditable and reversible, and leaves gold purely constructed.
The kept corpus is easier than the generated one and its block stratum falls
from 79 to 53, which the verdict has to state.
The runner resolved the brief directory one level up, where round one's five
briefs live. They load without error, so the whole nine cell grid would have
scored against the wrong corpus. The generator and the gold committee already
resolved it correctly, so the three stages now assert they agree.
Commits the 272 brief corpus, its gold sets and the committee audit so the
experiment is reproducible from the repository rather than from one machine.
Two moves that shipped as registry components became primitive and component
collisions, so the catalog now merges twelve pairs instead of ten. Regenerated
rather than hand edited: the shelf suite asserts these bytes come back out of
the builder unchanged.
The pre-commit formatter reformatted the staged shelf and index and re-staged
them, so the committed catalog no longer matched what the builder emits and the
regeneration assertion failed on a fresh checkout. Their generator owns those
bytes, so the formatter now skips them.
The previous commit carried the source change without the artifacts it
produces, so the checked-in shelf still merged ten primitive and component
pairs while the builder now merges twelve. Regeneration is asserted byte for
byte, so a stale artifact fails the shelf suite rather than silently scoring
the eval against a catalog nobody can rebuild.
The shelf builder reads primitive artifacts from evals/catalog-retrieval/sources,
but the test fixture still exported them to the old scratch layout, so the
negative controls built against a repo that had no primitive sources at all.
The location is now one named constant both sides resolve against.
Two moves that shipped as registry components in the previous commit,
caption-camera-follow and grade-split-reveal, are now real primitive plus
component collisions, so the pinned collision set and the regenerated shelf
account for them.
Adds the 25 video primitive compositions and their generated Mintlify pages.
Each page embeds a live <hyperframes-player> preview with editable composition
variables rather than a rendered MP4.
Adds the catalog-browsing eval under evals/catalog-retrieval: a 424-entry shelf
built from HEAD, nine retrieval conditions (no-catalog control, full read,
lexical, semantic, and hybrid across several values of k), a brief generator
that constructs each brief from a known target, a blind three-pass gold
validation committee, and a mechanical scorer that keeps mountable and fit as
two separate numbers.
The eval vendors its own shelf, primitive sources, and preview list instead of
reading them from an ignored working directory, so the shelf regenerates byte
for byte from a clean checkout. Derived artifacts stay out: the embedding cache
and the run checkpoints are regenerated rather than committed, so no run can
score against a stale copy of either.
Lint ignores now cover vendored minified player bundles by pattern instead of
one path at a time.
cursor-glyph-trail, echo-trail, facet-morph, light-sweep-pass,
soft-blob-touch, halftone-dissolve; all pure functions of timeline time,
tri-order seek determinism verified; watch page at docs/wild-shelf.html.
Candidates pending owner judgment, no catalog changes.
cta-close and logo-brand-close rebuilt at display scale with real presence;
grid-card-assemble tiles become drawn-icon capability cards; all nine
generated demo mounts rebuilt full-frame on light token backdrops;
trust-strip leaves the hero shelf (too easily one-shot to hold a slot);
dash draws moved to attribute-driven offsets (reverse-seek stale paint).
Eight new hero primitives (press-ripple, typed-prompt, titlecard-lockup,
logo-brand-close, browser-device-stage, grid-card-assemble, chart-story,
trust-strip), before-after-wipe port with content slots, marker-highlight
contract rebuild, whiteboard-ink strokes slot, and the cues/exit/register
retrofit across the ten kept primitives. Gallery, theme gate, and
theme-compare board restaged for the shelf of 21.