IRON LITANY

Current contract — v0.4.0

Read PHYSICAL_OFFICES_V040.md and PLAYTHROUGH_V040.md before further changes. Preserve actual pointer lock, Q draw/holster, strike-triggered first person, Escape/focus pause, named station routes and accessible fitted tools. Q/F/X remain available from the SVG tools; their adjustment keys must not move the priest. Practice must never overwrite the campaign save.

The current primary offices manipulate physical values: censer inertia and five wax witnesses, gunner rate control, weighted shell then collar, recoil mass, drifting filter band and marching governor. The engine uses its real weighted drive and oil cup even in the moving protected lesson. Old ritual commands remain for save compatibility and historical tests; do not put the old button sequences back in the primary UI. The vox retains its independent pin-and-stylus authentication. New shrine work snapshots its sender/taint and cannot erase a later intrusion.

The barrel, chamber and muzzle are coaxial; driver/controls sit to the left and the priest approaches from the right. Preserve the continuous drivetrain, surveyed corridors, eleven compartment exposures, shared deck heights and zero-overreach working grips. The exterior has bounded original pools (240 corpse assemblies, 18 riflemen, three effect slots). Its shot schedule is shared with the muffled audio bus. Eight longer overhead cones coexist with strict first-person eye/tunnel occlusion. Never replace black armour gaps with a full landscape reveal.

151 behavioral checks pass before release. Browser QA completed the fitted offices, verified actual native capture and Escape, observed an automatic-draw campaign kill and restored the separate saved watch after practice. Native CI additionally exercises the shipped Q handler and real-GPU slit shader. Publication/native success must be read from RELEASE_V040.md and receipts after the jobs finish, not inferred from this handoff.

Next review: compare the instruments with the user, especially whether the simple commander/counterweight tasks have enough identity; then refine physical hands/materials against the Diablo I reference before expanding their asset families. Full campaign balance and sustained listening remain open. No cinematic or narrated gameplay until the user approves the demo. Do not promise identical creative quality from a model change.

Everything below is historical context. Its old test counts, primary tools and release status do not override the contract above.

Current UX contract, v0.3.2

Read UX_REVIEW_V032.md. Preserve explicit named interaction, reported-symptom guidance without hidden answers, actual reach/collision, held tool work, Q pistol state, saved paid work and modal pause/focus isolation. User reported difficulty knowing where to go or what to touch in both views; do not regress to terse labels or competing button lists. Existing art direction remains binding.

The release is published and verified in RELEASE_V032.md. Frozen runtime is tag v0.3.2, commit 77b0e46324b4127f98e7d6ad1e6e83b8fd32e0b1; subsequent documentation does not change its bytes. All 134 tests pass. Ordinary input reached the first halt locally and repeated the protected rite, E interaction, both views and Q state on the published build. The canonical tab was refreshed only after confirming the unstarted welcome, with Continue saved watch retained. Broader novice testing, complete campaign play and final art/listening remain open.

Iron Litany — model allocation and bounded work packets

Version 4 · 5 October 2026 · This document recommends future allocation; it does not change this chat's active model.

Current v0.3.1 continuation

Crew revision 6 and the real-contact review are in CREW_AND_CONTACT_V031.md. Preserve userData.workRig, fixed-length operator arms, the real handle anchor groups that survive static batching, the staged shell orientation and shared deck heights. The priest remains revision 5. Visual motion never grants ammunition or a cannon shot. The loading cycle is still driven by authoritative lastShotTime; a quarantined loader stops it.

Actual browser play captured acquire/lift/align/seat/clear, killed three small bodies, bound one wound and reached the first halt at 3:12. All three replacements and five remaining allotment survived reload. Final first-person inspection shows the round entering the constructed mouth. Art, complete campaign pacing and sustained listening remain open. There are 126 passing tests; the strongest next packets are priest/tool contact, crew fatigue/injury silhouettes and one physical listening/diagnosis prototype, followed by a complete three-watch actual-input sound-on journey. Demo approval still gates films.

Current v0.3.0 continuation

Sol High has continued under the same acceptance standards. The current authoritative revision is INTERIOR_AND_INCURSIONS_V030.md, with actual input evidence in PLAYTHROUGH_V7.md. There are 124 passing tests, eight successful bounded synthetic campaigns, and a real first-repair-halt journey with three replacements and save/reload. A full new-build human-control campaign victory, final art and listening approval remain open.

Preserve tank-layout.js layout version 2, its swept-body routes, continuous deckHeight and narrow save migration. Both cameras, crew, wounds and fire obstruction read this survey. compartment-light.js eases current/adjacent/distant exposure only in cutaway mode. vision.js selects finite shared-world cones overhead, strict eye/tunnel sight first person; old offscreen foldouts are not instantiated. Do not restore an earlier overhead rule from the historical packets below.

motive-rite.js owns weighted clutch/film/wear and actual march/power consequences. incursion.js owns bounded births, growth, finite magazines, aimed obstruction, interrupted paid binding and the 26-second minimum post-kill recovery window. Rendering in manifestations.js cannot decide a kill or seal. F frames a nearby unoccluded threat without firing; clicking/Space still requires a shot. Lay down service tools before combat.

Next bounded packets: authored adult crew anatomy and real hand/shell contact; one approved interior material/light exemplar; one physical listening/diagnosis prototype; and a complete three-watch actual-input playthrough with sustained sound. Further religious mechanisms are proposals in the current design record, not implemented features. Never replace visible proof with a synthetic policy result or claim identical quality from a model change. Demo approval still gates cinematic and narrated gameplay.

The earlier continuation sections below are historical, including their test counts, sight rules and previous defeats/victories.

Allocation and quality contract

Use GPT-6.1 Sol, High reasoning, for the bounded implementation packets below once their interfaces and examples are frozen. This is a project recommendation, not a promise of identical performance or a documented universal optimum.

Retain Astra with strong reasoning for ambiguous coupled-system decisions, art-direction critique, conflicting evidence, and final integrated milestone review. Return difficult or drifting packets to that review before expanding scope.

Official OpenAI model-selection guidance, checked 5 October 2026, recommends comparing models on the same work and retaining the lightest setting that meets the quality bar. It frames GPT-6.1 Sol as useful for complex work where cost matters and Astra for demanding, ambiguous work.

We can preserve acceptance standards, require evidence and reject inferior output. We cannot guarantee that a different model produces exactly the quality the original model would have produced.

Delivered foundation and immediate continuation

Ordinary Chrome controls have completed the protected engine rite, formal loader correction, a genuine first-person transition, coolant repair and vox diagnosis; the first crossing reached its depot.

All three crew replacements and a part requisition survived reload, and the run departed into Watch 2. Subsequent unattended play ended in Chaos defeat at 4:27, with hull 89 and spirit 64. This proves neither a full live campaign victory nor final balance acceptance.

All 25 automated tests pass against the latest UI/exterior edits. A subsequent live watch successfully diagnosed and purged the vox, spending one incense and one seal; sound controls and all three sample transfers also passed. Listening quality, complete live campaign victory and performance acceptance remain pending in QA_REPORT.md.

The renderer, materials and action animation remain procedural foundations. Variable frame cadence during browser automation has not received performance acceptance; isolate automation overhead from active-game behavior before adding heavier assets.

The 390-pixel no-overflow check demonstrates responsive layout only. A complete touch-control journey and sustained sound-on review remain separate requirements.

Latest Sol High continuation

The first priest/loader/engine candidate is integrated and recorded in ART_DIRECTION.md and QA_REPORT.md. The generated overhead plate is a target; the runtime screenshots show the actual result. It is not yet approved in stills or motion. The shot-linked loader sequence and safe crew standing positions are in place. The new visible defect found and fixed in play was first-person overlap with the loader body; an existing save was migrated safely on restore.

Before enlarging the art pass, refine the candidate loader's face, hands, cloth folds, shell grip and breech contact in both cameras. Review the shell sequence at normal speed and record specific contact failures. Keep the generated plate as comparison evidence, not as a runtime backdrop. Twenty-six tests now pass. Recheck this count after code changes.

The next loader review has a new live reference in loader-transfer-v3.png. The reach defect was fixed by moving the worker with the shell; the player now stands in the side aisle and the first-person view frames loader and breech together. The shell still disappears behind the broad torso/cradle during alignment, and hands remain rough blocks. Preserve the geometric reach constraint and current shot authority while replacing these candidate forms. The review must see rack pickup, two-hand grip, seat contact and hand clearance from both cameras, not infer contact from the distance test.

Required handoff envelope

Packet 1 — authored priest, loader and engine sector

Purpose: establish the first approved material-and-character exemplar in actual gameplay.

Ownership: new authored assets/manifests under dist/game/assets/, a narrowly scoped loader module if needed, and integration points in world.js; do not change simulation or site pages.

Deliver: priest and loader with serious anatomy, weighted clothing, distinct role silhouettes, functional hands/tools; engine assembly with service access, gauges and materially distinct surfaces.

Contract: preserve current station footprints and collision routes; document scale, pivot, contact points and source rights. Reuse geometry or code only with established provenance.

Acceptance: overhead recognition at actual pixel footprint; first-person material inspection; no clipping on all nearby service routes; comparison beside the approved reference board.

Stop condition: wrong silhouette, soft/plastic materials, excessive fill or unreadable hands. Correct the exemplar before making more characters.

Packet 2 — physical shell handling and contact animation

Purpose: replace approximate cyclic loader gestures with one mechanically coherent action.

Ownership: a small animation state module, contact data on Packet 1 assets and narrow world.js integration; simulation changes require a separately reviewed event contract.

Deliver: acquire shell → grip → lift/carry → align → seat → clear hands → close breech → aim-ready → fire/recoil → recover.

Contract: one event identity drives shell state, hands, breech, firing flash and audio; interruptions, pause, quarantine and unavailable ammunition have explicit states.

Acceptance: watch the whole sequence overhead and first person; verify contact at grip/alignment/seat and that firing cannot visually precede closure. Pause/resume midway and remove the loader.

Stop condition: shell teleportation, floating hands, independent looping limbs, repeated shot audio or visual readiness disagreeing with simulated readiness.

Packet 3 — exterior piece manifest, pooling and aperture grime

Purpose: make incomplete outside views coherent, authored and bounded.

Ownership: new exterior manifest/module, small tank-specific assets and aperture data; narrow world.js integration only.

Deliver: six initial families—rubble, trench, wreck, infantry, passing armor and civilians—plus grime/smoke/shutter layers per slit. References remain reference-only.

Contract: piece id, route distance, lane, dimensions, facing, velocity, lifetime, silhouette, material, occlusion, audio/event role, provenance and review status; use one shared world timeline.

Acceptance: trace one identified vehicle across adjacent apertures and overhead; verify matching direction/timing, believable parallax, partial blockage and useful warning information.

Resource gate: explicit active-piece/particle/texture bounds; recycle behind the tank; show stable counts during a bounded full-route run.

Packet 4 — walkable repair refuge

Purpose: turn a depot interface into a compact place where provisioning, reports and crew replacement occur.

Ownership: a refuge scene/module and local UI adapter; reuse existing replacement/requisition commands. Campaign data changes require explicit schema/version review.

Deliver: repair bay, report lectern, reagent counter and personnel examination area, with one teacher/peer interaction that unlocks a concrete service technique.

Contract: retain persistent tank/crew history, requisition costs, role coverage, replacement limits and safe saves. No silent campaign reset on entering/exiting.

Acceptance: reach each service, replace a named crew member, provision, save/reload, return to the tank and demonstrate the same new crew member at work.

Scope boundary: this is one refuge. Long space voyages, faction politics and a complete network of hubs remain separate later work.

Packet 5 — diagnostics and integrated regression evidence

Purpose: expose enough evidence to explain failures and verify actual play without turning player UI into a developer console.

Ownership: bounded diagnostic/event export, focused tests and compact QA evidence; gameplay changes only for reproduced defects.

Deliver: seed/build/state/event context, cause-and-response log, station/path checks, frame/draw/asset counters and audio lifecycle checks; diagnostics off by default.

Acceptance: preserve the demonstrated first-crossing journey as a regression; preserve the successful live purge and sound-control checks, conduct sustained listening, then complete all three crossings through ordinary controls. Repeat the explained defeat and measure frame cadence outside automation stalls.

Evidence boundary: a scripted simulation policy has no real browser travel or human perceptual burden; report it separately from a complete player journey.

Review and integration order

Complete Packet 1 before judging Packet 2's contact quality. Packet 3 can proceed independently under a frozen scene contract; do not let two agents edit shared integration points concurrently.

The first-crossing prerequisite for Packet 4 is now demonstrated; keep its working depot/persistence behavior while adding a walkable refuge. Packet 5 accompanies each change and concludes with an integrated run.

Astra review compares actual normal-size runtime evidence with the art exemplar and the user brief, names concrete failures, and sends them back for repair.

Final human demo approval remains separate. Do not begin the cinematic or narrated gameplay until that approval exists.

v0.2.3 current continuation

Held mechanical tools and the draft/challenge/weighted-seal covenant now replace the old ordinary click-through shrine/vox flow. The current actual-input record is PLAYTHROUGH_V6.md. Initial readable overhead eye-image strips are now bounded beyond the tracks, but they remain small and rod-like in some terrain frames. Preserve exact eye admission, shared exterior instances and black surroundings while improving their art presentation.

Next packets should deepen engine/breech tool causality and material feedback, improve the physical workbench and hand contact, and refine exterior fragment composition without widening the safe ports. Keep the four-seed campaign regressions and save-lifecycle contracts. Human difficulty, crew/art fidelity and sound listening are still review gates. Do not produce the cinematic or narrated gameplay until the creator approves the demo.