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

317 lines
19 KiB
Markdown

# FG-3 Complete RG-02 Implementation Plan
> Status: `ACCEPTED`
> Active step: `NONE - FG3-STEP-6 COMPLETE`
> Activation baseline: `2f1fcd0ef0effbc804101eb62142f8596f904fe0`
> Goal: `docs/goals/FG3_COMPLETE_RG02_GOAL.md`
> Contract: `docs/runtime/FG3_COMPLETE_RG02_CONTRACT.md`
## Player-Visible Stopping Point
Starting from exact saved Market 8, the player completes both Siltwake
Contracts and Bosses, preserves losses and growth, and reloads with RG-03
visibly unlocked through the accepted FG-2 game presentation.
## Ordered Steps
<!-- markdownlint-disable MD013 -->
| Step | Status | Player outcome | Commit boundary |
| --- | --- | --- | --- |
| `FG3-STEP-0` Contract and audit | `COMPLETE` | Owner continuation, complete Region boundary and evidence route are frozen. | Goal, contract, plan, roadmap, checkpoint and ledger. |
| `FG3-STEP-1` Contract-1 content and boards | `COMPLETE` | Market 8-12 offers truthfully prepare the remaining ordinary pressure and first Boss. | Source `0208471`; four immutable-source tests pass. |
| `FG3-STEP-2` Contract-1 execution and Boss | `COMPLETE` | The surviving Company clears Round 12 and defeats or recovers from Sluiceback Mother. | Source `74dab24`; nine immutable-source tests pass. |
| `FG3-STEP-3` Contract-2 content and state | `COMPLETE` | The first Record opens a complete second twelve-Round Contract without resetting the Company. | Source `06d8f9c`; 11 immutable-source tests pass. |
| `FG3-STEP-4` Contract-2 execution and Region close | `COMPLETE` | The player defeats The Drowned Bell and reloads two Records plus RG-03. | Source `059bb33`; 13 immutable-source tests pass. |
| `FG3-STEP-5` Production runtime | `COMPLETE` | The complete Region uses the accepted world-first art, motion, VFX and audio direction. | Source `d035a27`; fresh R3 runtime/audio/visual evidence passes. |
| `FG3-STEP-6` Profiles and candidate | `COMPLETE` | Five policies prove the full Region is paced, recoverable and persistence-safe. | Source `370f2a5`; fresh immutable Step6-R1 passes. |
<!-- markdownlint-enable MD013 -->
## FG3-STEP-1 Contract
```text
ID: FG3-STEP-1
PLAYER OUTCOME: Markets 8-12 disclose timing, movement, link and Boss-preparation
consequences before the player spends or commits a route.
IN SCOPE: EQ-065..080; AR-009/010/013/014 plus inherited Artifact references;
both Boss identities; 15 Contract-1 routes; five 3/4/3 Market boards;
bilingual copy; deterministic hashes; focused content/board tests.
OUT OF SCOPE: state mutation, Save v10, battle execution, Boss execution,
presentation, new media, Contract 2, H5 and release.
OWNED FILES: new runtime/fg3 catalog/registry/board modules, focused tests and
tracked UIDs; durable closure after pushed source.
ACCEPTANCE CHECKS: exact IDs and counts; source references resolve; same inputs
are byte-identical; changed seed changes owned identities; refresh changes
only Recruit/equipment rows; route/Boss facts never reroll; all reward and
capacity values match authority; malformed IDs/counts/formulas reject;
P10.3 content/Market regressions pass.
EVIDENCE LEVEL EXPECTED: automated_verified for content authority.
COMMIT BOUNDARY: focused source/test push, fixed-source evidence, docs closure.
LEGAL TERMINAL: FG-3 Step 1 Contract-1 content and boards complete.
NEXT STEP: FG3-STEP-2.
```
## Completed Step Evidence
### FG3 Step 1 Contract-1 Content And Boards - 2026-08-16
- Source `0208471d5b7bfbc070457c1708a389dd054ba5e4` adds only the
isolated FG-3 catalog, validator, Market generator, two focused tests and
their tracked UIDs.
- Sixteen equipment rows complete `EQ-041..080`; four new Artifact rows plus
inherited `AR-011/012/015` complete the seven-ID Region pool. Both Boss
identities, 15 routes and five Market boards have exact bilingual authority.
- Markets 8-12 use exact `3/4/3` boards, capacities `7/8/8/9/9`, offer levels
`3/3/4/4/4` and rewards `36..58`. Refresh changes Recruit/equipment rows
only; route, tide and fixed `BO-R2-01` facts never reroll.
- R1 at `/private/tmp/abg-fg3-0208471-step1-r1/evidence/` is append-only
`INVALID_PROCESS_POSTFLIGHT`: its process query counted the controlling shell
and `rg` command as Godot. Its functional results are not reused.
- Fresh R2 is `/private/tmp/abg-fg3-0208471-step1-r2/evidence/`. Two FG-3 tests
and two P10.3 regressions pass with strict diagnostics and owned processes
zero. Audit SHA-256 is
`a1e43f049c65416b111880d04df6c031f89d50af7eb3521ccabb6a14cafe5d25`;
inventory SHA-256 is
`bc3505255ab6b6a5a995266511db0e27b3d44f5cc75d4578d8d50d74ab9dea48`.
- Step 1 reaches `implemented + automated_verified`. Save, battle, Boss and
presentation facts remain unclaimed.
### FG3 Step 2 Contract-1 Execution And Boss - 2026-08-16
- Source `74dab244fc091e1e40a1e77933ad359368819096` adds Save v10,
complete Contract-1 state, deterministic route/Boss battle authority,
revision-bound transaction service, one real P10.3 Market-8 fixture and
focused Save/round/Boss tests.
- Save migration preserves exact Guild, Company, Recruit growth, equipment,
economy, Artifact, promotion and seven-route state. Active/backup corruption,
rollback, candidate interruption and all six zero-offline deltas pass.
- Rounds 8-12 settle exact Coin/XP and capacities `8/8/9/9/10`. Defeat removes
one Fallen Recruit permanently, returns equipment, grants bounded Credit and
recovers to the same board without reroll or resurrection.
- `BO-R2-01` exposes two legal plans and fixed index/egg facts. Victory pays no
Coin, grants first-clear Renown `16`, writes one `CLEAR-RG02-C01` Company
Record and opens `CTR-R2-02` in the same Run.
- R1 `/private/tmp/abg-fg3-74dab24-step2-r1/evidence/` remains append-only
`INVALID_EVIDENCE_FINALIZATION` because a post-inventory check file was left
outside its 16-row inventory.
- Fresh R2 `/private/tmp/abg-fg3-74dab24-step2-r2/evidence/` passes a clean
import, five FG-3 programs and four P10.3 regressions with strict diagnostics
and owned Godot processes zero. Audit SHA-256 is
`a7c8ba5f7a7338c044ef16ebd94e9b48a6cef6c2cdd1e3133cc3d9793d27e8ad`;
inventory SHA-256 is
`c773f542b71fb0b2137a961a31c32e16f56b62927a43fbd6c086eea19117a183`.
- Step 2 reaches `implemented + automated_verified`; it makes no presentation,
simulation, human, H5, device or release claim.
### FG3 Step 3 Contract-2 Content And State - 2026-08-16
- Source `06d8f9ca978a710db81fc129b6093b099ebdf0b5` extends the unified
FG-3 graph with one second-Contract identity, 12 authored Market blueprints,
36 generated stable route rows, deterministic board generation and one
revision-bound handoff activation service.
- All 12 enemy identities remain exercised. Boards use exact `3/4/3` shape,
capacity ten, offer levels `1..4`, Region-band rewards and four disclosed
three-position pulse Markets. `BO-R2-02` remains fixed and non-executable.
- The real first Contract close enters Market 1 while preserving Company,
growth, one-slot equipment, economy, Artifact and persistent records exactly.
Save v10 roundtrips and rejects contract/pulse drift.
- Fresh R1 `/private/tmp/abg-fg3-06d8f9c-step3-r1/evidence/` passes a clean
import, seven FG-3 programs and four P10.3 regressions with strict diagnostics
and owned Godot processes zero. Audit SHA-256 is
`dfe81a514965397e55c705e8733e5a60a2714ca2be2d993958148abfa6320b39`;
inventory SHA-256 is
`5240b46296f8260132602f2caebfcbf91ff9e76832b1ca305d8d2f7fed81660d`.
- Step 3 reaches `implemented + automated_verified`; no second-Contract battle,
Boss, RG-03, presentation, simulation, human, H5, device or release claim is
made.
### FG3 Step 4 Contract-2 Execution And Region Close - 2026-08-16
- Source `059bb33cc8c26abc4aefce868180a02bb1dd3037` adds the complete
Contract-2 battle/transaction authority, extends Save-v10 phase invariants,
continues the real Contract-1 fixture and adds two focused tests.
- Twelve ordinary victories grant exact Coin/XP and retain 24 total route
records. All 36 routes have two state-conditional viable responses; four
plans change rank across Markets, all seven Artifacts change comparison, and
two fixed states reverse the best plan.
- Ordinary and Boss defeat permanently remove the Fallen Recruit, return their
equipment and recover to the exact board or Muster without resurrection.
Prepare, settle, recovery and close retries are inert and tampered battle
snapshots reject against deterministic replay.
- Drowned Bell exposes its pair link, third-pulse triple and exactly two legal
plans. Victory pays zero Coin, writes `CLEAR-RG02-C02`, grants first-clear
Renown `20`, creates the second twelve-route Company Record and unlocks
RG-03 exactly once. Result, recovery and closed states roundtrip Save v10
with zero offline value.
- R1 `/private/tmp/abg-fg3-059bb33-step4-r1/evidence/` is append-only
`INVALID_EVIDENCE_FINALIZATION`: all tests ran, but the harness referenced
absent `/usr/local/bin/jq` before writing its audit. Its 20-row INVALID
inventory SHA-256 is
`cf5964d28d956cde9de8c5192774e0b1f9a90ea3f1b2c02d154aab6e87796ed7`.
- Fresh R2 `/private/tmp/abg-fg3-059bb33-step4-r2/evidence/` uses a new archive,
isolated import and new tests. All 13 markers pass; import and aggregate
strict diagnostics, UID warnings and Godot postflight are zero. Audit
SHA-256 is
`d873887ef3c7621f1338d0068fe9839645348159f73e3f7dc06968d2dd95b17b`;
the complete 20-row inventory verifies with SHA-256
`393c3adf0bd5a1b9e2d171157fbd58585dfdaf439dccd528543adac2a3ae2a28`.
- Step 4 reaches `implemented + automated_verified`; presentation, simulation,
human, H5, device and release gates remain open or frozen.
### FG3 Step 5 Production Runtime - 2026-08-16
- Final source `d035a27c77f22ceb3a32510b7b2e6812f2d920bd` contains the
complete FG-3 adapter/runtime, the post-settlement legal-selection repair,
continuous recording harness and exact 18-event audio validator. It is
pushed, upstream-equal and clean.
- Four authorized image calls cost USD `0.056`. Nine Siltwake environment
layers, Coilsmith, Kindhand, all 12 ordinary enemies and eight Boss action
frames pass the deterministic palette, 2-pixel cluster, alpha, edge and
nearest-import gates.
- R1 `/private/tmp/abg-fg3-f5d378f-step5-r1/` is append-only
`INVALID_ENVIRONMENT_PATH`; relative HOME/capture paths invalidated its
normal-render boundary. R2 `/private/tmp/abg-fg3-f5d378f-step5-r2/` is
append-only `FAIL_TEST_CONTRACT`; the inherited six-event audio validator
rejected the exact compatible 18-event manifest. Neither attempt is reused.
- Fresh R3 is `/private/tmp/abg-fg3-d035a27-step5-r3/evidence/`. Seventeen
headless, five normal-render and one MovieWriter Godot programs pass with 28
exact markers. Twenty-seven native state PNGs and nine recording samples are
nonblank, correctly sized and byte-distinct.
- The `844x390`, 30 FPS recording is 666 frames / 22.2 seconds. It completes 17
ordinary battles, both Bosses, both Records and the RG-03 reveal with parsed
Touch/Drag `59/1`, fallback/direct zero, three source-bound action frames per
Boss, event-bound VFX, music, ambience and semantic SFX. Black intervals and
clipped samples are zero.
- Product diagnostics are zero. One exact low-disk environment warning is
retained after the complete AVI, 666-frame probe, healthy PCM audio and MP4
compression all pass. Audit SHA-256 is
`9ffc4d7cefa7331c914feca4101ad9d6444e9bb1566d0b73d91fdec2944ca738`;
the 89-row inventory verifies with SHA-256
`fc68d35773ee687242d7700c53743910bada7eb54abf7010390698c170c4e6d3`.
- Step 5 reaches `implemented + automated_verified + runtime_verified +
agent_visual_reviewed + machine_audio_checked`. Human, H5, device and release
gates remain open or frozen; Step 6 now owns simulation and final candidate
closure only.
### FG3 Step 6 Profiles And Candidate - 2026-08-16
- Candidate source `370f2a56c1e61d87c81cd63ba0653ed0c486b685`
adds only two bounded tests and their tracked UIDs over frozen runtime source
`d035a27`; it is pushed, upstream-equal and clean.
- Normal, active, efficient, adversarial and returning profiles each record
exactly 39 ordered core decisions. The first decision is at most eight
seconds and the longest nonbattle gap is `34.2s`. All five policies finish
with two Records and one RG-03 unlock.
- The adversarial policy permanently loses one Recruit, actively recovers and
finishes with no resurrection. The returning policy reloads seven stable
boundaries; all profiles retain nonnegative Coin and zero offline rewards.
- Fifteen representative Save-v10 states form one exact commit-hash chain.
Save-v9 migration, mutation, duplicate replay, rollback, future version,
active/backup recovery, dual corruption and interrupted candidate writes all
pass their declared boundaries.
- Fresh immutable Step6-R1 is
`/private/tmp/abg-fg3-370f2a5-step6-r1/evidence/`. Eighteen headless, six
normal-render, three media/audio validator and one 666-frame MovieWriter
program produce 30 exact markers and 36 unique nonblank images.
- Product diagnostics, fallback/direct input, black intervals, clipped samples
and owned postflight processes are zero. Audit SHA-256 is
`855e2564faa96d3e0b830628876290c1ec996bdb8446b262b3119007e4f8d98f`;
the 88-row inventory verifies with SHA-256
`9e669d0bdd28345aa92446ca6fe11cf50b56cda7311b0edacc415aaf781731e4`.
- FG-3 reaches `simulation_verified + runtime_verified +
agent_visual_reviewed + machine_audio_checked`. Human understanding, fun,
visual/listening, H5, device, packaging, signing, store and release remain
open or frozen.
## FG3-STEP-5 Contract
```text
ID: FG3-STEP-5
PLAYER OUTCOME: The player sees one continuous landscape game from saved Market
8 through both Siltwake Bosses, both Records and the visible RG-03 unlock.
IN SCOPE: compatible FG-3 adapters over the accepted FG-2 controller; Market,
ordinary battle, loss/recovery, both Bosses, Contract handoff, both Records
and Region-close runtime states; exact event forwarding; existing production
art/motion/VFX/audio reuse; bilingual copy; parsed ScreenTouch/ScreenDrag;
required landscape, text-scale, accessibility and resource-mode fixtures.
OUT OF SCOPE: battle/economy/Save/content formulas, a replacement card page,
simulations, H5, native packages, devices, signing, stores and release.
OWNED FILES: bounded runtime/campaign FG-3 adapters and presenter extensions,
focused runtime tests/tools and only the media bindings required by those
accepted assets; durable closure after pushed source.
ACCEPTANCE CHECKS: all runtime receipts match Step-4 snapshots; no second event
authority; Market 8, ordinary victory, ordinary loss/recovery, BO-R2-01,
Contract-2 Market, BO-R2-02, both Records and RG-03 are distinct normal
states; controls use parsed touch/drag with fallback/direct zero; required
landscape/locale/130%/reduced-motion/mute/low-power cases have no overflow;
event-bound motion, VFX and audio cover decisive pulse/link/fallen/result
events; inherited FG-2 and Step-4 regressions pass strict-clean.
EVIDENCE LEVEL EXPECTED: runtime_verified plus supporting agent visual and
machine audio checks for the complete Region.
COMMIT BOUNDARY: focused adapter/test/media-binding source push, fixed-source
runtime evidence, docs closure.
LEGAL TERMINAL: FG-3 Step 5 production runtime complete.
NEXT STEP: FG3-STEP-6.
```
## FG3-STEP-6 Contract
```text
ID: FG3-STEP-6
PLAYER OUTCOME: The complete Siltwake Region remains finishable, recoverable and
strategically state-dependent across normal, active, efficient, adversarial
and returning play, then reloads the exact two-Record RG-03 result.
IN SCOPE: source-derived five-profile simulation; explicit decision timestamps;
route/plan/Artifact counterfactuals; permanent casualty and active recovery;
Save-v10 migration, interruption, retry, corruption, rollback and zero-offline
matrices; final immutable candidate audit over accepted Step-5 runtime evidence.
OUT OF SCOPE: new gameplay/content/media, H5, native packages, devices, signing,
stores, release and any human acceptance claim.
OWNED FILES: bounded FG-3 simulation/candidate tests and tracked UIDs; durable
Goal/plan/checkpoint/ledger closure after the pushed candidate source.
ACCEPTANCE CHECKS: all five profiles reach exactly two Records and one RG-03
unlock; each records 39 ordered decision timestamps, first decision <=20s and
longest nonbattle no-decision interval <=45s; policies produce distinct route,
plan or Artifact choices without one universal answer; adversarial play loses
at least one Recruit, actively recovers and still finishes; returning play
performs at least three reloads and every offline delta remains zero; Save-v10
representative states roundtrip exactly and reject mutation, duplication,
rollback, corruption and interruption; current Step-5 runtime, layout, touch,
recording, media, audio and strict-log gates pass from one immutable source.
EVIDENCE LEVEL EXPECTED: simulation_verified plus retained runtime_verified,
agent_visual_reviewed and machine_audio_checked from the same candidate.
COMMIT BOUNDARY: focused simulation/test source push, immutable complete
candidate, durable closure and legal terminal.
LEGAL TERMINAL: Aetherbound Guild FG-3 complete RG-02 candidate ready.
NEXT STEP: FG-4 RG-03 plan only after candidate acceptance under the program
roadmap; H5 and native/release work remain separately authorized.
```
## Later Step Boundaries
- Step 2 alone owns Save-v9-to-v10 migration, Rounds 8-12, `BO-R2-01`, first
Record and exact Contract-2 handoff.
- Step 3 alone owns the second Contract's 36 route rows, deterministic boards
and stable state/save extension; it cannot execute battle.
- Step 4 alone owns second-Contract execution, `BO-R2-02`, second Record and
RG-03 unlock.
- Step 5 may extend FG-2 presentation adapters but cannot change simulation or
settlement facts.
- Step 6 may add only simulation, candidate and evidence harness code unless a
declared gate exposes a product failure.
## Issue Register
<!-- markdownlint-disable MD013 -->
| ID | Status | Boundary |
| --- | --- | --- |
| `FG3-I01` | `RESOLVED_CONTRACT` | Existing P10.1-P10.3 content is inherited by ID; FG-3 adds only missing rows and one complete graph instead of copying formulas. |
| `FG3-I02` | `RESOLVED_STEP_2` | Save v10 preserves exact Save-v9 Market 8 and recovery retains the same first Boss Muster without reroll. |
| `FG3-I03` | `RESOLVED_STEP_4` | Drowned Bell has two state-dependent plans; 36 routes, four response plans and seven Artifacts pass fixed counterfactuals before Region close. |
| `FG3-I04` | `RESOLVED_STEP_5` | Complete Region presentation reuses FG-2 world-first adapters; 27 native states and a continuous 666-frame flow have no app/card fallback. |
| `FG3-I05` | `RESOLVED_STEP_6` | Five source-derived policies, 195 decision timestamps, recovery and 15 persistence states close the immutable candidate without adding content. |
<!-- markdownlint-enable MD013 -->