docs(fg2): close owner checkpoint delivery

This commit is contained in:
2026-08-16 17:37:18 +08:00
parent 3302134f31
commit 2f1fcd0ef0
7 changed files with 276 additions and 33 deletions
@@ -2,7 +2,7 @@
> Status: `ACTIVE`
> Owner-approved: `2026-08-16`
> Active phase: `FG-2 Production vertical slice and canonical runtime`
> Active phase: `FG-2 Owner checkpoint 1`
> Program Goal: `docs/goals/AETHERBOUND_GUILD_COMPLETE_DEVELOPMENT_GOAL.md`
> Active milestone plan: `docs/runtime/fg2/IMPLEMENTATION_PLAN.md`
@@ -17,10 +17,10 @@
Save-v9/layout candidate matrix pass from fixed source `d00c7ad`.
- The current formal campaign is therefore about 2.3 of 16 Contracts, while
the reusable systems are farther advanced than the campaign content.
- FG-2 production art and motion are runtime-verified through source `aa4dc42`;
original event-bound audio is machine-checked through `7e40c2d`. Only the
complete immutable slice candidate and final H5 checkpoint remain before
bulk production.
- FG-2 is locally complete at immutable source `3302134`. Candidate, Release
Web and real-browser-touch evidence pass, and private Gallery item
`GA9__qV4NWw5` is ready for Owner checkpoint 1. Human visual, motion, audio,
comprehension and fun judgment remains open before bulk production.
## Program Sequence
@@ -32,7 +32,7 @@ Only one phase and one child-plan step may be `IN_PROGRESS`.
| --- | --- | --- | --- | --- | --- |
| `FG-0` Program activation | `COMPLETE` | Development has one visible endpoint and ordered route. | Program Goal, roadmap, checkpoint and ledger. | Clean pushed planning commit. | Approved 2026-08-16. |
| `FG-1` Finish P10.3 | `COMPLETE` | Clear Siltwake Rounds 5-7, choose an Artifact, optionally promote and reload at changed Market 8. | Existing P10.3 Steps 3-5 only. | Battle counterfactuals, five profiles, save/layout matrix, parsed-touch runtime and recording. | No pause. |
| `FG-2` Production vertical slice and canonical runtime | `IN_PROGRESS` | One Market -> preparation -> battle -> result/recovery chain looks, moves and sounds like the final game. | Canonical runtime/state integration; final-direction landscape UI; representative actor/enemy animation; event-bound VFX; first music/SFX mix; production asset pipeline. | Functional regressions, 15-30 second normal-render recording, target-size frames, machine media checks and H5 review build. | **Checkpoint 1: visual, motion, audio and game-feel direction.** |
| `FG-2` Production vertical slice and canonical runtime | `OWNER_CHECKPOINT` | One Market -> preparation -> battle -> result/recovery chain looks, moves and sounds like the final game. | Canonical runtime/state integration; final-direction landscape UI; representative actor/enemy animation; event-bound VFX; first music/SFX mix; production asset pipeline. | Functional regressions, 15-30 second normal-render recording, target-size frames, machine media checks and H5 review build. | **Checkpoint 1: visual, motion, audio and game-feel direction.** |
| `FG-3` Complete RG-02 | `PENDING` | Finish both Siltwake Contracts, both Bosses and unlock RG-03 with a changed persistent Guild. | Remaining `EQ-065..080`, `AR-009..015`, both RG-02 Bosses, Round 8-12 and complete second Contract content, art and audio. | Two full Contract simulations, Boss counterfactuals, migration, continuous runtime and content coverage. | No pause. |
| `FG-4` Complete RG-03 and RG-04 | `PENDING` | Master delayed heat/construct pressure, then copied actions and archive clauses across four new Contracts. | `EQ-081..160`, `AR-016..030`, `EN-R3/R4`, four Bosses, environments, actors, VFX and regional music/SFX. | Chapter-sized content audits, five profiles per Region, full regression, runtime and asset/audio provenance. | **Checkpoint 2: midgame depth, clarity and continuation.** |
| `FG-5` Complete RG-05 and RG-06 | `PENDING` | Adapt to echoes, rear intrusion, moving rail order and airborne timing across four Contracts. | `EQ-161..240`, `AR-031..045`, `EN-R5/R6`, four Bosses and complete production media. | Same content, balance, save, runtime, accessibility and media gates as FG-4. | No pause. |
@@ -99,6 +99,6 @@ signing, device installation, stores and publishing remain outside this plan.
## Immediate Next Action
Implement FG2 Step 5 only: run the complete immutable slice regressions,
fixtures, layout/input/accessibility matrix, final recording and media audit,
then create one runtime-only cached H5 and private Owner-checkpoint handoff.
Owner plays Gallery item `GA9__qV4NWw5` without coaching and reports the
earliest unclear or weak visual, motion, audio, comprehension or game-feel
boundary. FG-3 remains pending until that checkpoint judgment.
+123
View File
@@ -0,0 +1,123 @@
# FG-2 Production Vertical Slice H5 Delivery
> Status: `READY_FOR_OWNER_CHECKPOINT_1`
> Product/test/export source: `3302134f31d1e9315e743923af39d3f64aaad5ab`
> Gallery item: `GA9__qV4NWw5`
> Candidate evidence: `/private/tmp/abg-fg2-3302134-step5-r2/evidence/`
> Web evidence: `/private/tmp/abg-fg2-3302134-web-r2/evidence/`
> Browser evidence: `/private/tmp/abg-fg2-3302134-web-browser-r1/`
## Playable Scope
This landscape H5 is the first production-direction sample of the canonical
Windglass flow:
```text
physical Market 1 route workspace
-> review the automatic Company order and disclosed route pressure
-> commit the route through raw browser touch
-> watch entry, anticipation, contact, guard, damage and Fallen feedback
-> hear event-bound music, ambience and semantic combat cues
-> settle the result into visible saved Market 2
```
It is a bounded presentation checkpoint, not the complete campaign. Remaining
Regions, Contracts, Professions, enemies and equipment are not yet produced in
this visual/audio direction.
## Release-Safe Repair
Native debug evidence initially passed while the first Web Release rendered a
blank Canvas. The root cause was required fixture and Market mutations nested
inside `assert(...)`; Godot Release removes assertions and therefore skipped
those calls. Source `3302134` executes every mutation before checking its
result and adds a Release-safe fixture regression. No gameplay formula, result,
economy, Save schema or content row changed.
## Immutable Candidate
Fresh candidate R2 passes 39/39 headless programs: 18 P10.0, 10 P9.10 and 11
FG-2 checks. Sixteen native-size captures are nonblank and cover Market,
battle, reward, recovery and saved Market 2 across the required landscape,
locale, text-scale and accessibility states.
The final `844x390`, 30 FPS recording is 636 frames / 21.2 seconds. It records
five parsed ScreenTouch events, one parsed ScreenDrag, four exact-once raw
touch activations and zero fallback/direct path. Strict diagnostics, black
intervals, clipped audio samples and owned post-run processes are zero.
Candidate inventory SHA-256:
`3730472e8de992fd340f4742c645d9bf2c9222d32d07aae195a00017066b53e2`.
Candidate audit SHA-256:
`329db4047e4a8bc41add4c5fc5edc17095356745440e9ea3faf748db5cb137c7`.
Agent visual review passes the bounded presentation at the current evidence
level. This does not grant human visual, motion, comprehension, fun or listening
acceptance.
## Runtime-Only Export
Web R2 was exported from a fresh Git archive of exact source `3302134`. All 365
`runtime/tests` files were physically removed before isolated import. The PCK
enumerates 518 runtime paths, includes the required campaign media manifests
and compiled controller/router modules, and contains zero test, docs, evidence
or build path.
<!-- markdownlint-disable MD013 -->
| File | Bytes | SHA-256 |
| --- | ---: | --- |
| `index.apple-touch-icon.png` | 11,952 | `9b374ecbc8558f480421e646f38aaa8a69d5b1d65ff7b48d0735da214c46773a` |
| `index.audio.position.worklet.js` | 2,973 | `be33985bc7160d6bf9646f259cd86b259cd67b02ccb297ee5c44f8ac84327bc8` |
| `index.audio.worklet.js` | 7,298 | `5b476a9c9ce642c0ee4256436d1bc31d9c38f868aca0f9a8e2a57c18d2dec2a3` |
| `index.html` | 5,915 | `79e40b204dfc9ffecd890419d7d2d222b269963ec307319e6720047ccd000914` |
| `index.icon.png` | 5,702 | `08808dd5397e9a502cb3624944151f87a9705b5b66b5c365c5ca4c6ab51525f5` |
| `index.js` | 315,759 | `e3f56ee40e6f84371053db06692cfac15e2c8659547b11c6b2dfa1996dabd981` |
| `index.pck` | 22,057,420 | `e8178967dbac02a8b080014276b211d8803d3b364d00bdf8973837692c2c63cf` |
| `index.png` | 21,443 | `3cb4495c0b98dfbe4b663cbf2b6836473572339beb66d902367893162a70be0e` |
| `index.wasm` | 37,685,705 | `99962b29677e42f3ba0258bd90fdc52ad90295954c4473e816ad02cfe5ff1d4f` |
<!-- markdownlint-enable MD013 -->
Export manifest SHA-256:
`fb1019b8b21faa2c26808f2ac676584686adafe562e3171ffd00836d0f85d413`.
PCK SHA-256:
`e8178967dbac02a8b080014276b211d8803d3b364d00bdf8973837692c2c63cf`.
Web evidence inventory SHA-256:
`4d00a8d4653deea8cf1fbf04eb6db54b67a69b87f8edb560d4c8ae1b3dfc8c44`.
## Browser And Gallery Verification
A real Chrome WebGL Canvas at `844x390` reaches distinct nonblank Market,
battle and result states through raw browser touch. Startup product errors are
zero. Private Gallery item `GA9__qV4NWw5` preserves the nine runtime payloads
byte-for-byte.
- Gallery health and the signed entry return HTTP `200`.
- HTML uses a 300-second private cache.
- PCK, WASM and other runtime payloads use one-year private immutable cache,
representation ETags and `Vary: Accept-Encoding`.
- Identity and deterministic-gzip conditional requests return bodyless HTTP
`304`.
- The signed share token is intentionally omitted from Git and retained
evidence.
Transport and browser verification do not prove a physical phone, device touch,
human comprehension, fun, visual acceptance or listening.
## Owner Checkpoint Route
1. Open the signed H5 and rotate the phone to landscape.
2. Confirm the Market reads as a physical route workspace rather than an app
card page.
3. Tap the route commit once and watch the line enter battle.
4. Judge whether anticipation, contact, protection, damage, loss and victory
are understandable without coaching.
5. Judge whether music, ambience and semantic cues support the important events
without masking decisions.
6. Confirm the result reaches a visible saved Market 2 state.
7. Report the earliest unclear action or weak visual, motion, sound or game-feel
boundary.
Native packaging, physical-device verification, signing, TestFlight, stores and
release remain outside this checkpoint.
+31 -4
View File
@@ -1,7 +1,7 @@
# FG-2 Production Vertical Slice Implementation Plan
> Status: `ACTIVE`
> Active step: `FG2-STEP-5`
> 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`
@@ -25,7 +25,7 @@ at the end is Owner checkpoint 1.
| `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 | `IN_PROGRESS` | The Owner can remotely judge the final direction in one stable landscape build. | Full regressions, layouts, recording, media audit, Web export and Gallery handoff. |
| `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. |
<!-- markdownlint-enable MD013 -->
@@ -224,6 +224,33 @@ LEGAL TERMINAL: Aetherbound Guild FG-2 production vertical slice ready for
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
<!-- markdownlint-disable MD013 -->
@@ -235,7 +262,7 @@ NEXT STEP: wait for Owner checkpoint 1 judgment before bulk Region production.
| `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` | `IN_REPAIR_STEP_5` | Web Release strips `assert(...)`; FG-2 and P10.0 constructors nested required mutations inside assertions, producing an invalid empty Market and blank Canvas despite debug tests passing. |
| `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. |
<!-- markdownlint-enable MD013 -->