COGNITIVE:HUB│DIRECTIONS│394 TYPES│2026-10-21
Future directions

Future directions

Where the project is going, in the order it will get there. Rendered by dashboard/build.mjs as the Directions page; plain markdown, edited at every wave close. OWNER DIRECTION, 2026-10-17 — music and sound. In the owner's words: "Also add music to the game using a desktop and Suno. Some of the puzzles could even be music-related if you design them well. Or require players to tap on beat. Or to play instruments together in some way." This reverses the catalogue's ruling that the product is sound-free ("True audition is 0 and stays 0 forever", docs/cycle3/PUZZLE_CATALOG.md §1092). Agents read it as the owner lifting that ruling for music and sound; how far it goes (music only, sound effects, puzzles that need sound) is filed as IDEA-164. Work now: a design note for music puzzles and the audio stack (docs/cycle7/MUSIC.md); Suno tracks made in the owner's browser once signed in (plan and licence: IDEA-165); an audio library needs one npx expo install, which the owner runs. OWNER DIRECTION, 2026-10-15/16 — "an interdimensional puzzle land". The owner raised the 40 MB budget (IDEA-158, no new figure yet) and asked for a game that looks far more polished, fun and exciting. In the owner's words: "It should feel 3D, like a world. I don't know if voxel is a good way to go but especially for spatial puzzles it would be good to have rotatable images. We should focus on that. We want a wide range of different characters, puzzles, and worlds in this. It doesn't have to be a theme park but maybe it's sort of like this interdimensional puzzle land." Generated art comes from Nano Banana in the owner's Gemini app (Google AI Pro); round 1 (eight images: two hubs, the Gearworks, the Archive, a Sepia sheet, her cart, materials, pieces) is in tmp-art/nano/r1/, and the owner said "go ahead" on it. Work now: (1) a rotatable voxel prototype for spatial boards (drag to turn a polycube), a spike before any board changes; (2) art round 2: the other worlds, a cast of characters, and voxel against illustrated 3D for the owner to choose; (3) the law changes this needs (raster limit L1, Sepia drawn as code only, WORLDS §5.2) filed in the inbox, not decided by agents. CYCLE 7 — THE VISUAL OVERHAUL. Design v3 is rolled out (APK v5.0.0, DEC-070, DEC-071), and the board upgrade (DEC-072) has shipped in APKs v5.2.0 to v5.11.0: 375 of 394 boards now hold an independent A. Batch 9 (19 grid boards) is built, unmerged and ungraded, and waits on the owner (IDEA-155). The owner lifted the 34 MB gate on 2026-10-03 (DEC-068); size is now reported against a soft 40 MB budget. On 2026-10-04 the owner set the art direction (DEC-069): puzzly gizmos and gadgets, futuristic, adventuring across worlds, one per ability area. The SPIKE_VISUAL amendments L1–L11 are approved, the world scene is on by default, and Sepia's wrong-answer reaction (HMM) is a setting, off by default. The world spec is docs/cycle7/WORLDS.md. APK v4.0.0 (Cycle 7 part 1) is 35,690,089 bytes, 1,752,205 bytes more than v3.39.0, mostly react-native-svg, and about 4.3 MB under the soft budget. Part 1 carries the visual stack (react-native-svg plus Reanimated; Skia, Lottie and expo-image refused on cost), Sepia as a hand-authored vector rig, the gadget hub at Outstation IX with six world gates that open the Chart at their area, WorldFrame and the solve wavefront around every board, the stage handoff ("STAGE n · THE <WORLD>"), Sepia PLEASED on the results card, a solving tap cut from 50–67 ms to one frame at 4×, and the first two world scenes on the Chart: the Gearworks and the Lattice. APK v4.1.0 (Phase 3b) is 35,729,085 bytes, 38,996 bytes more than v4.0.0 and about 4.27 MB under the soft budget. It adds the last four world scenes: the Tally Works (Sepia's cart on a balance pan that settles ±2 px), the Archive (kept blue; a crystal breathes in step with Sepia's skin cloud), the Signal Press (no letters anywhere; a tuning fork moves ±1.5 px and the horn breathes) and the Switchyard (crimson only on small marks, a dim decoy lamp, a needle that trembles ±1.5°). Builders for all six are registered and no stubs remain. Each world costs 3.1–4.4 ms per frame at 4× on the web, inside the 6 ms gate. APK v4.2.0 (Phase 5) is 35,736,329 bytes, 7,244 bytes more than v4.1.0 and about 4.26 MB under the soft budget. The native stack animates nothing; one <Arrival> wrapper carries every screen. Going into a world opens the screen under a veil in that world's field colour, which fades and slides 24 px over 260 ms; a plain screen gets a carbon veil over 180 ms; a return lets the veil go over 160 ms. A selected non-primary key latches 1 px down, and a key locked while held now lets go. History, Journey and Settings share a header with a 44 px back target, a room plate and a world rail; History rows name their world rather than a raw id. Sepia has a raised-arm pose at the Signal Press horn. Plain-screen transitions cost 3.0–6.5 ms per frame at 4×; world arrivals cost 5.1–9.1 ms, over the 6 ms gate (the old build was too: the new screen's own second commit, not the veil). Click-solve 24 / 24 across all six worlds. APK v4.2.1 (the performance pass) is 35,740,733 bytes, 4,404 bytes more than v4.2.0 and about 4.26 MB under the soft budget. A world arrival now holds its veil still and covering until the board or the record has committed, then lets it go on the first idle after paint; on the web the veil runs as one Web Animation, since react-native-web had been re-layering the whole page every frame (native keeps the native driver). Home keeps focus out of its tree, so a return re-renders only the band, the leg and the Sepia panel, and an unchanged refresh sets nothing. The return veil now takes the world of the stage on screen. At 4× on the web: Today → board 2.80–4.73 ms per frame (was 6.02–8.77) and gate → Chart 5.20–6.45 ms (was 9.18–11.94), both with no frame over 20 ms; the worst frame back to Home is 33–100 ms (was 83–167). Home idle stays about 6 ms, and the solving tap lands in one frame in 9 of 10 runs, both unchanged. Click-solve 6 / 6, one per world. APK v4.2.2 (the Android render fix) is 35,749,417 bytes, 8,684 bytes more than v4.2.1. The owner's device run of v4.2.1 saw only "a line lighting up" on a solve. An audit of every Cycle 7 visual against the native libraries' source (docs/cycle7/ANDROID_AUDIT.md) found the cause: the key bands were written with setNativeProps, which Fabric loses at React's next commit, so only the ring survived. The bands now go through Reanimated animated props. A hidden render check (Settings → ABOUT → long-press the BUILD line) plays the solve, the veils, a world band and Sepia on the phone, and a law test bans setNativeProps. APK v5.0.0 (design v3) is 35,474,577 bytes, 274,840 bytes less than v4.2.2 and about 4.53 MB under the soft budget. The same device run found the game bland (DEC-070); a prototype (docs/cycle7/DESIGN_V3.md, lookbook ?tab=d3) went to the owner, who answered "Yes to everything" (DEC-071). It rolled out through the shared layers, so all 394 boards changed at once. R1: the Oxide type system (Oxanium, Manrope, JetBrains Mono; nine fonts replacing ten, about 352 KB smaller, on a larger scale), pop-up cards for the verdict, stage, wrong answer, results and hint, the fly-through screen swap and the hub HUD. R2 (docs/cycle7/ROLLOUT_R2.md): the Key material (4 px of travel, spring press and release, powered, lit, error and world-lit states), connected tap arcs read from the keys' measured geometry, the full solve power-up (verdictIn 1770 ms) and the wrong-answer shudder; 76 plain cells in 67 renderers now light through FieldCell. At 4× on the web: a swap into a screen 2.6–4.3 ms per frame; the solving tap one frame in 11 of 12 clean runs; tap and solve effects 4.7–7.2 ms per frame. APK v5.0.1 (the v5 sweep, docs/cycle7/V5_SWEEP.md) is 35,481,581 bytes, 7,004 bytes more than v5.0.0 and about 4.52 MB under the soft budget. All 615 hard-coded fontSize literals (595 in 149 renderers, 20 in seven app files) now go through the v3 type roles, with a compact floor (labelSm 10, dataXs 11, micro 9) for dense boards; nine renderers moved to numeral(cell). Anagram's oversized empty-slot prompt and the Chart's truncated region titles are fixed. At d3 and 360 px, boards with a fault went from 82 to 75, with 0 new faults from the bigger type; at 412 px, from 31 to 30; what remains predates the sweep. All 19 single-surface boards now light their cells through useFieldCells, the three wood boards through the shared WoodRound, and Elimination and FermiEstimate through FieldCell. Back to Home went from about 11.9 to about 4.1 ms per frame at 4×, with ambient motion paused during a swap; Home idle is about 6–7 ms. Click-solves 20 / 20, 8 on newly lit boards. Settings now reads BUILD 5.0.1. The board upgrade, APKs v5.2.0 to v5.11.0 (DEC-072, DEC-073). After v5.0.1 the owner asked for every board to be gone through one by one: real icons, a 3D feeling, hovering objects and live type. An audit shot all 394 boards and graded them on a written rubric (icons, depth, clarity, polish; docs/cycle7/BOARD_AUDIT.md): 0 A, 67 B, 233 C, 94 F. A 3D foundation landed first (docs/cycle7/FOUNDATION_3D.md: the icon registry, the hovering material with cast light, live type). Then 20 first-pass batches rebuilt 375 boards in visual families, each to the standing brief docs/cycle7/BATCH_BRIEF.md. Every batch was graded from its screenshots by an agent that had not built it, and 23 second passes took every board the grader held below A back through the loop. The grader's verdict is the one that counts (DEC-073). No generator, validator or answer changed; the golden is unchanged and CACHE_VERSION stays 65. | APK | Bytes | Added | What it carried | |---|---|---|---| | v5.2.0 | 35,902,549 | 420,968 | 3D foundation; batches 1–3 | | v5.3.0 | 36,203,645 | 301,096 | batches 4–5; second pass 1 | | v5.4.0 | 36,564,217 | 360,572 | batches 6–7; second passes 2–4 | | v5.5.0 | 37,334,841 | 770,624 | batches 8, 10, 11; second passes 5–6; the key-field fix | | v5.6.0 | 37,603,597 | 268,756 | batch 12; second passes 7–8 | | v5.7.0 | 38,026,785 | 423,188 | batches 13–14; second passes 9–10 | | v5.8.0 | 38,622,949 | 596,164 | batches 15–17; second passes 11–13; the compass view glyph | | v5.9.0 | 39,244,213 | 621,264 | batches 18–20; second passes 14–16 | | v5.10.0 | 39,552,417 | 308,204 | batch 21; second passes 17–21 | | v5.11.0 | 39,565,869 | 13,452 | second passes 22–23 | v5.11.0 is 434,131 bytes under the soft 40 MB budget. The three releases over 0.5 MB each carried three batches of new icon families and drawn board parts. Next, in order: 1. The owner's four board-upgrade questions (IDEA-155 to IDEA-158): batch 9's cleanup; breakers_pink's red facets against the lightness-only rule; pick_tray's width-flowed tray; and whether to raise the 40 MB soft budget, which batch 9 may cross. 2. Batch 9, once IDEA-155 is answered: merge, the independent grade, second passes, an APK. 3. The device run of v5.11.0 — owed by the owner. The hover, the cast light and the live type on a phone, the behaviour changes listed in the inbox's information note (dials that start on their first setting, nothing_wasted's tap to open then tap to mark, number_sequence's wheel counter, elimination's tap to cross, the walk-round dioramas redrawn as lit drawings), and everything still owed from v5.0.0 and v5.0.1. 4. Owner taste, IDEA-142 to IDEA-154 and IDEA-159 (below). DEC-071 bears on IDEA-143, IDEA-151, IDEA-152 and IDEA-154; information notes sit at the end of the inbox. Cosmetic, carried from the last grades (tmp-grade\GRADE_SP22.md, GRADE_SP23.md): meanwhile's year plates over its window, its lengthened bars unmarked, its card ribbons off the plate scale; grade_burning's 6 px lid pips; skip_bank's hop arcs through the pad labels; channel_shadow's square outlines on round tiles; harbour_breathes' basin lengths; and the tall boards (nothing_wasted d5 about 1,187 px, harbour_breathes 972 px, meanwhile 888 px). None blocks an A. Open after the v5 sweep, minor: one frame over 20 ms at the start of most returns to Home; Home idle at about 6–7 ms (IDEA-154 is the lever); the wood boards light at one 18 px mark rather than along the strike line; TwoCounters' lit box may sit 1 px off; targets under 32 px unchanged (739 at 360 px, 613 at 412 px; IDEA-139, note filed). Optional, at the owner's word: puzzle waves resuming (the next intact T27 trio is 6, "The plate": C-1264★ · C-1318 · C-1316); Phase 4 raster plates; R8 as a size lever. Owner taste, each built on a default: from the performance pass, IDEA-154 (whether to slow or coarsen Sepia's idle tick on Home to bring idle under 6 ms per frame; built the current tick). From Phase 5: IDEA-151 (plain screens arrive in carbon or a world colour; built carbon), IDEA-152 (whether primary keys latch too; built no) and IDEA-153 (the room plate names; built "The ledger" / "The logbook" / "The workbench"). History's STREAK readout was left untouched; it is still IDEA-044 (C6-08), against the founding "no streaks" rule. From Phase 3b: IDEA-149 (whether the Switchyard's decoy lamp is lit at all; built dim) and IDEA-150 (bigger fixtures in a smaller field for worlds with few stations; built the same layout for all). From Cycle 7 part 1: IDEA-142 (world names or plain area names), IDEA-143 (lit keys amber or the world's colour), IDEA-144 (Sepia's 7.5 Hz step in the band), IDEA-145 (the band on a region tapped inside the Chart), IDEA-146 (a fixed or scrolling band), IDEA-147 (kinetic as a shared look or a seventh world), IDEA-148 (narrow phones below 348 px). The earlier queue still stands: IDEA-119, IDEA-139, IDEA-141, IDEA-133..138 and 140, and recording the DEC entry for IDEA-127. IDEA-116 and IDEA-117 no longer block anything (DEC-068); R8 is still worth a phone test as a size lever. Carried, minor: the solving tap's remaining 33 ms frames (1 in 12 clean runs at 4× after R2; a per-board pass on the renderers' synchronous commit); react-native-svg on the web re-setting unchanged attributes on Sepia's paths (in the library, not patched); tests/solid_budget.test.ts flaked once under load (6.055 vs < 6 ms; it passed alone and on the main run); clicking the keys P10 could only DOM-check on a non-certificate seed; stall_moved's before view showing the after-view pick as picked (pre-existing; it submits correctly). The owner answered IDEA-127 on 2026-10-01: "Do everything". Wave 50 had built the last D21-clean trio the enjoyment backlog could give, so the waves stopped for the owner's call. Three tracks now run side by side: (a) research reopened — T27, the dawn chorus, Part Twenty-Two (C-1303…C-1328, ten suggested trios); (b) puzzle waves resumed, free to seat older catalogue entries beside the enjoyment ones (wave 51 seated C-454 from Cycle 3); (c) polish waves (P1 gave 29 older boards their key faces back; P2 fixed which_invisibility, the results card and seven clipped or flat boards; P3 fixed P2's next tier, five dead primaries, the ten worst boards of a 200-board survey and the status line; P4 re-shot from_hide, which needed no change, and fixed fourteen boards of P3's next tier; P5 fixed two_leadsmen's CAST THE LEAD face, from_hide's call rows and ten boards from waves 41–54; P6 moved pivot_landing's DOOR label, unclipped weir_facing and mended eleven more boards from waves 11–40; P7 spaced behind_under's overlapping rail tags, held wash_find's TELL-TALE whole and mended P6's next tier of thirteen boards plus smaller_hole; P8 gave twenty more boards their key faces, put cure_disease's slot claims and concede_deny's three verbs in one row each, wrapped between_numbers' ◂ value ▸ groups whole and held passed_average's DOUBLE-WEIGHTED whole; P9 made curb_cable's clipped d5 slots tappable again, unclipped linen_first's d5 pieces, held three hyphenated labels whole, split four lone-key rows evenly and gave 22 boards their key faces; P10 gave the last thirty flagged boards their key faces and completed the flat-face sweep). Wave 51 and P1 shipped together in APK v3.30.0; wave 52 and P2 in v3.31.0; P3 and wave 53, the hide, in v3.32.0; P4 and wave 54, the field guide, in v3.33.0; wave 55, the marsh, and P5 in v3.34.0; P6 alone in v3.35.0; P7 alone in v3.36.0; P8 alone in v3.37.0; P9 alone in v3.38.0; P10 alone in v3.39.0. The DECISIONS entry and IDEA-127's status await the owner; agents do not write them. Polish is done for now. P10 applied the per-board workaround to the last thirty boards flagged with IDEA-119's flat face. The only boards still flagged are four figures drawn short on purpose (drift_wall, ethylene_bowl, pick_ladder, pearl_strand) and any_ten's d4–d5 slot ring (IDEA-141). No further polish wave is planned without an owner answer. The size gate is lifted (DEC-068), so puzzle waves may resume once Cycle 7's visual work allows. The next intact trio in T27's shortlist is trio 6, "The plate" (C-1264★ · C-1318 · C-1316), checked unbuilt at 9437c9c; trio 4 is still broken. Watch — disk. APKs ship from the build copy on D:\j; the Gradle cache C:\g and the Android SDK stay on C:. At the board-upgrade close (2026-10-14) C: had about 79 GB free and D: about 53 GB; at the v5.0.1 close it was about 7.2 GB and 3.0 GB. Other processes and sessions consume C:, not this project. The next build re-checks both drives; D: is the tight one.

The standing loop — waves to 370 types and beyond

Cycle 5 runs as a loop: every wave builds a shortlist from the catalogue of record, and the registrar merges, drives the tree green, bumps CACHE_VERSION, commits, pushes and ships the APK. Until wave 19 a research territory also delivered ~25 proposals per wave for an assembler pass to admit; research was paused at C-1302 from then until the owner's 2026-10-01 answer (below). Fifty-five waves have run (wave 55 shipped on 2026-10-01: 391 → 394 types, the marsh, in APK v3.34.0 with polish wave P5). The loop paused after wave 50 for IDEA-127 and resumed on the owner's "Do everything" (top of this page); after wave 55 it paused again, by the APK size gate, which the owner lifted on 2026-10-03 (DEC-068); Cycle 7's visual overhaul runs first (top of this page). Builders run one at a time, with TEMP on D:, and the APK builds from D:\j.

Wave 55 — shipped: the marsh, T27's trio T5, the last puzzle wave before the size gate.

#C-IDnameshipped aswhat it turned out to need
The marshC-1323Two Counters, One Marshtwo_counterstwo counters' maps of one marsh (11 × 8 cells); the board's same-bird rule is same species within one cell, corners included; state floor(n × K / k); by level a lure of another species, counter B's map off by up to a cell, Chapman's truncated version at level 4, three counters at level 5 (the pair sharing the most first); the lure n + K − k has its own feedback; only map B is offset; each map's total printed (D33); the dossier spells the estimator in words, since the uppercase face cannot tell n from N
The marshC-1309Same Robin, Other Branchother_branchthe most 3D of the three: a point count under the Shutter, a diorama clearing per tick (a count post, eight stumps, the tick's birds); same species, same sector or the next, within two ticks = that bird moved, else a new one; state a count per species; the tie rule printed from level 4; a bird back after three ticks is new by the rule; the answer is the rule's replay, not a hidden "true" count; joins tally, which is now complete
The marshC-1306Same Interval, Higher Branchhigher_branch6–9 calls on small sonograms (14 semitone rows), grouped by the interval whatever note they start on; a shared first note across groups as the level 3 lure, signed three-note steps with one shared overall drop at level 4, slower calls (longer notes) at level 5; the number of groups printed; any renaming of the partition accepted; joins sonogram

Builder dd56dee, merge a63efd7, registrar 5280653, on a new family file MarshGenerators.ts (invented species REEDLARK, MUDWING and SEDGEPIP) with one small pure scene module, marshScene.ts (2 KB); the point count reuses DioramaView, fitRoomFrame and the Shutter. Why these entries: the built-check found all three unbuilt; D21 Gf-RQ, Gsm-WM and Ga (Ga thin, 6 built), no flagged row, no shared family, no swap needed. C-1328★ stays locked: C-1322 is unbuilt. Built within the open owner questions, on their conservative defaults: silent (IDEA-128), invented birds (IDEA-129; the robin and the cuckoo appear only in the catalogue titles and the cuckoo's reveal) and taps (IDEA-131). IDEA-130 and IDEA-132 were not touched, and IDEA-136 was not engaged. The questions stay open. Deviations, all declared in dd56dee, are in the table and the cycle log; no catalogue code was remapped. Sources: Wikipedia "Mark and recapture"; Ralph, Droege & Sauer (1995), USDA Forest Service Treesearch 31755; Wikipedia "Common cuckoo". Every species, map, sector rose, window, tie rule and call is the boards' own. Station codes two_counters 2A-03, other_branch 4M-01, higher_branch 5I-02, renaming nothing. Week exclusions: higher_branch joins sonogram (with twice_over); other_branch joins tally (with most_at_once), which is now complete; pair bans keep_track × other_branch, every_wall × other_branch and no_halves × higher_branch.

The visual check shot d1, d3 and d5 of every board at 360 px, with solved states, after the last geometry change, and click-solved each to CORRECT. It caught the uppercase dossier turning n/K/k into N/K/K, maps squeezed to 12 px cells, a group letter jammed against its title, stumps in a bird's tone, a slow call overflowing its strip and higher_branch over the 400-View budget. The robustness scan: all 394 types × difficulties 1–5 × 60 seeds, 118,200 generations, 0 throws. Golden 11730 → 11820 (90 added, 0 moved); chart 391 → 394, 0 renamed. Full jest 7343 tests / 189 suites (7344 / 190 with the temporary scan); gate:web passed. CACHE_VERSION 65. APK v3.34.0-wave55 (33,932,644 bytes, 10 fonts, with polish P5), built fresh from D:\j, commits 3a2e73b → 9437c9c. It is 67,356 bytes (about 0.07 MB) under the 34 MB gate; this close added 42,656 bytes. New puzzle waves are paused until IDEA-116 or IDEA-117 is answered.

Polish wave P10 — shipped: the flat-face sweep is complete (thirty boards). Polish 1c0ae4b, merge ea49417: the last thirty boards still flagged with IDEA-119's flat face took the per-board workaround (adders_only, break_nines, cards_heavier, dame_dos, darn_thin, down_the_line, empty_basket, every_bundle, feet_went, key_couple, kopi_kosong, long_pole, one_hundred, one_sort, one_standing, pick_tray, rivet_twin, screw_back, seven_shades, starter_ten, stitch_loops, stall_moved, switch_shouting, third_village, tray_reversed, tub_mangle, two_letters, tyre_sizes, wide_base, write_marker). Also: two_letters' d5 cards ran past the board edge and now hold inside it (maxWidth plus keep()); tray_reversed, wide_base and empty_basket split 2 + 2; one_hundred's THEY DIVERGE no longer wraps alone at d5 (verdict minimum width 104 → 84 px). Ruled deliberate figures: drift_wall, ethylene_bowl, pick_ladder, pearl_strand. 60 of 60 click-solves CORRECT; some normal-path keys met certificate days at the harness seed and were only DOM-checked (carried). No regressions. Golden diff empty, CACHE_VERSION still 65; about +5.1 KB of source. tsc 0 · jest 7343 / 189 · gate:web passed on ea49417. APK v3.39.0-polish10 (33,937,884 bytes, 10 fonts), built fresh, commits 96e13b2 → ea49417: 1,372 bytes more than v3.38.0, 62,116 bytes under the gate. No new IDEA; information notes on IDEA-116, IDEA-119, IDEA-127 and IDEA-139.

Polish wave P9 — shipped: curb_cable's hidden d5 slots, linen_first's pieces, three hyphen holds, 22 boards. Polish 1b86594, merge f102a81: the next batch of the boards P8's re-check flagged with IDEA-119's flat face, plus P8's two skips. Fixed, worst first: curb_cable (a real bug: at d5 slots 7–8 were clipped and could not be tapped at 360 px; the row now splits 4 + 3 / 4 + 4, and the faces fill); count_verb (glyphs on one line, cells 64 px); any_ten (the chip bank split evenly, the slot ring centred for 48 px keys); linen_first (d5 piece text was clipped; piece keys are 240 wide and grow); hyphenated labels held whole on eight_cups (MILK-FIRST / TEA-FIRST), own_rule_closes (RULE-CORRECT) and slow_way_round (WORD-TIME); faces on lawn_stripes, even_generations, file_before, sides_middle, three_irons, web_wet, whites_first, milk_last, small_rinses, soft_water, too_close, trace_lake and turn_cups; P8's skips mended (question_wears' bands 3 + 2 / 3 + 3, rank_cups' cups 3 + 3). 44 of 44 click-solves CORRECT at d3 and d5; no regressions. Skipped: any_ten's d5 slot ring (22 slots on a 288 px ring; IDEA-141), lawn_stripes' 38 × 26 lane keys and the under-44 keys on pick_tray, key_couple, long_pole and pearl_strand (IDEA-139). Golden diff empty, CACHE_VERSION still 65; about +4.4 KB of source. tsc 0 · jest 7343 / 189 · gate:web passed on f102a81. APK v3.38.0-polish9 (33,936,512 bytes, 10 fonts), built fresh, commits 772a7c7 → f102a81: 1,184 bytes more than v3.37.0, 63,488 bytes under the gate. New IDEA-141; information notes on IDEA-119 (about 34 boards still flagged) and IDEA-139.

Polish wave P8 — shipped: twenty flat-faced boards, between_numbers' steppers, concede_deny's verbs, passed_average's DOUBLE-WEIGHTED. Polish 0e71c5f, merge 7801773: a 360 px re-check of the boards P1–P7 had not touched flagged 80 with IDEA-119's flat face (six of them figures drawn short on purpose); P8 mended the twenty where it read worst. Faces fill on cure_disease, between_numbers, concede_deny, passed_average, only_new, question_wears, banker_stand, developed_together, every_wall, question_broken, labels_force, next_spring, open_drawer, read_round, strip_answer, forty_five, tube_show, split_stack, rank_cups and air_cell. Also: cure_disease's slot claims share one row; between_numbers' ◂ value ▸ groups wrap whole (two new Views); concede_deny's three verbs share one row; passed_average's DOUBLE-WEIGHTED is held whole. 40 of 40 click-solves CORRECT at d3 and d5, plus certificate days on seven boards; the regression re-shoot was clean. Skipped: question_wears' fifth band (4 + 1) and rank_cups' sixth cup (5 + 1) wrap alone. Golden diff empty, CACHE_VERSION still 65; about +4.1 KB of source. tsc 0 · jest 7343 / 189 · gate:web passed on 7801773. APK v3.37.0-polish8 (33,935,328 bytes, 10 fonts), built fresh, commits 9062285 → 7801773: 688 bytes more than v3.36.0, 64,672 bytes under the gate. No new IDEA; information notes on IDEA-119 (about 54 boards still flagged) and IDEA-139.

Polish wave P7 — shipped: behind_under's rail tags, wash_find's TELL-TALE, twelve more boards. Polish 4b4c4a3, merge 6d472e6: P6's next tier from waves 11–40 plus P6's smaller_hole skip. Fixed: behind_under (rail tags declared 30 wide but drawn 48, so they overlapped; now spaced at 48 and staggered onto two rows, faces fill), wash_find (TELL-TALE no longer breaks at its hyphen, the dossier items held, faces fill), sheet_shades (d5 peg rows clipped at both edges; hour keys in even rows), thirty_two (steppers in pairs), reel_eight (six dancers in one row), off_spiral (even pocket rows), spread_thin (sayings 2 + 2), every_dowel (legend clause held), grocer_pyramid (faces centred), plumb_batter (caption clause held), flat keys on turn_table, hint_no_spoil and every_crumb, and smaller_hole's detent rows split evenly. 28 of 28 click-solves CORRECT; weir_facing, grade_burning, sheet_drags and two_leadsmen re-shot clean; no key under 44 px. Golden diff empty, CACHE_VERSION still 65; about +4.4 KB of source. tsc 0 · jest 7343 / 189 · gate:web passed on 6d472e6. APK v3.36.0-polish7 (33,934,640 bytes, 10 fonts), built fresh, commits 7038b3d → 6d472e6: 2,212 bytes more than v3.35.0, 65,360 bytes under the gate. New IDEA-140 (a card whose two facts cannot share a line: corners_meet's BALL card breaks after its "·"); information notes on IDEA-119 (about ninety boards still flat) and IDEA-139.

Polish wave P6 — shipped: pivot_landing's DOOR, weir_facing's clip, eleven flat-keyed boards from waves 11–40. Polish a70a278, merge cac31a8, after a 360 px d3 survey, with an automated page check, of all 147 boards from waves 11–40 that no polish wave had touched. Carried item discharged: pivot_landing's DOOR label is off its dashed cell. Fixed: weir_facing (the sighting column was clipped and the chart ran wider than the board), corners_meet (DRUM ⌀23×8 held whole, and flat keys), class_clip (NEW / LINE +), grade_burning (six grade keys at 44 × 48 in one row), and the flat-key workaround on same_mistake, bearer_bar, grand_march, chalk_seam, smaller_hole, three_frames, shear_draws and first_pour. Wave 55's boards were checked and read cleanly. 26 of 26 click-solves CORRECT, no regressions, golden diff empty, CACHE_VERSION still 65; about +3.3 KB of source. tsc 0 · jest 7343 / 189 · gate:web passed on cac31a8. APK v3.35.0-polish6 (33,932,428 bytes, 10 fonts), built fresh, commits eb1b5b8 → cac31a8: 216 bytes smaller than v3.34.0, 67,572 bytes under the gate. No new IDEA; information notes on IDEA-119 (about a hundred surveyed boards still flat) and IDEA-139.

Polish wave P5 — shipped: two_leadsmen's primary, from_hide's call rows, ten boards from waves 41–54. Polish b100334, merge 9437c9c, after a fresh 360 px survey of the 42 boards built in waves 41–54. Carried items fixed: two_leadsmen's CAST THE LEAD now draws its full face, and from_hide's LOW and HIGH are held whole with their direction. Ten boards fixed: sheet_drags, sixty_four, figures_set, sprinkle_press, collar_first, pivot_landing, last_piece, wring_rinse, back_home and sight_call (overlapping tags, overflowing cards, orphaned glyphs, clipped corners). The other 30 boards read cleanly. 24 of 24 click-solves CORRECT; Home, the Chart and the results card were re-checked with no regressions; no golden moved, and there was no CACHE_VERSION bump. About 2.4 KB of APK. No new IDEA; information notes on IDEA-119 and IDEA-139. Carried: pivot_landing's DOOR label overlaps its dashed cell (minor).

Wave 54 — shipped: the field guide, T27's trio T3.

#C-IDnameshipped aswhat it turned out to need
The field guideC-1313Usually, Except in Winterusually_winterfour field-guide entries as generated prose over a formal model; label five dated sightings with a species or CANNOT SAY; qualifiers by level: "except in juveniles" and "lost in winter", then "only in flight", "usually", "never X and Y together" / "neither X nor Y", and "As X, but …"; misreading each rung's qualifier moves a label; "males only" not built (sightings carry no sex); the verifier parses the printed prose, never the stored clauses; joins key
The field guideC-1314The Mark That Splits Themmark_splitseight labelled birds of two look-alike species, six binary marks each (the eye-ring drawn by FieldPlate); choose the mark or pair that splits them, then name three new birds; by level one mark, lures holding on six and on seven of eight, either of two, one present and one absent; cards grouped by species on two shelves, not shuffled; the connective printed, marks tapped in either order
The field guideC-1311The Jay Said Buzzardjay_buzzarda morning's log by minute and sector, the raptor's call first and loudest; a call on a mimic's card within one minute and one sector of that mimic seen is not a record; tick the checklist that stands; a cancelled regular at level 2 (the board's own rung), an off-sector call that stands, a second mimic, the raptor seen later at level 5; the raptor never drawn

Builder ba4c958, merge 8199015, registrar c7d127b, on a new family file FieldGuideGenerators.ts (it imports SS_SPECIES from HideGenerators.ts) and one new shared component, FieldPlate.tsx (HidePlate plus an eye-ring). Why these entries: the built-check found all three unbuilt; D21 Grw-RC, Gf-I and EF-INH, two thin abilities (Grw-RC 2 and EF-INH 10 built), one flagged row (C-1313), no swap needed. C-1327★ Silent Because Young is now unlocked: both its parents are built. Built within the open owner questions, on their conservative defaults: silent (IDEA-128), invented birds (IDEA-129: MEWHAWK, CRAGMEW, MOCKLE, PIEJACK and the hide's eight; the real jay and buzzard appear only in the title and the reveal), taps (IDEA-131) and faint labels on empty new-bird keys (IDEA-136). IDEA-130 and IDEA-132 were not touched. The questions stay open. Deviations, all declared in ba4c958, are in the table and the cycle log; no catalogue code was remapped. Sources: Wikipedia "Roger Tory Peterson" and "Eurasian jay"; Peterson's "his illustrations" clause was left out under the pronoun rule. Every species, entry, mark, log and rule is the boards' own. Station codes usually_winter 5A-04, mark_splits 1B-21, jay_buzzard 6E-03, renaming nothing. Week exclusions: usually_winter joins key (with singing_silent); pair bans brewery_spared × jay_buzzard, paper_trail × usually_winter, both_ends × usually_winter, which_card × mark_splits and odd_one_out × mark_splits.

The visual check shot d1, d3 and d5 of every board at 360 px, with solved states, after the last geometry change, and click-solved each to CORRECT. It caught usually_winter's bird drawn too small, a stray separator on the mimic card and "has a WING BARS" in the split's feedback. The robustness scan: all 391 types × difficulties 1–5 × 60 seeds, 117,300 generations, 0 throws. Golden 11640 → 11730 (90 added, 0 moved); chart 388 → 391, 0 renamed. Full jest 7302 tests / 188 suites (7303 / 189 with the temporary scan); gate:web passed. CACHE_VERSION 64. APK v3.33.0-wave54 (33,889,988 bytes, 10 fonts, with polish P4), built fresh from D:\j, commits 822b61b → c7d127b. It is 110,012 bytes (about 0.11 MB) under the 34 MB gate; this close added 48,396 bytes. At most one more puzzle wave fits.

Polish wave P4 — shipped: from_hide re-shot, fourteen of P3's next tier. Polish 54372ee, merge dfa1d9c. from_hide was re-shot at d1, d3 and d5 across all four facings on its final geometry: it reads well and needed no change, so the carried re-shoot is discharged (minor: some call rows wrap a lone LOW or HIGH). Fourteen boards fixed: touch_frame, box_pile, mirror_wing, head_rice, nest_inside, every_wheel, channel_shadow, skip_bank, nowhere_hang, straight_line, which_wall, more_glass, even_turns and turn_pot (flat keys, clipped labels, overflowing rows, run-together numbers). dry_stack and match_check were clean. 28 of 28 click-solves CORRECT; a five-board P1–P3 regression sample was pixel-identical; no golden moved, and there was no CACHE_VERSION bump. Filed: IDEA-139 (keys under Key's 48 px minimum: should per-board overrides have a floor), and an information note on IDEA-119. Carried: two_leadsmen's CAST THE LEAD primary draws flat.

Wave 53 — shipped: the hide, T27's trio T2.

#C-IDnameshipped aswhat it turned out to need
The hideC-1320From the Hidefrom_hidethe showpiece: the marsh round a hide at four facings, seen through the hide's window as a DioramaView and turned with ◂ ▸; each call given relative to the facing it was heard at (eight sectors, low on the water or high on a reed or post); level 3 calls from other facings, level 4 two birds in one direction at different heights, level 5 a HIDDEN singer; a mirror lure at every level; "bird box" read as the bird on its perch, no nest box; each facing drawn as its own room; joins look-around
The hideC-1307A Phrase for Every Birdphrase_birda card binds 6–9 invented birds to invented phrases, shuts and reopens against par (looks reported, never graded); look-alike plates from level 2, a six-word phrase pool from level 3, sonogram probes at levels 4–5 under the board's own law (C-1305 is unbuilt), a trading second card at level 5; Glr-MA declared as Glr (§193 ruling 8); joins glr-ma
The hideC-1312Singing or Silentsinging_silenteight cards: a singing bird named by the song key, a silent one by the plumage key, a bird in flight (level 5) by the call key; incongruent cards 2/3/4/5/5, switch cards first; levels 4–5 put strip and drawing in one frame, swapping sides; the keys as one table; founds key

Builder f1a3498, merge f25d07d, registrar 261b07a, on a new family file HideGenerators.ts with a pure scene module hideScene.ts and a shared HidePlate.tsx. Why these entries: the built-check found all three unbuilt; D21 Gv-SR, Glr and EF-SHIFT, two thin abilities (Glr 6 and EF-SHIFT 6 built), one flagged row (C-1312), no swap needed. Built within the open owner questions, on their conservative defaults: silent (IDEA-128), invented birds (IDEA-129), one English mnemonic and no Japanese example (IDEA-130, option (b)), taps (IDEA-131) and faint dead labels (IDEA-136). The questions stay open. Deviations, all declared in f1a3498, are in the table and the cycle log; no catalogue code was remapped. Sources: Wikipedia "Barred owl" ("Who cooks for you"), "Roger Tory Peterson" and "Spectrogram"; every bird, phrase, plate, key, call and marsh is the boards' own. Station codes from_hide 3Q-04, phrase_bird 4L-01, singing_silent 6H-02, renaming nothing. Week exclusions: from_hide joins look-around, phrase_bird joins glr-ma, new family key (singing_silent); pair bans dimension_drop × singing_silent and same_table × singing_silent; C-1307 × C-1305 stays DEFERRED.

The visual check click-solved every board at levels 1, 3 and 5 and shot all four facings of from_hide. It caught posts and reeds painted under the water, a shallow stage, walls showing behind the bank, overlapping tag keys, unreadable key plates and phrases breaking inside a word. After the shots, the full jest run's painter test caught reed stems and posts edging over a bird from one facing; the stems moved behind the bird and the posts and tussocks were slimmed. The tests pass on that geometry, but the shots show the earlier perches: re-shoot from_hide in P4. The robustness scan: all 388 types × difficulties 1–5 × 60 seeds, 116,400 generations, 0 throws. Golden 11550 → 11640 (90 added, 0 moved); chart 385 → 388, 0 renamed. Full jest 7258 tests / 187 suites (7259 / 188 with the temporary scan); gate:web passed. CACHE_VERSION 63. APK v3.32.0-wave53 (33,841,592 bytes, 10 fonts, with polish P3), built fresh from D:\j, commits a828143 → 261b07a. It is 0.16 MB under the 34 MB gate; this close added about 58 KB.

Polish wave P3 — shipped: P2's next tier, five dead primaries, ten clipped or crowded boards, the status line. Polish 2568dcd, merge eb19650. two_leadsmen's turn keys print the verb small above the side; elder_to_whom's held items no longer break inside; morse_fence's posts are raised 22 × 40 and its legend runs five to a row. The dead primaries on pool_rule, which_way_up, certain_likely, ghost_box and answer_already have faint labels, board by board (IDEA-136 stays open). The ten worst of a 200-board survey at 360 px were mended: crystal_common, tape_empty, sock_ran, hill_carries, closed_both, great_wash, roll_splits, wrong_light, point_hour and chevrons_show. StatusLine wraps each │ with its value on Home, the Chart and the stage header. 36 of 36 click-solves CORRECT; no golden moved, and there was no CACHE_VERSION bump. Filed: IDEA-138 (rail labels centre on the whole board: fix it once in Board.tsx, or board by board).

Wave 52 — shipped: the dawn chorus, the first trio from the reopened research.

#C-IDnameshipped aswhat it turned out to need
The garden at dawnC-1310The Most at Oncemost_at_oncea garden's moves one tick a tap under the Shutter (land, leave, fly over); count the most of each species on the lawn at any one time, never the total, and only birds that land; level 4 two moves a tick, level 5 a land-and-leave tick that holds a most; "at any one time" read as after every move, in printed order; counts stepped − / + after the stream; a full DioramaView garden; founds tally
The garden at dawnC-1303Sing Each Phrase Twice Overtwice_oversplit a 12–30 note sonogram strip into phrases, each a primitive block of 1–4 notes sung 2–4 times; level 3 up a mimic stretch sung once (printed as 2 or 3 notes), level 4 a block sung four times, level 5 a phrase starting on the last one's note; exactly one split; tapped note by note; silent; flat, the View budget spent on the strip; founds sonogram
The garden at dawnC-1317Through the Leavesthrough_leavesa bird behind leaves, 30–60% showing; choose the one of five plates that agrees with every patch of bird and of sky; the conflict region graded per level on a 20 × 15 raster; level 5 leans the bird 16, 23 or 28 degrees about its feet by exact Pythagorean rotations; leaves in layered relief; founds plate

Builder 9889274, merge 3b7eecf, registrar 4fd0580, on a new family file DawnChorusGenerators.ts with a pure scene module dawnChorusScene.ts. This is T27's trio T1, "The garden at dawn" (addendum §196). Why these entries: the built-check found all three unbuilt and none held; D21 EF-UPD, Ga and Gv-CS, three thin abilities (8, 6 and 9 built), one flagged row (C-1317), no swap needed. Built within the open owner questions, on their conservative defaults: silent (IDEA-128), invented birds (IDEA-129), taps (IDEA-131), and the garden count described but not named (IDEA-132). The questions stay open. Deviations, all declared in 9889274, are listed in the table and the cycle log; no catalogue code was remapped. Sources: the RSPB garden-count rules (discoverwildlife.com and rspb.org.uk) and Wikipedia "Song thrush", "Spectrogram" and "Jizz (birding)"; every bird, song, note shape, plate, leaf and lean is the boards' own. Station codes most_at_once 4H-02, twice_over 5H-02, through_leaves 3F-11, renaming nothing. Week exclusions: new families sonogram, tally and plate; pair bans keep_track × most_at_once, running_best × most_at_once, rhythmic_necklace × twice_over and in_heap × through_leaves; the rest of §197 waits in a T27 DEFERRED block.

The visual check click-solved every board at levels 1, 3 and 5. It caught the hedge drawn in front of the lawn, birds too small, coarse and legless plate silhouettes, and a brown lower sky that read as ground. The robustness scan: all 385 types × difficulties 1–5 × 60 seeds, 115,500 generations, 0 throws. Golden 11460 → 11550 (90 added, 0 moved); chart 382 → 385, 0 renamed. Full jest 7213 tests / 186 suites (7214 / 187 with the temporary scan); gate:web passed. CACHE_VERSION 62. APK v3.31.0-wave52 (33,783,332 bytes, 10 fonts, with polish P2), built fresh from D:\j, commits 5250b95 → f7838b5. It is 0.22 MB under the 34 MB gate; this close added about 50 KB.

Polish wave P2 — shipped: which_invisibility, the results card, and seven clipped or flat boards. Polish 5d1be4f, merge f7838b5. which_invisibility is re-laid out (no overlapping ticks, its keys in rows). The results card was reached for the first time, by driving whole sessions; its one fault, "▴ 1 DEEPER TODAY" splitting after its glyph, is fixed in WorkedAreas.tsx. way_fights scales to the board's width; paid_living's keys wrap inside the board; sheltered_water's cells are one cell again (Key's 48 px minimum had overridden them); redact_publish's column widths, great_circle's inner width and anamorph's status and keys are fixed; band_number's dead labels are faint, not invisible; self_sized_regions' cells have their faces. Every touched board was click-solved; no golden moved, and there was no CACHE_VERSION bump. Filed: IDEA-136 (dead primary key labels vanish on five more boards) and IDEA-137 (way_fights' joint keys are about 37 px at 360 px, under the 44 px target).

Wave 51 — shipped: tea time, the first trio to seat an older catalogue entry.

#C-IDnameshipped aswhat it turned out to need
Tea timeC-1212★Every Pot on Its Own Roundevery_potfusion on each_round and two hands: three pots, a fill and a pour each take a hand for a tick, a pour falls on the tick its steep ends, every pour by the close, never three actions on one tick; from level 3 the steep is chosen and draws on the leaf; certificates THE HANDS COLLIDE and THE LEAF IS SPENT; a DioramaView tea stall; joins steep-lanes, completing it
Tea timeC-1202The Waist Looks Lighterwaist_lighterorder the glasses by darkness ÷ width at the height read (tulip, tumbler, flared); from level 3 two readings and unstirred glasses, at level 5 a milk layer; darkness steps are printed numbers (D33); luminance only, IDEA-053's hue rider stays held; a tray of sliced glasses; joins shade, completing it
Tea timeC-454Fragment Intersectionfragmentsfrom the Cycle 3 catalogue: one of 4–6 cutters cut a biscuit, and 2–4 pieces are left, never turned; a bright side is the cutter's edge; exactly one cutter takes every piece at once without overlap, and at level 5 a decoy fails only because two pieces would share cells; a plate of pieces with raised rims

Builder 8054297, merge 1c53233, registrar e9c5bb6, on a new family file TeaTimeGenerators.ts with a pure scene module teaTimeScene.ts. Why these entries: option (b) of the owner's answer, a trio mixing the enjoyment backlog with an older entry. C-1212★ (Gf-RG) was newly unlocked by each_round; C-1202 (Gq) was chosen as the senses entry over the other Gq rows (sound but not sensory, flagged, caveated, or weak on D42); C-454 (Gv-CS) was chosen because the thinnest abilities offered nothing buildable as a board (Gsm-MS has no unbuilt entry, Grw-RC's are text clue boards, Ga would be sound served silently) and Gv-CS carries the senses and 3D direction. Cost did not select (D26). Deviations, all declared in 8054297: waist_lighter's Gq is seated at Gf-RQ in FACTS; every_pot has zero pour tolerance, three pots at every level and nothing above the ladder; waist_lighter's milk layer is always on top and unstirred glasses are stronger low; fragments builds R06-53's mask windows as broken pieces, with the joint-placement rule carrying level 5. Sources: Wikipedia "Gongfu tea ceremony", "Turkish tea" and "Beer–Lambert law"; every tick, percent, band, width, step and cutter is the boards' own. Station codes every_pot 1M-05, waist_lighter 2C-17, fragments 3F-10, renaming nothing. Week exclusions: steep-lanes and shade are whole; waist_lighter × C-1085 stays DEFERRED; C-454 has no ruling.

The visual check click-solved every board at levels 1, 3 and 5. It caught an emoji in a label, small glasses, a plate swamping its pieces, and a generator file mis-encoded by a PowerShell edit (mojibake in the feedback text) that no test caught; the builder brief now requires UTF-8-safe edits and a grep for Ã/Â before committing. The robustness scan: all 382 types × difficulties 1–5 × 60 seeds, 114,600 generations, 0 throws. Golden 11370 → 11460 (90 added, 0 moved); chart 379 → 382, 0 renamed. Full jest 7170 tests / 185 suites (7171 / 186 with the temporary scan); gate:web passed. CACHE_VERSION 61. APK v3.30.0-wave51 (33,733,348 bytes, 10 fonts, with polish P1), built fresh from D:\j, commits 9b67cce → e9c5bb6. It is 0.27 MB under the 34 MB gate.

Polish wave P1 — shipped: the older boards get their faces back. Polish 60724fa, merge 500b5f3. Most Cycle 1–4 boards were hit by Key's face-height quirk (IDEA-119). P1 applied the per-board minHeight workaround to 29 renderers, leaving Key.tsx alone: one_stroke's dots had no face at all, magic_square's third row had vanished, mini_sudoku had hairline cells and a clipped last column, position_recall and nonogram read as ruled lines, futoshiki, card_memory, toggle_grid, echo_lock, ordered_ranking and alternade_split had strips for keys, bulgarian_shuffle's stones are now slabs, and the Cycle 1 submit keys are whole again. StatusLine no longer orphans the clock. Every touched board was click-solved; the goldens did not move, and there was no CACHE_VERSION bump. Filed: IDEA-133 (header wrap), IDEA-134 (emoji in two Cycle 1 boards' data), IDEA-135 (futoshiki's marks and legend).

Wave 50 — shipped: after the dinner, the fifth cross-part trio and the last clean one.

#C-IDnameshipped aswhat it turned out to need
After the dinnerC-1153Cold Before Hotcold_hotlift every stain on every item through the cold tub and the copper, one item per vessel, all by dusk; the copper sets a heat-setting stain for good, and from level 4 the tub spreads a cold-spreading one, so routes run both ways; from level 2 the chart shutters after the first step and reopens at a par cost in looks; the certificate is THE COPPER CANNOT SERVE THEM ALL; level 5's sun is not built; a DioramaView wash-house; founds two-lane
After the dinnerC-1206Longer Each Roundeach_roundchoose a steep per round from a 10–60 s ladder; a steep draws its percent of what the leaf still holds, and every cup lands in its band; level 3 a quick rinse, level 4 two grades, level 5 one top-up and its rinse; the certificate is THE LEAF IS SPENT; nothing above the ladder is offered; a DioramaView tea tray; joins steep-lanes; unlocks C-1212★
After the dinnerC-1244★Round the Corner Without Touchinground_cornerfusion on round_room and floorcraft: round_room's route with one or two couples dancing printed programmes ahead; never hold a cell another couple holds at the end of the same bar; the certificate is NO WAY PAST; collisions are checked at the ends of bars only, and level 5's second side is not built; round_room's corner as a DioramaView with a plan by bar; joins ballroom, completing it

Builder d65fce0, merge dc96b3c, registrar 8987715, on a new family file AfterDinnerGenerators.ts with a pure scene module afterDinnerScene.ts, from addendum Parts Fifteen (T21), Seventeen (T22) and Nineteen (T24), none of them neighbours: the first trio to span three parts. The family file imports round_room's pool and constants unchanged; golden moved 0. Why these entries: C-1153 was the last buildable Gf-RG entry and C-1206 the last Gf-RQ, so the third seat had to be Gq. C-1244★ was chosen over C-1264★ and C-1288★: its part is nearest; it is a ★ with a live parent; it is the owner's spatial look-around direction; and it is not recorded weak on D42, where the other two are. Cost did not select (D26). round_corner's Gq is seated at Gf-RQ in FACTS, as round_room's is; the catalogue abilities stay distinct. Deviations, all declared in d65fce0: cold_hot's level 5 sun is not built, the shutter starts at level 2, and its certificate feedback states the best finish; each_round offers nothing above the ladder and makes certificate days only where the exhaustion bound holds; round_corner prints the couples as cells by bar, checks no collision mid-bar and builds no second side at level 5. Sources: Rinse, "Hot or cold water for stains"; Laveries Speed Queen, "Remove an egg stain"; Wikipedia "Gongfu tea ceremony" and "Line of dance"; Miss Emma's Dancing, "Floorcraft". Every chart row, hour, percent, band, card, bar and cell is the boards' own. Station codes were distinct and renamed nothing: cold_hot 1M-04, each_round 2B-33, round_corner 2C-16. Week exclusions: a new family two-lane (tub_mangle, nowhere_hang, cold_hot); each_round joins steep-lanes with pair bans on small_rinses and roll_size (moved up from DEFERRED); round_corner completes ballroom.

The visual check: every board click-solved at levels 1, 3 and 5, plus one certificate day per type. Fixed on the way: overlapping boxes the painter cannot order, a zero-width leaf gauge and the plan's clipped bottom row. The robustness scan, run by the registrar at the close: all 379 types × difficulties 1–5 × 60 seeds, 113,700 generations, 0 throws.

Golden 11280 → 11370 (90 added, 0 moved); chart 376 → 379, 0 renamed. Full jest 7127 tests / 184 suites (7128 / 185 with the temporary robustness scan); gate:web passed. Week exclusions now re-draw 1.60% of picks (3.18% of days), down from wave 49's 1.87% (3.46%). CACHE_VERSION 60. APK v3.29.0-wave50 (33,663,096 bytes, 10 fonts), built from D:\j with the freshness check passing, commits b6b5503 → 8987715. It is 0.34 MB under the 34 MB gate; wave 50 added about 63 KB, so roughly 2–5 waves remain (IDEA-116 is the owner's lever).

Wave 49 — shipped: the line and the floor, the fourth cross-part trio.

#C-IDnameshipped aswhat it turned out to need
Line and floorC-1150Share the Pegshare_peghang every item from the left post, long or short edge up; touching thin corners share one peg; the widths fit the line and the pegs fit the bag; from level 3 a heavy item hangs near a post, and the certificate is THE BAG IS SHORT; items hang side by side from the left post, a share is automatic, and at most six items hang; a DioramaView drying green; joins lever-statics-centroid
Line and floorC-1242Round the Room on the Diagonalround_roomchain ballroom figure cards by entry and exit alignment from diagonal wall to diagonal wall, within the side's length and tolerance; level 3 adds the wall band, level 4 whole phrases, level 5 the centre band and no tolerance; the certificate is THE SIDE CANNOT BE FITTED; level 5's second side and corner are not built, and cards may repeat; joins ballroom; unlocks C-1244★
Line and floorC-1248★The Figures Set the Progressionfigures_setfusion on sixty_four and down_the_line: build a sixty_four dance with a single or double progression so your couple meets the right couples; exactly one step works; the certificate is NO DANCE MEETS THEM; dancing with the first swap and passing the second is the board's own; joins longways, completing it

Builder b5f59d8, merge f20c795, registrar 3fc15cb, on a new family file LineAndFloorGenerators.ts with a pure scene module lineAndFloorScene.ts, from addendum Parts Fifteen (T21) and Nineteen (T24), which are not neighbours. The family file imports sixty_four's card pool unchanged; the sixty_four and down_the_line goldens moved 0. Why these entries: only three narrow abilities are left anywhere in Parts Fifteen to Twenty-One. Gf-RG is only in Part Fifteen (C-1150, C-1153); Gf-RQ is only in Part Seventeen (C-1206) and Part Nineteen (C-1248★); everything else is Gq. No two neighbouring parts give three, so the best trio from any two parts is Fifteen + Nineteen: C-1150 (Gf-RG), C-1242 (Gq) and C-1248★ (Gf-RQ). round_room's Gq is seated at Gf-RQ in FACTS (the rinse_above precedent); the catalogue abilities stay distinct. Sources: Wikipedia "Clothes line", "Clothespin", "Line of dance" and "Contra dance". Peg sharing, every width, peg count, card and travel, and the first-swap rule are the boards' own. Station codes were distinct and renamed nothing: share_peg 1D-22, round_room 2C-14, figures_set 2C-15.

The robustness scan, run by the registrar at the close: all 376 types × difficulties 1–5 × 60 seeds, 112,800 generations, 0 throws.

Golden 11190 → 11280 (90 added, 0 moved); chart 373 → 376, 0 renamed. Full jest 7084 tests / 183 suites; gate:web bundle 7130 KB. Week exclusions now re-draw 1.87% of picks (3.46% of days), down from wave 48's 1.92% (3.64%). CACHE_VERSION 59. APK v3.28.0-wave49 (33,599,916 bytes, 10 fonts), the first built from D:\j, covers waves 48 and 49, commits 825ffae → d35ad51. It is 0.40 MB under the 34 MB gate; the two waves added about 119 KB. The first build from D:\j failed on stale absolute-path caches, and the previous v3.27.0 APK was briefly copied to O: under the v3.28.0 name; it was caught within minutes and deleted, every path-bearing cache was cleared, and a clean full build shipped. The ship step now checks that gradle exited 0 and that the APK is newer than the build start (docs/BUILDING.md).

Wave 48 — merged, APK held, then shipped in v3.28.0: the Monday errands, the third cross-part trio.

#C-IDnameshipped aswhat it turned out to need
Monday errandsC-1156★Nowhere to Hang Itnowhere_hangfusion on dry_dusk and tub_mangle: loads go tub → mangle → line in one order, with a small basket and a partly shaded line, and the goal is everything dry by dusk; on normal days Johnson's order and the listed order both miss dusk; from level 3 the certificate is NOT BY DUSK, proved by the line-hours bound (loose, so dusk sits some hours before the true best); the hanging rule, the basket and "twice in shade" are the board's own; joins line-plan, completing it; pair ban with tub_mangle
Monday errandsC-1157Rinse Above, Wash Belowrinse_aboveplace washing jobs at stream stations on the right stones (FLAT, POOL, RUN) so each job's water is within its cap; dirt is carried downstream in aggregate, and from level 4 a side spring cleans the water; from level 3 the certificate is THE BANK CANNOT HOLD THE DAY; the source's second household and dyer's tint are not built; a DioramaView walk-round; founds stream-rail, a single board
Monday errandsC-1181Tear Along the Dotstear_dotstear a stamp sheet along its perforations so each envelope gets one piece adding to its postage, within a tear limit; level 4 adds specimen stamps, level 5 a same-shape pair; from level 3 the certificate is NO SHEET SERVES (about one day in six, as the census must miss a total); stamp values 1–4 keep it Gv-SR (D32); founds perforated-sheet, a single board

Builder f7a755a, merge ecf74b2, registrar a36b043, on a new family file MondayErrandsGenerators.ts with a pure scene module mondayErrandsScene.ts, from addendum Parts Fifteen (T21) and Sixteen (U07). The family file imports tub_mangle's tmJohnson unchanged; the tub_mangle and dry_dusk goldens moved 0. Why these entries: no other pair of neighbouring parts gives three narrow abilities: C-1156★ (Gf-RG), C-1157 (Gq) and C-1181 (Gv-SR). C-1181's S08-18 caveat no longer applies, because S08-18 was never given a C-code. Sources: Wikipedia "Johnson's rule", "Laundry", "Lavoir", "Postage stamp separation" and "Guillotine cutting"; TheGlasgowStory "Partick Public Baths and Wash-house". The rinse-above-the-soaper rule is unsourced and declared the board's own. Registrar fixes: rinse_above's ▬ glyph became ▫, and a wrong family comment was corrected (rinse_above is in stream-rail and tear_dots in perforated-sheet, both single boards). Station codes were distinct and renamed nothing: nowhere_hang 1D-21, rinse_above 2B-32, tear_dots 3I-03.

The robustness scan, run by the registrar at the close: all 373 types × difficulties 1–5 × 60 seeds, 111,900 generations, 0 throws.

Golden 11100 → 11190 (90 added, 0 moved); chart 370 → 373, 0 renamed. Full jest 7043 tests / 182 suites; gate:web bundle 7070 KB; solidlab passed. Week exclusions now re-draw 1.92% of picks (3.64% of days), down from wave 47's 1.96%. CACHE_VERSION 58. No APK and no release JSON: C: had about 0.97–1.0 GB free, below the 1.2 GB threshold (since resolved; see the top of this page). v3.28.0 was not built then; these three types shipped in v3.28.0 with wave 49.

Wave 47 — shipped: the harvest supper, the second cross-part trio.

#C-IDnameshipped aswhat it turned out to need
Harvest supperC-1251★Sight Callingsight_callfusion on back_home and key_couple: back_home's square, but the couple numbers disappear at the first call and the board never says when the square is home; PEEK shows them until the next call and is priced against par only (D33); from level 3 the certificate is IT WILL NOT COME HOME IN TIME; joins square and caller, completing both
Harvest supperC-1255Sixty-Four Countssixty_fourfill a contra dance's A1/A2/B1/B2, 16 counts each, from figure cards; each card starts from the last card's formation, no card is used more than twice (the board's own rule), nobody stands still more than 8 counts, and the dance ends one place on; level 4 starts improper and level 5 in Becket; from level 3 the certificate is NO DANCE FROM THIS BANK; the model tracks formation and progression, not the four dancers; joins longways; unlocks C-1248★
Harvest supperC-1263★Pick to Grade, Screen to Sizescreen_pickfusion on pick_tray and stack_screens: choose the AA (and, from level 3, AB) screens and pick out defects, so each tray passes on its own share within the pick allowance; from level 3 the certificate is NO STACK AND NO PICKING DOES BOTH; round screens only, the lot laid out by width, the per-share scaling the board's own; joins green-coffee, completing it

Builder 755b675, merge f20c5c3, registrar dd2e1a3, on a new family file HarvestSupperGenerators.ts with a pure scene module harvestSupperScene.ts, from addendum Parts Nineteen (T24) and Twenty (T25). Why these entries: Part Nineteen alone had a D21-clean trio (C-1242, C-1251★, C-1255), but C-1242 and C-1255 are near-duplicate build-from-bank operations, so the builder took P19 + P20 for two ★: C-1251★ (Gsm-WM), C-1255 (Gf-RG) and C-1263★ (Gq, seated at Gf-RQ as pick_tray was). Sources: Wikipedia "Contra dance choreography", "Contra dance" and "Square dance"; all8.com FASR; Driftaway Coffee "Coffee Grades". The Kenya AA/AB ranges come from a search summary only and are held for VERIFY. Station codes were distinct and renamed nothing: sight_call 4A-02, sixty_four 1D-20, screen_pick 2H-05. The family file imports the hall-night and grading helpers unchanged; their goldens moved 0.

The robustness scan, run by the registrar at the close: all 370 types × difficulties 1–5 × 60 seeds, 111,000 generations, 0 throws.

Golden 11010 → 11100 (90 added, 0 moved); chart 367 → 370, 0 renamed. Full jest 7002 tests / 181 suites. Week exclusions now re-draw 1.96% of picks (3.73% of days), up from wave 46's 1.55%. The APK is 33,480,732 bytes, 0.52 MB under the 34 MB gate; the wave added about 55 KB. C: had 1.22 GB free at this close, at the 1.2 GB build threshold.

Wave 46 — shipped: the hall night, the first cross-part trio.

#C-IDnameshipped aswhat it turned out to need
Hall nightC-1228★The Patch Comes Out of the Hempatch_hemfusion on match_check: let each seam's inlay out at the waist and seat so the round grows by exactly the targets, then cut a clean window from the freed cloth so the check matches round the knee in both directions, never turned; levels 1–2 have the window chalked (the T23-07 fold); from level 3 there is a spent lure and a one-way lure, and NO MATCH LEFT days; the board is flat, not a diorama, because the check's phase has to be read flat; the FACTS answer atom is cell-value, the targets are exact, and the halving rule is the board's own (the Threads page returned 403); joins mend-cloth, pair ban with chalk_seam
Hall nightC-1245★Poles for Twopoles_twofusion on poles_open: set the free pairs' closing beats and plan the first dancer's steps, while a second dancer mirrors them across the poles' middle one beat behind; nobody may be caught and the two may never share a gap, or ONE OF YOU IS CAUGHT; the stride is 3, because stride 2 makes every crossing impossible; the pattern bank is the closing beat per pair, with a printed pair from level 1; joins poles
Hall nightC-1254Everyone Back Homeback_homebring a scrambled square home within the limit from a bank of 9 square-dance calls, each legal only from its stated formation; IT WILL NOT COME HOME ON THIS BANK, proved by the sequence invariant (a chain-scrambled square on a bank with no chain); a DioramaView walk-round of the hall with faceless dancers; spots only, no facings, and call names per IDEA-099 (a); joins square; unlocks C-1251★

Builder 0a45b04, merge ad5da94, registrar d078634, on a new family file HallNightGenerators.ts with a pure scene module hallNightScene.ts, from addendum Parts Eighteen (T23) and Nineteen (T24). Why these entries: no single part has a D21-clean trio left, so this trio spans two neighbouring parts, as the triage allows: C-1228★ (Gv-Vz), C-1245★ (Gq, seated at Gf-RQ as poles_open was) and C-1254 (Gf-RG). C-1254 was taken over C-1255 for the owner's look-around direction and because it unlocks C-1251★. All three were re-verified unbuilt from the code. Sources: Wikipedia "Darning", "Seam allowance", "Tinikling" and "Square dance". Station codes were distinct and renamed nothing: patch_hem 3G-08, poles_two 2C-13, back_home 1R-01. The match_check and poles_open goldens moved 0.

The robustness scan, run by the registrar at the close: all 367 types × difficulties 1–5 × 60 seeds, 110,100 generations, 0 throws.

Golden 10920 → 11010 (90 added, 0 moved); chart 364 → 367, 0 renamed. Week exclusions now re-draw 1.55% of picks (3.00% of days), down from wave 45's 1.92%. The APK is 33,425,352 bytes, 0.57 MB under the 34 MB gate; the wave added about 63 KB. C: had 1.27 GB free at this close.

Wave 45 — shipped: idle hands, Part Sixteen's last clean trio.

#C-IDnameshipped aswhat it turned out to need
Idle handsC-1173Bend It to the Fitbend_fitbend a strip clamped in a jig at its marks, where each bend turns everything after it by ±30/60/90° relative to the strip's own heading, so every mark and segment middle stays inside the outline's 0.3 band and the end lands in the hole within par bends (par is the fewest, found by search); from level 3 the outline is on a card turned away from the jig and the bench shows only the hole; from level 4 a hairpin needs two bends at neighbouring marks; the jig bends exact (no spring-back, stated in the reveal), there are no decoys on the card, and the FACTS answer atom is vertex-label (unit node) rather than the source's strand; founds strip-jig
Idle handsC-1187Walk So You Have Seen It Allseen_alla watchman's lantern walk from the door and back that looks down every aisle, in the fewest steps; sight runs along the four clear lines to the first rack or wall; days are kept only when the fewest walk looks down aisles it never enters (the trap is walking every aisle); the triage called it "garnish without the rider", so the builder built its A form: a DioramaView store walk-round whose floor lights as it is seen, in place of the held first-person walk (IDEA-051c, IDEA-071) and the source's LANTERN play-back; a tapPoint plan below; founds lantern-plan; pair ban with web_wet; 395 of 400 Views
Idle handsC-1189Skip It to the Far Bankskip_bankchoose the angle, speed and spin so a stone's hops, each shrinking by a fixed fraction (rounded down), clear the pads and reach the far bank; level 4 is the sandbar, touched on exactly the fifth skip; from level 2 the fastest spun throw always loses, since spin costs one on the first hop (the board's own rule) and unspun stones sink after the third touchdown; no free practice throws before the commit; level 1 has no spin dial; level 5 is a wider menu with more pads; set-parameters-flagged, pair ban with crown_band; founds skip-dials

Builder 3d6ad46, merge 2e40dac, registrar 964b20f, on a new family file IdleHandsGenerators.ts with a pure scene module idleHandsScene.ts, from addendum Part Sixteen (U07). Why these entries: no single part has a D21-clean trio left except Part Sixteen, which still held three narrow abilities: C-1173 (Gv-Vz), C-1187 (Gv-SR) and C-1189 (Gf-RQ). All three were re-verified unbuilt from the code. Sources: Wikipedia "Bending (metalworking)", "Watchman route problem" and "Stone skipping" (Clanet, Hersen and Bocquet, 2004). Station codes were distinct and renamed nothing: bend_fit 3E-10, seen_all 3H-05, skip_bank 2B-31.

Trio exhaustion. The builder found that, after this trio, no single part has a D21-clean trio left. Part Fifteen's remaining entries are C-1150, C-1153 and C-1156★ (all Gf-RG) plus C-1157 (Gq); Parts Seventeen to Twenty-One each have at most two narrow abilities left. From wave 46 on, trios may span two parts; the triage already allows it (entries that cannot form a clean trio inside their own part "pair across parts or wait").

The robustness scan, run by the registrar at the close: all 364 types × difficulties 1–5 × 60 seeds, 109,200 generations, 0 throws.

Golden 10830 → 10920 (90 added, 0 moved); chart 361 → 364, 0 renamed. Week exclusions now re-draw 1.92% of picks (3.73% of days), up from wave 44's 1.73%. The APK is 33,362,384 bytes, 0.64 MB under the 34 MB gate; the wave added about 60 KB. C: had 1.35 GB free at this close.

Wave 44 — shipped: the washday at dusk, Part Fifteen's last clean trio.

#C-IDnameshipped aswhat it turned out to need
Washday duskC-1158Dry by Duskdry_duskmove washing along a line so each piece collects its sun hours, while the house's shadow sweeps the east end in the morning and the yard wall's the west end in the afternoon; a piece collects an hour only when wholly in sun, in whole check hours; level 4 is the airing rail (T21-17) on every level-4 day, each side needing its own sun; the source's level-4 blanket and level-5 airer by the fire are not built; from level 3 the certificate is THE LINE CANNOT DRY THEM (the sun-area bound, or a piece that cannot dry even alone); a DioramaView walk-round with a tapPoint sun-field plan below; joins line-plan; unlocks C-1156★; 385 of 400 Views at level 5
Washday duskC-1154Sprinkled at Noon, Pressed by Foursprinkle_pressset each piece's sprinkling round and the pressing order for one iron, so every piece is pressed before it dries out and by four; level 4 adds the cold (a bundle kept damp an hour longer); from level 4 the certificate is THE BASKET WILL SPOIL, proved by a set of up to three pieces searched exhaustively. The catalogue's certificate, the window overload, never occurs on this model (zero in 60 seeds per level), so it was replaced; level 5's coupling to the iron's cooling (T21-11) is not built; joins iron-needle, which completes that family
Washday duskC-1164★Wring Harder or Rinse Againwring_rinsesplit the water across rinses and the minutes across mangle passes, under the board's law round(10·log2(1+v/r)) with each pass buying less; days are kept only when neither lever alone reaches the target; from level 3 the certificate is THE DAY IS TOO SHORT, the day's best legal plan (confirmed by the validator's knapsack) rather than a printed frontier table; set-parameters-flagged as the catalogue says; pair ban with small_rinses

Builder 6a0acea, merge aaf2a54, registrar 7697c67, on a new family file WashdayDuskGenerators.ts with a pure scene module washdayDuskScene.ts, from addendum Part Fifteen (T21). Why these entries: only one D21-clean trio was left in Part Fifteen, so the trio was forced: C-1158 (Gq), C-1154 (Gf-RG) and C-1164★ (Gf-RQ, the part's last). All three were re-verified unbuilt from the code. Sources: Wikipedia "Clothes line" and "Futon", Trivetology "Sprinkler bottles", and 1900s.org.uk "1900s washdays". Pair bans moved up from DEFERRED: milk_last × sprinkle_press, pull_milk × sprinkle_press and small_rinses × wring_rinse. Station codes were distinct and renamed nothing: dry_dusk 2D-08, sprinkle_press 1M-03, wring_rinse 2T-01.

The builder's click test found a crash in the level-4 airing rail: overlapping boxes broke the diorama's east view. It was fixed before handover, and 15 solves passed. The builder killed its servers under the new rule, and both ports were confirmed free.

The robustness scan, run by the registrar at the close: all 361 types × difficulties 1–5 × 60 seeds, 108,300 generations, 0 throws.

Golden 10740 → 10830 (90 added, 0 moved); chart 358 → 361, 0 renamed. Week exclusions now re-draw 1.73% of picks (3.46% of days), up from wave 43's 1.41%. The APK is 33,302,448 bytes, 0.70 MB under the 34 MB gate; the wave added about 76 KB. C: had 1.4 GB free at this close.

Wave 43 — shipped: the washday afternoon, Part Fifteen's trio.

#C-IDnameshipped aswhat it turned out to need
Washday afternoonC-1160★The Sheet Drags Where It Hangssheet_dragsthe line sags under the washing, computed exactly in integers; a hem clears when its drop plus the sag is under the post height; at levels 1–2 the player places one prop, then two (the T21-16 fold), and at levels 3–5 the pieces and a prop; at levels 4–5 the certificate NO ARRANGEMENT CLEARS, proved by a named locked set of up to three pieces (searched exhaustively, not a closed-form bound); loads are points at detents, props hold the line at post height, and the T21-07 orientation (hem or shoulder) is not built; drawn as an elevation with no walk-round (declared: the sag is a plane figure); joins lever-statics-centroid
Washday afternoonC-1165Lines Behind the Sheetlines_behindeach hung piece shades the lines behind it, and the shadow slides with the hour; level 4 adds a raised line and level 5 a yard wall (which shades part of the front lines, not the whole green); from level 3 some days the certificate is THE BACK LINE IS TOO SHORT, proved by a locked tall set rather than a length sum; a DioramaView walk-round drying green with a tapPoint peg plan below; the relation is orthogonal (square/token), not the source's track/span; joins line-plan; 384 of 400 Views at level 5
Washday afternoonC-1162Heaviest Collar Firstcollar_firstdip pieces in one bowl of starch while the strength is within each piece's band; THIN adds a cup without taking the bowl over the rim, and strengths are exact fractions; level 5 adds blue (which does not dilute); from level 3 the greedy schedule always fails; at levels 4–5 the certificate ONE BOWL WILL NOT DO; a GROUND panel, not the source's well; the "thick starch for collars" source failed to fetch, so heaviest-for-collars is the board's own rule; joins tub-column, which completes that family; pair bans with koyu_acik and green_monday

Builder b17fac6, merge d2050d0, registrar 7e5425f, on a new family file WashdayAfternoonGenerators.ts with a pure scene module washdayAfternoonScene.ts, from addendum Part Fifteen (T21). Why these entries: Part Fifteen's three suggested trios were untouched, and the builder took one entry from each (C-1160★ from "The heavy work", C-1165 from "The drying green", C-1162 from "Copper, bowl and stream") for three narrow abilities (Gq, Gv-Vz, Gf-RQ). C-1160★ keeps its ★: its T21-16 half folds in at levels 1–2, and it has no unbuilt parent. Sources: Wikipedia "Clothes line", "Catenary" and "Starch", and 1900s.org.uk "1900s washdays". Station codes were distinct and renamed nothing: sheet_drags 2C-11, lines_behind 3H-04, collar_first 2C-12. The registrar split two comment headers in identities.ts that had run onto the previous lines; no data changed.

Stale web servers. Two Metro/expo web servers left by earlier builder worktrees (waves 36 and 42) were still listening on ports 8093 and 8096 hours later, so the wave-43 builder fell back to port 8117. They also locked the worktree folders, which is why wave 42's worktree could not be deleted. Both were killed and both folders removed. The builder brief now says: before finishing, kill every Metro/expo/Edge process you started (check netstat -ano for your ports).

The robustness scan, run by the registrar at the close: all 358 types × difficulties 1–5 × 60 seeds, 107,400 generations, 0 throws.

Golden 10650 → 10740 (90 added, 0 moved); chart 355 → 358, 0 renamed. Week exclusions now re-draw 1.41% of picks (2.73% of days), down from wave 42's 2.05%. The APK is 33,226,228 bytes, 0.77 MB under the 34 MB gate; the wave added about 76 KB. Builds ran with TEMP on D:, and C: had 1.42 GB free at this close.

Wave 42 — shipped: the lazy Sunday, Part Sixteen's trio.

#C-IDnameshipped aswhat it turned out to need
Lazy SundayC-1180★Last Piece Throughlast_piecebring 2–3 pieces through a door with pivot_landing's slides and pivots; each piece set down becomes a wall for the next, so the player chooses the order and the places; from level 3 some days the certificate is THE ROOM CANNOT BE FURNISHED, naming a blocking pair (any blocking pair is accepted); a DioramaView walk-round of the flat with the furniture built from parts; the raise dial (pieces on end under a ceiling) is not built, the pieces are rectangles only, and the chord-twist rider (IDEA-048) is not built; joins room-plan, which completes that family; pair bans with long_pole and corners_meet
Lazy SundayC-1190Pump the Swingpump_swinga phase ladder: the right pump slot drifts as the swing rises (the slot rule is the board's own); reach the target in the fewest half-swings within a pump budget; the optimum is greedy (take every double pump the drift allows), so the board is weak on D42; the ladder is one tapPoint surface to stay within the View budget; RUN is free, and the live-pump rider (IDEA-050) is not built; new family phase-ladder
Lazy SundayC-1184Let the Film Decidefilm_decidejoin pins on a triangular lattice in the fewest runs; every day needs a Steiner junction where no pin is; Dreyfus–Wagner in the generator; 2.5D with no diorama (the network is planar); runs are counted, not measured, and the draw rider (IDEA-048) is not built; new family pin-lattice, pair ban with seat_diagonals

Builder d2db436, merge 38bb42d, registrar 8e2087b, on a new family file SundayGenerators.ts with a pure scene module sundayScene.ts, from addendum Part Sixteen (U07). It reuses pivot_landing's helpers from SaturdayGenerators.ts, which is unchanged; pivot_landing's golden moved 0. Why these entries: wave 41's pivot_landing unlocked C-1180★, and the builder paired it with two Part Sixteen leftovers, C-1190 and C-1184, for three narrow abilities (Gv-Vz, Gf-RQ, Gv-SR). C-1180★ is built, and C-1173 (Bend It to the Fit) returns to the pool. Sources: Wikipedia "Plateau's laws", "Steiner tree problem", "Parametric oscillator", "Pendulum" and "Moving sofa problem". Station codes were distinct and renamed nothing: last_piece 3A-04, pump_swing 2H-04, film_decide 3B-05. The worktree directory for agent-a3873b47b536b769d could not be deleted (Permission denied); the branch is deleted, and the directory is harmless.

The robustness scan, run by the registrar at the close: all 355 types × difficulties 1–5 × 60 seeds, 106,500 generations, 0 throws.

Golden 10560 → 10650 (90 added, 0 moved); chart 352 → 355, 0 renamed. Week exclusions now re-draw 2.05% of picks (4.09% of days), the highest since wave 28 (2.15%); the scheduler is working as designed, and more families mean more re-draws. The APK is 33,150,384 bytes, 0.85 MB under the 34 MB gate; the wave added about 72 KB. The APK build ran with TEMP on D:, and C: had 1.52 GB free at this close.

Wave 41 — shipped: the rainy Saturday, Part Sixteen's trio.

#C-IDnameshipped aswhat it turned out to need
Rainy SaturdayC-1191★The Crown and the Bandcrown_bandclose a hat's crown: choose the repeats (they divide the cast-on, with at least 2 stitches per repeat), place the decrease rounds with a plain round between each, and from level 3 place a colourwork band on a round whose stitch count its motif divides; from level 4 some days nothing closes, and the player names the blocking prime; motif widths are square-free so one prime can block; the band is one token slid up and down and the repeats one stepper; still flagged set-parameters, weak on D42; new family crown-ladder, pair ban with pick_ladder
Rainy SaturdayC-1175Pivot at the Landingpivot_landingslide and pivot a sofa round a landing in the fewest pivots; a DioramaView walk-round with a plan below; from level 3 some days the certificate is "it will not go", naming the turn where it wedges; U07-13's level-4 "stand it on end" is not built (levels 4–5 use a wider piece and two landings), the pieces are rectangles, never an L, and the twist rider (IDEA-048) is not built; joins room-plan, pair ban with long_pole; building it unlocks C-1180★
Rainy SaturdayC-1185Stamp It Outstamp_outcover a figure with one stamp in the fewest presses; the stamp turns but never flips, overlap is allowed and spill is not; from level 3 some days the certificate is an orphan cell; no deviation beyond the tap form; new family stamp-grid, pair ban with darn_thin

Builder 4b5c1ea, merge 9ba5398, registrar 97f34c5, on a new family file SaturdayGenerators.ts with a pure scene module saturdayScene.ts, from addendum Part Sixteen (U07). Why these entries: option (a), a fusion plus two entries from its own part, could not be built. C-1288★ is the last unbuilt entry in Part Twenty-One, and Part Nineteen's unbuilt entries span only two abilities (Gq and Gf-RG). So the builder took Part Sixteen's only remaining D21-clean trio that has a ★ (Gf-RQ, Gv-Vz, Gv-SR). Sources: Wikipedia "Decrease (knitting)", the Balls to the Walls Knits hat pattern and paper-tiger.net; the pivot sweep and the no-flip rule are the boards' own. Station codes were distinct and renamed nothing: crown_band 2L-07, pivot_landing 3A-03, stamp_out 3C-11.

The robustness scan, run by the registrar at the close: all 352 types × difficulties 1–5 × 60 seeds, 105,600 generations, 0 throws.

Golden 10470 → 10560 (90 added, 0 moved); chart 349 → 352, 0 renamed. Week exclusions now re-draw 1.73% of picks (3.28% of days). The APK is 33,078,852 bytes, 0.92 MB under the 34 MB gate; the wave added about 70 KB. C: had only 1.25 GB free at this close; the APK build ran with TEMP on D:.

Wave 40 — shipped: the seaside evening, Part Sixteen's trio.

#C-IDnameshipped aswhat it turned out to need
Seaside eveningC-1192★Walk and Dropwalk_dropwalk the bank one cell a beat, wait, and drop pebbles so every ripple ring reaches the lily pad on the same beat, within a wait budget; rock ridges are what force the waits; no certificate, because the catalogue names none; waits after the last drop count against the budget; new family bank-walk, pair ban with slower_echo
Seaside eveningC-1182Find the Patchfind_patchfind a star patch on a synthetic chart, seen turned in an eyepiece; level 4 adds an hour dial (the board's 30° an hour); level 5 views through a star diagonal, which mirrors left and right, with an exact unmirrored copy on the chart as a trap; U07-30★'s horizon exclusion is not built, and the chart is tapped star by star through tapPoint(), not panned; new family sky-chart, pair ban with match_check
Seaside eveningC-1176Pour the Hillspour_hillspour grains so a sand picture forms; a grain slides while its neighbour is two or more lower; from level 4 the frame can be given one quarter turn, and every such day has a ledge only a turn can pour; grains go in one at a time by tint and column, with no spout drag and no wet-sand dowry; a DioramaView walk-round; new family well-drop, pair bans with first_pour and wide_base

Builder d26fd51, merge d290301, registrar 3c0f65e, on a new family file SeasideGenerators.ts with a pure scene module seasideScene.ts, from addendum Part Sixteen (U07). Sources: Wikipedia "Star diagonal" and "Diurnal motion"; the 30°-per-hour rate, the ripple rule and the slide rule are the board's own. Station codes were distinct and renamed nothing: walk_drop 2B-30, find_patch 3E-09, pour_hills 3H-03.

Correction: the duplicate pair bans were a false alarm. Wave 39 carried a "dedupe WEEK_PAIR_BANS" item. The table has 129 distinct pairs, and tests/WeekExclusions.test.ts already fails on a duplicate pair. koyu_acik × while_stewed and milk_last × pull_milk are each listed once as a pair ban and are also covered by a once-a-week family (stacked-pots, cup-thermo); that overlap is deliberate (ruling 4) and applies to 15 pairs. The item is closed.

The robustness scan, run by the registrar at the close: all 349 types × difficulties 1–5 × 60 seeds, 104,700 generations, 0 throws.

Golden 10380 → 10470 (90 added, 0 moved); chart 346 → 349, 0 renamed. Week exclusions now re-draw 1.41% of picks (2.82% of days). The APK is 33,008,868 bytes, 0.99 MB under the 34 MB gate. C: had 2.1 GB free at this close.

Wave 39 — shipped: the spare room, Part Twenty-One's follow-on trio.

#C-IDnameshipped aswhat it turned out to need
Spare roomC-1295★The Other Wing From One Bagother_wingbuild a shown wing and its mirror from one bag of printed counts; the board's substitution table cuts a bar into shorter bars and an L/J piece into a 1×3 plus a 1×1, and the mirror takes the other hand; from level 3: THE BAG IS SHORT; the mirror is ledgered, not stud-built, a cut makes at most two pieces and a 1-stud bar counts as whole; completes sheet, pair ban with punch_unfold; 396 of 400 Views at level 5
Spare roomC-1282The Long Shelf Sags Mostlong_shelfone run of books per shelf, with no more than the fewest brackets any plan needs; the board's law is sag ∝ load × span⁴ ÷ k, and from level 3 the heaviest-on-shortest plan never works; NO ARRANGEMENT HOLDS THE LIMIT, where the limit is the board's own and is never called a safe load; a middle bracket splits the span and the longer part sags (the board's simplification of a continuous board); joins shelf and lever-statics-centroid, pair ban with brace_bays; unlocks C-1288★
Spare roomC-1299★Box Pile, Dry Stackdry_stackbox_pile's rules, but the player raises sticker columns over printed crossbeams using the fewest; THE STICKERS RUN OUT; the end columns always stand and the budget counts interior columns; shares box_pile's facts exactly (D45); completes pile, pair ban with split_stack; 393 of 400 Views at level 5

Builder 37a6616, merge 455f028, registrar 8079d4e, on a new family file SpareRoomGenerators.ts, from addendum Part Twenty-One (T26). It imports mirror_wing's and box_pile's helpers without changing them, and their goldens moved 0. Sources: Wikipedia "Deflection (engineering)" and University of Missouri Extension G5550. Station codes were distinct and renamed nothing: other_wing 3W-01, long_shelf 2I-02, dry_stack 3J-05.

Certificate days come from the first draw. Whether a day is a certificate day is decided by the first LCG draw, so small consecutive seeds alternate odd/even; seeds from the session hash give about 20–25% certificate days.

Noticed and carried: the live WEEK_PAIR_BANS table lists koyu_acik × while_stewed and milk_last × pull_milk twice, from wave 38. It is harmless for scheduling; the next registrar should dedupe it. (Wave 40 found this a false alarm; see the correction above.)

The robustness scan, run by the registrar at the close: all 346 types × difficulties 1–5 × 60 seeds, 103,800 generations, 0 throws.

Golden 10290 → 10380 (90 added, 0 moved); chart 343 → 346, 0 renamed. Week exclusions now re-draw 1.55% of picks (3.09% of days). The APK is 32,955,064 bytes, 1.05 MB under the 34 MB gate. C: had 2.4 GB free at this close.

Waves 37–38 — shipped: the garden room and the tea stall, and the strongest 3D board so far.

#C-IDnameshipped aswhat it turned out to need
Garden roomC-1198★Prune to What the Can Carriesprune_cansnext_spring's trellis and rule plus a can budget per season; a growing point grows only in a season it is watered, and on every day no plan without a cut reaches the target; no certificate, since the entry names none; completes garden-trellis
Garden roomC-1183Turn the Pot on Mondaysturn_potquarter turns on Mondays carry the grown stem round with the pot; the stem stays in the stake's hoop and the tip lands on the mark within the turn limit; one cell a week, a rectangular hoop, two windows at level 5; a negative-height riser at level 5 was caught in the screenshots and fixed with a test; founds sill-calendar, pair bans with weir_facing, four_ways and which_wall
Garden roomC-1178Make the Photo Matchphoto_matchplace and face four to six box-built pieces so the room seen from the photo's wall matches the photo, walked round on DioramaView with a photo / your-room toggle; the photo is taken from a wall, not a corner (scene.ts has four headings); pieces the photo hides go anywhere they stay hidden; joins look-around, pair ban with open_drawer
Tea stallC-1217The Guest Teaguest_tealearn sample tea profiles, then match each cup in a reordered row to its sample or to GUEST, with looks counted against par; the leaf shapes are four drawn silhouettes, and level 4 sorts the row by liquor; no source for the guest-tea form; joins counter, five pair bans
Tea stallC-1215★Revised While It Stewedwhile_stewedtray_reversed's street loads the tray, then it is poured from koyu_acik's stewing pots; on every day the tray's delivery order cannot be poured; both parents' rule functions imported unchanged (their goldens moved 0); no short days or second runner at level 5; completes counter and stacked-pots, five pair bans
Tea stallC-1209★Pull It or Milk Itpull_milkpull teh tarik with one pair of hands, one action a tick, with T22-05 folded in at levels 1–2; milk-first and milk-last differ on every day; from level 3: THE TRAY WILL NOT FROTH IN TIME; the cooling, pull, froth, milk and spill numbers are the board's own; completes cup-thermo, pair bans with milk_last, linen_first and three_irons

Wave 37: builder 15788fa, merge e0d3215, on a new family file GardenRoomGenerators.ts, from addendum Part Sixteen (U07). Source: Gardening Know How's houseplant-turning page (Britannica returned 403). Wave 38: builder 8718211, merge 4c0134f, on a new family file TeaStallGenerators.ts with its parts in app/puzzles/renderers/teaStallScene.ts, from addendum Part Seventeen (T22). Sources: Wikipedia "Teh tarik", "Indian filter coffee", "Turkish tea". Registrar e5faaf7 closed both.

Both builders edited one identity declaration. Wave 37 added turn_pot and wave 38 added pull_milk to the same group in Identity.test's "no two types differ ONLY by ruling" list. The keepboth merge kept two lines, each missing the other's member; the registrar merged them into one. After keepboth, re-run Identity.test before the full suite. Station codes were distinct and renamed nothing: prune_cans 1J-04, turn_pot 3J-04, photo_match 3V-02, guest_tea 3E-08, while_stewed 4C-08, pull_milk 2B-29.

A glyph the fonts may not have. pull_milk's rule line used ⌊ ⌋ floor brackets, outside the sanctioned glyphs and likely absent from the IBM Plex fonts. It now reads "EACH TICK LOSES HEAT ABOVE ROOM ÷ n, ROUNDED DOWN" (7009175). The ÷ stays: it already ships in other rule text and is in Latin-1.

The robustness scan, run by the registrar at the close: all 343 types × difficulties 1–5 × 60 seeds, 102,900 generations, 0 throws.

Golden 10110 → 10290 (180 added, 0 moved); chart 337 → 343, 0 renamed. Week exclusions now re-draw 1.46% of picks (2.91% of days). The APK is 32,879,772 bytes, 1.12 MB under the 34 MB gate. C: had only 2.6 GB free at the build.

Waves 35–36 — shipped: the dance floor and the back yard, and thirteen boards that now print their rules on the board.

#C-IDnameshipped aswhat it turned out to need
Dance floorC-1241★Six Bars or Eightsix_or_eightset two diagonal reels of three to 6 or 8 bars plus a delay, so the later reel ends on the filler and no two dancers of different reels meet on the shared middle (less than a half bar apart); from level 2 about one day in four: THEY MEET IN THE MIDDLE; right shoulders only, delays drawn per day, no reel of four, and the plan prints no crossing times; completes reel
Dance floorC-1253★Drift to the Walldrift_walla line dance whose side step drifts it across the floor; place the restart so the dance ends facing front, inside the box; from level 2: DRIFTS OUT; step first, then the turn; the box checked at every wall start and at the stop, not every count; the IDEA-049 tilt rider stays held; completes walls, pair ban with weir_facing
Dance floorC-1249★Dame Before the Last Chordlast_chordcall rueda figures and partner moves to reach the partner before the song ends; from level 2: THE SONG ENDS FIRST; every count is the board's own (the source gives none); the calls must fit inside the song, not fill it; no two-circle level; completes mixer, pair ban with calendar_round
Back yardC-1294★Take It Apart to Seetake_apartlift bricks off a model to find the one built in the wrong colour, within the exact minimax budget; from level 3: CANNOT REACH IT IN BUDGET; when a brick shows its colour is the board's own sight rule, re-coded independently in the verifier; one stage flips between sheet and hand to stay under the view ceiling; joins sheet, pair ban with behind_under
Back yardC-1301★Pitch Where the Pegs Holdpitch_twopitch two tents on a relief so no guy lines share ground, no door faces the wind and neither tent is in a hollow; from level 3: NO SITE FOR TWO; the wind rule eased from back_wind's "door faces away" to "never faces the wind"; shared ground stands in for crossing lines; completes tent, pair ban with frost_hollow
Back yardC-1284Stickers Over the Bearersover_bearersstand the fewest crossbeams (stickers) so every board end rests within 15 cm and every span keeps its stock's limit; from level 3: NO COLUMNS SERVE IT; the 15 cm allowance and limits are the board's own; level 5's crossbeams already down stand and count; joins pile, pair bans with split_stack and every_crumb; unlocks C-1299★

Wave 35: builder 9543cee, merge 607f9d9, on a new family file DanceFloorGenerators.ts, from addendum Part Nineteen (T24); the dancers stay faceless blocks, per IDEA-118. Sources: SCD Dictionary "Reel Of Three", Wikipedia "Line dance", Wikibooks "Rueda de Casino/Dame"; the counts are the board's own. Wave 36: builder 4252988, merge fc80cca, on a new family file BackYardGenerators.ts, from addendum Part Twenty-One (T26). Sources: Missouri Extension G5550, USDA FPL-GTR-117 "Air Drying of Lumber", Advnture's tent guides. Wave 36 also adds app/puzzles/renderers/railLayout.ts, which keeps tag rails ordered by anchor and swaps any crossing pair (tested on 300 random layouts). Registrar d2a5d17 closed both.

Both builders claimed station 3T-01. Each regenerated chart.json on its own branch. A normal regen after the merge assigns codes in FACTS order, so it gave distinct codes and renamed nothing: six_or_eight 3T-01, drift_wall 3O-03, last_chord 2S-01, take_apart 3U-01, pitch_two 3V-01, over_bearers 2H-03. Parallel builders may collide on provisional codes; the registrar's regen settles them. The registrar also fixed last_chord's category to 'Number & Math'.

Thirteen boards were dropping their rules. Board.tsx draws the dossier only on the dossier frame, and 98 of 331 types have another (none 77, rail 13, scribe 6, bezel 2). Thirteen renderers passed a dossier that was silently dropped; the worst was feet_went, whose live STEP / LOOKS / PAR status appeared nowhere. No board was unfair, since PuzzleScreen always shows the instructions above the board, but the rules sat far from it and live state was lost. The fix (b2a1e84, merge c8fa6c4) prints the rules or status as a line in the board body on all 13, plus wind_over_tide. tests/DossierFrame.test.ts fails if a renderer passes dossier= for a type whose frame is not dossier; against the old code it flags exactly the 13. Board.tsx is unchanged by design.

The robustness scan, run by the registrar at the close: all 337 types × difficulties 1–5 × 60 seeds, 101,100 generations, 0 throws.

Golden 9930 → 10110 (180 added, 0 moved); chart 331 → 337, 0 renamed. Week exclusions now re-draw 1.37% of picks (2.73% of days). C: had only 3.0 GB free at the build.

Waves 33–34 — shipped: the evening and the picking round, and four web boards that answer taps again.

#C-IDnameshipped aswhat it turned out to need
EveningC-1235Pick Up the Ladderpick_laddera knitted panel from a stitch repeat (tile up to 4×4, with a per-row shift); one or two columns laddered from the needle, and every rule of the family that fits the visible stitches must set every rung the same way; the per-row shift is in the rule family at every level, so the uniqueness check always runs over the whole family; the hook's climbing order is drawn, not enforced
EveningC-1227Seven Steps, Straight Diagonalsseat_diagonalslay one diagonal strand per line of a caned seat's mesh, each end within one hole of its line, at most two of a step per hole; from level 4 about one day in three: IT MUST SWING; the swing counted in holes round the frame, cracks and the certificate at level 4 rather than 3, the corner hole's "two strands" read as capacity two
EveningC-1243Step When the Poles Openpoles_opencross tinikling bamboo poles in time, one foot a beat, never in a gap on its closing beat; from level 3 about one day in four the bars are one short: NO WAY ACROSS (exact by BFS, filed bare); the catalogue's level 3 (feet must alternate) and level 4 (four poles as a cross) would each make every day unwinnable, so level 3 narrows the strips to one cell and level 4 sets two pairs back to back; new family poles
Picking roundC-1275★Blend to the Grade From Memoryblend_gradehold seven_shades' ladder, shutter it, pour honey jars so the mean class lands exactly on a target named in words; from level 3 about one day in four: NO BLEND REACHES IT; checks and looks over par reported, never failed; shades stay achromatic while IDEA-097 is open; joins shade
Picking roundC-1277★Pick the Rutabpick_rutabyesterday's date bunch once, then today's; pick every date at rutab over the printed visits with the strand rates held only in memory; brown printed in tenths on boxed tags, so the load is memory, not reading a gradient; levels 4–5 show six strands in three views; from level 3: THE RUTAB OUTRUNS THE VISITS; pair ban with every_wall
Picking roundC-1268★Read the Bush, Set the Roundread_bushset each plucking interval by reading a two-row tea bush; the growth bands are printed as a set, never per shoot, and the back row is plucked a printed 1–4 days before the front, so which band sits in which row matters; from level 3 about one day in three: THE SEASON GOES COARSE; completes plucking, pair ban with calendar_round; shares touch_frame's identity (declared)

Wave 33: builder 0d7bd95, merge 9d372b3, on a new family file EveningGenerators.ts, from addendum Parts Eighteen and Nineteen (T23/T24). C-1221 and C-1242 were skipped on D21 (each is Gq, like C-1243). Pair bans: one_stroke × seat_diagonals, ice_slide × poles_open, far_token × poles_open. Wave 34: builder 53f6370, merge 7ced560, on a new family file PickingRoundGenerators.ts, from addendum Part Twenty (T25); all three ★ fusions come from the backlog triage's top trios. Registrar 557f0c1 closed both.

Four boards were dead on the web version, and now respond. On react-native-web a tap's onPress comes from a DOM click with no locationX/locationY, so every hit-test that read them failed on the web: milk_last's taps did nothing, match_check crashed on the first tap, the woodpile boards (read_round, split_stack, every_wall) never took a strike, and a station inside a Chart region could not be selected. Android was unaffected. The wave-33 builder spotted it on seat_diagonals. The fix (7db64e1, merge 5d0c571) is tapPoint() in app/ui/touchPoint.ts, with tests/TouchPoint.test.ts (13 tests) failing if locationX/Y appears anywhere in app/. CDP clicks on the web version: match_check 8/8 and milk_last 12/12, scrolled and unscrolled, where the old code scored 0/12 and crashed. The rule is in the builder brief (a41b35a).

The backlog triage (ab46bf4, docs/cycle6/BACKLOG_TRIAGE.md) replaced the wave-32 close's "about five open entries", which came from builder shortlists: C-1148…C-1302 hold 87 built, 1 held, 11 ★ fusions waiting on a parent and 56 buildable (51 unclaimed).

The robustness scan, run by the registrar at the close: all 331 types × difficulties 1–5 × 60 seeds, 99,300 generations, 0 throws. read_bush's own robustness test takes about 40 s.

Golden 9750 → 9930 (180 added, 0 moved); chart 325 → 331, 0 renamed. Week exclusions now re-draw 1.73% of picks (3.46% of days). C: had only 3.6 GB free at the build.

Wave 32 — shipped: the sorting room, and Part Twenty is fully built.

#C-IDnameshipped aswhat it turned out to need
Sorting roomC-1266Three of Fivethree_of_fivea five-seat taste panel on a dilution ladder; the rating is the most dilute step at which three of five still detect; after a sitting where all five detect, the next sitting is a rinse; the budget is the exact minimax under the rinse rule; from level 3 about one day in four the board answers as the adversary, NOT IN k SITTINGS, with that budget one under the counting bound; level 4 is a 16-step ladder, and the catalogue's unreliable taster is not built; completes probe-bench
Sorting roomC-1271★Skirt the Lineskirt_lineskirt up to two zones off each end of each fleece so the clip fits the room's lines at or above a yield floor; NO SKIRTING HOLDS THE YIELD; a skirted fleece is classed by its coarsest kept zone where the source's parenthesis says "finest", because under "finest" skirting could never help (the board's own reading, declared); quality numbers printed, not counted from crimp; completes wool-line; parent class_clip
Sorting roomC-1280The Grader's Wordsgrader_wordslearn a card of 14 real grading words from five trades (tomato, date, egg, rice, honey), then class drawn specimens from memory, with looks at the card counted against par; trades scale by level, two words taught mid-flight at level 5; SECOND HEAD's cut is the board's own; completes grade-by-eye and is the fifth glr-ma member

Builder 7a5fc9a, merge dda5aa3, registrar c53e8ac, on a new family file SortingRoomGenerators.ts, from addendum Part Twenty (T25): the last three open entries of that part. Sources fetched 2026-09-29 and quoted in the generator header: Wikipedia "Scoville scale" and "Wool classing", 7 CFR 51.1860 and 7 CFR 868.302, Frontiers in Sustainable Food Systems (2025), the National 4-H candling page and Honey Traveler (Pfund); every ladder, table and rule in play is the board's own. three_of_five also takes pair bans against assay, eight_cups and one_in_twenty.

The builder ran both checks itself again. It screenshotted its own boards and fixed a tray that overflowed, clipped word keys, line keys that were too narrow and a stain that overlapped its zone, and it ran its own robustness scan (200 seeds × 5 levels, 0 throws).

The robustness scan, run by the registrar at the close: all 325 types × difficulties 1–5 × 60 seeds, 97,500 generations, 0 throws.

Golden 9660 → 9750 (90 added, 0 moved); chart 322 → 325, 0 renamed. Week exclusions now re-draw 1.60% of picks (3.18% of days). C: had 4.3 GB free at the build.

Wave 31 — shipped: the packhouse trio, and a café table you can read.

#C-IDnameshipped aswhat it turned out to need
PackhouseC-1279★The Ethylene Bowlethylene_bowlseven bowl places and a larder shelf; place the fruit so each one is inside its ripeness window on its meal morning, where emitters (apples, and any fruit at stage 5 on) speed up their neighbours; NO BOWL DOES IT, fired only from the slow end (a late meal wanted greener than the shelf can hold it); the fullest pace, the centre with six emitters every day, is an abstraction the validator accepts from either end; plays count for feedback only; fruit tints are a muted blend on the luminance ladder while IDEA-097 is open; parent green_monday
PackhouseC-1262★Sell It While It Is AAsell_aaread each candled egg's air cell along the egg's own axis, then choose which eggs go in the cool room and which wait on the bench so every market day's order ships at AA or A; THE ORDERS CANNOT BE MET; one store per egg for the whole week; depths drawn on 1/32 steps so the reading is feasible at 4 px per 64th; no level 4/5 rider beyond more eggs and a larger room; joins green_monday's identity family (declared); parent air_cell
PackhouseC-1270Class the Clipclass_clipsort the fleeces into the fewest lines by length class, colour class and quality numbers within three neighbouring rows of the crimp table; THE CLIP NEEDS MORE LINES; relation declared arbitrary (nest_inside's ruling); the room shows at most 9 line keys; shares a static identity with air_cell, breakers_pink, head_rice and nest_inside, and is a declared reskin pair with nest_inside

Builder 780b057, merge 3154bc3, registrar e095e3e, on a new family file PackhouseGenerators.ts, from addendum Part Twenty (T25). Sources fetched and quoted in the generator header: BBC Science Focus and UMaine Extension (ethylene), the National 4-H candling page (the AA/A limits) and woolwise WOOL 422/522 (three consecutive quality numbers); every rate, table and threshold in play is the board's own. ethylene_bowl joins ripening; sell_aa joins egg (the family is now complete); a new family wool-line holds class_clip. Pair bans: ethylene_bowl × sheet_shades, sell_aa × water_level, sell_aa × milk_last, class_clip × nest_inside.

The builder ran both checks itself, for the first time. It screenshotted its own boards and fixed cramped eggs, mid-item wraps, fruit that was too small and staples that read as rulers before handing over, and it ran its own robustness scan (200 seeds × 5 levels, 0 throws).

napkin_level polished (builder e5e6bf0, merge 25c9ed4): a boxed tag per leg ("LEG n / FLOOR f", plus "+k" for napkins), ordered by where each leader lands, so none cross; every leader ends in a dot, and leg 1's leader now lands on the visible part of its flagstone. The tabletop reads as one board: no AO or edges on its Solids, and the cube joins are tightened. ViewBudget 354 → 358 of 400.

The robustness scan, run by the registrar at the close: all 322 types × difficulties 1–5 × 60 seeds, 96,600 generations, 0 throws.

Golden 9570 → 9660 (90 added, 0 moved); chart 319 → 322, 0 renamed. Week exclusions now re-draw 1.96% of picks (3.82% of days). C: had 4.6 GB free at the build.

Wave 30 — shipped: the weekend trio, and a safety net under every day.

#C-IDnameshipped aswhat it turned out to need
WeekendC-1293Where It Went Wrongwhere_wrongwalk round the brick model to find the first step that departed from the wordless sheet; level 3 hides the mistake from its own step's picture only (it is seen on a later page), since a mistake no page shows cannot be read back to its step (D16/D33); each page prints its side; level 5 turns a brick about its NW stud and carries nothing; the carry rule is the board's own reading of "built true on top of it"; shares every_wall's static identity (declared)
WeekendC-1300★One Lawn, One Snowmanone_lawnthree disjoint snow rolls with roll_size's growth, stacked on one spot; rolls in any order (disjoint paths make order moot), 1..12 cells each (the parent's table), and the spot sits on a paved path so exactly three cells lie beside it; THE LAWN IS TOO SMALL, certified by the snow-count bound only
WeekendC-1289Back to the Windback_windthe one tent pitch on a relief model that keeps every rule: door downwind, head end not lower, at most one contour step, not in a hollow; a hollow is "every way to the edge climbs first"; the door faces exactly downwind (four headings); the head end is the tent's back; camping-practice sources are cited in the header, and the thresholds are the board's own

Builder 74ed878, merge 7c0ee6d, registrar cf04b5f, on a new family file WeekendGenerators.ts, from addendum Part Twenty-One (T26). where_wrong joins look-around and sheet; one_lawn joins snow (the family is now complete), with the pair ban one_lawn × lawn_stripes; back_wind joins tent, with the pair ban back_wind × frost_hollow. The robustness scan at the merge found where_wrong throwing on 2 of 1000 draws and one_lawn on 3 of 1000; both got the same post-exhaustion fallback, with 0 golden moves.

No day can crash now. A full generator scan (316 types × 5 difficulties × 60 seeds) found last_down (level 5, about 1.5% of seeds) and tyre_sizes (level 4, about 0.7%) throwing when their attempt loops ran out. SessionGenerator had no catch, so a date whose seed hit one would have crashed that day's session for everyone. Fixed in f018641: both generators now retry the same construction on derived sub-seeds after the original loop is exhausted, so no existing output moves, and a new safeGeneratePuzzle re-draws a stage deterministically if a generator still throws (sub-seeds, then lower difficulties, then other types). Golden 0 moved; 859 sessions dumped before and after are byte-identical; CACHE_VERSION unchanged by the fix.

The items() audit is done (builder 7e43d1e, merge caa3af3): 32 calls across 24 renderers moved to line(), 24 were kept, and keep() now holds "3–16 CELLS", "CARD n" and "PAR n" whole. EmptyBasket imports items as itemsLine, so a plain grep misses it; it was audited anyway.

Golden 9480 → 9570 (90 added, 0 moved); chart 316 → 319, 0 renamed. Week exclusions now re-draw 1.73% of picks (3.46% of days).

Found by the screenshot ritual and fixed before the ship (a0a068a): back_wind's pitch tag keys overlapped (48 px keys on a 34 px step, and these are tap targets); they now sit on 56 px slots, DioramaView gained an optional tagH prop, and a new fitFrame crops the stage to the model, so the tents come up about 10–15% larger. one_lawn's MARK label was covered by a fir; it is now drawn last, on a patch of sky, and the ball keys have room.

What the gate measures. npm run gate:web mounts only the pre-font placeholder, so it never mounts a puzzle renderer. The registrar mounted the three new renderers separately with a server-side react-native-web harness (8 seeds × 5 difficulties, clean). The screenshot ritual is the real visual gate. This is the same question IDEA-117 asks of the APK gate: what the gate actually measures.

Wave 29 — shipped: the hold-fast trio, where one fix is never enough.

#C-IDnameshipped aswhat it turned out to need
Hold fastC-1224★A Napkin Under the Legnapkin_levela quarter-turn mark and napkin squares folded to 1, 2, 4 or 8 layers under a wobbly café table's legs, so it stands and is level; NO NAPKIN LEVELS IT, built as a near miss; from level 2 a lure mark always stands but tilts; the pads have no give and the level tolerance is 0, there is no TRY or par (the whole floor is printed), and the IDEA-049 tilt form is not built; fuses turn_table (C-1231)
Hold fastC-1229★The Patch That Holdspatch_holdshitomezashi (sashiko) stitch bits and a patch placed so every patch edge is crossed within k lines and a loop on the patch goes round the hole; each certificate names one of two parity laws, SIDE or LOOP, both proved in the file; k is 1 or 2 only, and two-cell holes are solvable only on the 6×6 cross at k = 2; boro is not named; fuses stitch_loops (C-1226)
Hold fastC-1232★Turn It and Darn Itturn_darnsides_middle's sheet plus one darn per gap within a thread budget, never a darn in the middle of the bed (the board's own comfort rule); every witness needs both halves, since turns alone never suffice and neither do darns alone; THE SHEET WILL NOT LAST; each strip is darned at most once, and there is no ROTATE; fuses sides_middle (C-1230) and darn_thin (C-1219)

Builder 74580f8, merge 351669c, registrar a2ae997, on a new family file HoldFastGenerators.ts. No new fetches: the reveals reuse the parents' fetched text, and napkin folding, darning and the comfort rule ship as the board's own. Declared reskins: turn_darn ↔ sides_middle, patch_holds ↔ darn_thin, napkin_level ↔ too_close. napkin_level joins lever-statics-centroid; patch_holds joins sashiko, with the pair ban patch_holds × counted_fence; turn_darn joins wear-turn (now complete at three) and mend-cloth, with pair bans against sides_middle and darn_thin. Part Eighteen still has three unbuilt, undeferred entries: C-1221, C-1227 and C-1235.

Golden 9390 → 9480 (90 added, 0 moved); chart 313 → 316, 0 renamed. Week exclusions now re-draw 1.37% of picks (30 of 2191; 2.73% of days).

Found by the screenshot ritual: all three boards render. napkin_level is a table on flagstones with napkin pads, a stepped top and spirit-level vials; patch_holds is a stitch grid with a proud patch, red unheld edges and a chalked hole; turn_darn is a bed with draped sheet strips coloured by wear and a tag rail with leaders. Fixed before the ship (986e369): turn_darn's rules panel split "MIDDLE" mid-word on the web, because its rule and status lines used items(), which holds every item whole; they now use line(), which holds only short items. Seven other renderers pass items([...]) lines that may hold long items and need the same audit. For polish: napkin_level's tag rail reads as run-on numbers ("4 · 2 1 · 4 …") and one leader crosses another.

Wave 28 — shipped: the make-do trio, a real çaydanlık and a table you can read.

#C-IDnameshipped aswhat it turned out to need
Make doC-1234Four Ways Upfour_waysa mattress's turn planned per season (KEEP / SPIN 1 / FLIP 2 / ROLL 2) so no region sags past the cap; built on the Klein four-group, so on normal days every plan that repeats one turn fails; THE SAG WILL SHOW; level 4's skipped season is a locked season, and sag is shade plus a small sink rather than a depth map
Make doC-1225Match the Checkmatch_checkthe offcut window whose check continues the cloth's in both directions, under nap and grain rules; NO MATCH ON THE OFFCUT; the setts are synthetic (three or four runs, no named tartan), and a face-down offcut reads mirrored across only
Make doC-1233★Which Way the Tube Wenttube_wayeach puncture labelled THORN / PINCH / SPOKE / BURR by reading the tube against the wheel, with T23-09 folded in as levels 1–2; one FEEL probe at par settles the ambiguous days, and the validator refuses a correct answer the evidence does not yet settle; 24 places round the wheel, not 36

Sheldon Brown's "Flat Tires" page was fetched and quoted in tube_way's reveal. four_ways' reveal names Hayes' essay "Group Theory in the Bedroom", which could not be fetched (503), so only the essay and its author are named and the group facts are stated as mathematics. four_ways joins wear-turn, match_check joins mend-cloth and tube_way joins bike-bench. New pair bans: four_ways × which_way_up, match_check × chalk_seam and tube_way × handedness.

The corrected built-check. Part Eighteen had 13 truly unbuilt entries; wave 27 skipped the whole part because of the DEFERRED-comment grep. Three were built this wave. Still unbuilt and not deferred: C-1221, C-1224★, C-1227, C-1229★, C-1232★ and C-1235.

The polish (8f860cc, merge a51ef80). koyu_acik is now a real çaydanlık: a large steel kettle with a side handle and a climbing spout, and a smaller teapot on top in the brew colour with its own spout, a steel lid and a knob; the brew runs from amber-red to near-black mahogany as it stews, and the glass sits under the spout tip. cool_pour's table reads left to right in the water's order (kettle, vessels, pots), each kind in its own shape; the labels sit on a tag rail below with hairline leaders and none touch, and the pot keys are full-width and 72 px tall. kettleScene.ts builds each thing from parts with a cubeAt helper, and ViewBudget costs both boards from the same part lists (partsCost): cool_pour 297 → 385 of 400, only 15 of headroom left; koyu_acik 235 → 253.

Golden 9300 → 9390 (90 added, 0 moved); chart 310 → 313, 0 renamed. Week exclusions now re-draw 2.15% of picks (47 of 2191; 4.28% of days).

Found by the screenshot ritual: all three new boards and both polished boards read well, and nothing needed fixing before the ship. four_ways' mattress is a solid with sagging quarters, match_check shows a coloured sett with a pinned hole, and tube_way has a lit wheel with spokes and a tube ring.

Wave 27 — shipped: the kettle and sorting-table trios, and five older boards reworded.

#C-IDnameshipped aswhat it turned out to need
KettleC-1199Koyu or Açıkkoyu_acikstrong and light Turkish tea glasses served from a stacked two-pot çaydanlık; the pot stews stronger over time and TOP UP thins it; THE WATER RUNS SHORT from level 3, proved by a volume ledger rather than the catalogue's light-glass bound; level 4's glass-shelf dial and fresh pot and level 5's banks are not built
KettleC-1211Cool It by Pouringcool_poureach tea's water cooled by pouring it through vessels, where a vessel poured into recently is warm and cools less; THE TABLE CANNOT COOL IT; level 4's re-boil and level 5's "cups must end warm" are not built; yuzamashi and Lu Yu are not named (held for VERIFY)
KettleC-1213★Sugar at the Stove, Foam in the Cupcezve_foamTurkish coffee cups sorted into cezves by sugar level so the foam goes round within the stove's time; THE FOAM WILL NOT GO ROUND; the foam, heat and rise ticks are the board's own, and one cezve is on the stove at a time
Sorting tableC-1259Breakers, Turning, Pinkbreakers_pinktomatoes classed by colour from front and back views of a 32-facet fruit, counting the rim once; thresholds from the board's copy of 7 CFR 51.1860; turned facets shown by luminance only while IDEA-053/097 is held
Sorting tableC-1267Heavy for Its Sizeheavy_sizemelons hefted to find the two densest and put them in order; CANNOT BE TOLD WITH k LIFTS; each melon's 100 g band comes from a tray scale that is the board's own
Sorting tableC-1273Matching the Strandpearl_stranda graduated pearl strand, largest at the centre, pairs matched; NO STRAND FROM THIS TRAY; level 5 is the 15-place strand, not two strands from one tray

The real-world wording on the tea and coffee boards was checked against the Wikipedia pages "Turkish tea", "Turkish coffee" and "Sencha"; every number on them is the board's own. New one-a-week families: stacked-pots (koyu_acik), vessel-table (cool_pour) and strand (pearl_strand). cezve_foam joins roll-bench, breakers_pink joins grade-by-eye and heavy_size joins probe-bench. New pair bans: breakers_pink × every_wall; heavy_size × assay, blind_weighings and pagoda_weight; pearl_strand × ordered_ranking.

Interruption: both builders launched on 2026-09-24 died on the weekly usage limit before producing any code. They were relaunched fresh on 2026-09-29, after the reset. Nothing was lost, and main stood untouched at 3b6a882.

The pronoun sweep. Wave 26's voice rule was applied to five older types. Their taglines, board copy and generator text now say "the rival", "the respondent" and "the pupil", and own_rule_closes is now "Their Own Rule Closes On Them". The golden moves are declared (starter_ten 30, own_rule_closes 30, same_mistake 30, bearer_bar 24). The many other gendered figures in older generator text (the ferryman, the ship, the Rulebook listener, the Lateral scenarios and others) were not swept; whether to sweep them is the owner's call (IDEA-125), and so is only_she's title, where sex is the puzzle's subject (IDEA-126).

Golden 9120 → 9300 (180 added, plus the 114 declared pronoun moves); chart 304 → 310, 0 renamed. Week exclusions now re-draw 1.64% of picks (36 of 2191; 3.28% of days).

Found by the screenshot ritual: all six new boards render; the kettle boards were seen for the first time. heavy_size's diameter-cubed figures ran into the next column ("س 2744س 2197"). This was fixed before the ship (be56ebd): the figure wraps under its label. Three were queued for polish: breakers_pink's fruit reads dim and grey (luminance only, by design while IDEA-053/097 is open); cool_pour's scene labels overlap ("B 1 POT 1 P POT 2") and its pot keys are cramped; koyu_acik's pot reads as cubes rather than a çaydanlık. pearl_strand, heavy_size and cezve_foam read well.

Ops note: other sessions took C: down to 3.5 GB free; it had recovered to 5.3 GB before the build.

Wave 26 — shipped: the recess trio, vibe pass 2, and two boards redrawn.

#C-IDnameshipped aswhat it turned out to need
RecessC-1188The Last One Downlast_downspare dominoes stood on a hall floor so the marked bell rings last; the fall rule is the board's own (a domino knocks over every domino beside it); level 4 rings every bell in a printed order; level 5's silent-bell rule is the board's own (a bell may stay silent, all but one must ring); the stick-race level-1 board is not built
RecessC-1193★Both Bells at Onceboth_bellstwo domino lines from one push, never side by side, one to each bell, both ringing on the same tick, within stock; it shares last_down's floor and its static identity
RecessC-1195Keep the Tree Between Uskeep_treetag round a tree: step or stay against a printed chaser (the shortest way, ties north, east, south, west); reach base or last to the whistle; two chasers at level 5; the winning line is found by search and checked by a backward-induction verifier, and running straight or standing still is always tagged

The builder picked these from the owner's enjoyment direction: dominoes on the hall floor and tag in the yard. Two new one-a-week families: domino-floor (last_down, both_bells) and playground-graph (keep_tree).

Vibe pass 2: the results card. The card that ends the morning is now a solid slab. WORKED TODAY shows one row for each chart area you worked today: a stack of solid blocks, one per puzzle played there today, beside the area's stations and a gauge of how much of it is sounded and charted ("CHARTED 4 OF 26 · SOUNDED 9", plus "▴ 1 DEEPER TODAY" when a station went deeper). The stack is rebuilt every day, so it never becomes an attendance tower (DEC-006). PRACTICE HERE now sits inside the card, under those rows. With the timer on, each puzzle also gets a line against its own record or median ("RECORD · WAS 1:35", "−0:10 VS MEDIAN", "HINTED · OFF THE BENCH"). The blocks fade in under a new motion, T23 "Block set" (160 ms, opacity only; reduce-motion shows them still). Record: docs/cycle6/BUILD_VIBE2.md.

Vibe pass 2: the lit edge. <Solid>'s lit top and left edges are back, as an opt-in litEdges prop drawn from three plain border-box strips (EDGE_LIFT 0.12). They are on for fold_net, anamorph, pagoda_weight, blind_weighings, hidden_count, paint_ledger, whites_first, soft_water, the Solid lab and WORKED TODAY. They are off for handedness, impossibility_proof, void_fit and sightlines (over the 400-View budget), for web_wet (too little headroom) and for three_irons, whose new stove sits at 380 of 400. Five taste forks from the pass are the owner's (IDEA-120..124).

Two boards redrawn. Wave 25's polish queue was cleared. three_irons has a real cast-iron range: a lit firebox, a flue, sad irons coloured by their heat band, the iron in hand lifted off the plate, and a wall clock whose hand counts the ticks allowed; its status lines now wrap. grand_march shows the couples waiting at the foot of the hall in their family tints from the first frame, with a centre lane line. Worst-case Views (limit 400): three_irons 313 → 380, grand_march 378 → 380.

Merge note: the vibe merge's two conflicted files were first resolved wholesale with git checkout --ours, which also drops the other side's clean hunks. It was caught, the conflicts were restored and resolved hunk by hunk. The rule from now on: never resolve a whole file with --ours or --theirs.

Golden 9030 → 9120 (90 added; keep_tree's 30 re-recorded before the ship); chart 301 → 304, 0 renamed. Week exclusions now re-draw 1.96% of picks (43 of 2191; 3.73% of days).

Found by the screenshot ritual: all three new boards render. keep_tree's rules line and hints called the chaser "his" and "him". This was fixed before the ship (08cecfb): "THE CHASER BREAKS TIES NORTH ▸ …", and the hints say "the chaser" and "its". The voice rule from now on: figures that are not the player (chasers, dancers, customers) take no gendered pronoun.

Wave 25 — shipped: the reel, ironing and playroom trios, and three boards redrawn.

#C-IDnameshipped aswhat it turned out to need
ReelC-1239Couples, Fours, Eightsgrand_marcha queue of couples ordered so every family finishes as printed under MERGE UP and PEEL OFF; the floor rules are the board's own; 8 couples, up to 12 at level 5; no step-by-step MARCH playback, and the feedback prints the final lines
ReelC-1240The Reel Is an Eightreel_eightthe Scottish reel of three (Scottish Country Dancing Dictionary), the dancers starting in line with the ends facing, as the source says; twelve stations in six bars; mirror reels at level 3; the level-5 "hey for four" built as the reel of four on the source's track; dancers drawn as faceless blocks, not glyph tokens (IDEA-118)
ReelC-1256Where the Feet Wentfeet_wenta footprint chart shown, then hidden; the figures are the board's own drawing (a waltz box of six steps, not four; side-close; a rock step; a walk); the chart shows untimed; two charts at level 5, par 2
IroningC-1148Whites Firstwhites_firsta copper over a brick hearth whose water browns with dirt and pinks with tint; each water led by a white that tolerates almost nothing; from level 4 an extra white rides behind a lead, so counting whites is not the certificate
IroningC-1155★Soft Water Is Dirty Watersoft_watersoap cakes, soda and a rain barrel; soda arrives at level 3 with the wool bar and the barrel at level 4 (the catalogue put both at level 4); the budget counts only soap spent softening
IroningC-1163★Three Irons, One Stovethree_ironsa stove whose irons glow through their heat bands; two irons at levels 1–2, three from level 3; the board's own heat model (an iron cools only by pressing, the stove heats linearly); STOVE days allow one tick fewer than the pinch bound
PlayroomC-1302Find It in the Heapin_heapthe owner's "look around and identify things": tap every copy of the called part in a heap of overlapping bricks and brackets, with LIFT counted against par; 20–30 parts, not 40; drawn top-down as layered slabs, not a heap you orbit
PlayroomC-1287Roll It to Sizeroll_sizethree snowman balls rolled to stand in size order, the upper two light enough to lift, reaching the mark within the lawn's snow; the growth law on an integer table; IT WILL NOT STAND THAT TALL at levels 3–5
PlayroomC-1283Through the Back Panelback_panelcables run cubby to cubby and out a cabinet's back, two to a hole; sockets drawn as symbols; THE BANK IS SHORT at levels 3 and 5, and no certificate days at level 4

Three boards redrawn. Wave 24's polish queue was cleared. This landed after the v3.7.0 APK, so it ships first in v3.8.0. stack_screens' beans are olive coffee-green with a lit edge and an S-shaped centre cut, on metal screens with round holes or slots sitting in trays. Its NO STACK SORTS IT key moved to its own row, where it no longer clips. wide_base's uncast towers show as ghost sand columns at their target height, on a beach with a wet strip and the sea. web_wet's squares are turf with tufts that turn to gravel where walked. Worst-case Views (limit 400): stack_screens 330 → 392, web_wet 359 → 389, wide_base 200 → 202.

Found while polishing: Key's base has no flex: 1, so a height given to a Key never reaches its face, and a face with little content shrinks to fit it. That is why web_wet's squares were hairlines. Renderers now work around it with a content minHeight; whether to fix Key.tsx for every board is the owner's call (IDEA-119).

Incident: after the polish merged, main was red on the amber cap (AmberSlice) from e90b547 until d749e5f. WideBaseRenderer used 8 amber references against a cap of 3, and only part of jest was run after the merge. The Playroom builder fixed it: the sand tint now comes from colors.warning. The rule from now on: run the full jest after every merge to main, polish merges included.

Golden 8760 → 9030, 0 moved; chart 292 → 301, 0 renamed. Week exclusions now re-draw 1.83% of picks (40 of 2191; 3.46% of days). There are four new one-a-week families: reel, ballroom, tub-column and snow. feet_went joins caller, and three_irons joins iron-needle.

Found by the screenshot ritual: all nine new boards render. whites_first and soft_water cut each load's TAKES limits to "TAKES 1…", hiding numbers the answer needs (D33). This was fixed before the ship (551b518): the facts wrap to two lines, and three_irons' stove-state note was fixed the same way. Two were queued for polish: three_irons' stove drawing is tiny at the top of the board, and grand_march's hall floor is empty until a queue is placed.

Wave 24 — shipped: the homework and harvest trios, and web_wet gets objects.

#C-IDnameshipped aswhat it turned out to need
HomeworkC-1296Room to Open the Draweropen_drawera 5 × 5 room walked round in the diorama, every unit backed to a wall; OPEN pulls every drawer and door out and marks each clearance; THE ROOM CANNOT TAKE IT ALL by the area bound, from level 4 rather than 3
HomeworkC-1286A Little Water, a Wide Basewide_basesandcastle towers under h³ ≤ c³·r², one bucket per tower, least sand; drawn as an elevation from one side, not walked round (IDEA-071); NOT ENOUGH SAND at levels 4–5, where any plan within the budget is accepted
HomeworkC-1292Build It Again, Mirroredmirror_wingthe wing rebuilt as its reflection on a diorama table; the source's handed slopes became L and J bricks, because the diorama draws only boxes; plates 4 × 4, or 5 × 5 at level 5
HarvestC-1261Cut to the Stonecut_stonethe olive maturity index (Uceda & Frías 1975, PMC4348287), with the black classes read only by a cut; the certificate "NO WEEK IS SAFE" ships as NO WEEK HOLDS THE BAND, because the register forbids "safe"; par is the fewest cuts that decide the day whatever the olives hold
HarvestC-1269Stack the Screensstack_screensKenya AA / AB / C / PB in screen sizes of 64ths of an inch; a slot keeps a bean at least its size thick; widths stop at 18 (no E grade); from level 3 a lot carries C or OUT, not both
HarvestC-1276Rank the Cups From Memoryrank_cupscomparisons whose results show once; on some days the board answers as an adversary with a budget of ⌈log₂ n!⌉−1; the budgets are 12 (six cups) and 14 (seven), the least an exhaustive search allows

web_wet gets objects. The watering-walk board now shows a stone well drawn with <Solid>, and a watering can that shows its fill in bands (CAN n OF m). The webs are cloth on post-and-rail frames: a dark sag with a drip when wet, a pale taut line when dry. A grass-to-gravel trail with direction arrows shows where the walk has been. Only the renderer changed. The board's worst case rose from 281 to 359 Views, under the limit of 400.

Golden 8580 → 8760, 0 moved; chart 286 → 292, 0 renamed. Week exclusions now re-draw 1.55% of picks (34 of 2191; 3.00% of days). There are two new one-a-week families, room-plan and probe-bench. mirror_wing joins sheet, cut_stone joins ripening, and stack_screens joins green-coffee.

Found by the screenshot ritual: all seven boards render. Three were queued for polish: stack_screens' beans are flat grey (they want a coffee-green tint and more bean-like depth); wide_base's towers show as thin poles before casting; and web_wet's empty squares show as thin hairlines, so the grass tint barely reads. None of them blocked the ship.

Ops note: C: had 5.6 GB free at the build.

Wave 23 — shipped: the mangle trio and the last matrix transforms removed.

Every matrix transform is gone. The two users <Solid>'s wave-22 repair left behind now draw with plain Views. WaterLevel's water plate is two border-box triangles with an opaque amber-over-glass blend (blendOver in app/ui/solid/light.ts); the screenshots show amber water surfaces inside the tilted vessels, where before the plate sat stuck at the corner. FoldNet's face labels stand upright at each projected face centre, with the answer ring drawn as rotated strips. A new wall, tests/NoMatrixTransform.test.ts, fails on any matrix or skew style transform under app/. Presentation only; the Android check is still IDEA-072.

#C-IDnameshipped aswhat it turned out to need
MangleC-1167Which Sock Ransock_rana pure RAN/FAST decode of a printed week of loads and the whites' tints; each item settled by construction, the hue lure at every level; no UNSETTLED column or NEXT LOAD tray (D55 refused); loads numbered, not dated
MangleC-1159The Great Washgreat_washwash windows laid on a dry/wet calendar so no linen class runs out within the fuel budget; TABLE LINEN at level 4, linen bought with fuel at level 5; THE PRESS WILL RUN OUT with the gap bound
MangleC-1151Keep Every Web Wetweb_weta closed watering walk from the well with a refillable can; the near web watered twice a round from level 3; THE GREEN IS TOO BIG; T21-09's turning and second walker not built, and nothing animates

Golden 8490 → 8580, 0 moved; chart 283 → 286, 0 renamed. Week exclusions now re-draw 2.10% of picks (new single-board families calendar-strip and green-grid).

Found by the screenshot ritual: web_wet reads as a bare grid of bars and labelled cards. It needs objects — a well, a can, the webs as cloth — and joins the polish queue.

Missed the wave: the Homework 3D trio (C-1296, C-1286, C-1292) was still building at the check; it moves to wave 24.

Ops note: C: free space dipped to 2.8 GB during the wave because of other sessions on the machine, then recovered to 5.9 GB. This project's build footprint on C: is about 9.6 GB (Android SDK 3.3, gradle caches 2.7, the build copy's node_modules 2.7), all of it required.

Wave 22 — shipped: the <Solid> rebuild, the workshop and board polish.

The core 3D primitive is fixed. <Solid> used to place each face with a 16-value matrix transform, which react-native-web writes as invalid CSS (every face fell into one corner box) and RN Android flattens. It now paints each face from plain border boxes — triangles, bands and pixel-snapped pieces — in app/ui/solid/pieces.ts, with no transforms. That fixes 11 boards on the web, and very likely on Android: Anamorph, BlindWeighings, ClosedDoor, FoldNet, Handedness, HiddenCount, PagodaWeight, PaintLedger, Sightlines, VoidFit and WaterLevel, plus SolidLab. The owner has the before/after of sightlines: floating letters before, a 3D block city after. gate:web:solidlab passed in a real bundle. The cost: a lone cube goes from 3 to 5 Views and the interactive ceiling drops from 6³ to 5³; every board stays ≤400 Views (water_level is highest, at 393). Some edge-light detail and the contact seam are gone, and faint cracks remain on stacked sides. Still open: the WaterLevel water plate and the FoldNet face labels still use matrix transforms; the fix is in build. The Android device check is still IDEA-072.

#C-IDnameshipped aswhat it turned out to need
WorkshopC-1285The Grocer's Pyramidgrocer_pyramidone pyramid (two from level 4, a ridge at level 5) that uses the whole delivery, or the least left over; fruit drawn as discs in eighth turns with plain Views, standing in for GL spheres (the owner may veto)
WorkshopC-1298Forty-Five Awayforty_fiveevery tent peg on soft ground, guys a loop-height out; NO PITCH HOLDS HERE; four headings at level 5, not eight; plan-only, the pitched tent in 3D being IDEA-071's rider
WorkshopC-1291Every Dowel Finds a Holeevery_dowelflat-pack panels posed into a cube carcase; panels on the workshop floor, the carcase stood on COMMIT; holes read from flat cards, not drawn in the room

Board polish. A new dioramaLook.ts gives the diorama per-tone value ladders, edges and studs: only_new's bricks read as bricks, with studs, seams and value ladders, and its header no longer truncates; box_pile came out of the dark and its sticker list wraps only between numbers; thirty_two's readouts never wrap inside a number. Golden 8400 → 8490, 0 moved. Week exclusions now re-draw 1.64% of picks.

APK size. This is the first build with the unused GIF/WebP decoders removed. The size audit (docs/cycle6/APK_SIZE_AUDIT.md) found R8 and resource shrinking were never on; a test APK with both measures 27.34 MB, and whether it runs on a phone is IDEA-116. What the 34 MB gate measures — download or installed size — is IDEA-117.

Missed the wave: the Mangle laundry trio (C-1167 sock_ran, C-1159 great_wash, C-1151 web_wet) landed a few minutes after the check; it merged in wave 23.

Wave 21 — shipped, as three trios:

#C-IDnameshipped aswhat it turned out to need
Figure danceC-1247Dame, Dame Dosdame_dosthe rueda as a string of partner moves; generic ON 1 / ON 2 / ON 3 chips, with dame and dame dos only in the sourced reveal; HALF THE CIRCLE NEVER MEETS by a factor common to every step and the circle
Figure danceC-1257Called From the Cardfrom_the_carda card of 12 synthetic calls (LANTERN, ORCHARD …) with effects the board writes itself, danced blind; no real contra or square call name appears
Figure danceC-1246Down the Line and Backdown_the_linea longways line met within the rounds, or SOMEONE ON THE LIST CANNOT BE MET; levels 4–5's double progression and triple-minor not built
Assembly 3DC-1290Only What Is Newonly_newa brick model walked round, and a step drawn from another side against a plain backdrop; bricks one layer high; the level-5 hidden-asymmetry pair not built
Assembly 3DC-1281Thirty-Two Millimetresthirty_twobooks that never reorder, shelved on 32 mm pin rows; book heights printed, because a drawn scale cannot carry a few millimetres; seen from the front only
Assembly 3DC-1297Box Pilebox_pilea lumber pile on sticker columns, walked round; THIS STOCK WILL NOT PILE names the board that reaches no column; stickers ruled 10 cm wide
MarketC-1260Green for Monday, Black for Saturdaygreen_mondaygeneric ripening stages (the AMS guide refused the fetch, so it is not cited); NO HAND LASTS THE WEEK about one day in three from level 3
MarketC-1272Head Ricehead_riceWHOLE at ¾ checked against 7 CFR 868.302; the ½ and ¼ bounds are the board's own; near-threshold pieces at levels 4–5
MarketC-1274Seven Shades Without the Chartseven_shadesthe USDA honey colour class names over an achromatic lightness ladder only; no amber ramp (IDEA-097 open)

The 3D seam grew. The assembly trio extended scene.ts with projectPoint, decals and an opt-in stacked painter rule, which fixes painter cycles when boxes stack with an offset; earlier rooms order exactly as before. DioramaView gained a plain backdrop, decals, pointTags and a paint cache keyed on the room, which fixes stale-room drawing on boards whose room changes as you build. Golden 8130 → 8400, 0 moved. Week exclusions now re-draw 1.73% of picks.

Found by the screenshot ritual: all nine boards render. The two queued for polish, only_new's step view and box_pile's dark room, were polished in wave 22.

What is still rough, honestly: gate:web never mounts a puzzle renderer, so only the screenshots see the boards; breakers_pink's fruit reads dim and grey; cool_pour has only 15 Views of headroom left; older boards still give story figures he or she (IDEA-125); the lit edge is off on the four 3D boards over budget and on web_wet and three_irons, which lack headroom (IDEA-123); the reel dancers are blocks the register did not allow for (IDEA-118); faint cracks on stacked <Solid> sides; tray_reversed's doors wrap to two rows at level 5; tube_show's tumble is tap-only until tilt is wired; the boards stay greyscale by palette law (IDEA-097 asks whether that should change); the diorama objects are boxes, not silhouettes; the new results card has been seen only in a screenshot harness, not through a real finished session; nobody has seen the new Home, the walk-round builds or the rebuilt <Solid> boards on a phone; the APK is 0.27 MB under the 34 MB gate at v3.30.0 (P1 and wave 51 added about 70 KB), so roughly 2–4 puzzle waves remain before the gate binds (IDEA-116, the R8 test APK at 27.34 MB, is the owner's lever).

The polish queue: breakers_pink's dim fruit (still held on IDEA-053/097); stop the tray doors wrapping at level 5; the faint cracks on stacked <Solid> sides. cool_pour is at its budget ceiling (385 of 400 Views), as is dry_dusk (385), and other_wing (396), seen_all (395), dry_stack (393) and lines_behind (384) are close to it, so any further detail there must pay for itself. (Done: the items() audit in wave 30, 32 calls across 24 renderers now on line(); and napkin_level in wave 31, a boxed tag per leg with no crossing leaders.)

Wave 31 — done: the Packhouse trio (C-1279★, C-1262★, C-1270) and the napkin_level polish shipped (above); the builder screenshotted its own boards and ran its own robustness scan before handing over.

Wave 32 — done: the Sorting-room trio (C-1266, C-1271★, C-1280) shipped (above). Those were the last three open entries of Part Twenty, which is now fully built.

Waves 33–34 — done: the Evening trio (C-1235, C-1227, C-1243) and the Picking-round fusions (C-1275★, C-1277★, C-1268★) shipped (above), with the web tap fix. C-1221 and C-1242 went back to the pool.

Waves 35–36 — done: the Dance-floor fusions (C-1241★, C-1253★, C-1249★) and the Back-yard trio (C-1294★, C-1301★, C-1284) shipped (above), with the dropped-dossier fix. C-1284 is built, so C-1299★ (Box Pile, Dry Stack) is unlocked.

Waves 37–38 — done: the Garden-room trio (C-1198★, C-1183, C-1178) and the Tea-stall trio (C-1217, C-1215★, C-1209★) shipped (above). All four of the triage's top trios are now built. None of the six unlocks a fusion.

Wave 39 — done: the Spare-room trio (C-1295★, C-1282, C-1299★) shipped (above). C-1282 is built, so C-1288★ (Thick Enough to Hold, Thin Enough to Fit) is unlocked.

Wave 40 — done: the Seaside-evening trio (C-1192★, C-1182, C-1176) shipped (above). None of the three is a fusion parent (C-1192★ has no catalogued parent), so no fusion unlocked.

Wave 41 — done: the Rainy-Saturday trio (C-1191★, C-1175, C-1185) shipped (above). C-1175 is built, so C-1180★ (Last Piece Through) is unlocked.

Wave 42 — done: the Lazy-Sunday trio (C-1180★, C-1190, C-1184) shipped (above). None of the three is a fusion parent, so no fusion unlocked. C-1173 (Bend It to the Fit) returns to the pool.

Wave 43 — done: the Washday-afternoon trio (C-1160★, C-1165, C-1162) shipped (above). None of the three is the parent of a waiting fusion (C-1165's fusion, C-1166★ sheet_shades, was already built), so no fusion unlocked.

Wave 44 — done: the Washday-dusk trio (C-1158, C-1154, C-1164★) shipped (above). C-1158 is built, and C-1156★'s other parent, C-1149 tub_mangle, is live, so C-1156★ (Nowhere to Hang It) is unlocked.

Wave 45 — done: the Idle-hands trio (C-1173, C-1187, C-1189) shipped (above). None of the three is the parent of a waiting fusion, so no fusion unlocked.

Wave 46 — done: the Hall-night trio (C-1228★, C-1245★, C-1254) shipped (above), the first to span two parts. C-1254 is built, and C-1251★'s other parent, C-1250 key_couple, is live, so C-1251★ (Sight Calling) is unlocked.

Wave 47 — done: the Harvest-supper trio (C-1251★, C-1255, C-1263★) shipped (above), the second to span two parts; it completes square, caller and green-coffee. C-1255 is built, and C-1248★'s other parent, C-1246 down_the_line, is live, so C-1248★ (The Figures Set the Progression) is unlocked.

Wave 48 — done (merged, APK held): the Monday-errands trio (C-1156★, C-1157, C-1181) merged (above), the third to span two parts; it completes line-plan. None of the three is the parent of a waiting fusion, so no fusion unlocked. Part Sixteen now has no buildable entry left (C-1172 is held).

Wave 49 — done: the line-and-floor trio (C-1150, C-1242, C-1248★) shipped (above), the fourth to span two parts, and the first from two parts that are not neighbours; it completes longways. C-1242 is built, and it was C-1244★'s only unbuilt parent, so C-1244★ (Round the Corner Without Touching) is unlocked. v3.28.0 shipped from D:\j, carrying waves 48 and 49.

Wave 50 — done: the after-dinner trio (C-1153, C-1206, C-1244★) shipped (above), the fifth cross-part trio and the first across three parts; it completes ballroom. C-1206 is built, and it was C-1212★'s only unbuilt parent, so C-1212★ (Every Pot on Its Own Round) is unlocked. It was the last D21-clean trio.

Wave 51 — done: the tea-time trio (C-1212★, C-1202, and C-454 from Cycle 3) shipped (above), the first under the owner's "Do everything" and the first to seat an older catalogue entry. It completes steep-lanes and shade. It unlocks no fusion.

Wave 52 — done: T27's trio T1, the dawn chorus (C-1310, C-1303, C-1317), shipped (above), the first trio from the reopened research. It founds the sonogram, tally and plate families and unlocks no fusion. twice_over built the sonogram strip.

Wave 53 — done: T27's trio T2, the hide (C-1320, C-1307, C-1312), shipped (above). It founds the key family and seats from_hide in look-around and phrase_bird in glr-ma. It unlocks no fusion; C-1327★ now waits only on C-1313.

Wave 54 — done: T27's trio T3, the field guide (C-1313, C-1314, C-1311), shipped (above). usually_winter joins the key family. It unlocks C-1327★ (trio 9), whose parents C-1312 and C-1313 are both built.

Wave 55 — done: T27's trio T5, the marsh (C-1323, C-1309, C-1306), shipped (above). higher_branch joins sonogram and other_branch completes tally. It unlocks no fusion: C-1328★ still waits on C-1322.

Puzzle waves — PAUSED by the size gate (top of this page) until the owner answers IDEA-116 or IDEA-117. When the gate lifts, the next intact trio in the shortlist's order is trio 6, "The plate" — C-1264★ (Gq) · C-1318 (Gv-MV) · C-1316 (Gf-I), no flagged row. All three were checked unbuilt at 9437c9c: in app/ they appear only in WeekExclusions.ts' comments (C-1264★ in the ripening family and DEFERRED notes, C-1318 in plate and DEFERRED, C-1316 in DEFERRED), and nowhere in tests/. C-1264★ joins the live ripening family and C-1318 the live plate family, so the scheduler keeps them out of the weeks of cut_stone/ethylene_bowl and through_leaves. Trio 4 ("the backlog meets the chorus") is still broken: it needs another Gf-RG entry or is dropped. The full shortlist is in docs/cycle6/BACKLOG_TRIAGE.md and addendum §196.

Polish P6 — done (above): pivot_landing's DOOR, weir_facing and eleven boards from waves 11–40; the APK came out 216 bytes smaller.

Polish P7 — done (above): behind_under, wash_find and twelve more boards; the APK grew 2,212 bytes. corners_meet's BALL card went to the inbox as IDEA-140.

Polish P8 — done (above): twenty boards' key faces, cure_disease's claims and concede_deny's verbs in one row, between_numbers' steppers, passed_average's DOUBLE-WEIGHTED; the APK grew 688 bytes.

Polish P9 — done (above): curb_cable's d5 slots, linen_first's d5 pieces, three hyphen holds, four even rows and 22 boards' key faces; the APK grew 1,184 bytes. any_ten's d4–d5 slot ring went to the inbox as IDEA-141.

Polish P10 — done (above): the last thirty flagged boards' key faces, completing the flat-face sweep; two_letters' d5 cards, three 2 + 2 rows, one_hundred's d5 verdicts; the APK grew 1,372 bytes. Next: waiting on the owner (the queue at the top of this page). The standing polish queue (below) also stands. Home's "three runes - then the Echo Lock" hyphen-as-dash is still a copy note only. C-1000★ stays off every build list until its moiré flag (IDEA-047) returns.

Research reopened on 2026-10-01 (T27). DEC-067 paused research at C-1302; the owner's "Do everything" reopened it, and T27, the dawn chorus, admitted Part Twenty-Two (C-1303…C-1328, 26 entries on sixteen abilities). The catalogue of record now stands at 1328. The text below is the reasoning DEC-067 gave for the pause, kept for the record. At the pause the catalogue stood at 1302, and 379 types were built: more than three entries wait for every one that exists, so another territory adds backlog, not game. The owner's stated priority is 3D polish and a complete vibe, so the research effort moves to build and feel. The last two intakes: Part Twenty admitted T25, pick of the crop (grading by eye and hand, C-1258..C-1280), with a standing register rule that no board ever says food, drink or water is safe; Part Twenty-One admitted T26, some assembly required (C-1281..C-1302), 95% Gv+Gq, with its D69 claim refused. Research resumes when the A-grade backlog of shortlisted entries drops below about 60, or when the owner asks. The build backlog spans docs/cycle3/PUZZLE_CATALOG.md (C-001..546) and docs/cycle5/PUZZLE_CATALOG_ADDENDUM.md (C-547..1328).

The enjoyment backlog, counted. After wave 32 the builders' shortlists named only five open entries in the enjoyment parts; that number was never checked. A full triage the same day (docs/cycle6/BACKLOG_TRIAGE.md) found 56 buildable (51 unclaimed), 11 fusions waiting on a parent and 1 held in C-1148…C-1302. Waves 33–34, 35–36 and 37–38 each built six of the 56, wave 39 built two more (C-1295★, C-1282) plus the unlocked C-1299★, wave 40 built three (C-1192★, C-1182, C-1176), wave 41 three more (C-1191★, C-1175, C-1185), wave 42 two (C-1190, C-1184) plus the unlocked C-1180★, wave 43 three (C-1160★, C-1165, C-1162), wave 44 three (C-1158, C-1154, C-1164★), wave 45 three (C-1173, C-1187, C-1189), wave 46 three (C-1228★, C-1245★ and C-1254, of which C-1228★ and C-1254 came from the buildable count), wave 47 three (C-1251★, C-1255 and C-1263★, of which C-1255 and C-1263★ came from the buildable count; the triage counts C-1263★ as buildable, since both its parents were live, and C-1251★ was an unlocked fusion), wave 48 three (C-1156★, C-1157 and C-1181, of which C-1157 and C-1181 came from the buildable count; C-1156★ was an unlocked fusion), wave 49 three (C-1150, C-1242 and C-1248★, of which C-1150 and C-1242 came from the buildable count; C-1248★ was an unlocked fusion) and wave 50 three (C-1153, C-1206 and C-1244★, of which C-1153 and C-1206 came from the buildable count; C-1244★ was an unlocked fusion), so 9 are buildable (11 − 2: C-1200, C-1201, C-1202, C-1203, C-1220, C-1221, C-1222, C-1223, C-1264★, all Gq), plus C-1288★ (Gq) and, newly, C-1212★ (Gf-RG by the addendum's §150 heading) unlocked. 2 fusions still wait on a parent (C-1204★ on C-1200 and C-1203, C-1205★ on C-1201), and C-1172 is held. The triage file is now current (141 built + 11 buildable + 2 waiting + 1 held = 155), checked against PuzzleTypes.ts. No D21-clean trio is left: two narrow abilities cannot fill three seats. IDEA-127 is binding: reopen research for a new intake, build older non-enjoyment entries, or switch the waves to polish. Earlier parts still hold many unbuilt entries, but they did not come from the enjoyment intakes. The choice is the owner's. Its recommendation, corrected after the triage: build the triaged enjoyment entries, interleave polish, and reopen research at about five trios left. That point has passed, and as of wave 50 no clean trio is left. Agents do not decide it. Wave 51 update. The owner answered "Do everything" on 2026-10-01. Wave 51 built C-1212★ and C-1202 from this range (plus C-454 from Cycle 3), so the range now reads 143 built, 9 buildable (8 Gq entries: C-1200, C-1201, C-1203, C-1220..1223, C-1264★; plus the unlocked C-1288★, Gq), 2 fusions waiting (C-1204★, C-1205★) and 1 held (C-1172): 155, checked against PuzzleTypes.ts. On its own the old pool still gives no clean trio. With Part Twenty-Two's 23 buildable entries (3 fusions waiting) and the older catalogue open, the waves have about ten trios before research is needed again. Wave 52 update: this range is unchanged (wave 52 built from Part Twenty-Two only). Part Twenty-Two now reads 3 built, 20 buildable and 3 fusions waiting; with trio 1 done, nine suggested trios remain, eight of them intact (trio 4 needs a seat). Wave 53 update: this range is unchanged. Part Twenty-Two now reads 6 built, 17 buildable and 3 fusions waiting; with trios 1 and 2 done, eight suggested trios remain, seven of them intact. Wave 54 update: this range is unchanged. Part Twenty-Two now reads 9 built, 14 buildable, 1 fusion unlocked (C-1327★) and 2 fusions waiting; with trios 1, 2 and 3 done, seven suggested trios remain, six of them intact (trio 4 needs a seat). Wave 55 update: this range is unchanged. Part Twenty-Two now reads 12 built, 11 singles buildable, 1 fusion unlocked (C-1327★) and 2 fusions waiting (C-1326★, C-1328★); with trios 1, 2, 3 and 5 done, six suggested trios remain, five of them intact (trio 4 needs a seat). The next intact one, trio 6, waits on the size gate.

What the loop protects at every wave: tsc 0 · jest green · gate:web mounts · golden "0 pre-existing hashes moved" (or every moved hash declared, as rivet_twin's 30 were) · every new type on <Board> with a firewalled verifier and a negative control · voice-law taglines · ≤3 amber references per renderer · one CACHE_VERSION bump per wave · every new board screenshotted before the APK · APK to O:\rclone-offload\ · a frozen dashboard page per APK.

Territories still unresearched (for when research resumes): children's and street play is the one territory measured to pull away from the quantitative centre (D78) and was told to be commissioned early next time; the emitted cell still wants readers rather than emitters (D81); Gs/Gt stays deliberately capped at five (D35).

Cycle 6 — the owner's new direction

The owner's words: "UI feel very cool and fun, vibe of mastery and exploration, well-made assets." And, on 2026-09-19, a reframe of where puzzles come from: enumerate the human faculties a phone can exercise, then attach them to serendipitous themes.

What the owner asked for on 2026-09-24

"really nice 3D polish and a complete vibe … blending this silly morning games-style vibe with also a sense of progress: 'I'm getting smarter in XYZ areas … if I want to improve this part, I can do more puzzles here'"

"I literally just spent 2 minutes chopping virtual wood"

DEC-065 reads this as the go for Direction C, "The Chart", with B's window to follow. IDEA-037 stays open with the ADR cited. How each part is being answered:

  • A sense of progress by area → live, with depth and record cards. C1 shipped with wave 15: six plain-words areas over the 19 abilities, the Chart screen with one mark per type and a "practice here" run from any area, and today's leg on Home. C2 shipped in wave 16: the Chart as terraced water, four distinct state marks, station record cards with "Play it now", a LIST view, and log entries on the results card. The copy states practice and records per area; it does not say the player is getting smarter (D22). Two questions the Chart raised are the owner's: whether a hint-free untimed solve counts (IDEA-086), and whether it reads as a map you explore or a skill tree you grind (IDEA-087). Nobody has seen it on a phone yet.
  • Puzzles from the senses and from things people enjoy → wave 15 built the first sense boards (a plumb line, a tide gauge's chevrons, chalk lines by true length) and the first boards in the body's own frame. Chopping wood shipped in wave 16 as the woodyard trio (read_round, split_stack, every_crumb), ranked first at the owner's request, and in wave 17 the round was redrawn as end grain; its swing and timing forms still wait on the law questions (IDEA-048, IDEA-050). Washing day shipped beside it. Wave 17 shipped a senses trio (a tilting plank, a rule from labels, a wing's symmetry) and tea and coffee. Wave 18 shipped mending (sashiko loops, the wobbly table, tyre sizes), more washing day, and the coffee counter (a tasting test, the kopi code, latte rings). Wave 19 shipped pastimes (a kaleidoscope, lawn stripes, pruning) and the square dance (even turns, the key couple, which wall). Wave 20 shipped grading (a coffee tray, the air cell, two leaves and a bud) and repair (sides to middle, darning, every screw back). Wave 21 shipped figure dances (the rueda, the caller's card, a longways line), walk-round 3D builds (a brick instruction step, 32 mm shelves, a lumber pile) and the market (bananas for Monday, head rice, honey's seven shades). Wave 22 shipped the workshop (a grocer's fruit pyramid, tent pegs, flat-pack dowels). Wave 23 shipped laundry at the mangle (which sock ran, the great wash, a watering walk to keep every web wet). Wave 24 shipped homework assembly (room to open the drawer, sandcastles on a wide base, a wing built mirrored) and harvest grading (olives cut to the stone, coffee screens, cups ranked from memory). Wave 25 shipped the reel (a grand march, a reel of three, footprints from memory), ironing day (whites first, soft water, three irons on one stove) and the playroom (find it in the heap, which is the owner's "look around and identify things"; a snowman rolled to size; cables through a cabinet's back panel). Wave 26 shipped recess (dominoes stood so the marked bell rings last, two domino lines so both bells ring at once, and tag round a tree against a printed chaser), picked from the owner's enjoyment direction. Wave 27 shipped tea and coffee by hand (strong and light Turkish tea from a stacked pot, water cooled by pouring, coffee cups sorted by sugar at the stove) and the sorting table (tomatoes turning pink, melons heavy for their size, a matched pearl strand). Wave 28 shipped make do and mend (a mattress turned season by season, a patch cut so the check runs on, a punctured tube read against its wheel). Wave 29 shipped hold fast (napkins folded under a café table's legs, a sashiko patch that holds round the hole, a sheet turned and darned). Wave 30 shipped the weekend (a brick model checked against its sheet, three snowballs rolled from one lawn, a tent pitched with its back to the wind). Wave 31 shipped the packhouse (a fruit bowl that ripens itself, candled eggs held in a cool room for market, wool fleeces classed into the fewest lines). Wave 32 shipped the sorting room (a taste panel on a dilution ladder, fleeces skirted to fit the room's lines, grading words learned from a card and used from memory), which finishes Part Twenty. Waves 33–34 shipped the evening (a dropped knitting ladder picked up, a caned seat's diagonals laid, tinikling poles crossed in time) and the picking round (honey blended to a grade from memory, dates picked at rutab, tea plucking rounds set by reading the bush). Waves 35–36 shipped the dance floor (two reels timed round a shared middle, a line dance's drift kept in the box, a rueda called home before the song ends) and the back yard (a brick model taken apart to find the wrong colour, two tents pitched on one slope, a timber pile set on the fewest stickers). Waves 37–38 shipped the garden room (a trellis pruned to what the watering cans can carry, a pot turned on Mondays to land its stem on the mark, a room walked round and set to match a photo) and the tea stall (sample teas matched from memory, a revised tray poured from stewing pots, teh tarik pulled with one pair of hands). Wave 39 shipped the spare room (a wing and its mirror built from one bag, a long shelf loaded on the fewest brackets, a dry stack raised on the fewest stickers). Wave 40 shipped the seaside evening

(pebbles dropped from the bank so every ripple reaches the lily pad on one beat, a star patch found through a turned and mirrored eyepiece, a sand picture poured in a frame that can take a quarter turn). Wave 41 shipped the rainy Saturday (a hat's crown closed with a colourwork band, a sofa pivoted round the landing, a figure covered with one stamp in the fewest presses). Wave 42 shipped the lazy Sunday (the furniture brought into a flat you can walk round, a swing pumped in the slot that drifts as it rises, pins joined the way a soap film would). Wave 43 shipped the washday afternoon (a line that sags under the washing, a drying green you walk round to find the shade, a bowl of starch thinned a cup at a time). Wave 44 shipped the washday at dusk (washing moved along a line to catch the sun as the shadows sweep, an ironing afternoon of sprinkled bundles and one iron, tubs and a mangle sharing the water and the minutes). Wave 45 shipped idle hands (a strip of wire bent in a jig to fit an outline, a dark store walked by lantern until every aisle has been seen, stones skimmed over the pads to the far bank). Wave 46 shipped the hall night (a pair of checked trousers let out at the seams to patch the knee, two dancers in the tinikling poles, a square-dance set called back home). Wave 47 shipped the harvest supper (the square called home by sight once the couple numbers go, a contra dance's sixty-four counts filled from figure cards, green coffee screened and picked to grade).

  • A complete vibe → vibe pass 1 shipped with wave 20: a new Home, the morning frame, with today's leg as 3D station posts that grow with the Chart; the route inked between stages; a results card that lights the leg and names one area under PRACTICE HERE; Sepia's outcome lines. To make room for it, research was paused at C-1302 (DEC-067), with 1302 entries catalogued and 370 built; it reopened on 2026-10-01 (T27, C-1303…C-1328). Two questions it raised are the owner's: Sepia as the morning greeter (IDEA-114) and share as an image or as text (IDEA-115); the STREAK readout already in the code conflicts with DEC-006 (IDEA-044). Vibe pass 2 shipped with wave 26: the results card is a slab; WORKED TODAY shows which areas you worked today, as a stack of blocks per area beside a gauge of its standing, with PRACTICE HERE under it; and, with the timer on, each puzzle is compared with your own record or median. <Solid>'s lit edges are back where the View budget has room. Its five taste forks are the owner's (IDEA-120..124).
  • Look around a 3D world → shipped as a diorama in wave 16: every_wall, stall_moved and behind_under show a room from each of its four walls, like looking into a dollhouse, on a renderer-independent scene seam (app/ui/solid/scene.ts). In the v2.9.0 APK their tags could not be tapped; v3.0.0 fixes that, and wave 17's polish gave the rooms a value ladder, far-wall features and a WallPlan. The objects are still boxes, not silhouettes. Standing inside the room needs the renderer choice (IDEA-071); whether the dollhouse is enough of what was meant is the owner's question (IDEA-083).
  • 3D polish → the renderer spike (docs/cycle6/SPIKE_3D.md, IDEA-071..072) recommends expo-gl with an in-house renderer and refuses Skia and WebGPU on size. The font trim it asked for has landed: 33 → 10 bundled font files, 4.1 MB raw. The diorama seam means a GL renderer replaces one file, DioramaView.tsx. The renderer choice is still the owner's (IDEA-071). The core 3D primitive is fixed (wave 22): <Solid>'s 16-value matrix transform, which react-native-web dropped and RN Android flattened, is gone; faces are now painted from plain border boxes (app/ui/solid/pieces.ts), and 11 boards draw their 3D blocks again. Wave 23 removed the last two matrix transforms (WaterLevel's water plate, FoldNet's face labels), and tests/NoMatrixTransform.test.ts now bans matrix and skew under app/; the Android check is still IDEA-072. Wave 21's assembly trio grew the diorama seam (an opt-in stacked painter rule, decals, a room-keyed paint cache), and wave 22's dioramaLook made its bricks read as bricks. The boards are greyscale because Phosphor allows no other hues; whether wood, tea, cloth and rooms may have a small material palette is filed as IDEA-097.
  • "Silly" lands as dry humour and small caused delights. Where the voice law blocks the vibe, the conflict is filed in the inbox rather than broken (IDEA-079 asks how silly a premise may be).

Where Cycle 6 stands. C1 and C2 shipped; C3 is held on IDEA-071 and IDEA-037. Three tracks:

  • The Chart (shipped, deepened). C1 merged after wave 14's wiring; merging it showed that station codes follow FACTS row order, so the table is append-only (DEC-066). C2 added depth, four state marks and record cards. C3 — the chart-mark typeface, drawn shoal outlines, the Outstation IX origin mark — waits on the renderer choice (IDEA-071) and the art direction (IDEA-037).
  • The faculty axis (building). docs/cycle6/QUIRK_ATLAS.md is the enumeration of record: 204 faculties in twelve clusters. Its twelve law questions are filed as IDEA-048..059 — gestures beyond the tap, tilt as the answer, precision timing versus speed, self-moving stimuli, haptics as content, a test hue, the shutter for missed exposures, calibration copy under D22, cross-day content versus no streaks, figures without faces, reduce-motion for motion content, the illusion shelf. Agents do not answer them. Part Thirteen's first six entries shipped in wave 15 in their within-law forms, and a senses trio shipped in wave 17 (banker_stand, labels_force, rivet_twin); entries that depend on a law question wait for it.
  • 3D and assets (measured, not chosen). The spike has priced the options, the font trim has bought the headroom, and the first diorama rooms shipped on a seam any renderer can paint; the renderer choice is the owner's (IDEA-071). The <Solid> repair shipped in wave 22; the last matrix transforms were removed in wave 23. APK headroom is now an owner question too: IDEA-116 (the R8 test APK, 27.34 MB) and IDEA-117 (what the 34 MB gate measures). Wave 25 added two: whether the reel dancers may stay solid blocks (IDEA-118) and whether to fix Key's face height for every board (IDEA-119). Wave 26's vibe pass 2 added five taste forks: the per-stage record line (IDEA-120), one practice route or one per area (IDEA-121), what the solid blocks mean (IDEA-122), lit edges everywhere (IDEA-123) and the edge-light strength (IDEA-124). Wave 27 added two voice questions: whether to sweep every older story figure's pronoun (IDEA-125) and whether only_she keeps its title (IDEA-126). Wave 32 added one about the backlog itself: the enjoyment parts are nearly built out, so should research reopen for a new enjoyment intake, should the waves go back to older catalogue entries, or should they turn to polish and vibe work (IDEA-127)? The recommendation, corrected after the backlog triage, is to build the triaged enjoyment entries, interleave polish, and reopen research at about five trios left; it is the owner's to make. The inbox stands at 127 items.

Cycle 5's graphics passes were disciplinary — Board on every type, amber audits, motion law, memoisation — and they were right to be. Cycle 6 is the first cycle whose brief is feel. The proposed shape, for the owner to accept, cut or reorder:

  1. Mastery without streaks. Everything that shows progress must survive the anti-streak position and the claims discipline (D22). C1 is the first build of it, and C2 deepens it. Candidates filed in the inbox: the instrument inventory (IDEA-025), calibration marks (IDEA-034), the logbook entry (IDEA-036), Sepia's method observations (IDEA-027).
  2. Exploration of the roster. 370 types and a player meets a new one about one day in three. The Chart's "practice here" run, now shipped, is the first answer. Other candidates: the tide table (IDEA-024), expedition days (IDEA-026), the horizon strip (IDEA-035), the constellation by family (IDEA-031), Twin Day (IDEA-032).
  3. Well-made assets, Phosphor-style. The product refuses image assets (L4 deliberately empty) and won the APK-size fight by doing so. The direction that fits: hand-built instruments on the solid ramp, derived by identity family (IDEA-033), a stillness pass — the app is at rest almost always (D47), so the rest state is the asset — and, if the owner takes it, the in-house GL renderer the spike priced.
  4. The on-device pass. Forty-seven waves of boards have never been eyeballed on a phone. Before Cycle 6 spends on feel, the King's checklist runs on hardware: reduce-motion sweep, haptic taste session, Key 4-state visual, gradient grease check, commit→bench timing, tilt parallax with the setting on, fps and frame time on the solid stage — and now the Android skew check (IDEA-072), the Chart's render, the ten trimmed fonts and the diorama rooms' scale and taps, the new Home, and the results card's 1 px lit edges.

Every taste call in this cycle is filed in IDEAS.md for the owner. The agents propose; the owner decides; the decision log records.

Carried items

C: disk space — WATCH (open since wave 41; blocking at wave 48). At the P10 close C: had about 8.7 GB free and D: about 5.1 GB (9.4 GB and 5.3 GB at P9's). At the wave 49 build C: fell to 74 MB free, from other processes' VS Code installer downloads and other sessions' data in C:\tb and C:\Temp, not from this project. To protect the machine, the session moved its own build copy from C:\Temp\j to D:\j (56,131 files, 3.38 GB, copied and verified before deleting), which freed about 2.9 GB on C:. The Gradle cache C:\g and the Android SDK stay on C:. v3.28.0 then shipped, so the wave 48 hold is over. Watch: C: is at about 2.4 GB free and D: at about 7.2 GB; the next build re-checks both. The history: C: had only 1.25 GB free at the wave 41 close. After the rclone VFS upload cache (C:\Temp\rclone-cache) drained, it recovered to 1.6 GB, so builders resumed, one at a time, with TEMP on D:. C: had 1.52 GB free at wave 42's close, 1.42 GB at wave 43's, 1.4 GB at wave 44's, 1.35 GB at wave 45's, 1.27 GB at wave 46's, 1.22 GB at wave 47's and about 0.97–1.0 GB at wave 48's, when the APK was held. Other sessions consume it. What else to move is an infrastructure decision for the owner, not for agents.

Build lesson (wave 49). After moving a build copy, clear every cache that holds absolute paths (android/build, android/app/build, .cxx, .gradle, and every node_modules/**/android/build and .cxx), or Gradle fails with "No matching variant … No variants exist". And never ship without checking that gradle exited 0 and that the APK is newer than the build start: the first D:\j build failed, and the previous v3.27.0 APK was copied to O: under the v3.28.0 name (caught within minutes and deleted). docs/BUILDING.md records both.

  • The addendum's un-migrated one-per-week families (DEC-064 addendum) — the scheduler is built; the families the addendum records and WeekExclusions.ts does not yet hold still need moving in.
  • Citations to verify — Stewart in long_pole's reveal (wave 17); Černý 1964 in every_crumb's reveal; Hayes' "Group Theory in the Bedroom" in four_ways' reveal (wave 28; named only, the fetch returned 503).
  • Held for verification — the tea reveal copy on sencha, the golden drop, Cooper & Dutle and gongfu (wave 17); teh in kopi_kosong, the sensory-science name for sets of three in eight_cups, and the screw-drawer bank (wave 18); the T19 items that ask for quotations (wave 19); none ships until checked.
  • Matrix and skew are banned — the last users were removed in wave 23, and tests/NoMatrixTransform.test.ts enforces it; never use transform: [{ matrix }] or skew anywhere.
  • C: disk headroom — other sessions took C: down to 2.8 GB during wave 23 and to 3.5 GB during wave 27 (5.3 GB free at that build); 4.6 GB was free at wave 31's build, 4.3 GB at wave 32's, 3.6 GB at waves 33–34's, 3.0 GB at waves 35–36's, 2.6 GB at waves 37–38's, 2.4 GB at wave 39's, 2.1 GB at wave 40's, 1.25 GB at wave 41's, 1.52 GB at wave 42's (after recovering to 1.6 GB when the rclone cache drained), 1.42 GB at wave 43's, 1.4 GB at wave 44's, 1.35 GB at wave 45's, 1.27 GB at wave 46's, 1.22 GB at wave 47's and about 0.97–1.0 GB at wave 48's, below the 1.2 GB build threshold, and 74 MB at wave 49's build. Other sessions consume it (C:\tb holds about 34 GB of their working data). The build copy then moved to D:\j; C: is at about 2.4 GB and D: at about 7.2 GB. Watch, no longer blocking.
  • APK size — new puzzle waves PAUSED — IDEA-116 (try the R8 test APK on a phone) and IDEA-117 (download or installed size), from docs/cycle6/APK_SIZE_AUDIT.md. At v3.39.0 (polish P10) the APK is 33,937,884 bytes, 62,116 bytes (about 0.06 MB) under the 34 MB gate, 1,372 bytes more than v3.38.0. No new puzzle wave is planned until the owner answers IDEA-116 (R8, about −4.4 MB) or IDEA-117. A very lean wave might squeeze in, but the margin is too thin to plan on. Polish waves continue. The R8 test APK measured 27.34 MB; it is still the v3.4.0 build, and a fresh R8 test build is still not permitted from the agent side. The owner decides; IDEA-116 records the headroom as information.
  • UTF-8 guard test (wave 51) — a source scan for Ã/Â in app/, with an allow-list for real words such as which_way_up's MISTANÂSKOWÊW, would have caught wave 51's mojibake. Not written; the builder brief carries the manual grep meanwhile.
  • Board polish queue — breakers_pink's dim fruit (still held on IDEA-053/097); tray_reversed's doors wrap to two rows at level 5; faint cracks on stacked <Solid> sides. cool_pour and dry_dusk are at their budget ceiling (385 of 400 Views); other_wing (396), seen_all (395), dry_stack (393) and lines_behind (384) are tight too.
  • What the gate measures — npm run gate:web mounts only the pre-font placeholder and never a puzzle renderer. Wave 30's registrar mounted the new renderers with a server-side react-native-web harness (8 seeds × 5 difficulties); the screenshot ritual is the real visual gate. The same question as IDEA-117, asked of the web gate.
  • Generators must never throw — run the robustness scan (every type × 5 difficulties × ≥60 seeds) at every wave close; wave 30 found four types that could throw and gave each the post-exhaustion sub-seed fallback, and safeGeneratePuzzle now re-draws any stage that still throws.
  • Wave 32 owner question — IDEA-127 (reopen research for a new intake, keep building older entries, or turn waves to polish). The owner answered "Do everything" on 2026-10-01, and all three tracks run (T27 research, wave 51, polish P1). The DEC entry and IDEA-127's status await the owner.
  • Polish P2 owner questions — IDEA-136 (dead primary key labels vanish on pool_rule, which_way_up, certain_likely, ghost_box and answer_already: board by board, a sweep, or a Key change) and IDEA-137 (way_fights' fit-to-width scale leaves its joint keys about 37 px at 360 px, under the 44 px target).
  • Polish P3 owner question — IDEA-138 (rail labels centre on the whole board: align them in Board.tsx once, or board by board as P3 did on crystal_common, sock_ran and tape_empty).
  • Polish P4 owner question — IDEA-139 (keys under Key's 48 px minimum, such as touch_frame's film chips and the 44 px steppers on every_wheel and straight_line: should per-board overrides have a floor). P4 also left an information note on IDEA-119.
  • Polish P5 — no new IDEA; information notes on IDEA-119 (two_leadsmen) and IDEA-139 (sheet_drags laid out at Key's 48 px, not overridden). Carried to P6: pivot_landing's DOOR label overlaps its dashed cell (minor).
  • Polish P6 — no new IDEA; information notes on IDEA-119 (about a hundred of the 147 surveyed boards from waves 11–40 still draw the flat face; a global Key fix would cover them in one change, which is the case for an owner answer) and IDEA-139 (grade_burning's grade keys at 44 × 48). pivot_landing's DOOR carry is discharged. Carried to P7: the next tier (above), smaller_hole's lone fifth key and corners_meet's BALL card break.
  • Polish P7 — new IDEA-140 (corners_meet's BALL card breaks after its "·" by the house line rule; whether such cards should start a new line instead is a taste call); information notes on IDEA-119 (about ninety boards from waves 11–40 still flat) and IDEA-139 (behind_under's rail spaced at Key's 48 px, not overridden; no key under 44 px). The P6 carries are discharged. Carried to P8: the remaining flat-faced boards from P6's survey.
  • Polish P8 — no new IDEA; information notes on IDEA-119 (80 boards flagged before P8, about 54 after it) and IDEA-139 (keys declared 36–44 px that Key's minimum drew at 48 are now declared 48; rank_cups' and air_cell's 44 px keys keep a 40 px face). The P7 carry is partly discharged. Carried to P9: the next 15–20 flagged boards, question_wears' lone fifth band and rank_cups' lone sixth cup.
  • Polish P9 — new IDEA-141 (any_ten's d4–d5 slot ring); information notes on IDEA-119 (22 boards mended, about 34 left) and IDEA-139 (no key under 44 px; lawn_stripes' lane keys and any_ten's ring left for the owner; four lone-key rows split evenly). The P8 carries are discharged. Carried to P10: the last flat-face batch.
  • Polish P10 — the flat-face sweep is complete; no new IDEA. Information notes on IDEA-119 (the sweep done; option (a) would now mainly remove about 140 workarounds), IDEA-139 (no key under 44 px; the four boards' under-44 keys left as they are), IDEA-116 and IDEA-127. The P9 carry is discharged. Carried, minor: click on a non-certificate seed the keys P10 only DOM-checked (adders_only d5; break_nines, dame_dos, darn_thin, down_the_line, empty_basket; long_pole's CARRY, one_sort's FILE THE HIERARCHY, starter_ten's BUZZ / NEXT TOKEN); and stall_moved's before view showing the after-view pick as picked (pre-existing; it submits correctly).
  • from_hide re-shoot (wave 53) — discharged in P4: re-shot at d1, d3 and d5 across all four facings on the final geometry; it reads well and needed no change.
  • Waves 52–55 and the T27 owner questions — IDEA-128 (silent), IDEA-129 (invented birds), IDEA-130 (one English mnemonic, no Japanese example: option (b), on phrase_bird), IDEA-131 (taps) and IDEA-132 (the count described, not named) each now have a built board on a conservative default; wave 54 added three more boards on 128, 129 and 131 (and faint labels under IDEA-136), and wave 55 three more on 128, 129 and 131. Neither touched 130 or 132. All stay open.
  • Polish P1 owner questions — IDEA-133 (the stage header wraps on a phone), IDEA-134 (emoji and stray symbols in sequence_rebuild and card_memory; a fix moves the golden) and IDEA-135 (futoshiki's ∧ ∨ marks and an inverted legend). IDEA-119 stays open, with 29 more boards on the per-board workaround.
  • Hit-tests use tapPoint() (app/ui/touchPoint.ts) — locationX/Y is undefined on the web, and tests/TouchPoint.test.ts fails if either appears anywhere in app/. Neither gate:web nor the screenshots caught the four dead web boards; a click probe did.
  • Pass dossier= only on the dossier frame — Board.tsx drops it on every other frame, so frame-less boards print their rules as a line in the board body; tests/DossierFrame.test.ts enforces it. Tag rails use app/puzzles/renderers/railLayout.ts.
  • Station codes settle at the registrar's regen — parallel builders may both claim a provisional code (waves 35–36 both claimed 3T-01); the regen after the merge assigns codes in FACTS order and must rename nothing.
  • After a keepboth merge, re-run Identity.test before the full suite — waves 37–38 both edited one "differ only by ruling" declaration, and keepboth left two incomplete lines; a shared declaration needs a union, not two lines.
  • Rule text uses only the sanctioned glyphs, plus ÷ and × — no ⌊ ⌋ or other math brackets (pull_milk, 7009175); the rule is in the builder brief.
  • WEEK_PAIR_BANS dedupe — closed (wave 40) — a false alarm: the table has 129 distinct pairs and tests/WeekExclusions.test.ts already fails on a duplicate; the flagged pairs also sit in once-a-week families, a deliberate overlap (ruling 4).
  • Wave 27 owner questions — IDEA-125 (sweep every older story figure's pronoun, new boards only, or drop the rule) and IDEA-126 (only_she's title).
  • Wave 26 owner questions — the vibe-2 taste forks: IDEA-120 (the per-stage record line), IDEA-121 (practice routes), IDEA-122 (what the blocks mean), IDEA-123 (lit edges everywhere) and IDEA-124 (edge-light strength). Each was built the conservative way.
  • Wave 25 owner questions — IDEA-118 (reel dancers as solid blocks, glyph tokens or a hybrid) and IDEA-119 (Key.tsx face height: a global fix with a screenshot sweep, or the per-renderer minHeight workaround).
  • Full jest after every merge to main — polish merges included; wave 25's polish merge left main red on AmberSlice until the next merge.
  • Resolve conflicts hunk by hunk — never git checkout --ours/--theirs a whole file; wave 26's vibe merge dropped clean hunks that way before it was caught.
  • Non-player figures take no gendered pronoun — chasers, dancers, customers; wave 26's keep_tree chaser was "his" until 08cecfb, and wave 27 swept five older types. The rest of the older texts wait on IDEA-125.
  • Check a C-code is built from the code, not the comments — grep only PuzzleTypes.ts, the FACTS rows and the renderers; WeekExclusions.ts' DEFERRED comments name unbuilt codes. Wave 27 skipped Part Eighteen by counting them; wave 28's corrected check found 13 truly unbuilt, and after wave 29 three undeferred remain (C-1221, C-1227, C-1235). After wave 32 the open enjoyment entries are those three plus C-1242 and C-1243. Waves 33–34 built C-1227, C-1235 and C-1243; the full count is now docs/cycle6/BACKLOG_TRIAGE.md's.
  • tube_show's tilt channel — the level-4 tumble is tap-only; mapping device faces to six hours is a follow-up.
  • Android check of the rebuilt <Solid>, WaterLevel and FoldNet — RN Android dropped the shear (IDEA-072); the repairs shipped in waves 22 and 23 and now need confirming on a phone.
  • The Chart on a device — C1 and C2 have been seen only on the web.
  • The diorama rooms on a device — the four-wall views, the v3.0.0 tap fix and wave 21's walk-round builds have not been checked on a phone.
  • Font render check on a device — the ten deep-imported weights, on the phone.
  • On-device v1.2.0 checklist — needs a human with the phone (see Cycle 6 item 4).
  • eslint — install it or strike npm run lint (DEC-051, open since 2026-07-29).
  • Dead stack — deletion needs explicit approval (IDEA-021).
  • Release keystore — debug keystore only so far (IDEA-022).
  • Register OWNER flags — all filed in the inbox (IDEA-001..019).
  • World-puzzle backlog (docs/WORLD_PUZZLES_ROADMAP.md): sliding-block escape, hitori, peg solitaire, shikaku, tchuka ruma — each must earn two axes against the current 1302 before it is built; slitherlink lineage already shipped as counted_fence.

The dashboard itself

This site is generated from docs/dashboard/ by dashboard/build.mjs and deployed to Cloudflare Pages at https://cognitive-hub-dashboard.pages.dev (since 2026-10-20; it was on Vercel from 2026-09-19 until the owner moved it on cost). There is no auto-deploy: npm run dashboard:deploy builds and publishes it at every wave close. Wave-close ritual: docs/dashboard/README.md.

▾VERSION v5.13.0-sound · 79 releases · APK MAP