Files
aetherbound-guild/docs/runtime/p9_2r/IMPLEMENTATION_PLAN.md
T
2026-08-14 14:05:13 +08:00

149 lines
7.1 KiB
Markdown

# P9.2R Gameful Opening Implementation Plan
> Status: `ACTIVE`
> Active step: `P9.2R-STEP-5 OWNER_REVIEW`
> Baseline: `840b111d55980f7178d12f871b6290f10b060e70`
> Goal: `docs/goals/PHASE9_2R_GAMEFUL_OPENING_GOAL.md`
> Contract: `docs/runtime/PHASE9_2R_GAMEFUL_OPENING_CONTRACT.md`
> Ledger: `docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md`
## Player-Visible Stopping Point
P9.2R ends when Title through first-battle departure reads as one continuous
Guild Yard action rather than an app wizard, while every accepted gameplay rule
and later battle remains unchanged.
## Ordered Steps
| Step | Status | Player outcome | Verification | Commit boundary |
|---|---|---|---|---|
| P9.2R-STEP-0 Contract | `COMPLETE` | The rejected boundary, dynamic slice and frozen rules are explicit. | Goal/contract/plan/checkpoint links; one representative screen and action chain. | Planning commit. |
| P9.2R-STEP-1 Yard entry | `COMPLETE` | Enter Game opens a living Guild Yard with visible commission, threat, four Recruits and one obvious action instead of a menu/briefing card flow. | Marker `ABG_P9_2R_GAMEFUL_YARD_ENTRY_OK`; front-door/touch, six-pair, 180-path and P9.2 focused regressions; two normal 844x390 frames; strict diagnostics zero. | Product source `3b3f459`; evidence in `STEP_1_EVIDENCE.md`. |
| P9.2R-STEP-2 Embodied selection | `COMPLETE` | Tapping actors rallies/removes them in the world; two choices form the automatic line without card pages. | Marker `ABG_P9_2R_GAMEFUL_RECRUIT_RALLY_OK`; six pairs/two click orders; parsed touch; four normal states; strict diagnostics zero. | Product source `88d4e63`; evidence in `STEP_2_EVIDENCE.md`. |
| P9.2R-STEP-3 Departure | `COMPLETE` | The ordered line visibly departs through the breach and reaches the preserved battle exactly once. | Marker `ABG_P9_2R_GAMEFUL_DEPARTURE_OK`; 7-touch recording marker; three normal frames; 18.5-second 844x390 recording; strict diagnostics zero. | Product source `c89721d`; evidence in `STEP_3_EVIDENCE.md`. |
| P9.2R-STEP-4 Integrated H5 | `COMPLETE` | Owner can play the repaired opening remotely. | Clean source-bound Web export; Gallery item `KITQfwLYLK6R`; byte-identical HTML/JS/PCK/WASM; remote Title/Yard/mission/zero/one-selection path; browser diagnostics zero. | Delivery in `H5_DELIVERY.md`; closure pushed. |
| P9.2R-STEP-5 Owner review | `IN_PROGRESS` | Owner decides whether the opening now feels like a game. | Uncoached Owner observation. | Accept or redesign terminal. |
## Step 1 Contract
Owned files:
```text
runtime/compat/p9_0_root_facade.gd
runtime/tests/p9_2r/gameful_yard_entry_test.gd
docs/runtime/p9_2r/IMPLEMENTATION_PLAN.md
docs/runtime/p9_2r/STEP_1_EVIDENCE.md
CURRENT_CHECKPOINT.md
docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md
```
Step 1 may change only Main Menu and first-commission presentation plus the
transition between them. It must keep page/state IDs and existing callbacks so
accepted navigation, settings, Home and Restart behavior remain compatible.
Acceptance:
- Enter Game reaches a full-bleed Guild Yard, not a full-height menu panel.
- The commission and breach threat are readable in under two short lines.
- All four existing Recruits are visible in-world before selection.
- One primary `Assemble Company` action enters the accepted Recruit-selection
state; information and settings are compact secondary controls.
- At 844x390 the world/actors occupy at least 70% of the screen and no repeated
candidate card exists.
- zh_CN/en, 130%, 1280x720 and 390x844 remain in bounds.
## Frozen
P9.2 battle, all values and rules, P9.1 session flow after departure, new media,
audio generation, persistence, casualty, content, packaging and release.
## Step 2 Contract
Owned files:
```text
runtime/compat/p9_0_root_facade.gd
runtime/tests/p9_2r/gameful_recruit_rally_test.gd
docs/runtime/p9_2r/IMPLEMENTATION_PLAN.md
docs/runtime/p9_2r/STEP_2_EVIDENCE.md
CURRENT_CHECKPOINT.md
docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md
```
Player outcome: the player chooses people by touching the people in the Yard.
The chosen actor changes position and gains a selected sigil; two choices show
the system's lead/support order in the same world. The player can remove one,
replace one, review the resulting line and proceed without seeing a Recruit card
grid or formation cards.
Acceptance:
- Four actor-sized touch targets expose the same four existing Recruits.
- Zero, one and two selections are visually distinct through position, sigil,
outline and text; color is not the only signal.
- A third Recruit is visibly unavailable at capacity without mutating state.
- Tapping a selected actor removes only that actor and reopens capacity.
- All six unordered pairs and both click orders yield the same existing
automatic order.
- Recruit selection and formation review contain no repeated Recruit or
formation cards and remain in the same full-bleed Yard.
- Parsed ScreenTouch, zh_CN/en 130%, reduced motion and 844x390 bounds pass.
## Step 3 Contract
Owned files:
```text
runtime/compat/p9_0_root_facade.gd
runtime/tests/p9_2r/gameful_departure_transition_test.gd
docs/runtime/p9_2r/IMPLEMENTATION_PLAN.md
docs/runtime/p9_2r/STEP_3_EVIDENCE.md
CURRENT_CHECKPOINT.md
docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md
```
Player outcome: pressing the one departure action commits the existing line
once, shows both selected actors advancing from the Yard toward the bell gate,
then reveals the preserved first battle. No second confirmation page appears.
Acceptance:
- The formation transaction commits exactly once and duplicate input is inert.
- A normal-motion transition shows both ordered actors advancing toward the
visible threat for 420-600 ms while the battle clock remains zero.
- Reduced motion resolves through a short final-position transition without
changing the committed formation or battle state.
- The first battle appears after the transition with the same selected IDs,
HP, phase, values and event rules.
- Home/Restart cleanup cannot leave a pending departure transition.
- Parsed ScreenTouch, three representative normal frames and one 15-30 second
Title-to-battle recording pass strict diagnostics.
## Step 4 Contract
Owned files:
```text
docs/runtime/p9_2r/IMPLEMENTATION_PLAN.md
docs/runtime/p9_2r/H5_DELIVERY.md
CURRENT_CHECKPOINT.md
docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md
```
Player outcome: the Owner can open one new stable Gallery item on a landscape
mobile browser, reset by refreshing, and play the repaired Title-to-battle
opening without local tooling.
Acceptance:
- Export is generated from exact clean/upstream source `c89721d` and contains
the embedded Chinese font and only runtime-required content.
- The deployed Gallery payload is byte-identical to the local export and uses
one stable signed link.
- Remote health, MIME and content-length checks pass; a normal browser reaches
the real Chinese Title without console warning/error.
- A short remote path reaches the Yard and preserves readable Chinese, actor
targets and the current primary action.
- Delivery records source, payload hashes, Gallery item, reset behavior and
open human/device/release gates; no package, signing or release work occurs.