Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A Sims-style lighthouse game for Ralph and Eddie: tell the keeper what to do by typing or tapping objects, then keep him happy through the day. The playable cutaway currently has a kitchen, living room, bedroom with en suite, and lamp room.
On an iPad: open the address in Safari, Share, Add to Home Screen for full screen.README 전문 보기 ↗A Sims-style lighthouse game for Ralph and Eddie: tell the keeper what to do by typing or tapping objects, then keep him happy through the day. The playable cutaway currently has a kitchen, living room, bedroom with en suite, and lamp room.
The current graphics authority is
docs/CODEX_BRIEF.md: bright, clean non-pixel 2D
illustration; a completely flat orthographic side elevation; a straight-sided
red-and-white tower with no taper; exact 2048 × 576 room modules under the
newer docs/SPEC.md geometry; and pure #FF00FF only for glass, sky, sea and other see-through
areas. Codex produces all new game graphics; Makko is no longer used. Existing
approved/runtime bytes remain unchanged until a separate migration is approved.
Ordinary stairs and the lift remain off-stage. The leftmost module on every
floor has the same plain wooden door in its left wall and an empty x=32–256
walk-in zone. At the new production width the top-floor bedroom includes its
en-suite partition near the right end. The hidden-travel and replaceable
footsteps_stone_stairwell sound-placeholder contract is
docs/HIDDEN_CIRCULATION_DOORS_AND_AUDIO_2026-10-26.md.
The generated whole-island drafts and the 8-bit/16-bit V2–V4 comparison are
rejected historical evidence. Pixel art was too blocky when zoomed in, and the
experimental tapered tower is not the production geometry. Their immutable
measurements and review evidence remain in
docs/LIGHTHOUSE_ESTABLISHING_SHOTS_2026-10-26.md
and
docs/LIGHTHOUSE_PIXEL_STYLE_TEST_2026-10-26.md.
The current Prime animation review is /prime-keeper-animation-drafts
(versioned permalink /prime-keeper-animation-drafts-v12): ten reversible
sequences with 162 frame occurrences. V12 retains V3's accepted palette, lift
and naming changes and preserves V1–V11 unchanged. It replaces only rear-task
positions 11–31. V11's layered action arms retained inner sleeve and jumper
edges that broke the torso and cream stripe. V12 removes that incompatible join
by reusing complete Cook at counter frames 2–8 byte-for-byte as three work
cycles. Each action pose is therefore one coherent drawing from cap to boots;
no arm, torso, stripe or hem is composited separately. The optional exact-Prime
alignment ghost remains off by default. Every frame retains an independent
redraft slot; all players retain pause/stop/frame controls and the page retains
its sequence sandbox. Unsafe
snack, bed and original broom source sheets remain visibly withheld by the
isolation gate. See
docs/PRIME_KEEPER_EXPANDED_ANIMATION_REVIEW_V12_2026-10-23.md.
Frank approved all ten V12 animations on 23 October 2026. The immutable,
hash-pinned decision is
docs/review/keeper-prime-morning-drafts-v12-approval-2026-10-23.json; the
complete next-run identity, lessons and ordered backlog are in
docs/PRIME_KEEPER_NEXT_ANIMATION_RUN_HANDOFF_2026-10-23.md. Approval makes
V12 the review authority but does not itself install new runtime sprites or
gameplay bindings.
The V1 and V2 rear-task manual alignment tools remain available as reversible diagnostic evidence, but they are no longer the active correction route: exact registration proved that their source torsos and lower bodies were structurally incompatible.
The historical whole-bank gate is the reversible Prime Keeper whole-bank
normalisation programme. Its new selector is
/keeper-review/keeper-prime-context-workbench-v15/: every selectable item is
shown at 8×, proposed 4× game presentation and literal 1×, with frame stepping,
speed, looping, exact-Prime and adjacent-frame ghosts, and switches to include
or omit its preceding and finishing transitions. The active version contains
eleven deliberately status-labelled routes or inspection views: approved core locomotion and
vertical-circulation authorities, the unapproved six-view seated foundation,
the approved corrected Prime-redrawn Darts V8 route and its separate registered
core inspector. V2 fixes V1's deployed
relative-catalogue URL fault and uses a full-width large-inspection pane; V3
retains those fixes and adds the inspection-only
/keeper-review/keeper-prime-darts-strip-inspector-v1/. All 30 inherited V2
cells can be stepped at exact/enlarged source resolution with Prime/adjacent
overlays and deterministic blue/navy/cream comparisons. V4 additionally linked
the reversible /keeper-review/keeper-prime-darts-isolation-v1/ correction.
That audit proved the tightly packed generated source was not genuinely cell
safe: source-core F07, F11 and F12 (registered F15, F19 and F20) inherited 256
foreign actor pixels in total, while four detached dart components straddled
source F08–F12 (registered F16–F20). The new candidate rebuilds only the
fourteen throw-core cells from whole connected actor components, keeps flying
darts as separate effects, and preserves all sixteen Prime/approved bridge
cells byte-for-byte. Palette correction remains a separate future gate. Darts
V4 is /keeper-review/keeper-prime-darts-context-v4/: it restores the complete
playable route using those isolated cells while retaining V3's timing, root
motion, frame order and controls. Its closed cupboard door and board are edge-on,
every dart visibly flies and sticks, the Keeper collects
the first three at the approved reach height, turns only at the board and
oche, returns one exact 30.5-lp stop-to-stop stride and throws three again.
Nothing was promoted or wired into runtime. Darts V5 at
/keeper-review/keeper-prime-darts-context-v5/ keeps the exact 213-frame V4
route but adds reversible browser-local “skip this occurrence” and “skip this
pose everywhere” editing, restore/export controls, and one shared detailed dart
component for airborne and stuck states. It does not alter source frames.
Frank approved the three-pose drawing family in
/keeper-review/keeper-prime-darts-redraw-v1/; the immutable decision is
docs/review/keeper-prime-darts-redraw-v1-approval-2026-10-17.json. The new
/keeper-review/keeper-prime-darts-redraw-v2/ core keeps those three drawings
byte-identical, adds five Prime-derived bridge poses and registers fourteen
slots with exact Prime neutral endpoints. Darts Context V6 first applied those
slots to all 84 throw-core occurrences, but retained four unnecessary inherited
camera-facing posture bridges and incorrectly treated the 448-pixel action
cell's 16-lp foot axis as 28 lp, causing a 12-lp backward jump into the core.
V7 removes old frames 21–28, 71–78, 156–163 and 206–213, corrects all 84 core
anchors to 16 lp, and produces a pixel-identical F20→F21 neutral join. Its 181
retained frames preserve the walk, throw, dart, collection and turn behaviour.
V8 retains V7's 181 Keeper frames and corrected anchors, but replaces the
temporary projectile and board drawings. One smooth 7.25-lp dart—with red
flights, ribbed dark barrel and long silver point—is used identically in the
air and embedded. Every final flight frame terminates at the board face at the
same coordinates as the following embedded state. The acute board is now a
recognisable segmented traditional board with double/treble rings and bull.
Workbench V15 exposes V8, retains the core inspector and earlier diagnostics,
and links : a complete approved
walk/stop context around the first new Prime six-pose side-right sit, 600 ms
seated beat and exact reverse stand. Its action endpoints are byte-identical to
the standing and seated Prime authorities; four smooth intermediates are
registered to one floor and one root. V6 preserves every V2/V1 Keeper frame,
timing and root, and retains V5's corrected horizontal chair registration:
the front face of the backrest equals the visible back/spine contact, and the
front seat rim ends 0.5 lp behind the rear shin plane. Live review then proved
that V5's nominal 11-lp surface crossed the pelvis. The measured rear-pelvis
silhouette ends at source y=257, so V6 begins the support surface at y=258:
7.75 lp above the fixed floor. Frank approved exact V6 on 17 October 2026;
its six action cells, 45-frame route, review application and seat geometry are
hash-pinned in
.
V1–V5 remain immutable provenance. This approval does not promote V6 into
Final, runtime or production.
Frank approved exact side-left V1 on 17 October 2026. Its separate immutable
decision is
docs/review/keeper-prime-sit-stand-side-left-v1-approval-2026-10-17.json;
the approved reflection, 45-frame route and registered seated endpoint remain
unchanged and no Final, runtime or production asset was promoted.
Frank rejected front-facing V1 because sit→stand review frames 2 and 3 became
significantly wider than Prime canon. The exact rejection and V1 hashes are
pinned in
docs/review/keeper-prime-sit-stand-front-v1-rejection-2026-10-17.json.
Frank then rejected V2 because complete-context frames 29 and 30 exposed the
remaining F3→F4 width snap. That decision and V2's exact hashes are pinned in
docs/review/keeper-prime-sit-stand-front-v2-rejection-2026-10-17.json.
Frank then rejected V3 because complete-context frames 28–32 still changed
elbow-to-elbow width while the Keeper lowered: 157→156→153→149→143 px. The
exact decision and V3 hashes are pinned in
docs/review/keeper-prime-sit-stand-front-v3-rejection-2026-10-18.json.
Frank approved exact front-facing V4 on 18 October 2026. Its separate immutable
decision is
docs/review/keeper-prime-sit-stand-front-v4-approval-2026-10-18.json; the
143 px elbow-width lock, complete 59-frame context and exact endpoints remain
unchanged. This approval did not promote V4 into Final, runtime or production.
Frank approved exact back-facing V2 on 18 October 2026. Its immutable decision
is docs/review/keeper-prime-sit-stand-back-v2-approval-2026-10-18.json.
Frank rejected immutable V1
because complete-context frames 29–41 made the jumper and trousers visibly
darker than Prime; the exact decision and V1 hashes are recorded in
docs/review/keeper-prime-sit-stand-back-v1-rejection-2026-10-18.json.
V2 preserves every V1 alpha plane, dimension, choreography frame and the full
61-frame walk/stop/turn/action/return route. F2–F6 instead use exact clothing
RGB samples from the exact approved Turn V9 rear endpoint. Direct central
region checks now hold jumper median luminance at 94–95 against Prime 95 and
trousers at 77–78 against Prime 77. F2–F6 remain at 150 px elbow width while
heights lower 286→276→270→266→264 px. The chair rear remains a separate
foreground layer and the Keeper passes behind it. Historical keeper_sit_back
contributes choreography only and zero visible pixels. Back V2's approval did
not approve either rear-angle transition and changed no Final, runtime or
production asset.
Prime keeper_sweep_broom V1–V8 are immutable rejected review history. Frank
rejected V8 because the held state retained the original swinging limbs (four
arms), broke up during the turn, introduced pixelation and did not keep the
opening walk visually identical to approved Prime. The exact rejection is
pinned in
docs/review/keeper-prime-sweep-broom-v8-rejection-2026-10-19.json.
The replacement gate removes the broom entirely: the versioned
hold_shaft_two_hand motion-feasibility POC at
/keeper-review/keeper-prime-upper-body-override-poc-v3/ runs one clean
two-hand pose through all eight approved gait phases and all nine approved turn
angles. It deliberately uses phase-matched full-character proxies because the
approved raster authorities have no separable torso/arm layers; it is not
pixel-identical production art and cannot be promoted. Its purpose is only to
decide whether the reusable held-implement state is worth taking into a proper
layered Prime build. Frank approved that motion-feasibility decision on 19
October 2026; the exact bytes and narrow boundary are pinned in
docs/review/keeper-prime-upper-body-override-poc-v3-approval-2026-10-19.json.
The approval does not approve the proxy artwork, a broom or any other implement,
runtime wiring, Final changes or production promotion. V3 changes no artwork,
gait/turn order or timing from
immutable V1. It retains V2's mirror-anchor correction, adds a one-lp
presentation registration at the remaining rear seam, and makes review
playback one-shot so an advancing walk stops at its translated endpoint rather
than wrapping to its start. No prop, Final, runtime or production artwork changes.
The current artwork gate is the immutable, reversible layered V1 reviewer at
/keeper-review/keeper-prime-hold-shaft-two-hand-layered-v1/. It preserves
the approved V3 route exactly and copies the declared visible Walk V6 and Turn
V9 lower-body authority pixels byte-for-byte. Each of its 17 orientations keeps
four independently hash-pinned planes: exact lower-body authority, an explicit
non-authority trouser occlusion fill for pixels hidden by the old swinging hand,
new torso/head artwork, and new held arms. The new upper-body colours are drawn
only from matching approved-authority palettes; torso and arm ownership is
disjoint and deterministically recomposes the review frame. This first artwork
candidate awaits Frank's visual review. It contains no prop or broom, changes no
runtime or Final asset, and has not been approved or promoted.
The exact traditional-broom dimensions and the reusable, prop-agnostic cupboard
handoff for compatible future grounded tools are in
docs/KEEPER_GROUNDED_TOOL_PROP_CONTRACT.md.
Back V2 is live for review from exact deploy commit f165576. The production
route contains 61 frames and all 36 unique route/comparison image URLs were
verified as valid PNGs on 18 October 2026. Delivery is not approval or
promotion.
The required bank-wide colour-verification follow-up is fully specified in
docs/prompts/KEEPER_PRIME_ALL_FRAME_COLOUR_VERIFICATION.md. It converts the
Back V1 failure into a mandatory every-frame, every-material regression gate:
palette membership and whole-garment medians are insufficient; pose-relative
invariant regions and adjacent-frame continuity must pass. The verifier itself
is future work and does not authorise automatic art correction.
Frank approved exact Darts Context V8 on 17 October 2026. Its immutable decision
is docs/review/keeper-prime-darts-context-v8-approval-2026-10-17.json.
Workbench V15 remains review infrastructure; nothing entered Final, runtime or
production.
The redraw method is now binding across the complete first-draft animation bank: historical frames may supply choreography, joint paths, contacts, prop timing and staging, but never visible Keeper pixels. Every candidate must redraw the full actor from the approved Prime authorities; recolouring or patching the inherited character is not sufficient.
All 308 production animations and technical neutrals—not merely those ten—
are measured in
data/keeper-prime-animation-bank-audit-v1.json
and explained in
docs/KEEPER_PRIME_ANIMATION_BANK_AUDIT_2026-10-17.md.
The binding redraw and contextual-review rules are
docs/KEEPER_PRIME_ANIMATION_BANK_NORMALISATION_CONTRACT_2026-10-17.md.
The concise restart checkpoint for a fresh Codex task is
docs/PRIME_KEEPER_RESTART_HANDOFF_2026-10-17.md.
Historical art is motion/contact evidence only; it is never visible-character
authority. The old swimming, gym and scuba families remain rejected, and the
deleted keeper_count_money amendment remains excluded.
The six-direction V2 endpoint inspection remains available at
/keeper-review/keeper-prime-seated-six-view-v2/. It fixes V1's brittle
all-or-nothing loader, but its old y=29 / 11-lp contact test proved only that
the row was opaque; it did not prove that the pelvis ended there. It is not a
chair-height authority. Side-right V6 now measures the actual first transparent
support row beneath the pelvis at y=32.25, or 7.75 lp above the floor. The
Keeper pixels remain byte-identical to V1. Stair Descent V2 is approved with its
slight overstride accepted. Its former finished-staircase requirement (two
newel posts, foreground balustrade and continuous rail) is preserved as
historical animation/construction evidence only; ordinary production
circulation is now hidden and no staircase is drawn. The approval record is
docs/review/keeper-prime-stair-descent-v2-approval-2026-10-16.json.
The current runtime still uses the first-generation room plates. The former
172 × 56 logical-pixel replacement proposal, with its 46-pixel doorway
exclusion and twelve 10.5-pixel intervals, is also superseded and must not be
implemented as the new room shell. It remains useful registration evidence in
docs/KEEPER_ROOM_GRID_172_HANDOFF_2026-10-14.md;
new art uses the exact 2048 × 576 grid in docs/SPEC.md. Any
runtime migration must preserve approved historical bytes and receive a
separate review.
The current kitchen art review candidate is Kitchen v15 painted-room v7 in
review/kitchen-v15-painted-room-v7/.
It retains v6's 19 transparent actual-edge pieces, identical cabinet masters
and 16 px wall-cupboard/cooker gaps, while correcting the room shell, Belfast
sink and complete dresser depth. The shell has a leaf-free structural state and one
approved 168 × 336 door leaf per side in mutually exclusive closed/open poses,
all on y208–544. The sink rim and taps are set into run A's worktop while the
cabinet body matches the standard base master below local y42. The dresser and
fitted run share the same 31 px worktop band at room y317–348, and the entire
lower dresser carcass now reaches the common room y485 front/base line. A
machine gate proves all nine 0.60m floor units contact y485. The unchanged liked
2172 × 724 brighter duck-egg source remains hash-pinned; the Day-1 room,
full-upgrade reservations, both-open-door clearances and two viewing scales
remain review-only and machine-verified.
It is review-only and awaiting Frank; no live runtime art has changed. The
earlier review/kitchen-v14-build/ is retained as rejected historical evidence.
The earlier Kitchen v8 room-shell review candidate is retained as historical
style and shell evidence in
review/kitchen-proof-v8-room-shell-v1/:
an exact 2048 × 576 empty shell, furnished composition and three-scale sheet.
Its two side-wall doors are at the stage front; its 168 × 168 windows use 1.11 m
sills and 2.11 m heads with exact-magenta glass and zero furniture occlusion.
It reuses the completed v8 furnishings and Prime Keeper unchanged, does not
promote runtime art, and leaves the future 252 px range deferred and undrawn.
The reversible movement-foundation and vertical-circulation batches are now
immutable historical evidence. /keeper-review/keeper-root-motion-gate-v2/
compares the exact approved stop/walk images under the old 76-ku and proposed
84-ku schedules; /keeper-review/keeper-vertical-circulation-v2/ records the
superseded 60-lp floor, visible flight, ladder and lift-route construction
study. They are not pending production art: the current brief needs no stair
animation or visible circulation geometry, and new Keeper work is gated on the
missing target canon. Technical details remain hash-pinned in
docs/CODEX_TO_CLAUDE_VERTICAL_CIRCULATION_2026-10-14.md.
The installed legacy kitchen has one consolidated approved art and geometry
authority: the Warm Ligne-Claire Family V4 package dated 24 October 2026. It provides six
equal native 228-pixel source bays, legacy 84 × 74 compatibility bodies,
Off/On/Broken states and the two approved light-only Broken animations. Its high-resolution source,
machine-readable geometry/state contract and verification commands are listed
in docs/KITCHEN_ASSET_AUTHORITY.md.
These bytes and rollback contracts remain exact, but they do not define new
room or item art: future items use 96/192 px bays, minimal master-derived states
and engine-owned fault overlays under docs/CODEX_BRIEF.md.
This approval supersedes every earlier kitchen art and review candidate. The 158 earlier formal room/furniture draft packages and their duplicate source, raw, review and delivery material were removed after their binding requirements were folded into the consolidated contract. Runtime Promotion V1 now renders the approved six-module family in the live kitchen. Cooker drives the approved Oven states, Fridge drives the approved Fridge states, and Broken Oven uses its exact 40-frame cavity-light-only loop. The approved Dishwasher loop is installed but has no gameplay consumer yet. Existing activity rules, saves, upgrades, faults and repair behaviour are unchanged.
The existing Runtime Promotion V1 remains reversible: approved bytes, its
versioned compatibility copy, public delivery and the retained legacy-room
hash are pinned in data/kitchen_runtime_promotion_v1.json. Its 84 × 74
reduction is no longer accepted as the kitchen's final visual presentation.
The approved 1536 × 1024 source pixels must remain native; camera zoom handles
viewport presentation. Spatial placement is constrained by Prime Keeper paces,
not asset resolution: one 10.5-lp pace is 114 kitchen-source pixels and every
228-pixel fitted bay is exactly two paces wide.
The active movable composition redraft is
/keeper-review/kitchen-room-layout-v13/. The fitted units are approved and
hash-locked as one fixed native base; only separate loose assets, warning,
light and floor-effect layers may change. V13 preserves V12's straight ON sink
stream, target-sized shadowless loose family, transparent chair gaps, shared
Prime scale, exact pace anchors, closed-oven cavity flicker and table → seated
Keeper → chair depth order. The redrafted broken bowl now retains the complete
curved foot/base and declares native contact row 116. Drag state is isolated by
asset kind, so moving that worktop asset cannot alter the table or chair.
Dishwasher lenses begin at the accepted -5,-2 native-pixel offsets, have no
fixed right-edge remnants, and flash independently through amber, cyan and
violet at irregular intervals. Broken-state walking-plane water has tapered
sink edges and a larger translucent, finely frothy dishwasher spill; the oven
interval remains dry and the fridge spill is preserved. Camera zoom applies
only to the composed world. V13 changes no gameplay or live runtime asset; V12
remains immutable predecessor evidence and V4's fitted-unit approval remains
binding.
npm run verify:kitchen-approved-family
npm run verify:kitchen-runtime
npm run verify:kitchen-room-layout-review-v1
npm run verify:kitchen-room-layout-review-v2
npm run verify:kitchen-room-layout-review-v3
npm run verify:kitchen-room-layout-review-v4
npm run verify:kitchen-room-layout-review-v5
npm run verify:kitchen-room-layout-review-v6
npm run verify:kitchen-room-layout-review-v7
npm run verify:kitchen-room-layout-review-v8
npm run verify:kitchen-room-layout-review-v9
npm run verify:kitchen-room-layout-review-v10
npm run verify:kitchen-room-layout-review-v11
npm run verify:kitchen-room-layout-review-v12
npm run verify:kitchen-room-layout-review-v13
The focused /keeper-review/keeper-lift-entry-alignment-v1/ construction page
corrects the earlier lift choreography without rewriting it. The room-door
centre at x=126 lp and lift threshold at x=42 lp are exactly 84 lp apart:
eight 10.5-lp steps or four full two-step strides. Stop, right-hand button
press, turn-away and depth-only entry all retain the same x=42 root, so there
is no post-stop sideways slide. This placement still depends on a separately
drawn and approved Walk F5-to-neutral stop bridge before final Keeper art or
runtime wiring.
The subsequent /keeper-review/keeper-circulation-entry-alignment-v1/ page is
the active shared-core proposal. It registers one doorway at x=115.5 lp: the
measured stair base at x=94.5 is exactly one 21-lp/eight-frame walk cycle away,
and walk F8 hands directly to an already-advancing climb F1 with zero pause
frames. The alternative lift centre at x=31.5 is exactly 84 lp/four full
strides from that same doorway. The preliminary lift-only page remains intact
as historical draft evidence; neither proposal is approved or wired.
The first finished-art circulation gate is now available at
/keeper-review/keeper-prime-stair-ascent-v1/. It uses one exact approved
mirrored Walk V6 cycle from the transfer door to the measured stair base, then
enters an advancing eight-pose climb with zero pause frames. Eight climb cycles
close the full 16-riser flight at exactly 84 lp run and 60 lp rise. This V1
deliberately ends in continuous climb; the upper-landing dismount, descent and
opposite zigzag parity remain separate review gates. Nothing is in Final or
production.
Frank rejected V1's visual execution because its sprite faced opposite its
leftward door-exit motion and its second leg barely moved. The immutable V1
remains as historical evidence. The first correction attempt, V2, is at
/keeper-review/keeper-prime-stair-ascent-v2/: its approach is an exact
horizontal mirror of approved Walk V6, and the climb redraw follows Walk V6's
first-leg F1–F4 / opposite-leg F5–F8 phase structure. Route geometry and the
zero-pause join are unchanged; nothing is in Final or production.
Frank rejected V2 after motion review because the labelled phases still did
not read as a genuine leg transfer and the left boot struck below the stair
surface. The reversible, unapproved
/keeper-review/keeper-prime-stair-ascent-v3/ uses eight individually
registered poses: the near leg completes F1–F4 and the far leg completes
F5–F8. Each lowest contact sole is fixed at cell y=316 and mapped to the actual
tread top, while a toggle exposes that datum in the review page. V1 and V2
remain immutable rejected evidence. Frank rejected the unmasked V3
presentation because the visible boot separation reads as climbing two stairs
at once. The V4 masking experiment at
/keeper-review/keeper-prime-stair-ascent-v4/ preserves every V3 character
pixel, root position, timing value and stair dimension, but adds a closed
foreground stair stringer and bannister above the boots/lower shins. Its mask
is on by default and can be toggled off for an exact V3 comparison. V4 reuses
the 17 V3 media hashes without adding archive objects.
Frank accepted V8’s vertical registration but rejected its horizontal toe
clearance: the forward toe overlapped each next riser. Preserve V8 as rejected
provenance. The active unapproved V9 diagnostic is
/keeper-review/keeper-prime-stair-ascent-v9/. V9 moves only the complete
Keeper root 1.5 lp (12 source pixels) back/right. The forward opaque toe now
keeps at least 0.25 lp/2 source pixels of transparent clearance from the next
riser. The V8 images, vertical positions, support/target markers, timing and
stair dimensions remain exact. This is still a four-contact proof, not a
complete transition. Nothing has entered Final or production.
V11 is now rejected: live review found its frame 7 support sole floating one complete 60÷14-lp riser above the stair, while its claimed arm motion peaked at only 0.875 logical pixels and was visually static. Its verifier proved only non-penetration, not positive support contact; that incomplete contract is retained as rejected provenance.
The accepted geometry/contact foundation is
/keeper-review/keeper-prime-stair-ascent-v12/. It resets to four binding
RIGHT/LEFT/RIGHT/LEFT contacts before any intermediates are attempted. The
finished-floor rise remains exactly 60 lp over fourteen equal risers, but tread
depth increases from 6 to 7 lp; the resulting 98-lp flight fits inside the
reserved 105-lp stair core. Each support sole must touch a real tread, each
upper sole must touch the next tread within 0.05 lp, and successive support
handovers may drift by no more than 0.07 lp. Two opposite arm silhouettes are
now plainly visible. Frank accepted that foundation on 15 October 2026 with
“yes you've got it”; this is acceptance of its stair and contact construction,
not a promotion to Final or runtime.
The superseded V13 smoothing candidate is
/keeper-review/keeper-prime-stair-ascent-v13/. Its five-frame proof reads
LEFT contact → raised RIGHT-foot passing frame → RIGHT contact → raised
LEFT-foot passing frame → LEFT contact. The contact endpoints are exact V12
bytes and each intermediate is an exact same-family V6 raised passing pose.
Thus every step takes two frame intervals, the planted boot stays registered
to its tread, and the arms pass from one opposing V12 extreme through neutral
to the other. Two generated arm studies are retained as rejected provenance
and contribute no candidate pixels. V13 remains review-only and changes no
Final art, runtime sprite or production geometry. Live review found its arm
endpoints insufficiently synchronized and too extreme, while F4 extended its
left boot into the stair profile before the flat F5 contact.
The V14 art correction is
/keeper-review/keeper-prime-stair-ascent-v14/. It keeps the same five-frame
cadence but constrains each visible hand to about 14.55 source pixels either
side of the vertical datum, leaving the far/right arm as a small torso-occluded
sliver. Both passing boots now rise before extending: deterministic comparison
against every tread and riser reports zero penetrating pixels, and F4 retains
1.59 lp of clear air above the stair profile. Only declared arm and moving
lower-leg masks change; all out-of-mask pixels are exact. Nothing is approved,
in Final or in runtime.
The V15 full-flight review is
/keeper-review/keeper-prime-stair-ascent-v15/. It creates no new drawings:
the four exact V14 candidate PNGs repeat across the complete fourteen-riser
flight. Its 27-frame timeline contains fourteen strictly alternating foot
contacts and thirteen passing poses, mathematically registered to every tread.
Playback reaches tread 14 and holds there rather than wrapping back to the
floor. V15 is a review-only timeline candidate; neither it nor V14 is approved
or promoted to Final/runtime.
The approved stair-ascent authority is
/keeper-review/keeper-prime-stair-ascent-v16/. It keeps V15's complete
timeline, placements and timing exact while correcting only three masked art
regions: RIGHT compact passing now matches LEFT's y=270 moving-region lower
edge and retains 1.59-lp stair clearance; the detached flesh remnant is removed
from LEFT contact; and RIGHT contact receives a complete forward-boot toecap
without changing its sole/contact row. Frank accepted exact V16 on 15 October
2026; the no-art V17 approval pack pins its four images, 27-frame rig and page.
V16 was subsequently packaged into the Prime runtime bank as the active stair
ascent, pending any later approved corrective artwork.
The reversible beard-continuity correction is
/keeper-review/keeper-prime-stair-ascent-v18/. Review revealed that V16's
two contact drawings and two passing drawings used different lower-beard
silhouettes, producing a visible jump during playback. V18 leaves immutable
V16 untouched and changes only recorded beard masks in the two contact
drawings. All four drawings now share the exact approved passing-pose beard
core (1,685 pixels; source bounds x=79..132, y=97..157). The full 27-frame
timeline, timing, root positions, stair contacts, body pixels outside the
masks, palette and cell geometry are unchanged. V18 is review-only and has not
been promoted into the runtime or production bank.
The former staircase-scenery contract used two newel posts, a foreground balustrade and a continuous handrail without changing the fourteen-riser contact geometry. It remains immutable review evidence, not a production-art instruction: the current lighthouse draws no stairs, landings or shaft.
The approved reversible stair-transition authority is
/keeper-review/keeper-prime-stair-transitions-v6/. It composes exact approved
authorities plus two clearly labelled candidate door-reach cells into two
reviewable sequences: lower transfer door → two walk cycles → moving Stair V16
F1, and final Stair V16 contacts → flat landing → clockwise
side-left/back/side-right turn → hallway walk → stop/reach/open → walk through
to complete door occlusion.
The lower door is one complete 21-lp visible walk cycle from the stair root;
the upper landing is 126 lp/twelve step intervals from the matching door, with
one additional 21-lp cycle behind it. The page preloads all 27 unique cells,
offers frame stepping, root guides, door-occlusion toggling, a 960-pixel-wide
inspection pane and the Studio's default four-screen-pixels-per-logical-pixel
playback. Its
candidate-42 acceleration/deceleration roots (3, 7, 13, 19 ku) and two-frame
right-hand door reach are explicitly unapproved.
Two generated landing studies—including a wrong-facing three-armed result—are
quarantined as rejected provenance and contribute no displayed pixels. The
selected reach sources have exactly two arms and are composited only inside a
declared arm mask over the byte-identical approved side neutral. No Final,
runtime or production asset has changed.
V2 supersedes only V1's visible lower walk-to-stair seam. V1 jumped from the broad mirrored Walk F8 silhouette directly to compact Stair V16 F1. V2 keeps two complete approved walk cycles and the identical roots, rotates the cyclic phase to finish on compact Walk F7, then reuses the exact approved LEFT compact passing drawing before first-tread contact. The page opens on a nine-frame focused seam loop. No Keeper source pixel is redrawn or rescaled; V1 remains immutable review history.
V3 changes no route or Keeper pixel. It fixes the moving review text to a constant height so frame-label wrapping cannot move the page, and replaces the misleading 1× logical-pixel thumbnail with the Studio's real default 4× screen presentation (a standard 32 × 40 logical Keeper cell appears at 128 × 160 screen pixels). The large and game views are stacked so neither is squeezed.
V4 removes the remaining visible F16→F17 size contraction. The final compact walk pose measures 293 source pixels from cap top to the registered root; the approved stair family measures 285. Every stair and stair-mount frame now uses one uniform 293/285 (1.028×) display registration around the same root, so the fix cannot move to F17→F18 or the upper landing. Source PNGs, timing, route roots, Final, runtime and production remain unchanged. Live review showed that matching height alone did not remove the perceived whole-body contraction.
V5 therefore matches whole-silhouette mass instead. Walk F7 contains 27,322 opaque source pixels and the stair mount authority 24,299; one uniform sqrt(27,322/24,299), or 1.060×, root-anchored registration is applied to every stair-family route frame. This preserves internal proportions and avoids a one-frame patch while making the transition visibly equal in overall scale. Frank rejected scaling the stair family as the visible solution: the size handoff can instead occur invisibly behind the room doors.
V6 leaves Stair V16 at native scale. Every walk, turn, bridge and reach frame between the departure and arrival doors uses one constant 0.943× circulation scale, matching the walk pose's opaque mass to the native stair mount. Normal room scale changes only while the Keeper is fully hidden behind the departure door and resets only after he is fully hidden at the arrival door. There are no visible scale changes anywhere in the door-to-door route.
Frank approved exact Stair Transition V6 on 16 October 2026. The immutable
approval record is
docs/review/keeper-prime-stair-transitions-v6-approval-2026-10-16.json;
approval changes no Final, runtime or production pixels.
The original reversible ladder gate is
/keeper-review/keeper-prime-ladder-transitions-v1/. It derives seven smooth
rear-view cells from the approved back master: first-rung mount, asymmetric
contact and passing poses, their exact mirrors, a rightward top transfer and a
flat-footed landing completion. The route uses eight 7.5-lp rung intervals per
60-lp storey, four complete alternating gait cycles, an exact 84-lp/eight-step
door-to-ladder walk, uninterrupted continuation above the landing, and a
matching dismount/turn/walk-to-door sequence. All visible circulation frames
use the approved V6 0.943057 scale; room-scale reconciliation remains hidden
behind doors. The legacy ladder strip is comparison provenance only.
Live review found the V1 motion generally sound but exposed ladder colour
showing through semi-transparent Keeper paint. Frank also requested a faster
turn and substantially slower climb while accepting the small hand/foot-to-rung
mismatch at game scale. V2's rectangular central-rung occluder is rejected: it
made rung segments disappear at each step. V3 restored the complete ladder but
is also rejected presentation provenance because its binary alpha edges and
per-frame DOM reconstruction flickered through the full route. The active V4
gate at /keeper-review/keeper-prime-ladder-transitions-v4/ keeps every ladder
pixel, raises only solid Keeper paint (source alpha ≥240) to 255, preserves the
original antialiased fringe and mounts all decoded frame images before
playback. Frame changes are atomic visibility switches; the Keeper and scene
DOM are never rebuilt during playback. V2's 50-ms turns and 150-ms climb phases
remain exact, as do all roots, geometry and rung contacts. V1/V2/V3 remain
immutable. The V4 candidate changed no Final, runtime or production asset.
Frank approved exact V4 on 16 October 2026. The immutable approval record is
docs/review/keeper-prime-ladder-transitions-v4-approval-2026-10-16.json.
The 29 frame hashes, complete-ladder layering, persistent compositor, roots,
geometry and route choreography are approved. The current 50-ms turn frames
are not the final timing: a later timing-only pass must halve them to 25 ms
(40 fps), without changing artwork or geometry. Approval itself changes no
Final, runtime or production asset.
The V5 Keeper animation is approved. The immutable partial approval record is
docs/review/keeper-prime-ladder-transitions-v5-animation-approval-2026-10-16.json:
all 111 Keeper frames, roots, timing and choreography are accepted, while the
V5 perspective door presentation is explicitly rejected. Its default
route runs lower-room emergence → measured walk/stop → turn → full ladder
climb → dismount → turn → upper-hall walk/stop → right-hand reach → door opens
→ restart → complete occlusion. Frames 1–88 and all 29 Keeper assets
from approved V4 remain exact; only two already accepted stair-route door-reach
drawings are added, with V4's opacity rule. The doorway is explicitly 90° to
the straight-on dollhouse camera.
The historical reversible door-only V6 candidate is at
/keeper-review/keeper-prime-ladder-transitions-v6/. It reuses all 111
approved V5 Keeper frames byte-for-byte and replaces only the rejected door.
That candidate used a flat, constant-size 20 × 48-lp rectangular leaf with no
perspective gradient or widening; only the handle protruded. Its two-way,
open-away behaviour is superseded for player-facing circulation doors by
docs/HIDDEN_CIRCULATION_DOORS_AND_AUDIO_2026-10-26.md: those panels open only
toward the player as flat foreground occluders. The historical rule is pinned in
docs/review/keeper-two-way-door-contract-2026-10-16.json. V6 is frozen
unapproved evidence and changes no Final, runtime or production art.
Historically, those assets made a complete visible upward flow reviewable for
stairs and ladder. That route is no longer a production requirement. Stair
Descent V1 is retained as rejected provenance: reversing and mirroring the
ascent made the visible left leg remain airborne while the right repeatedly
took each step. Frank approved its replacement Stair Descent V2 at
/keeper-review/keeper-prime-stair-descent-v2/, accepting the slight visible
overstride. V2 adds four descent-specific poses and repeats the explicit gait
RIGHT contact → LEFT passing → LEFT contact → RIGHT passing, giving exactly
seven contacts per leg over the unchanged 14-riser flight. The former remaining
transition list included seated joins, downward ladder travel and complete
Prime lift routes. Under the current brief, ordinary floor travel needs only
standard walking, the flat door occluder and off-stage timing; any reusable
Prime choreography remains frozen until the target canon migration is resolved.
The staircase construction geometry is stored independently at
art/drafts/keeper-staircase-geometry-2026-10-16-v1/. Its JSON is the source
of truth for the 14-riser, 7-lp-tread, 98 × 60-lp flight and 105-lp reserved
core; the accompanying SVG preserves the plain test staircase. The former rail,
balustrade and newel artwork was required to conform to it. Under the
26 October brief that geometry remains historical evidence only; do not build
ordinary lighthouse stair scenery from it without a new explicit decision.
Makko is no longer part of the graphics workflow. This exporter remains only
to reproduce the 25 October approved-asset snapshot and must not be treated as
the destination for new work; current graphics follow docs/CODEX_BRIEF.md.
npm run export:makko builds the local, self-contained
makko-approved-art-2026-10-25/ handoff without changing canonical artwork.
The generated folder is deliberately gitignored because it contains copied
binary delivery files; the exporter and selection policy are versioned.
The handoff contains the original concept references, approved Prime Keeper
identity art, 27 promoted runtime sprite sheets, all 14 approved playable
review routes as numbered frames, all ten approved V12 sequence strips, the
ten Frank-selected legacy canonical animation sheets (kept separate from the
Prime bank), the approved kitchen V4 master and locked fitted-unit base, the compatibility
kitchen state/animation sprites, 84 explicitly approved/current activity-story
pictures and the first production environment batch. Every animation has JSON
timing/geometry metadata. MANIFEST.json records every source path and SHA-256,
and CHECKSUMS.sha256 provides an independent package check.
Rejected or superseded drafts, untracked experiments, the non-production held-tool proxy, unapproved loose-kitchen work and the conflicting legacy Keeper bank are intentionally excluded. Rebuild and verify with:
npm run export:makko
npm run verify:makko-export
npm install
npm run dev # Next.js 14; open http://localhost:3000 (or this computer’s address on the same wifi, for the iPad)
npm test # full verification suite
npm run upgrades # copy data/upgrades.csv (the upgrade list) into the game
npm run build # production build
npm run sprites # snap Codex's PNGs in art/raw/ into public/sprites/ (docs/CODEX_ASSETS.md)
npm run keeper-contract # rebuild neutral stills, bridges and the endpoint audit
npm run maintain:keeper-review # archive review evidence, then verify hashes, routes and the public/ budget
npm run archive:keeper-review:set -- path/to/batch-register.json HEAD # replace one set without absorbing unrelated untracked review work
npm run verify:keeper-prime-stair-transitions-v1 # exact frames, gutters, roots, joins and review-page contract
npm run verify:keeper-prime-stair-transitions-v2 # focused walk-to-stair seam and unchanged-source checks
npm run verify:keeper-prime-stair-transitions-v3 # fixed reviewer layout and default Studio 4× presentation
npm run verify:keeper-prime-stair-transitions-v4 # uniform root-anchored stair-family height registration
npm run verify:keeper-prime-stair-transitions-v5 # whole-silhouette stair-family scale registration
npm run verify:keeper-prime-stair-transitions-v6 # door-hidden room/circulation scale handoff
npm run verify:keeper-prime-ladder-transitions-v1 # measured alternating ladder, approach, continuation and dismount
npm run verify:keeper-prime-ladder-transitions-v2 # V1-exact art with corrected rung layering and tuned turn/climb cadence
npm run verify:keeper-prime-ladder-transitions-v3 # complete ladder plus alpha-opaque Keeper frames
npm run verify:keeper-prime-ladder-transitions-v4 # smooth opaque paint plus persistent no-rebuild playback
npm run verify:keeper-prime-ladder-transitions-v4-approval # exact V4 approval plus deferred 2× turn timing
node --import ./scripts/review_archive_fs_hook.mjs scripts/verify_keeper_prime_ladder_transitions_v6.ts # historical approved V5 motion plus superseded two-way door candidate
npm run verify:keeper-prime-ladder-transitions-v5 # complete room-to-room ladder flow and side-on outward-door occlusion
On an iPad: open the address in Safari, Share, Add to Home Screen for full screen.
The keeper animation reviewer is online only at
https://lighthouse-keeper-mu.vercel.app/keeper-review/. Use Hand back to
Codex whenever a batch is ready: its
confirmation explains that it will first save any edited cards locally, then
sends the complete exact-name review register to the durable handoff queue. The
queue records an authoritative exact-name delta, so a later Codex task reviews
only animation decisions or notes changed since the previous hand-back (or the
shipped saved-review baseline for the first server hand-back); the receipt
reports that count on-screen—no JSON download is needed. The collapsed
Advanced backup/import control remains only for exceptional browser recovery.
When Codex claims a queued batch to make amendments, the online reviewer polls
that server state and becomes read-only until the amended delivery is marked
complete. Playback and inspection remain available, but no review decisions can
diverge while work is in progress. The repository’s generated audit page is not
a second review workspace: opening it outside the deployed route sends the
viewer to the online reviewer, keeping saved feedback and the work lock in one
place.
The separate Keeper Animation Workbench is at
https://lighthouse-keeper-mu.vercel.app/animation-workbench. It has immutable
Final and browser-editable/exportable Draft lanes for frame sequencing,
whole-animation and section looping, and complete transition previews. Both
lanes are currently empty by explicit decision: the earlier V1/V2 routes are
rejected provenance, not active candidates. Frank permanently approved the
smooth, single-band Prime Master V1 on 13 October 2026 with “Approved. Make sure
this is NEVER forgotten.” The V2 back copies all 81,920 approved-front alpha
values, but its boots were later found to face the player and the image is now
rejected provenance. The approved V5 rear endpoint is at
/keeper-review/keeper-prime-orthographic-v5/; it records Frank's selected
smooth first rear-boot render without regeneration, changes only rows 273–315,
and keeps the complete front/back alpha match. Its 1122 × 1402 source is the
rendering-quality master; the 256 × 320 orthographic image is only its
anti-aliased registration proxy. The historical V3 side remains blocked at 5
of 15 hard internal datums. Its replacement is the new reversible
/keeper-review/keeper-prime-side-right-rigged-v1/ candidate: a smooth
1122 × 1402 master uniformly registered into a 256 × 320 proxy with exact
zero-delta evidence at all 15 datums. Frank approved it on 13 October 2026 with
“Approve side-right V1 and build Turn V1.” The immutable approval record is at
/keeper-review/keeper-prime-side-right-rigged-v2/. It is an artwork authority,
not a production promotion.
The consolidated Prime Keeper approved animation library is at
https://lighthouse-keeper-mu.vercel.app/prime-keeper-animations. It gathers
14 approved playable review authorities into one page, decodes all 213 unique
source images and installed runtime sheets before unlocking playback, gives
every clip play/pause/stop, frame stepping and scrubbing, and adds a locally
saved sequence sandbox with reorder, reverse, repeat, endpoint warnings and
JSON export. On 22 October Frank authorised a versioned runtime promotion: 27
sprites / 217 registered frames are installed, with Prime idle, walk
start/cycle/stop, stairs and generic rear work active in the game. The page now
shows approved sources beside their installed deliveries. Turns now bridge
rear work and seats, side leisure uses sit/hold/stand, and diary uses the rear
turn/sit/hold/stand/turn route. Ladder, darts and left-facing seating still
await matching gameplay consumers; the new front-seat route is available for
choreography review but is not yet a runtime binding.
The held-implement POC V3 remains excluded because its proxy body art is
explicitly non-production. Full contract and remaining work:
docs/PRIME_KEEPER_ANIMATION_LIBRARY_2026-10-21.md and
docs/PRIME_KEEPER_ANIMATION_GAPS_2026-10-22.md.
The separate Keeper Timing Lab is at /keeper-timing-lab. It keeps approved
frame bytes, frame order, root motion and endpoint contracts locked while walk,
deceleration, neutral beats, turns and endpoint holds remain independently
tunable. Frank approved Fast Timing V1 for brisk movement between
activities: walk 10 fps, deceleration 12 fps, no neutral pause, turn 16 fps and
a 625 ms endpoint hold. It applies to locomotion, stopping bridges and turns
only; action animations retain independent timing so their entertaining
performance can be savoured. The lab supports synchronized A/B playback, large
and exact game-scale views, section loops, frame stepping, repository-backed
approved defaults, device-local personal proposals and JSON export. Timing
approval is separate from artwork, Final and production approval.
Frank approved KP Rig V1 on 13 October 2026 with “Approve KP Rig V1, let's see
it animated”. The immutable measurement pack remains at
/keeper-review/keeper-prime-rig-v1/; it defines 24 front/back bones, 24 side
projection bones, fixed bilateral limb lengths, body-volume envelopes and all
15 target y-datums. After reviewing Motion V2, Frank requested more leg
movement, more steps and a slower walk while judging the rest very good. The
separate V3 construction-motion revision is at
/keeper-review/keeper-prime-rig-v3/: its walk now uses eight steps over five
seconds instead of two steps over two seconds, with greater thigh swing and
knee lift. Idle, reach and planted-ankle sit/stand are unchanged from V2. Frank
approved Motion V3 on 13 October 2026 with “Approved, very good indeed”. That
approval authorized the now-approved smooth 15/15 side-right artwork. The
separate eight-pose Turn V1 at
/keeper-review/keeper-prime-turn-front-side-v1/ joins the exact approved front
and side endpoints. Frank approved it with “it is ever so slightly jumpy at
about 45deg in the turn but I am happy”; the slight 45° cadence change is an
accepted recorded limitation, not an unmentioned perfection claim. The
side-right ↔ back Turn V1 remains reversible provenance at
/keeper-review/keeper-prime-turn-side-back-v1/. During review Frank identified
that its exact approved rear endpoint made the jumper darken visibly at F8. V2
corrected the jumper alone and remains reversible provenance. Frank then
identified the same discontinuity in the cap, trousers and boots and established
that every standard-uniform animation must use a consistent outfit palette. V3
corrected all six registered F8 outfit components but exposed a remaining boot-
construction jump at F7 → F8. V4 keeps F1–F7 byte-identical to V3, keeps F8
exact above y=250 and redraws only the rear-facing boots below that boundary.
Frank approved that exact turn on 13 October 2026 with “Approved.” The immutable
V5 approval and enhanced review page at
/keeper-review/keeper-prime-turn-side-back-v5/ pins V4 and shows synchronized
large and 128 × 160 proposed game-size views with previous/next frame controls.
That scale review exposed three remaining issues: F1's trousers/boots were too
dark, F7 was slightly too tall and F8 used a visibly coarse registered proxy.
The separate V6 candidate at
/keeper-review/keeper-prime-turn-side-back-v6/ changes only those points: a
masked lower-uniform palette correction in F1, a floor-anchored two-pixel
height reduction in F7, and a fresh uniform Lanczos registration of the already
approved 1122 × 1402 smooth rear master for F8. F2–F6 remain byte-identical.
V6 review then exposed pale F8 trouser patches caused by a four-row overlap
between the trouser and boot colour masks, plus a lower-leg silhouette roughly
five percent narrower than the approved V4 endpoint. The separate V7 candidate
at /keeper-review/keeper-prime-turn-side-back-v7/ keeps F1–F7 byte-identical
to V6 and corrects only F8: disjoint colour masks remove the double correction,
and a source-resolution Lanczos registration broadens the lower legs to the V4
bounds while retaining the same floor and overall frame bounds. The new V8
cadence trial at retained all
eight V7 poses and inserted eight drawings at 16 fps, but Frank found it
significantly jerkier; V8 is rejected provenance and disproves any automatic
rule that more frames make motion smoother. V9 at
returns directly to V7, retains
all eight V7 frames byte-for-byte and inserts only one controlled 172.5° pose
between 165° and 180°. It runs nine poses at 9 fps over the same one-second
duration, with the intermediate fixed at 297 pixels high between the 296- and
298-pixel endpoints on floor y=316. Frank approved exact V9 on 13 October 2026
with “approved”. The immutable V10 approval record at
pins all nine frames, both
strips, 9 fps timing, midpoint source and V8 rejection. V5–V9 and all earlier
versions remain unchanged provenance.
Neither turn has entered workbench Final or production.
The game engine will extend only the
walk from world placement, beginning the cycle while the Keeper is still hidden
behind the departure door. The workbench does not share data with the existing
reviewer and cannot promote art into production; see
.
The four-hour review hand-back monitor is deliberately outside Codex: the
per-user macOS launchd job installed by
scripts/install_keeper_review_handoff_monitor.sh reads only the public queue
and shows a native notification only for a new batch with a non-zero semantic
change count. It keeps its own local “already notified” list under Application
Support and never edits review data or sprite assets. The older Codex heartbeat
must remain paused to avoid duplicate alerts.
The runtime notes below describe the currently shipped compatibility art. They
do not override the new non-pixel 2048 × 576 authoring target in docs/SPEC.md, and no approved
asset byte changes until a separate versioned migration is reviewed.
src/ui/floors.tsx: kitchen, living room, and bedroom with en suite. The legacy runtime pixel batch still supplies the red/white shell bands and three 105 × 35 compatibility plates; interactive furniture remains separate. The new target uses exact 2048 × 576 modules. Kitchen v15 painted-room v7 is the current review-only candidate and has not replaced the installed legacy room. The toilet and wash basin are both in the en suite.standard, on, and broken; active gameplay drives on. New item masters must not bake broken, dirty or alert states into the item: the engine owns smoke, sparks, drips and other overlays. Existing compatibility sprites remain unchanged until migration. Add ?broken=tv,cooker (or ?broken=all) to the URL for the internal art-state preview.data/upgrades.csv; the living-room armchair now progresses from basic armchair to rocking chair to Lazyboy-style recliner, always on the same 11 px seat datum. Higher tiers do more good, faster; the bed's tier sets the morning's energy. Grown-ups set upgrade prices (overall %, then per tier) and can gift upgrades. Tier sprites are obj_<id>_t<n>_<state>; until they exist a T<n> tag stands in. ?tiers=3 previews top tiers./studio, linked from Grown-ups) is the design tool for how each activity plays. It covers walks, doors and hidden costume changes, clips, timing, sounds (drop audio files onto placeholders, then trim and set volume) and solid-object checks against each frame's real pixels. Format and workflow: docs/RECIPES.md.settings, else the browser), is applied live. The sprite sheets' metadata remains authoritative: a tweak only lasts while its sheet keeps the speed it was made against, and "Copy for the metadata" gives { "animationFps": { … } } to write back into the sheets.src/game/ — rules (config.ts has every number, commands.ts the command book and silly reactions, engine.ts the rules).data/activity-stories/, src/activityStories/ and scripts/import_activity_story_picture_catalogue.mjs — the Bubble stories formats, Studio engine and complete picture-catalogue reconciliation. The shared library currently exposes every accepted asset: 339 pictures and 452 immutable versions, including all 298 review-ready isolated source components from Activity Cloud Composer V1–V7, rear-work callout V2/V3, every component-bearing Claude or Codex picture pack, and every registered Bubble-specific pack. Every picture is visible in a named Studio group; prior versions remain inspectable and older object versions can be pinned in a story. The latest 54-picture expansion adds dedicated Fishing, Gardening, Pet care and play, Fixing things, Pub, Art, and Scientific and inventing groups; a new cold mark and later heat/aroma/welding versions are also available. Frank approved the ligne-claire BBQ pilot and continuation, sandwich, washing, General repair, repair hand tools, cooking core, baking/eggs/mixing, farm-animals-and-meals, corrected condiments, and the six tea-and-toast translations; each translation is a new current version and every predecessor remains available. Exactly 83 current pictures are Frank-approved ligne-claire conversions, 34 were introduced directly in the newer language, and 222 earlier pictures have no ligne-claire draft. Frank paused that conversion programme on 22 October 2026; the 222 are not an active queue. The final recipe is retained in docs/CODEX_PROMPT_BUBBLE_STORIES_LIGNE_CLAIRE_ACTION_IMAGERY_2026-10-21.md and may resume only on a new explicit instruction. The protected minimum catalogue is data/activity-stories/catalogue-closure-2026-10-22.json. npm run verify:activity-stories reconstructs and checks all 452 closure versions, while each family builder verifies its immutable pack and retained priors.src/ui/floors.tsx — fixed-width room definitions and the reserved diving geometry, which follows the bedroom.src/ui/art.tsx and src/ui/Sprite.tsx — vector fallbacks, the three-state renderer, and production strip playback.public/sprites/ — production room, TV/effect and keeper review PNGs plus their runtime manifest.art/source/keeper-first-batch/ — the generated keeper turnaround, deterministic density-4 authoring script, contact sheet and provenance notes.art/source/first-production-batch/ — untouched generated sources and prompt/provenance notes; scripts/build_first_asset_batch.py rebuilds the exact art/raw/ deliveries, then publishes them.Next.js 14 (App Router), React 18, TypeScript, Vitest. Neon Postgres (optional; falls back to browser localStorage). Deploy on Vercel; set DATABASE_URL (pooled) for Production. Pushes do not deploy: release with npm run deploy (see docs/DEPLOYMENT.md). Review media is served from the content-addressed Git archive described in docs/REVIEW_ARCHIVE.md, not copied into every deployment.
A "Who is playing?" screen lets each child have their own game and their own grown-ups' dials (allowance, prices, quiz difficulty). With DATABASE_URL set (Neon via Vercel's Storage tab) saves live in Postgres and follow the player to any device; the tables are created automatically on first use. With no DATABASE_URL everything stays in the browser. Grown-ups' PIN starts as 1234 (Menu, then Grown-ups), and is checked on the server when the database is on.
docs/STATUS.md is the full write-up. docs/CODEX_BRIEF.md is the authoritative art brief. HANDOFF_TO_CLAUDE.md separates implemented runtime work from missing production artwork.
Last verified on 26 October 2026 (436 tests across 23 files and a 29-page production build):
npm test
npm run typecheck
npm run build
The verification commands above cover the game and sprite pipeline; npm test begins with the keeper contract check. Keeper-scale verification additionally runs scripts/audit_keeper_scale.py and scripts/verify_floor_asset_catalogue.py; finished asset work is committed directly to the repository's main branch.
/keeper-review/keeper-prime-sit-stand-side-v6/docs/review/keeper-prime-sit-stand-side-v6-approval-2026-10-17.json/keeper-review/keeper-prime-turn-side-back-v8//keeper-review/keeper-prime-turn-side-back-v9//keeper-review/keeper-prime-turn-side-back-v10/docs/KEEPER_ANIMATION_WORKBENCH.md131191c; that history and Frank's immutable comments remain intact. Separately, Frank explicitly selected nine named source replacements on 10 October, plus the dependent keeper_parachute_landing bridge; these ten exact-name clips are now canonical after final-strip inspection, while their previous canonical strips stay visible in the reviewer. The neutral contract adds deterministic derived stills and bridges without changing the 173-sheet review denominator; the inherited raw contract contains 325 keeper sheets and the manifest now publishes 366 total pictures including room/effect art and the 27 versioned Prime runtime sprites. Every full-body sheet has registered startPose / endPose, walk sounds are authored once as zero-based sfxCues, and npm test rejects new or regressed endpoint failures. The exact-pixel migration audit is docs/KEEPER_NEUTRAL_ENDPOINT_AUDIT.md; 300 legacy endpoints remain an explicit, costume-ordered bridge/frame repair queue rather than being silently treated as exact.keeper_clear_snow is SHA-256-pinned as the canonical fuller stepped beard. An eligible, landmark-aligned beard-mask comparison passes with a symmetric silhouette difference of at most one logical pixel; 994 different-pose frames remain non-comparable until approved beard masks, facial landmarks and depth/component ownership evidence exist. No beard correction is justified or promoted.data/keeper_side_on_beard_occlusion_audit.json and scripts/verify_side_on_beard_occlusion.ts provide the reproducible evidence audit, source hashes, classifications and gutter evidence. Historical v1 and v2 Darts draft files are preserved but are non-promotable evidence only; the v2 colour-predicate edit is not a confirmed fix.keeper_carry_shopping and keeper_play_drums_back also have second variants from the 12 October annotated review, respectively correcting frames-1/7 bag continuity with a synchronized loop endpoint and frame-6 hands crossed behind the back. keeper_party_hat_put_on_back retains v2 and v3 frame-2 comparisons; v3 keeps both connected arms in the front/near plane, clear of the head, while lifting the hat toward frame 3. keeper_put_record likewise has retained v2 masked-removal and v3 horizontal-held-record comparisons. Thirteen newly rendered face-to-camera candidates were withdrawn on 12 October: twelve remain as rejected provenance, while the complete keeper_count_money amendment was explicitly deleted and the previous canonical version retained. Canonical production sprites remain unchanged pending explicit per-candidate promotion. The reviewer carries an exact-name Codex response for all 81 rows, including iterative requests for seated fishing, shower privacy/exit and the helter-skelter-dependent slide.keeper-prime-master-2026-10-12-v1 is the permanently approved identity: a smooth density-8 neutral based on Frank's preferred first render, with one broad pale jumper band rather than the harder-to-maintain double stripe. Orthographic V2 achieved an exact front/back alpha match but is rejected because its rear boots still faced the player. Orthographic V3 records why the historical side failed 10 of 15 internal points. Frank explicitly approved the first smooth rear-boot render for Orthographic V5 on 13 October; V5 pins that exact 1122 × 1402 source, integrates only rows 273–315, and retains zero alpha mismatch. The smooth rigged Side-right V1 is the approved 15/15 side authority. The eight-pose front ↔ side turn is approved with one recorded minor 45° cadence limitation. Exact side ↔ back V4 is preserved through its V5 approval record; V6 records the first scale-review refinement, V7 corrects the F8 lower legs, V8's global cadence increase is rejected, and exact V9 is the approved nine-frame authority pinned by V10. Orthographic V4's rougher, over-squared alternative is historical provenance. Every approved model must retain super-smooth outer contours and internal linework at master resolution; geometry alone cannot approve art. On 22 October, Frank authorised the first versioned runtime promotion: 27 sprites/217 frames. New V1 action drafts remain outside that bank until separately approved./keeper-review/keeper-prime-walk-v7/. He then approved exact stop → walk → stop V1; its artwork-free V2 approval record is at /keeper-review/keeper-prime-stop-walk-stop-v2/. The route joins the exact approved Side-right neutral to exact Walk V6 F1 through three registered bridge poses, reuses those poses byte-reversed on stopping, begins root motion on the first gait frame, and returns to the byte-identical neutral. Deterministic checks pin both authorities, cell gutters, 5-frame strips and sidecars, the 32-frame/412-pixel displacement schedule, zero walking-on-the-spot frames and all public assets. It is now a core transition authority, but the left mirror, workbench Final and production remain unchanged.docs/KEEPER_PRIME_BACK_WORK_ACTIVITY_CALLOUT_V1_2026-10-19.md and docs/KEEPER_PRIME_BACK_WORK_ACTIVITY_CALLOUT_V2_2026-10-19.md.docs/KEEPER_PRIME_BACK_WORK_ACTIVITY_CALLOUT_V3_2026-10-19.md./keeper-review/activity-cloud-composer-v1/ turns the immutable V3 vocabulary into a reusable review-only recipe tool. Frank can label an activity and its household asset, choose and reorder four or five hash-pinned elements, compare populated open-radial and bubble/bustle treatments, declare body compatibility and an optional named SFX, and save/import/export deterministic local recipe JSON. The default Garden BBQ adds five isolated components—sausages, hot dogs, burgers, ketchup and charcoal—while the full filter exposes nine BBQ tokens including V3 steak, lamb and grill art. Dedicated-pose recipes automatically withhold the generic rear-work Keeper. The tool edits metadata only: no contextual pixels enter the body or household asset, and nothing is approved, promoted, deployed or wired into runtime. See docs/ACTIVITY_CLOUD_COMPOSER_V1_2026-10-19.md./keeper-review/activity-cloud-composer-v2/ preserves every V1 body, route, component, recipe default and interface byte-for-byte while adding one independently owned, gutter-safe hygiene-shampoo token. The unbranded bottle and foam remain callout-only; they are not baked into the shower art, Keeper or any household asset. V1 stays immutable and discardable, and V2 remains review-only with no runtime promotion or deployment. See docs/ACTIVITY_CLOUD_COMPOSER_V2_2026-10-19.md./keeper-review/activity-cloud-composer-v3/ preserves Composer V2 exactly and adds twelve independently selectable, gutter-safe album-sleeve homages to the music family. Recognisable motifs cover Sgt. Pepper, Morning Glory, Screamadelica, the Velvet banana, London Calling, Dark Side, Abbey Road, Tapestry, Sticky Fingers, Never Mind the Bollocks, Born in the U.S.A. and Nevermind without copied titles, logos, typography, photographs or real-person likenesses. The Nevermind homage uses a fully clothed generic adult swimmer. Sleeves remain separate from the turntable, Keeper, household assets and SFX; nothing is promoted or deployed. See docs/ACTIVITY_CLOUD_COMPOSER_V3_2026-10-19.md./keeper-review/activity-cloud-composer-v4/ preserves all 86 V3 selectable components exactly and adds six isolated notation accents. Any selected music component automatically receives three changing note symbols during the active callout window. The apparent randomness is deterministic: an FNV-1a seed derived from the recipe key and ordered music selection chooses the symbols, jitter and rotation in six-frame phrases, so identical recipes replay identically. A dedicated checkbox and exported notationAccents contract control the layer independently; notation is not baked into instruments, performers, album sleeves, Keeper pixels, household assets or SFX. Nothing is approved, promoted or deployed. See docs/ACTIVITY_CLOUD_COMPOSER_V4_2026-10-19.md./keeper-review/activity-cloud-composer-v5/ preserves V4's 86 components, deterministic notation, Prime body, complete route and default recipe exactly, then adds 60 isolated household, leisure and repair elements plus 15 editable suggested packages. Coverage includes eggs, toast, discreet bathroom cues, naps, reading, pottery, writing, pets, fishing, exercise, games, boat repair and petrol filling. Every new token has one owner, zero ambiguous/unowned pixels and a measured 16-pixel-or-greater transparent gutter. Activities that need different choreography are labelled dedicated-pose-required and automatically hide the generic standing body. Nothing is approved or promoted. No V5 deployment was initiated, but the review page was subsequently published as an ancestor of the concurrent Kitchen V27 deployment commit 19cc2a7f; this did not alter runtime or Final assets. See docs/ACTIVITY_CLOUD_COMPOSER_V5_2026-10-19.md./keeper-review/activity-cloud-composer-v6/ preserves all 146 V5 components and every Prime/body/route contract exactly, then adds standalone flush-handle, loo-brush and family-safe bad-smell tokens. Only the editable using-loo suggestion changes, now combining those three additions with the existing toilet and roll; it remains dedicated-pose-required and therefore hides the generic standing body. Each new 256-pixel cell has one owner, zero ambiguous/unowned pixels and a measured 20-pixel gutter. Nothing is approved, promoted, deployed or wired into runtime. See docs/ACTIVITY_CLOUD_COMPOSER_V6_2026-10-20.md./keeper-review/activity-cloud-composer-v7/ preserves all 149 V6 components, recipes and Prime/body/route contracts exactly, then adds seven independently selectable generic action symbols: heat shimmer, pleasant aroma, foul odour, electrical arc, welding sparks, exclamation mark and question mark. Six come from an ownership-safe 3 × 2 source with 93-pixel-or-greater source gutters; the question mark has its own source. Every final 256-pixel cell has one owner, zero ambiguous/unowned pixels and at least 20 pixels of transparent gutter. The first sheet attempt is retained as rejected provenance because its 41-pixel minimum gutter missed the standard. Nothing is approved, promoted, deployed or wired into runtime. Verify with npm run verify:activity-cloud-composer-v7; see docs/ACTIVITY_CLOUD_COMPOSER_V7_2026-10-20.md.art/drafts/claude-activity-cloud-review-pack-2026-10-20-v1/. Give Claude that one directory and ask it to follow CLAUDE_REVIEW_PROMPT.md; no separate file list or upload is needed when Claude Code runs in this repository. The immutable pack combines all four Choreography V2 stories and timelines, 41 exact Prime body images, 20 activity objects, all 13 original/new symbols, three accepted sources, one labelled rejection example, Composer V6/V7 metadata, governing guidance, review shells and SHA-256 checksums. It contains 74 final usable visual assets and 78 PNG evidence files in total. It is review input only and changes no runtime, Final, Kitchen or deployment state. Verify with npm run verify:claude-activity-cloud-review-pack-v1.docs/ACTIVITY_CALLOUT_AUTHORING_STANDARD.md. It precisely records the validated illustrated direction, palette roles, single-token and ownership-safe 3×2 prompt scaffolds, family-safe/IP-safe subject treatment, 256-pixel cell and 16/20-pixel gutter rules, one-owner metadata, four/five-element story grammar, raised dual-treatment animation, dedicated-pose classification, rejection examples and immutable delivery workflow. data/activity_callout_style_contract.json makes the stable values and seven source hashes machine-checkable; run npm run verify:activity-callout-authoring-standard. This documentation adds no art, runtime asset or deployment./keeper-review/keeper-prime-rear-action-sequence-v1/ is the focused one-button proof of the exact approved walk → stop/deceleration → turn to rear → complete 24-frame rear-work action. Frank approved the exact synchronized continuity on 20 October 2026; its hashes are pinned by npm run verify:keeper-prime-rear-action-sequence-v1-approval. The separable activity layer starts only on action F1 above the cap, but its simple orbit/bustle motion is evidence rather than the final choreography authority. The separate richer Choreography V1 candidate now supplies the requested mobile assets, comic symbols and authored object interactions while leaving this approved sequence untouched; see docs/ACTIVITY_CALLOUT_DYNAMIC_CHOREOGRAPHY_NEXT.md. The route remains undeployed, so production/external-browser availability is not expected. No image media, counter, contextual body pixels, Kitchen work or runtime asset changed. See docs/KEEPER_PRIME_REAR_ACTION_SEQUENCE_V1_2026-10-20.md./keeper-review/keeper-prime-rear-action-choreography-v1/ is that next reversible gate, awaiting visual review. It preserves the approved 52-pose Prime sequence and Composer V6 bytes exactly while adding Garden BBQ, sandwich assembly, washing-up and general-repair stories. Every story has separately authored open/no-bubble and compact bubble staging, explicit 42-frame full/reduced timelines, purposeful object interactions and separately owned heat/spark/motion/water/bubble/impact symbols. Body, hero/result, supporting objects, symbols, treatment marks and SFX declarations are independent; speed, loop, reduced motion, path overlay and exact per-frame transforms are inspectable. Six new symbols pass source ownership, 80-pixel source-gutter and 20-pixel output-gutter gates and live only in the content-addressed review archive. Nothing is approved, promoted, deployed or connected to runtime/Kitchen/Final. Verify with npm run verify:keeper-prime-rear-action-choreography-v1; see docs/KEEPER_PRIME_REAR_ACTION_CHOREOGRAPHY_V1_2026-10-20.md./keeper-review/keeper-prime-rear-action-choreography-v2/ is the active bubble-refinement review. It preserves V1, the complete open treatment, all 52 approved Prime records and every inherited image byte exactly. The bubble fill is slightly lighter, its connector is aligned with the cap/head, supporting objects use wider moving lanes, and each support owns a velocity-aligned tick trail plus an interaction-timed contact star. V2 measures 58.0% more bubble-object travel and 38.9% greater working-phrase spacing while retaining the stable quiet tail and reduced-motion limits. A self-contained 68-visual-input Claude Code model-test pack lives under art/drafts/keeper-prime-rear-action-choreography-2026-10-20-v2/claude-code-model-test-pack/. Nothing is approved, promoted, deployed or connected to runtime/Kitchen/Final. Verify with npm run verify:keeper-prime-rear-action-choreography-v2; see docs/KEEPER_PRIME_REAR_ACTION_CHOREOGRAPHY_V2_2026-10-20.md.keeper_sweep_broom V1–V8 are rejected, preserved review provenance. V8's formal record pins Frank's four-arm, turn-breakup, pixelation and non-Prime-walk findings. Frank approved the broomless V3 POC as proof that one two-hand shaft-grip state can traverse eight gait phases and nine turn angles with zero prop pixels. It remains a phase-matched motion proxy, not production art. That approval authorised the current separable layered V1 review gate; it never authorises promotion of the proxy, layered candidate or an implement./keeper-review/keeper-prime-walk-stop-turn-front-v1/; the timing authority is reviewed at /keeper-timing-lab and pinned in art/drafts/keeper-fast-transition-timing-2026-10-14-v1/. The 32-frame route now previews in approximately 2.996 seconds with the approved 10/12/16 fps transition cadence and zero neutral pause. Root motion and exact endpoints remain unchanged. Action timing is explicitly excluded. The route remains outside Final and production.art/drafts/keeper-prime-walk-stop-turn-back-2026-10-14-v3/. It is a core transition authority but remains outside Final and production; V1 is unchanged historical provenance./keeper-review/keeper-root-motion-gate-v2/ uses the same five archived, byte-identical approved neutral/bridge/Walk-F1 images to explain the current 76-ku root schedule versus Claude's proposed 84-ku schedule in plain English. /keeper-review/keeper-vertical-circulation-v2/ is deterministic construction motion—not finished Keeper art—for stairs continue/exit from both landing parities, ladder continue/dismount-to-walk, and lift entry/exit. Its proposed vertical module is 60 lp floor-to-floor (56 clear + 4 shared deck); the stair is 16 × 3.75 lp rise and 16 × 5.25 lp run inside a separate 105-lp core. The 4× pane is an authoring ruler; runtime screen scale is responsive. Nothing entered Final, production or runtime, and the 26 October hidden-circulation decision now supersedes this visible-core proposal for ordinary gameplay./keeper-review/keeper-object-approach-oven-v1/ context gate applies the candidate root schedule to a complete three-interval approach: 42-ku acceleration, one exact eight-frame Walk V6 cycle, 42-ku deceleration, a fixed-root approved Turn V9 and its exact rear endpoint. A solid 30 × 30 lp oven proxy is centred on the 120-lp interaction anchor in a 172 × 56 lp room. The page reuses 20 archived approved frame URLs, preloads them before playback and can switch to the current 244-ku route, which finishes exactly 1 lp short. This remains an unapproved, reversible layout/root-motion review; the oven proxy is not art./keeper-review/keeper-object-approach-oven-v7/) preserves the exact Keeper route and records the former calculated-depth experiment. Its 42-lp notional depth, 4% room convergence, 1% furnishing convergence and raised 30-lp proxy are now historical evidence only. Kitchen and standard-room authoring instead follows flat-cutaway-v1: constant Keeper/asset scale, parallel geometry, no vanishing point or runtime depth scaling, a 5-lp floor cue and the real object/contact dimensions. V3–V7 remain immutable unapproved placement provenance./keeper-review/keeper-lift-entry-alignment-v1/ construction gate corrects the V2 lift path without altering the immutable V2 page. Door centre x=126 lp to lift centre x=42 lp is 84 lp: eight grid steps/four full strides. The Keeper remains on x=42 while stopped, pressing the button with his right hand, turning away and entering in depth; the doors close only after occlusion. The even-step route explicitly remains blocked on separately reviewed Walk F5-to-neutral stop art. No runtime geometry or approved pixels changed./keeper-review/keeper-circulation-entry-alignment-v1/ shared-core construction gate refines the preliminary lift-only geometry and adds the walk-to-stair join. One transfer-door root at x=115.5 lp serves both alternatives. The stair base stays at its measured x=94.5 lp, exactly one 21-lp/eight-frame walk cycle away; the last walk frame is followed by an already-advancing climb frame with zero pause frames. The lift centre is x=31.5 lp, exactly 84 lp/four full strides from the same door, and retains the fixed-root right-hand-button choreography. Final lift stopping still needs F5 bridge art; no runtime or approval state changed.keeper-darts-user-selected-2026-10-10-v1 visual comparison. The reviewer shows it beside canonical and explicitly marks the beard audit evidence gate; it is not a beard reference. data/keeper_review_drafts.json also records the ten selected canonical promotions, each with SHA-256-pinned prior-version evidence, seven active V11 artist-smock comparisons, and one active keeper_snooker complete-route comparison. V11 covers the full 15-asset family, while its eight neutral/bridge derivatives remain technical assets outside the 173-animation gallery. The accepted snooker route retains the canonical standard-uniform Keeper from walk through stop, cue acquisition, two strokes, release, turn and departure; production artist and snooker sprites remain unchanged pending review.KEEPER_FPS_OVERRIDES values from 1fps to 10.5fps, written to each clip's source JSON sidecar and regenerated into the runtime manifest without changing sprite pixels. The shared sprite renderer reads each manifest FPS independently, and the keeper review page can preview, save and export a later 1–20fps proposal for every action.npm run spritesdocs/PRODUCTION_ASSET_KIT.md — historical Pixel filenames, dimensions,
anchors, pivots, z-order, frame counts, fps and delivery order for legacy
assets; not current new-art authority.docs/KEEPER_ANIMATIONS.md — plain-English animation index, direction rules and object-alignment instructions.docs/KEEPER_ANIMATION_WORKBENCH.md, data/keeper_animation_workbench.json and src/animation-workbench/ — the separate Draft/Final framework for non-destructive frame editing, section loops and complete transition previews. Its editor remains implemented and the library remains intentionally empty until the approved core turns are assembled into complete transition routes. Front ↔ side Turn V1 is approved with one accepted minor 45° cadence limitation. Exact nine-frame side ↔ back V9 is approved and pinned by V10; V8's 16-frame cadence trial remains rejected as jerkier. Only world-distance walking will vary in runtime, beginning hidden behind the departure door; production remains unchanged.docs/CODEX_TO_CLAUDE_HANDOFF_2026-10-14.md — current cross-agent handoff: public review links, exact Keeper Prime approval boundaries, next core-animation gates and a bounded furniture-placement/phase-aware-locomotion architecture task for Claude.docs/CODEX_TO_CLAUDE_VERTICAL_CIRCULATION_2026-10-14.md, art/drafts/keeper-movement-foundation-2026-10-14-v1/ and scripts/verify_keeper_movement_foundation_v1.ts — the reversible 84-ku root gate and measured 60-lp stair/ladder/lift construction proposal, with exact authority hashes and no runtime promotion.src/keeper-timing-lab/, data/keeper_timing_policy.json, the immutable public/keeper-timing-lab/catalog.json V1 history, current public/keeper-timing-lab/catalog-v2.json, and art/drafts/keeper-fast-transition-timing-2026-10-14-v1/ — the phase-specific timing platform and approved Fast Timing V1 transition record. Artwork hashes remain locked; the repository supplies the project transition default while personal alternatives can still be compared, looped, saved locally and exported. The policy explicitly prevents action animations from inheriting transition timing.docs/KEEPER_ANIMATION_HANDOFF.md — complete keeper review checkpoint, correction history, exact transition-gap inventory, object-binding design and ready-to-paste next-task prompt.docs/KEEPER_ARTWORK_AUTHORING_AND_REVIEW_PLAYBOOK.md — proven Keeper artwork recipe, continuity rules, rejected methods, accepted artist/snooker case studies, evidence checklist and exact-name review workflow.docs/KEEPER_FULL_FACE_INVENTORY.md, data/keeper_full_face_inventory.json and art/drafts/keeper-full-face-canon-pack-2026-10-12-v1/ — the complete read-only front-facing inventory and approved, reversible full-face canon pack. The first two unpromoted V2 redraws are isolated in art/drafts/keeper-full-face-standard-turn-redraw-2026-10-12-v2/; their rejected V1 predecessor remains historical and unmodified.scripts/keeper_review_handoff_monitor.py and scripts/install_keeper_review_handoff_monitor.sh — independent macOS notification monitor and its per-user launchd installer; it reads the hand-back queue every four hours without opening Codex.docs/prompts/KEEPER_SIDE_ON_BEARD_OCCLUSION_AUDIT.md — first-stage ready-to-paste audit/fix prompt for beard, hand and arm layer order across every side-on standing and sitting animation.docs/prompts/KEEPER_SPRITE_FRAME_ISOLATION_AUDIT.md — second-stage ready-to-paste exhaustive audit/fix prompt for frame overlap and future enforcement.docs/prompts/KEEPER_POST_AUDIT_REVIEW_DELTA.md — ready-to-paste exact-name, JSON-ingestion prompt for Frank's next review after all three audits.docs/prompts/KEEPER_RELEASE_SURFACE_DATUM_AUDIT.md — third-stage ready-to-paste audit prompt for consistent tabletop release height and prop hand-off.docs/prompts/KEEPER_REVIEW_WORKBENCH_BUILD.md — ready-to-paste separate build prompt for the project-specific next stage of the reviewer: rooms, furniture, annotations, crop proposals, routines, triggers and context preview, with later generic productisation deliberately deferred.docs/KEEPER_ASSET_SCALE.md — human-readable keeper measurements and the rules for sizing/placing objects.data/keeper_asset_contract.json — authoritative machine-readable scale, pivots and interaction points.data/keeper_pose_registry.json, data/keeper_endpoint_audit.json and data/keeper_endpoint_exceptions.json — shared pose vocabulary, current real-pixel endpoint evidence, and the frozen legacy migration boundary.data/keeper_object_dimensions.json and docs/KEEPER_OBJECT_DIMENSIONS.md — keeper-derived furniture, fixture and station dimensions.public/keeper-review/index.html — canonical online-only reviewer deployed at /keeper-review/; docs/keeper-scale-audit/review.html is the generated audit artifact and must be byte-identical, but when opened outside /keeper-review it sends the viewer to the live platform instead of presenting a second workspace. Its gallery is a compact visual scan (name, review state, last local save/redraft, playback and frame stepping); Open close review opens any chosen card immediately. Find animation searches names and overrides all other filters; otherwise independently filter by review state, pose and active/reserve use list. Close review lets Frank override the inferred pose tag, relegate a likely duplicate to the reversible reserve list, expand/compress retained draft comparisons, and select canonical or every exact-name draft as an exportable preferred-promotion candidate—without mutating production. Hand back to Codex always asks for confirmation, saves any unsaved cards to that browser if confirmed, then submits the full batch to the durable server-side queue. The server records a semantic exact-name delta (ignoring save timestamps), comparing the first server hand-back to the shipped review baseline and later ones to the prior hand-back; the receipt reports only the changed animation count for later Codex work. When Codex claims a batch, the online reviewer becomes read-only until the delivery is completed, while retaining playback and inspection; JSON backup/import is collapsed as an exceptional browser-recovery option.review-archive/, docs/REVIEW_ARCHIVE.md, scripts/archive_keeper_review_media.mjs and scripts/replace_keeper_review_set.mjs — content-addressed storage for review-only images, GIFs and oversized review JSON. After the Lighthouse Pixel Style Test V4 archive pass, the index has 4,504 review references across 152 set manifests resolving to 2,452 SHA-256 objects hosted outside Vercel deployments. The global sweep ignores unrelated untracked objects, and the single-set replacement path remains available for an isolated reversible batch. Immutable page bytes and old URLs are preserved through short-lived redirect routes; new animations preload every moving frame before playback. The verified public/ payload is 48.87 MiB, beneath the unchanged 50 MiB guard. Workbench V12 reuses the immutable V11/V10 delivery and catalogue through a tiny Vercel-safe wrapper instead of duplicating them.data/keeper_side_on_beard_occlusion_audit.json, art/drafts/keeper-side-on-beard-occlusion-2026-10-10-v2/, and art/drafts/keeper-side-on-beard-occlusion-2026-10-10-v1/ — completed draft-only v2 beard/hand audit and preserved rejected v1 history. The active reviewer shows v2 beside canonical and the separate Frank-selected darts draft; the verifier prevents implicit promotion.data/keeper_review_drafts.json and art/drafts/ — SHA-256-pinned, exact-name review comparisons: the draft-only darts candidate, seven active V11 artist-smock candidates, the accepted complete-route keeper_snooker candidate, the 41 exact-name 11 October amendment candidates and the separate party-hat frame-2 v2 variant, plus the ten selected canonical promotions and their reversible previous versions. Hash-addressed reviewer copies prevent same-name historical and current variants from overwriting one another. scripts/verify_keeper_review_drafts.ts checks every registered source, canonical/current comparison, sidecar, gutter, publication and reviewer attachment.docs/keeper-scale-audit/ — all-sheet/all-frame metrics, CSV register and nine printable contact sheets; rebuild every output, including the viewer, with the bundled Python runtime and scripts/audit_keeper_scale.py.docs/HIDDEN_CIRCULATION_DOORS_AND_AUDIO_2026-10-26.md — current one-entrance-per-floor hidden stair/lift, door-occlusion, costume-change and stone-footstep placeholder authority.docs/DOORS_STAIRS_AND_COSTUMES.md — historical visible-stairway and costume-routing record; use only where it does not conflict with the 26 October hidden-circulation authority.docs/BACKGROUND_ELEMENTS.md — Codex's brief for every background layer, sunrise and sunset, night lighting, and the every-asset-can-be-upgraded rule for objects.docs/AMBIENCE_AND_BACKDROP.md — backdrop layers, weather overlays, ambient sound, the lamp's start-up, audio file specs and the decisions still to make.docs/CLAUDE_WORKBENCH_NOTES.md — Claude's plan of approach for the shared review workbench (the next major build).docs/RECIPES.md — the recipe format, the recipe studio and what each animation sheet needs for it.docs/EXPANSION_DESIGN.md — living write-up of agreed room ideas, random floor placement, night reveals, weather, transport, island expansions and energy systems.art/manifest.json and art/asset_inventory.json — facts about the concept/prototype image pack; these are not a production rig.