diff --git a/AGENTS.md b/AGENTS.md index 2d5ce313..8354c4a6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -16,12 +16,12 @@ first-session baseline through Guild choice, third battle and session result. P9.0R6 is the preserved route-decision baseline. P9.0R7 is the preserved individual-growth H5 baseline. P9.0R8 is the preserved front-door H5 baseline. P9.0R9 is a preserved first-Company H5 baseline whose separate front/rear -selection was rejected by Owner review. P9.0R9A is the only active runtime -slice: replace those role-slot pages with one unified four-Recruit selection, -let the player choose any two people, and have the system automatically order -them for formation review and battle. No Recruit is preselected; the -transaction remains reversible until one formation commit. It continues the -fast-H5-before-formal-candidate cadence. +selection was rejected by Owner review. P9.0R9A is the preserved automatic- +formation baseline: the player chooses any two of four Recruits and the system +orders them. P9.0R10 is the only active runtime slice: carry all six legal pairs +through truthful first-Victory diagnosis, one safety-versus-tempo equipment +decision, a changed second battle and its exact result. It stops at the second +result and continues the fast-H5-before-formal-candidate cadence. Contract, difficulty, authoritative XP/levels three through ten, promotion, formal Market/permanent equipment inventory, Party order, casualty/recovery, authoritative combat, persistence, chapters, device packaging, stores and diff --git a/CURRENT_CHECKPOINT.md b/CURRENT_CHECKPOINT.md index b3787f70..cc59d864 100644 --- a/CURRENT_CHECKPOINT.md +++ b/CURRENT_CHECKPOINT.md @@ -1,7 +1,7 @@ # Current Checkpoint -Active Goal: `docs/goals/PHASE9_0R9A_AUTO_FORMATION_GOAL.md` -Active contract: `docs/runtime/PHASE9_0R9A_AUTO_FORMATION_CONTRACT.md` +Active Goal: `docs/goals/PHASE9_0R10_PAIR_ADAPTATION_GOAL.md` +Active contract: `docs/runtime/PHASE9_0R10_PAIR_ADAPTATION_CONTRACT.md` Active ledger: `docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md` P9.0R5 baseline: `6ae33971451912b3cc87c8ffe3b8831fa67c967c` P9.0R5 product preview source: `073ff690ea5a27cb47ee1b563c3eebd6cde9e788` @@ -27,7 +27,17 @@ P9.0R9 Gallery item: `KpgLxlVQlBp6` P9.0R9A baseline: `1ce563b401dc9d6091ea54044cac6a838c27c283` P9.0R9A product preview source: `32b4fdb` P9.0R9A Gallery item: `VL8pU8RUhXNn` -Stage: `P9_0R9A_AUTO_FORMATION_H5_PREVIEW_READY` +P9.0R10 baseline: `d8b359a12f5641257c549894a8114245fa987962` +Stage: `P9_0R10_PAIR_ADAPTATION_ACTIVE` + +P9.0R10 owns the next compatibility boundary after automatic formation. All six +legal two-Recruit pairs must receive a truthful first-Victory diagnosis, choose +the preserved safety or tempo loan without a default, show the actual second- +member behavior in battle two, and reach a causal second result. The exceptional +Hearthguard/Wayrunner path must retain the Runner flank counter instead of +falling through to healing. R10 stops at the second-result page; later R5-R7 +systems, save/content/release scope and authoritative combat remain frozen. +Shortest next action: implement and verify the six-pair by two-equipment matrix. Owner review rejected the R9 interaction boundary: players should select two people, not manually perform separate front and rear slot selection. R9A owns diff --git a/docs/goals/PHASE9_0R10_PAIR_ADAPTATION_GOAL.md b/docs/goals/PHASE9_0R10_PAIR_ADAPTATION_GOAL.md new file mode 100644 index 00000000..59c2dff3 --- /dev/null +++ b/docs/goals/PHASE9_0R10_PAIR_ADAPTATION_GOAL.md @@ -0,0 +1,66 @@ +# Phase 9.0R10 Pair Adaptation Goal + +## Owner Decision + +On 2026-08-13 the Owner accepted automatic formation and authorized continued +module-by-module development. P9.0R10 starts from clean/upstream closure +`d8b359a12f5641257c549894a8114245fa987962` and repairs the next earliest +compatibility boundary: all six legal two-Recruit Companies must remain +truthful through the first result, equipment decision and second result. + +## Player Contract + +```text +choose any two Recruits -> automatic first battle -> understand why they won +-> read the veteran's pressure -> borrow safety or tempo equipment +-> automatic second battle -> see the selected tradeoff change the result +``` + +The player still chooses people, never front/rear slots. The system-assigned +first member is called the lead and the other is called the second member. +Result copy must name the actual Recruit actions instead of inferring an old +front/rear profession family. + +## Owned Scope + +- Pair-aware first-Victory diagnosis for all six unordered pairs. +- Pair-aware adaptation threat, equipment effect and tradeoff language. +- Correct second-member action for Farstring, Kindhand and the exceptional + second-position Wayrunner. +- Pair-aware second-result facts and causal explanation. +- A six-pair by two-equipment deterministic matrix. +- Parsed ScreenTouch from first Victory through one second result. +- Normal-render states for representative standard and exceptional pairs. +- One new fixed-source runtime-only Web preview and private Gallery item. + +## Frozen + +- R9A selection, automatic ordering, first-battle values and accepted R3 + animation/feedback wording, including `后排命中` on the standard first battle. +- Recruit identities, art, animation and audio assets; no paid generation. +- The Guild-return, third/fourth/fifth battles and R5-R7 systems remain standard- + pair preview history. R10 stops at the second-result page for every pair. +- Authoritative combat, Market, equipment inventory, save, chapters, content + expansion, device work, packaging, stores and release. + +## Acceptance + +- Every unordered pair reaches first Victory, sees both unselected equipment + choices, commits either one exactly once and reaches second Victory. +- `EQ-002` always reduces the veteran's first hit from 30 to 10 and is slower. +- `EQ-061` always deals 28 before the veteran, accepts the full 30 hit and is + faster. +- A second-position Farstring deals ranged damage, Kindhand heals the lead and + Wayrunner performs a flank counter. No one is mislabeled as another role. +- Safety leaves more lead HP than tempo for the same pair; Kindhand recovery is + capped at 100. Coin remains 20 and no reward duplicates. +- Runtime controls remain at least 44px at `844x390`; English at 130% remains + readable; strict runtime diagnostics are clean. + +## Legal Terminals + +`Aetherbound Guild P9.0R10 pair-adaptation H5 preview ready` + +or + +`Aetherbound Guild P9.0R10 redesign required: ` diff --git a/docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md b/docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md index 4d977417..1ca90cf7 100644 --- a/docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md +++ b/docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md @@ -38,3 +38,4 @@ separate. | 2026-08-13 | product `0793386`; Gallery `KpgLxlVQlBp6` | `P9_0R9_FIRST_COMPANY_H5_PREVIEW_READY` | Clean/upstream source implements first mission -> front selection -> rear selection -> spatial formation review -> preserved first battle. Four legal formations, invalid slot rejection, no preselection, reversible choices, preserved review Back, one commit and Home/Restart cleanup pass; parsed ScreenTouch is `touch=15 fallback=0 direct=0`, and the complete three-battle touch route enters through R9. R1-R8 gameplay, animation and audio regressions pass. Eight `844x390` Chinese/English-130% normal-render states have 44px controls and zero strict diagnostics. The fixed-source runtime-only PCK excludes tests/evidence/build; nine payloads verify against `export.sha256` SHA-256 `41145503d8e7b75cf0bc4e598fa7e446ca1deba4bcc97d2d66b39f66ba642308`. Remote MIME/length and byte-identical PCK pass. This is a fast preview; Owner comprehension/choice/fun/visual/listening, persistence, device, packaging, stores and release remain open. | | 2026-08-13 | Owner review of Gallery `KpgLxlVQlBp6`; baseline `1ce563b` | `P9_0R9A_AUTO_FORMATION_ACTIVE` | Owner rejects asking the player to choose front and rear slots: the player should choose people and the system should arrange them. R9A owns one unified four-Recruit selection, any two of four, deterministic automatic order, unified review/revise and readable first-battle behavior for all six pairs. R3-R8 post-battle systems and all save/content/release scope remain frozen. | | 2026-08-13 | product `32b4fdb`; Gallery `VL8pU8RUhXNn` | `P9_0R9A_AUTO_FORMATION_H5_PREVIEW_READY` | Unified selection shows all four Recruits; the player selects/removes any two and never chooses a slot. All six unordered pairs in both click orders produce the same system field order and first Victory, including Hearthguard/Wayrunner and Farstring/Kindhand. Capacity, unified Revise, once-only commit and cleanup pass; parsed ScreenTouch is `touch=11 fallback=0 direct=0`. R1-R8 standard-pair gameplay, full three-battle touch, animation and audio regressions pass after restoring the frozen R3 qualifier. Ten `844x390` Chinese/English-130% normal-render states have 44px controls and clean final diagnostics. The runtime-only PCK excludes tests/evidence/build; nine payloads verify against `export.sha256` SHA-256 `20785617bccb3ee646f41cbd3c576757e626ccce9cd8c2c63cd2845be4fb99c2`. Remote MIME/length and byte-identical PCK pass. Owner understanding/fun/visual/listening and later-cycle support for exceptional pairs remain open. | +| 2026-08-13 | Owner continuation from clean/upstream `d8b359a` | `P9_0R10_PAIR_ADAPTATION_ACTIVE` | R10 carries all six R9A pairs through first-Victory diagnosis, the existing unselected `EQ-002` safety versus `EQ-061` tempo decision, a pair-aware second battle and exact result. It repairs the exceptional second-position Wayrunner fallthrough without changing accepted standard-pair values. R5-R7 later systems, authoritative combat, save, Market, content, packaging and release remain frozen. | diff --git a/docs/runtime/PHASE9_0R10_PAIR_ADAPTATION_CONTRACT.md b/docs/runtime/PHASE9_0R10_PAIR_ADAPTATION_CONTRACT.md new file mode 100644 index 00000000..bd49dcfd --- /dev/null +++ b/docs/runtime/PHASE9_0R10_PAIR_ADAPTATION_CONTRACT.md @@ -0,0 +1,74 @@ +# Phase 9.0R10 Pair Adaptation Runtime Contract + +## State Map + +```text +BATTLE -> VICTORY -> ADAPTATION -> SECOND_BATTLE -> SECOND_RESULT +``` + +`SECOND_RESULT -> GUILD_RETURN` remains visible only for the preserved standard +pair preview. R10 compatibility evidence stops at `SECOND_RESULT`; it does not +claim that R5-R7 systems support all six pairs. + +## Stable Controls + +- `ContinueAdaptationButton` +- `Adaptation_EQ_002` +- `Adaptation_EQ_061` +- `BeginSecondBattle` +- `SecondResultFacts` +- `OpenGuildReturnButton` +- `SecondResultHomeButton` + +No equipment is preselected. Either choice may replace the other until +`BeginSecondBattle`; after commit the choice cannot change. + +## Pair Matrix + +Automatic formation preserves this order: + +`Hearthguard -> Wayrunner -> Farstring -> Kindhand` + +| Pair | Lead response in battle one | Second-member response | +|---|---|---| +| Hearthguard + Wayrunner | Guardian reduces the opening hit | Runner flank counter | +| Hearthguard + Farstring | Guardian reduces the opening hit | Archer ranged hit | +| Hearthguard + Kindhand | Guardian reduces the opening hit | Healer restores lead | +| Wayrunner + Farstring | Runner evades part of the opening hit | Archer ranged hit | +| Wayrunner + Kindhand | Runner evades part of the opening hit | Healer restores lead | +| Farstring + Kindhand | Archer lead accepts high exposure | Healer restores lead | + +The first-Victory diagnosis names both rows. The second battle preserves each +second-member behavior. Wayrunner in the second position must never fall +through to the Kindhand healing branch. + +## Equipment Outcomes + +| Equipment | Before enemy | Veteran hit | Later cost | Expected time | +|---|---|---|---|---| +| `EQ-002` Frontpin Greaves | none | lead loses 10 | next Company strike is later | 7.05 s | +| `EQ-061` Early Bell | enemy loses 28 | lead loses 30 | accepts full strike | 6.00 s | + +Expected final lead HP is `90`/`70` for pairs without Kindhand and `100`/`82` +for pairs with Kindhand, in `EQ-002`/`EQ-061` order. Every path ends with the +enemy at zero, Coin 20, one committed loan and no duplicate first reward. + +## Presentation Language + +- Use `先行者` / `lead` for the system-exposed first member. +- Use `第二位成员` / `second member` when the actual profession is not named. +- The threat targets the lead; equipment does not imply player-selected slots. +- The second result names the equipment delta, the actual lead and the actual + second-member action. +- Preserve the standard first-battle qualifier `后排命中`; R10 wording changes + apply only to post-battle adaptation and the second battle. + +## Evidence + +- Deterministic test: six pairs by two equipment choices, exact HP/time/coin, + role qualifier, causal copy, commit lock, Home/Restart cleanup. +- Parsed ScreenTouch: Victory -> adaptation -> revise choice -> commit -> second + result, with fallback/direct zero. +- Normal rendering: standard safety, standard tempo, Wayrunner second-position + counter, exposed Farstring lead with healing, unselected choice, English 130%. +- R1-R9A regressions run serially after the focused checks.