Files
aetherbound-guild/docs/runtime/fg2/IMPLEMENTATION_PLAN.md
T

15 KiB

FG-2 Production Vertical Slice Implementation Plan

Status: COMPLETE_LOCAL / OWNER_CHECKPOINT_1 Active step: NONE Activation baseline: 6ee3765d71b9dcda88bb5bd37163253e7cfb5cd3 Accepted gameplay source: d00c7ad4f960b4498cb4a4f0b88fa8603a1e462b Goal: docs/goals/FG2_PRODUCTION_VERTICAL_SLICE_GOAL.md Contract: docs/runtime/FG2_PRODUCTION_VERTICAL_SLICE_CONTRACT.md

Player-Visible Stopping Point

One canonical Windglass Market-1 route flows through line preparation, event-bound automatic battle, victory or permanent-loss recovery and saved Market 2 with production-direction pixel art, motion, VFX and audio. A fresh H5 at the end is Owner checkpoint 1.

Ordered Steps

Step Status Player outcome Commit boundary
FG2-STEP-0 Contract and audit COMPLETE The exact battle, focal order, pixel direction, media ceiling and evidence gate are frozen. Goal, contract, plan, roadmap, checkpoint and ledger.
FG2-STEP-1 Canonical adapter and graybox COMPLETE One real P10.0 Market/battle path runs through a reusable campaign presentation boundary at the final logical canvas. Adapter/controller, graybox layers, event/input tests and recording probe.
FG2-STEP-2 Identity and environment production COMPLETE Aegis, Scribe, Sprout and Windglass layers have traceable production assets at play size. Asset requests, raw/processed outputs, manifests, validators and normal frames.
FG2-STEP-3 Motion, VFX and game feel COMPLETE Entry, contact, protection, damage, casualty, victory and recovery feel causal and readable. Event presenter, motion manifests, VFX, reduced variants, focused/runtime tests.
FG2-STEP-4 Audio identity and mix COMPLETE Commits, pressure, impacts, casualty, victory and recovery are audible without masking decisions. Original audio candidates, buses, event router, machine checks and mute lifecycle.
FG2-STEP-5 Slice candidate and H5 COMPLETE The Owner can remotely judge the final direction in one stable landscape build. Full regressions, layouts, recording, media audit, Web export and Gallery handoff.

Step Contracts

FG2-STEP-1 CANONICAL ADAPTER AND GRAYBOX

ID: FG2-STEP-1
PLAYER OUTCOME: The real Company and enemy meet in one continuous world scene;
  the player can see order, target, cause, result and recovery without app cards.
IN SCOPE: runtime/campaign state/event adapter; one P10.0 Market-1 fixture;
  production-slice controller; logical-grid layer roots; parsed touch/drag;
  graybox motion and fixed recording probe; focused P10.0 regressions.
OUT OF SCOPE: new gameplay, economy, Save changes, generated media, audio,
  later Markets/Regions, H5 and release.
OWNED FILES: new runtime/campaign modules/scenes; narrow main entry flag or
  handoff only; tests/fg2 and UIDs; durable closure after pushed source.
ACCEPTANCE CHECKS: source snapshot/event hashes stay exact; risk-zero success
  and named wounded/high-risk recovery fixtures match P10.0; no duplicated
  authority; 844x390 uses
  the declared logical grid; world-first focal order; controls >=48px; parsed
  Touch/Drag only; fixed 15-30s graybox recording; strict diagnostics zero.
EVIDENCE LEVEL EXPECTED: automated_verified + runtime graybox evidence.
COMMIT BOUNDARY: focused source/test push, fixed-source evidence, docs closure.
LEGAL TERMINAL: FG-2 Step 1 canonical graybox complete.
NEXT STEP: FG2-STEP-2.

Step 1 may not edit any P10.0-P10.3 domain, economy, save, content or accepted test file. A narrow runtime/main.gd handoff may select the canonical campaign controller but may not translate gameplay state itself.

Step 1 product source 197814df079a56b7013d0aa0020c6bdac592bda1 adds the campaign adapter, deterministic success/failure fixtures, five logical world layers and parsed touch/drag graybox controller without changing P10.0-P10.3 authority. Recording-fix source af1c8ee73fb3bfb2428e2287abd61d38a16d9136 changes only the final-frame recording hold.

R1 at /private/tmp/abg-fg2-197814d-step1-r1/evidence/ is append-only INVALID_RECORDING_TEARDOWN; its gray cleanup frame is not reused. Fresh R2 at /private/tmp/abg-fg2-af1c8ee-step1-r2/evidence/ passes 7/7 headless programs, seven normal-render fixtures and a 20.5s MovieWriter recording. Touch/Drag are 9/1 in the complete runtime flow and 5/1 in the recording; fallback/direct, strict diagnostics and black intervals are zero. Audit SHA-256 is 6c33961c6ffd1e7c1221ade91f431d1648450d3e08a137df13cfba6393ab0c00; the 27-row inventory SHA-256 is 553179f7e2fa2be24545d152464b9de67ec918839e4d6f57614c0f8ad7552252.

FG2-STEP-2 IDENTITY AND ENVIRONMENT PRODUCTION

ID: FG2-STEP-2
PLAYER OUTCOME: The route, allied role and enemy pressure read as authored game
  content at actual size before animation or effects explain them.
IN SCOPE: exact bounded asset inventory; low-grid environment layers; Aegis and
  Scribe/Sprout identity locks; required motion within the paid image ceiling;
  deterministic processing, palette/pivot QA, manifests and runtime import.
OUT OF SCOPE: bulk assets, other Professions/enemies/Regions, video, paid audio.
OWNED FILES: assets/fg2 source/processed/runtime paths, generation records,
  processing/verification tools and narrow media registry integration.
ACCEPTANCE CHECKS: low-grid origin, hard clusters, limited palette, no crop/
  fringe/debris, stable baseline and identity, manifest-driven frames, correct
  import/filtering, current normal-render source visible at play size.
EVIDENCE LEVEL EXPECTED: processed + imported + integrated + runtime_seen.
COMMIT BOUNDARY: asset/tool commit, fixed-source visual evidence, docs closure.
LEGAL TERMINAL: FG-2 Step 2 production identities complete.
NEXT STEP: FG2-STEP-3.

Image generation begins with a dry-run and a written request ledger. Maximum paid use for this Goal is four calls and USD 5 total. A fifth call is not an automatic retry; it requires a new Owner decision.

Step 2 source ab525b9f5be09ebab6bef9421f8d0636cee3adcb retains four provider reports at total cost USD 0.056, including the rejected detached- shield Aegis source. Deterministic local processing produces nine environment plates and 14 safe-cell actor frames; manifest SHA-256 is 6dce730a0991e80fc228b50ac82ef5bed121a81c83265a08a3339f356bb18db5. R1 at /private/tmp/abg-fg2-ab525b9-step2-r1/evidence/ is append-only INVALID_EVIDENCE_CAPTURE because its successful import output was not retained. Fresh R2 at /private/tmp/abg-fg2-ab525b9-step2-r2/evidence/ passes all six markers, six normal-render frames and strict diagnostics zero. Audit SHA-256 is 82ac47fd5e5537bc80d9e4aec00b6f387784b8efb807908dd0285aa2a8c06ea1; the 18-row inventory SHA-256 is c678d578707c4ccd1651ae8a3695c0c71fa0e6771649ebdb9f5a0a8c99a01791.

FG2-STEP-3 MOTION, VFX AND GAME FEEL

ID: FG2-STEP-3
PLAYER OUTCOME: The player can read anticipation, collision, protection,
  damage, loss and recovery from bodies and state change, not text or particles.
IN SCOPE: manifest-driven actor states; event presentation adapter; actor-local
  VFX/values; hit pause; restrained shake; state cleanup; accessibility modes.
OUT OF SCOPE: simulation timing/results, new assets outside the fixed inventory,
  audio, H5, device or release.
OWNED FILES: campaign presenter/VFX modules, bounded shaders/materials, tests.
ACCEPTANCE CHECKS: exact event-to-motion mapping; no false success; all effects
  return to rest; input remains active; overlaps capped; reduced motion/flashes
  and low power preserve facts; busy-state recording stays readable.
EVIDENCE LEVEL EXPECTED: runtime_verified + agent_visual_reviewed for motion.
COMMIT BOUNDARY: focused source/test push, fixed runtime evidence, docs closure.
LEGAL TERMINAL: FG-2 Step 3 motion and game feel complete.
NEXT STEP: FG2-STEP-4.

Step 3 product source 3fff7d0179faf54408c31c15daa6e1344dfde838 adds the event presenter, motion manifest, actor-local values/VFX, bounded hit pause and shake, accessibility variants and focused motion evidence. Final evidence source aa4dc4297955a561c7a735ec17efb3cc46f558c5 adds only successful-receipt-bound protected-recovery feedback.

Fresh fixed-source R1 is /private/tmp/abg-fg2-aa4dc42-step3-r1/evidence/. Six headless programs, nine native 844x390 captures and one MovieWriter program produce eight exact markers with strict diagnostics, black intervals and owned processes zero. The recording is 630 frames / 21 seconds at 30 FPS, with Touch/Drag 5/1, fallback/direct zero and actor frame diversity 6/4/4. Runtime Touch/Drag remain 9/1. Motion-manifest SHA-256 is e17b9d528de0b6aa438d9f08291f8a1569793ea0277c6c9edfd839e4a9afcf13; audit SHA-256 is d9556da30cb8a16d6e7071a333b495c9bd595597c4a52ca38823bb4aef9123cb; the 31-row inventory verifies completely with SHA-256 c23cdb594b7161cd23a186d22282aed605c3f06692ed05ed252504477429dea0. Step 3 reaches automated_verified + runtime_verified + agent_visual_reviewed for the bounded motion slice. Audio and all human, H5, device and release gates remain open or frozen.

FG2-STEP-4 AUDIO IDENTITY AND MIX

ID: FG2-STEP-4
PLAYER OUTCOME: The player hears commit, pressure, protection, loss, result and
  recovery while routine automatic impacts remain secondary.
IN SCOPE: original local music/ambience/SFX candidates; bus routing; event IDs;
  pooling/rate limits/ducking; mute and lifecycle; machine audio checks.
OUT OF SCOPE: paid ElevenLabs, voice, generative video, complete soundtrack,
  gameplay timing, device listening or release.
OWNED FILES: bounded audio sources/processed runtime files, generation tool,
  audio manifest/router/bus layout, tests and evidence.
ACCEPTANCE CHECKS: declared codecs/durations/peaks/silence/seams; exact event
  binding; duplicate suppression; priority/ducking; mute and low-power preserve
  simulation; no clipped or missing required cue in runtime recording.
EVIDENCE LEVEL EXPECTED: integrated + runtime_seen + machine_audio_checked.
COMMIT BOUNDARY: audio/tool/source push, fixed runtime/machine evidence, docs.
LEGAL TERMINAL: FG-2 Step 4 audio candidate complete.
NEXT STEP: FG2-STEP-5.

Step 4 product source 038a064783500b45331556a91faf09029175ca8b adds nine deterministic local PCM assets, the audio manifest and router, exact receipt/event binding and focused audio tests. Final evidence source 7e40c2df8718a693937345f7d05e9564b0d89c83 only strengthens the recording test to require exact parsed Touch/Drag counts.

R1 at /private/tmp/abg-fg2-7e40c2d-step4-r1/evidence/ remains append-only INVALID_EVIDENCE_FINALIZATION: process-facts.txt changed after inventory generation, so one of 26 hashes no longer matched and its PASS files are not reused. Fresh R2 is /private/tmp/abg-fg2-7e40c2d-step4-r2/evidence/. Nine audio assets and eight focused programs pass; the 844x390 MovieWriter recording is 804 frames / 26.8 seconds with Touch/Drag 6/1, seven required cues, six event families, strict diagnostics, black intervals, clipping, fallback/direct and owned processes all zero. The PCM track is 48 kHz stereo with peak -6.2418 dBFS, RMS -28.8908 dBFS and non-silent ratio 0.11849. Audit SHA-256 is 5607218904a0cec8363f54f3463ef162f16878eede91290c975f39c9b74f5c92; the complete 26-row inventory verifies with SHA-256 39ac4c7f02c903a9cac8d4a5d5f04d1a5b771f6e7d694000f6aab0f7b9c8e9f4. Step 4 reaches integrated + runtime_seen + machine_audio_checked. Human listening and all other human, H5, device and release gates remain open or frozen.

FG2-STEP-5 SLICE CANDIDATE AND H5

ID: FG2-STEP-5
PLAYER OUTCOME: The Owner can open one stable remote build and judge the final
  visual, motion, audio and game-feel direction without developer coaching.
IN SCOPE: full regressions; five relevant behavior fixtures; Save/layout/input/
  accessibility matrices; 15-30s final recording; media provenance audit;
  runtime-only Web export, cache configuration and Gallery deployment.
OUT OF SCOPE: native packaging, devices, signing, stores, publishing, bulk art.
OWNED FILES: candidate tests/evidence, Web export metadata, H5 delivery docs.
ACCEPTANCE CHECKS: immutable clean source; all declared markers; strict logs;
  target-size frames; parsed touch/drag; audio machine checks; source-bound H5;
  clean/upstream and owned process cleanup.
EVIDENCE LEVEL EXPECTED: runtime_verified + agent_visual_reviewed +
  machine_audio_checked; human gates remain open for checkpoint.
COMMIT BOUNDARY: candidate source/evidence closure and H5 handoff push.
LEGAL TERMINAL: Aetherbound Guild FG-2 production vertical slice ready for
  Owner checkpoint.
NEXT STEP: wait for Owner checkpoint 1 judgment before bulk Region production.

Source 3302134f31d1e9315e743923af39d3f64aaad5ab is the immutable candidate and Web authority. It repairs Release-safe fixture construction by executing state mutations outside stripped assertions and adds a focused regression without changing gameplay, economy, Save or content.

Fresh candidate R2 at /private/tmp/abg-fg2-3302134-step5-r2/evidence/ passes 39/39 tests, 16/16 nonblank captures and a 636-frame / 21.2-second MovieWriter recording. Parsed Touch/Drag are 5/1; fallback/direct paths, strict diagnostics, black intervals and owned processes are zero. Inventory SHA-256 is 3730472e8de992fd340f4742c645d9bf2c9222d32d07aae195a00017066b53e2; audit SHA-256 is 329db4047e4a8bc41add4c5fc5edc17095356745440e9ea3faf748db5cb137c7.

Runtime-only Web R2 at /private/tmp/abg-fg2-3302134-web-r2/ removes all 365 test files before import, enumerates 518 PCK paths with forbidden paths zero and passes strict export checks. Chrome browser evidence at /private/tmp/abg-fg2-3302134-web-browser-r1/ reaches distinct nonblank Market, battle and result states through raw touch with startup product errors zero. Private Gallery item GA9__qV4NWw5 preserves all nine runtime payloads; the signed token is not stored in Git. See docs/runtime/fg2/H5_DELIVERY.md.

Step 5 reaches runtime_verified + agent_visual_reviewed + machine_audio_checked + delivery_transport_verified. Human and physical-device levels remain open. FG-3 may not start until Owner checkpoint 1 returns a visual, motion, audio, comprehension and fun judgment.

Issue Register

ID Status Boundary
FG2-I01 RESOLVED_CONTRACT Latest workspace rules require true low-grid pixel art; older non-pixel runtime assets remain references/temporary only.
FG2-I02 RESOLVED_STEP_1 The campaign adapter preserves exact P10.0 source/event hashes and forwards all state changes to existing services.
FG2-I03 RESOLVED_STEP_2 Four calls cost USD 0.056; one Aegis source was rejected and the corrected Aegis, two enemies and three Windglass layers pass the runtime media gate.
FG2-I06 RESOLVED_CONTRACT Fixed Market-1 order reversal does not change outcome; recovery uses a named wounded/high-risk fixture and never a forced result.
FG2-I04 RESOLVED_STEP_4 Nine local original assets, exact event routing and the MovieWriter PCM track pass the machine/runtime gate without claiming human listening.
FG2-I07 RESOLVED_STEP_5 Source 3302134 executes fixture/Market mutations before assertions and the Release Web plus browser-touch evidence now reaches Market, battle and result.
FG2-I05 OPEN_OWNER Human visual, motion, audio, comprehension and fun judgment occurs only at the final FG-2 H5 checkpoint.