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

72 lines
4.3 KiB
Markdown

# 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.