7.5 KiB
7.5 KiB
P9.6 Risk, Recovery And Persistence Implementation Plan
Status:
COMPLETEActive step:NONE - MILESTONE TERMINALBaseline:7ca0302Goal:docs/goals/PHASE9_6_RISK_RECOVERY_PERSISTENCE_GOAL.mdContract:docs/runtime/PHASE9_6_RISK_RECOVERY_PERSISTENCE_CONTRACT.md
Player Outcome
The player reads real post-Bell injuries, chooses whether recovery is worth its cost, sees a two-wave consequence, recovers from defeat without losing the Company, and can close and continue the stable run without duplicate progress.
Steps
| Step | Status | Outcome | Gate |
|---|---|---|---|
| P9.6-STEP-0 Contract | COMPLETE |
Four entry states, two plans, exact two-wave results and save boundaries are frozen. | Goal, contract, plan, checkpoint and ledger agree. |
| P9.6-STEP-1 Domain | COMPLETE |
Risk choice, two waves, defeat, recovery, retry, reward and XP are atomic. | Source 68c4dbd; exact contract matrix and P9.5 domain/five-profile regressions pass strict-clean. |
| P9.6-STEP-2 Persistence | COMPLETE |
Stable state survives refresh/interruption without duplicate progress. | Source cc393cb; 14-case persistence matrix plus P9.6/P9.5 domain regressions pass strict-clean. |
| P9.6-STEP-3 Runtime | COMPLETE |
Direct world touches expose HP, risk, waves, defeat/recovery and the changed return. | Source bb1badf; 15 parsed touches, 12 normal frames, P9.6 domain/persistence and P9.5 runtime regressions pass strict-clean. |
| P9.6-STEP-4 Pacing and H5 | COMPLETE |
Five profiles preserve the counterfactual and the Owner can play the cached build. | Source 3f96195; 46 timestamps, seven layout fixtures, runtime-only export and Gallery m0eTZ1WofW9b pass. |
Active Step Contract
ID: P9.6-STEP-4 PACING AND H5
PLAYER OUTCOME: The risk decision remains state-dependent across normal,
active, efficient, adversarial and returning play, and the Owner can open a
new cached H5 build that preserves Continue and the complete recovery loop.
IN SCOPE: one P9.6 five-profile/decision-timestamp test; small/reference/large
landscape plus portrait rotate, zh_CN/en, 130% text, reduced motion, mute and
low-power fixtures; source-bound runtime-only Web export; one new private
Gallery item; P9.6 delivery and durable status documents.
OUT OF SCOPE: gameplay/controller/value changes unless a declared fixture finds
an earliest product failure; new media/content; native packages, devices,
TestFlight, stores, release and other games.
OWNED FILES: runtime/tests/p9_6 pacing/layout tests and UIDs,
docs/runtime/p9_6/H5_DELIVERY.md, P9.6 durable documents, and ignored
source-bound runtime/build Web output.
ACCEPTANCE CHECKS: five profiles emit explicit state/decision timestamps and
exact Wayrunner/Kindhand counterfactuals; interruption/reload contributes no
duplicate reward, XP, recovery or battle ticks; all declared layout,
localization and accessibility fixtures keep readable controls in bounds;
runtime-only PCK excludes tests/docs/evidence; local Web MIME/bytes and a new
private Gallery delivery pass with immutable caching; repository remains
clean/upstream and owned processes are zero.
EVIDENCE LEVEL EXPECTED: simulation_verified plus runtime_verified delivery;
human phone comprehension/fun/listening remains open.
COMMIT BOUNDARY: focused pushed test commit before immutable export; docs-only
closure commit after Gallery delivery.
LEGAL TERMINAL: Aetherbound Guild P9.6 risk, recovery and persistence candidate
ready, or redesign required at the earliest pacing/layout/Web boundary.
NEXT STEP: Owner plays the new H5 without coaching and reports the earliest
unclear decision or failed Continue/recovery behavior.
Issue Register
| ID | Status | Finding |
|---|---|---|
| P96-I01 | RESOLVED_IN_CONTRACT |
A single extra fixture lets every Company win and teaches no recovery decision. Two carried-HP waves produce the required state-dependent counterfactual. |
| P96-I02 | RESOLVED_STEP_2 |
Source cc393cb adds versioned, checksummed, backup-safe stable snapshots and pre-battle interruption recovery. |
| P96-I03 | RESOLVED_STEP_1 |
Exact waves leave two Wayrunner members at 0 HP after victory. Accepted living-member XP remains unchanged; a 2-Coin-per-fallen-member victory recovery prevents a stranded terminal state. |
| P96-I04 | INVALID_EVIDENCE_REPAIRED |
Step 3 R1 generated its inventory before the final metadata append, so 1/25 hashes mismatched. R1 remains invalid; fresh R2 writes metadata first and verifies 25/25 without product changes. |
Current Evidence
- Step 1 source:
68c4dbd. - Root:
/private/tmp/abg-p96-68c4dbd-step1-r1/. - Marker:
ABG_P9_6_RISK_RECOVERY_DOMAIN_OK paths=8 waves=2 press_wayrunner=defeat press_kindhand=victory recover_all=victory costs=0,4,6,8 reward=20 xp=18 recruits_lost=0 items_lost=0 invalid_mutations=0. - P9.5 domain and five-profile regressions pass; strict diagnostics are zero.
- Evidence inventory SHA-256:
e1ddacc7b4cfca0cdc4fa796924f876c351909adf03d056d7f7a5a5980c68780. - Step 2 source:
cc393cb. - Root:
/private/tmp/abg-p96-cc393cb-step2-r1/. - Marker:
ABG_P9_6_PERSISTENCE_OK version=1 migration=0_to_1 cases=14 checksum=true backup=true corruption=true rollback=true offline_cap=86400 offline_rewards=0 checkpoint=pre_battle duplicate_claim=0 duplicate_recovery=0 temp_clean=true. - Step 1 and P9.5 domain regressions pass; strict diagnostics are zero.
- Evidence inventory SHA-256:
f5f0e57d512c33a0f83923f9a89cf81421cc2ca2380b78b079fa420d18a9d35c. - Step 3 source:
bb1badf. - Invalid root:
/private/tmp/abg-p96-bb1badf-step3-r1/(INVALID_EVIDENCE_INVENTORY, 1/25 hash mismatch after late metadata write; no product judgment reused). - Authoritative root:
/private/tmp/abg-p96-bb1badf-step3-r2/. - Runtime marker:
ABG_P9_6_RISK_RECOVERY_RUNTIME_OK paths=2 touch=15 fallback=0 direct=0 continue=valid_only reload=selected_rift new_run=clears_old waves=2 wave_cues=3 wayrunner=defeat_retry kindhand=direct_victory recovery=8,4 reward=20 xp=18 controls=44 cards=0. - P9.6 domain/persistence and P9.5 four-path runtime regressions pass; 12 exact
844x390normal frames and strict diagnostics zero verify the world plan, wave transition, defeat/recovery and final Hall. - Evidence inventory SHA-256:
9bcde00005f1e8e2fd413f864304ba389f48b9411cd5f18c2df6edf0a7a0ea2b(25/25 verified). - Step 4 source:
3f96195. - Simulation/layout root:
/private/tmp/abg-p96-3f96195-step4-r1/. - Marker:
ABG_P9_6_FIVE_PROFILE_OK profiles=5 paths=4 timestamps=46 longest_gap=16.10 plans=press_on,recover counterfactual=true defeat_retry=true interruption_reloads=1 offline_rewards=0 starvation=0 invalid_mutations=7 final_coin=48,57,48,46,57. - Layout marker:
ABG_P9_6_LAYOUT_OK fixtures=7 viewports=760x360,844x390,1280x720,390x844 locales=zh_CN,en text_130=true reduced_motion=true muted=true low_power=true controls=44 cards=0 captures=7. - Simulation/layout inventory SHA-256:
d0cb908ae2b26b5022747d6bfa5612e8d1d57bf2f1af2aa3ac5953284d2059cf(24/24 verified). - Web root:
/private/tmp/abg-p96-3f96195-web-r1/; marker:ABG_P9_6_WEB_EXPORT_OK source=3f96195 files=9 tests=0 docs=0 evidence=0 build=0 mime=html,js,pck,wasm strict=0; compact evidence SHA-256551beb2883f38d897d45c8d48398e688886ddc9afd83acf771b28cec6a5a6574. - Gallery R2 marker:
ABG_P9_6_GALLERY_TRANSPORT_OK item=m0eTZ1WofW9b health=200 entry=200 published=9/9 cache=immutable etag=true conditional=304; inventory SHA-256925f344f91c7bf2456718634671380492d13347b966a5ee8247a7bd9e9b86f13. - Exact legal terminal:
Aetherbound Guild P9.6 risk, recovery and persistence candidate ready.