# P9.4 Second-Cycle Adaptation Implementation Plan > Status: `COMPLETE` > Active step: `NONE` > Baseline: `73834ab` > Goal: `docs/goals/PHASE9_4_SECOND_CYCLE_ADAPTATION_GOAL.md` > Contract: `docs/runtime/PHASE9_4_SECOND_CYCLE_ADAPTATION_CONTRACT.md` ## Player Outcome After one reward, the player sees a concrete next threat and chooses between a faster but riskier third member and a slower recovery-oriented third member. The second battle and returned Hall visibly prove the consequence. ## Steps | Step | Status | Outcome | Gate | |---|---|---|---| | P9.4-STEP-0 Contract | `COMPLETE` | Owner continuation and one second-cycle decision are bounded. | Goal, contract, plan, checkpoint and ledger agree. | | P9.4-STEP-1 Dual-path domain | `COMPLETE` | Both legal recruits produce exact distinct Crosswind outcomes and once-only receipts. | Source `58cf775`; dual-path and P9.3 domain markers pass. | | P9.4-STEP-2 Visible incoming threat | `COMPLETE` | Returned Hall shows Crosswind in-world before recruit input. | Source `e716431`; two 844x390 states, two enemies and no cards pass. | | P9.4-STEP-3 Second-cycle runtime | `COMPLETE` | Parsed touch completes both recruit/battle/reward paths. | Source `b93715a`; 12 parsed touches, 10 frames and strict logs pass. | | P9.4-STEP-4 H5 owner review | `COMPLETE` | Owner accepts the landscape second-cycle direction and asks development to continue. | Direction acceptance is recorded without upgrading detailed route comprehension, fun, listening, device or release gates. | | P9.4-STEP-5 Five-profile pacing | `COMPLETE` | Normal, active, efficient, adversarial and returning traces preserve the two route consequences and expose explicit decision timestamps. | Source `66c2759`; five profiles, 35 timestamps, `13.30s` longest gap, both counterfactuals, starvation zero and invalid mutations zero pass strict-clean. | ## Active Step Contract ```text ID: P9.4-STEP-5 FIVE_PROFILE_PACING PLAYER OUTCOME: The second-cycle choice remains timely and mechanically distinct across normal, active, efficient, adversarial and returning play patterns. IN SCOPE: one new test under runtime/tests/p9_4/ plus P9.4 durable documents. OUT OF SCOPE: product rules, UI, assets, save/offline implementation, content, packaging, stores, release and every other game. OWNED FILES: runtime/tests/p9_4/second_cycle_five_profile_test.gd and its UID; this plan, the P9.4 Goal, CURRENT_CHECKPOINT.md and the Phase 9 ledger. ACCEPTANCE CHECKS: five named traces; explicit decision timestamps; both Wayrunner and Kindhand outcomes; exact tick/HP/heal/Coin authority; rejected adversarial actions leave state unchanged; longest no-decision interval is reported; P9.4 domain and P9.3 complete-loop regressions remain strict-clean. EVIDENCE LEVEL EXPECTED: simulation_verified for this bounded second cycle. COMMIT BOUNDARY: focused pushed test source, followed by a docs-only closure. LEGAL TERMINAL: Aetherbound Guild P9.4 second-cycle adaptation candidate ready. NEXT STEP: a separate P9.5 Goal/contract/plan; no product edit before it exists. ``` ## Frozen Owned product files are limited to `runtime/p9_3/core_loop_controller.gd`, a new `runtime/tests/p9_4/` test family and the P9.4 durable documents. Domain rules and P9.3 first-cycle transactions stay unchanged unless the dual-path test disproves the fixed contract. No new media, content expansion, persistence, packaging or release work is authorized. ## Current Evidence - Product source: `b93715a`. - Source-bound root: `/private/tmp/abg-p94-b93715a-runtime-r1/`. - Domain marker: `ABG_P9_4_SECOND_CYCLE_DOMAIN_OK`. - Runtime marker: `ABG_P9_4_SECOND_CYCLE_RUNTIME_OK paths=2 touch=12 fallback=0 direct=0`. - Ten `844x390` frames cover both returned-threat states, both focused Recruits, `COUNTER`/`HEAL` actions, both results and both returned three-person lines. - P9.3 complete-loop and P9.0R3 battle-feedback regressions pass strict-clean. - H5 delivery: `docs/runtime/p9_4/H5_DELIVERY.md`; Gallery `_-JIXWqW38jO`. - Source-bound five-profile root: `/private/tmp/abg-p94-66c2759-five-profile-r1/`; inventory SHA-256 `cc5bb70f7237ee551dcf259cad98970a971631b76682a97b83cc4bb7c5a8ee0f`. - Five-profile marker reports `profiles=5 routes=2 decisions=35 longest_gap=13.30`, exact counterfactual values, `starvation=0` and `invalid_mutations=0`; P9.4 and P9.3 domain regressions pass strict-clean.