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

7.5 KiB

P9.6 Risk, Recovery And Persistence Implementation Plan

Status: COMPLETE Active step: NONE - MILESTONE TERMINAL Baseline: 7ca0302 Goal: docs/goals/PHASE9_6_RISK_RECOVERY_PERSISTENCE_GOAL.md Contract: 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 844x390 normal 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-256 551beb2883f38d897d45c8d48398e688886ddc9afd83acf771b28cec6a5a6574.
  • 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-256 925f344f91c7bf2456718634671380492d13347b966a5ee8247a7bd9e9b86f13.
  • Exact legal terminal: Aetherbound Guild P9.6 risk, recovery and persistence candidate ready.