Rung c colour on shape - #2
Merged
Merged
Conversation
…ped gather Next #1's first rung. The engine was hard-wired same-shape — output shape was never a represented quantity (`apply` wrote input-shape cells, `fitness` penalized in_n != out_n). New `ShapeMemory` trait (parallel to SelfModMemory, so the same-shape core and all existing memories are untouched): the output shape is inferred in-context — a per-axis affine out = round(k*in + b) written closed-form by least-squares over the demo dim-pairs — and produced by the proven AttnGather gather, generalized so its query grid is the OUTPUT grid and it reads the INPUT grid (apply_shaped; same-shape path bit-identical). The shape rule is frozen (fill_scale=0), so the ES fits only the 7 attention params on the B3 landscape. fitness_shape/fit_shape/fit_shape_geom are the shape-aware generic sibling of the ES core. Proof (test_shape_change, full tier, cold, held-out at a FRESH input size — demos drawn at varying sizes so the rule is identifiable, not memorized): {crop1, flip_h_crop1, subsample2} each held-out 1.0 (subsample2 needed M=2I, a 2x scale-up, found cold); shape-ablation control (no write) 0.0 — the inferred shape rule is load-bearing. Synth SHAPE_TRANSFORMS + generate_shape_task_groups (varies demo sizes). Full suite green; same-shape numbers unchanged. Deferred on this same seam: upscale/tiling (floor/modular gather), wiring arc_solve --report to score the real 32%, colour-on-shape. (JOURNAL 07-03 13:12.) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ily cold The output-growing shape families (Next #1 rung a). Mechanism: a toroidal output-shaped gather (attn_gather_toroidal — tiling's sawtooth is the nearest WRAPPED cell of an affine map), an extent-relative translation trel (absorbs tiling's size-dependent phase), and the query normalized by the WRITTEN shape slope (resize-as-identity — tolerances size-free). Fit: a k-fold size change has TWO canonical identity frames (rescaled M=I; periodic M=kI, trel=(k-1)/2), so fit_shape_geom runs the same two cold starts per task — each DISCOVER (soft, temperature searched) then SETTLE (hard-frozen read via ShapeGeomSettleMemory, sigma held at the sharp staircase's step scale) — winner by demo fitness. Corrects the "affine can't express blocky replication" claim (floor(r/s) = round((r-(s-1)/2)/s), exactly — only tiling is non-affine). test_shape_change: {crop1, flip_h_crop1, subsample2, upscale2, tile2} all >= 0.95 held-out at fresh sizes, per-task cold; plain- gather and no-write controls fail as they must. Also commits the prior eval-split re-measure journal entry (0/120 at budget 64/1500, pre-shape). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… (was 10) Rung (b): arc_solve dispatches per task on a closed-form observable of the demos — any train pair whose dims differ routes to ShapeGeomComposedMemory / fit_shape_geom (the rung-a two-frame multi-start); all-same-dims keeps the byte-identical GeomColorComposedMemory path. Not a memory-selector: the alternative provably scores 0 on the dispatched class. Shape-path scoring off the memory's own predicted dims (mismatch = honest 0, never applied); per-task lines carry a trailing `mem: same|shape` marker (after the existing fields, so eval_parallel's positional awk is unchanged); the skip-all-shape-changing-tests shortcut survives only on the same-shape dispatch. CI: the full tier's arc_solve leg adds one crop1 shape bundle (fast gate unchanged). v3 corpus measure (10 workers, budget 64/1500): train 22/1000 solved — 9 shape-changing solves (a slice that scored 0 by construction before) plus the few-demo hardening's net +3 (d511f180 solved as designed; 2 documented tie-convention losses). Eval 0/120, mean 0.404 (v2 0.388); its 39-task shape slice scores 0.054 — content-dependent output sizes and colour-on-shape (rung c) are the named constraints. Same-shape subsets bit-consistent with v2. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…duled Mined the v3 per-task dumps into the failure structure: train same-shape has 88 few-cell near-misses (0.90-0.99, train-fit 0.93) and a 146-task deep floor (train-fit 0.34); train shape has 107 convertible tasks (train-fit >= 0.5) and 63 where the affine dims rule fits no demo — the class that dominates eval's shape slice (19/39). ROADMAP "Next" rewritten as the evidence-ranked rung ladder — C colour-on-shape (kernel: count conservation broken by shape change; area-ratio normalization to validate), S shape-from-content (shape write over a content-statistic basis), A the near-miss audit (measure-first, mask/gate candidate), D cheap factor extensions, CMS the depth chain — each with its research/implementation split and named blocker, and the GPU gate placed as a zero-capability infrastructure block immediately before CMS (the blocker is the mojo 1.0.0b2 pin, not kernel design). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…} solved cold
Compose an emergent colour table on top of the shape+geometry gather — the
block-5 composition pattern's third application: out = shape_geom_gather(V(in)).
Colour is cellwise, so it commutes with the copy gather; V is written closed-
form and the unchanged two-frame fit_shape_geom runs on V-pre-mapped demos (the
geometry search never sees V). Additive: the same-shape core and every existing
memory are untouched; V=identity makes the shape path byte-identical.
Three findings, measured not guessed:
- Count conservation breaks under shape change → V written from scale-invariant
FRACTION signatures (exact for upscale/tile, robust for crop/subsample).
- The write needs colour-count CONTRAST — uniform-random grids can't identify a
recolor under a lossy shape change; real ARC grids can (kept as a ceiling
control: uniform crop misses ~5-6/10 colours).
- Strict-superset trap (caught by the arc_solve smoke): a naive greedy write
scrambles V on pure-shape low-contrast crop, regressing it 1.0 -> 0.17. Fixed
with a measured global acceptance gate (R_assign < 0.4*R_id; the ratio
separates pure-shape 0.82-1.35 from recolor 0.15/~0) — greedy-injective write
for full recovery + the gate for pure-shape protection.
test_shape_color (cold, held-out at fresh sizes): recolor_{crop1,subsample2,
upscale2,tile2} each 1.0; colour ablation 0.0; pure tile2 1.0; pure UNIFORM
crop1 1.0 with V=identity (the strict superset); few-demo n=3 0.998. Full suite
green (test_shape_change unchanged). arc_solve shape branch routes through
ShapeGeomColorComposedMemory; CI adds a recolor_crop1 bundle. Corpus v4
re-measure deferred (the separate overnight trigger).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
tacio
added a commit
that referenced
this pull request
Jul 26, 2026
…scaffolding Pre-registers docs/gates/002-wm-prior-rollout.md (Gate 001 re-open lever #2) before any build: held-out RA64 primary metric, four arms incl. the compute-matched IDSEED refuting control, safety net disabled in measured arms, R=5 CRN-paired instrument with a second fit2_seed reseed point, the insurance secondary with independent bars, no trimming (user decision 2026-07-19). Housekeeping: tests/test_adapt.mojo (Route A Increment-1's unrun 5-arm proof) is now tracked as explicitly-unrun scaffolding under a new `# suite-tier: skip` tag; run_tests.sh learns the skip tier (never runs in any tier). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013PCPDmZqxgmyrs5q6CefE8
tacio
added a commit
that referenced
this pull request
Jul 26, 2026
All three pre-registered STOP conditions trip independently at the 3-seed median: MK_room(32)=0.0, CK_room(32)=0.0 and CK_room(128)=-0.114, SK_room(32)= -0.026 and SK_room(128)=-0.044 (all <= their bars). GO fails 0/5. The compute-matched IDSEED control shows warm on par with or worse than a bare near-identity init on the identical rollout schedule; SCRAMBLED sometimes clearly beats warm (seed 2 room B=32, by ~0.13) -- the refuting controls worked in the failing direction. Combined with Gate 001's clean ~0 margin under the one-step objective, the W1-prior-as-warm-start lever is now closed under BOTH registered objectives for Phase-D Increment 2. The insurance secondary (carried over from Gate 001's surviving conditional) is NOT TESTABLE here: 0/15 degenerate reps in every arm at room B=32, traced to a floor in the RA64 metric on room rather than Stage 0 rescuing the fit (seed 2's one-step diagnostic learned nothing either, yet RA64 still read ~0.09 for every arm including the untouched raw prior). Harness discipline-reviewed clean pre-run; the Result section was independently re-audited post-run against the raw scratch data (medians, bar logic, insurance spot-check all CONFIRMED), with one honest-narrative hedge applied before commit. docs/gates/002-wm-prior-rollout.md, docs/JOURNAL.md, docs/ROADMAP.md (re-open levers #1/#2 marked SPENT; next rung unscheduled). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013PCPDmZqxgmyrs5q6CefE8
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.
No description provided.