diff --git a/AGENTS.md b/AGENTS.md index 3c23a24d..6a110926 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -13,17 +13,19 @@ event-bound combat feedback inside the preserved Title -> Guild Yard -> tutorial battle -> victory flow. Its source is frozen. P9.0R4 remains the preserved two-battle preview baseline. P9.0R5 is the Owner-accepted complete first-session baseline through Guild choice, third battle and session result. -P9.0R6 is the only active runtime slice: preserve that complete path, compare -three neutral routes whose coverage changes with the retained item or -three-person line, commit one route, observe one fourth battle and receive a -causal second-cycle result. It continues the fast-H5-before-formal-candidate -cadence. +P9.0R6 is the preserved route-decision baseline. P9.0R7 is the only active +runtime slice: preserve the complete R6 path, earn one run-local individual +training decision, raise exactly one actual Company member from level one to +level two, observe one fifth battle whose front/Farstring/Kindhand event changes +with that choice, and receive a causal third-cycle result. It continues the +fast-H5-before-formal-candidate cadence. It shortens dead holds between accepted authored animation states and adds bounded damage/heal number pops, impact nudge and existing VFX timing without changing HP results, roles, victory, animation assets or the opening flow. -Contract, difficulty, formal Market/permanent equipment inventory, Party order, -casualty/recovery, authoritative combat, persistence, chapters, device -packaging, stores and release remain frozen. +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 +release remain frozen. ## Originality Boundary diff --git a/CURRENT_CHECKPOINT.md b/CURRENT_CHECKPOINT.md index e35f7f4b..c2fe113c 100644 --- a/CURRENT_CHECKPOINT.md +++ b/CURRENT_CHECKPOINT.md @@ -1,7 +1,7 @@ # Current Checkpoint -Active Goal: `docs/goals/PHASE9_0R6_SECOND_CYCLE_ROUTE_GOAL.md` -Active contract: `docs/runtime/PHASE9_0R6_SECOND_CYCLE_ROUTE_CONTRACT.md` +Active Goal: `docs/goals/PHASE9_0R7_INDIVIDUAL_GROWTH_GOAL.md` +Active contract: `docs/runtime/PHASE9_0R7_INDIVIDUAL_GROWTH_CONTRACT.md` Active ledger: `docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md` P9.0R5 baseline: `6ae33971451912b3cc87c8ffe3b8831fa67c967c` P9.0R5 product preview source: `073ff690ea5a27cb47ee1b563c3eebd6cde9e788` @@ -15,7 +15,8 @@ Battle-feedback baseline: `be17debf4ed3ebe5c3e6de2701d5e3c374de1dcb` P9.0R6 baseline: `c064fb2344fdbf9e95e18b8e1073844ce4d1f212` P9.0R6 product preview source: `3620e5a7cf6b762fefc3eb92d72b465c8bb209eb` P9.0R6 Gallery item: `iS4R4BKNLQr1` -Stage: `P9_0R6_SECOND_CYCLE_ROUTE_H5_PREVIEW_READY` +P9.0R7 baseline: `89ed89b2a5b45ee5ab10c989736f2d8c65ea88dd` +Stage: `P9_0R7_INDIVIDUAL_GROWTH_ACTIVE` P9.0R5 preserves the complete real Title-to-second-result P9.0R4 path and owns one Guild return decision plus a third battle. From `20 Coin`, the player either @@ -65,6 +66,16 @@ action: Owner plays one covered and one gap route and judges whether inherited build -> route pressure -> consequence is understandable and worth another cycle. +The Owner reviewed the P9.0R6 delivery and requested a larger continuation. +P9.0R7 now owns the next incremental layer only: the verified R6 result grants +one individual training decision; the player raises exactly one actual Company +member from `Lv.1` to `Lv.2`; a fifth encounter applies both front and original- +rear pressure; and the third-cycle result exposes the selected role's survival, +tempo or recovery consequence plus one-time `+8 Coin`. Authoritative XP, +promotion, Market, Party order, casualty/recovery, persistence, chapters and +release remain frozen. The only next action is bounded R7 implementation +followed by the fast H5 gate. + ## P9.0R4 Fast-Preview Baseline P9.0R4 owns only the first-result diagnosis, the existing `B0/R1/Q0` Steady diff --git a/docs/goals/PHASE9_0R7_INDIVIDUAL_GROWTH_GOAL.md b/docs/goals/PHASE9_0R7_INDIVIDUAL_GROWTH_GOAL.md new file mode 100644 index 00000000..ba0c5ee0 --- /dev/null +++ b/docs/goals/PHASE9_0R7_INDIVIDUAL_GROWTH_GOAL.md @@ -0,0 +1,100 @@ +# Phase 9.0R7 Individual Growth Goal + +## Owner Decision And Role + +On 2026-08-13 the Owner reviewed P9.0R6 and asked to continue with a larger +playable delivery. + +- Role: development task. +- Repository: `aetherbound_guild` only. +- Baseline: clean/upstream P9.0R6 closure + `89ed89b2a5b45ee5ab10c989736f2d8c65ea88dd`. +- Preserved P9.0R6 product source: + `3620e5a7cf6b762fefc3eb92d72b465c8bb209eb`. +- Active contract: `docs/runtime/PHASE9_0R7_INDIVIDUAL_GROWTH_CONTRACT.md`. +- Active ledger: `docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md`. + +## Player Hypothesis + +The repeated expedition loop becomes growth rather than a sequence of route +receipts when one earned decision changes one individual Recruit and the next +battle visibly depends on which role received that growth. + +The owned continuation is: + +`P9.0R6 second-cycle result -> individual training -> review/commit -> fifth automatic battle -> third-cycle result` + +## Owned Slice + +1. Preserve the complete P9.0R6 Title-to-second-cycle-result path unchanged. +2. Award one run-local `Veteran Mark / 历练印记` at the verified R6 result. + It is a one-use decision receipt, not a new currency or inventory system. +3. Show every actual living Company member at `Lv.1`. The player selects one + stable slot (`front`, `rear`, or present `added`), can revise it, reviews the + exact role effect, and commits once. +4. Only that member becomes `Lv.2`. There is no shared Company level, XP pool, + promotion, skill tree or transfer. +5. Run one fifth automatic battle against an existing Riftblade-family route + guard. It applies one front crush and one original-rear split so front, + Farstring and Kindhand growth solve different observed problems. +6. Result leads with `trained member -> changed event -> outcome`, then exact + front/rear HP, time, one-time `+8 Coin`, Company and member levels. + +## Growth Counterfactuals + +- `front Lv.2`: reduces the front crush by another `20`. Retained `EQ-002` + still reduces the base `-45` crush to `-30`, so both together leave front + HP `90`; without Frontpin, trained front ends at `75`. +- `Farstring Lv.2`: performs an early shot and changes declared battle time + from `7.40s` to `6.40s`; HP outcomes do not improve. +- `Kindhand Lv.2`: restores the split rear from `60` to `85` instead of the + normal `72`; battle time does not improve. + +The three outcomes answer survival, tempo and recovery respectively. None is +labeled recommended. Every actual member remains selectable; a two-person +Company has two choices and a full line has three. + +## Fast H5 Gate + +- Focused domain coverage across all R6 build/route/original-rear states and + every legal training slot, including invalid slot, revise, cancel, once-only + commit/reward and restart cleanup. +- Parsed ScreenTouch from the real P9.0R6 second-cycle result through training, + revise, review, cancel, fifth battle and third-cycle result with + `fallback=0 direct=0`. +- P9.0R6/P9.0R5/P9.0R4/P9.0R3 regressions. +- Normal-render `844x390` Simplified-Chinese training, review, three battle + counterfactuals and three causal result states, with every action at least + 44px and no scrolling. +- Fixed-source runtime-only Web export, PCK scope check, local and remote + normal-GPU Chrome Title launch, and a new Gallery item. + +## Frozen + +- P9.0R3 through P9.0R6 values, presentation and complete flow. +- Character/background/VFX/animation source assets and paid generation. +- Authoritative XP curves, levels `3..10`, promotion, skills, Traits, Market, + permanent inventory, Party ordering, Reserve, casualty/recovery and save. +- Chapter/Region content expansion, authoritative combat, device packaging, + TestFlight, stores and release. + +## Acceptance + +- Training opens only from a verified R6 result and starts unselected. +- Only actual Company slots render; invalid or absent slots cannot commit. +- Selection is reversible, review can cancel, and commit consumes the one mark + exactly once. +- Exactly one member reaches `Lv.2`; all others remain `Lv.1`. +- Front, Farstring and Kindhand produce the declared distinct HP/time effects + with no hidden reward change. +- Fifth-battle reward adds `8 Coin` exactly once. +- Third-cycle result names the trained role and changed event before totals. +- Restart/Home clear all three cycles; P9.0R6 regression remains unchanged. + +## Legal Terminals + +`Aetherbound Guild P9.0R7 individual growth H5 preview ready` + +or + +`Aetherbound Guild P9.0R7 redesign required: ` diff --git a/docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md b/docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md index 64eadff2..1ee29551 100644 --- a/docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md +++ b/docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md @@ -30,3 +30,4 @@ separate. | 2026-08-13 | product `073ff69`; Gallery `XnBQy0rhoJHh` | `P9_0R5_FULL_FIRST_SESSION_FAST_H5_PREVIEW_READY` | Clean/upstream source completes the real Title-to-session-result arc with three battles and the Guild retain-item versus recruit-missing-rear decision. Focused routes pass all six initial rear/item/response combinations, no preselection, reversible selection, insufficient/invalid rejection, once-only spend, exact Coin `8/6`, Company `2/3`, HP `90/100/70/82`, time `7.60/6.60/7.00`, Home/Restart cleanup and mutually exclusive item/recruit state. Real parsed ScreenTouch reaches the result from Title with `touch=11 fallback=0 direct=0`; P9.0R4/P9.0R3 regressions pass; six `844x390` Chinese normal-render states pass 44px bounds and strict runtime diagnostics zero. Runtime-only Web export excludes tests/evidence/build, signed remote MIME/bytes match, and a fresh normal-GPU Chrome reaches the real Title. Cold load remains roughly one minute due to the unchanged uncompressed 53 MB bundle. This is a direction preview only; human understanding/fun/continuation, listening, physical device, packaging, stores and release remain open. | | 2026-08-13 | Owner continuation decision from clean/upstream `c064fb2` | `P9_0R6_SECOND_CYCLE_ROUTE_ACTIVE` | Owner accepts P9.0R5 and asks development to continue. P9.0R6 preserves the complete first session, then owns three stable routes with front-crush, tempo and split-rear pressures; coverage derived from retained `EQ-002`, retained `EQ-061` or the three-person line; one route commit; one fourth automatic battle; once-only `+4/+7/+10` Coin reward; and a causal second-cycle result. Formal Market, permanent inventory, casualty/recovery, save, chapters, authoritative combat, packaging and release remain frozen. | | 2026-08-13 | product `3620e5a`; Gallery `iS4R4BKNLQr1` | `P9_0R6_SECOND_CYCLE_ROUTE_H5_PREVIEW_READY` | Clean/upstream source continues the accepted first session into a connected three-node route board, explicit review/commit, fourth battle and causal second-cycle result. The fast gate passes 18 route/profile/original-rear outcomes with rewards `4/7/10`, parsed ScreenTouch `touch=8 fallback=0 direct=0`, P9.0R3-R5 regressions and nine `844x390` Chinese normal-render states with 44px bounds and strict diagnostics zero. Runtime-only PCK scope excludes tests/evidence/build and retains required font, animation and VFX resources. The ten-file ignored delivery's `export.sha256` digest is `9fb846f795bca1cd729e884d8e5d8fee6be001299425384cf3590571fb6fc5bf`; local and remote normal-GPU Chrome reach the real Chinese Title with browser diagnostics zero. Cold start remains slow because the 53 MB bundle is uncompressed. This is fast preview evidence only; Owner comprehension/choice/fun/continuation, listening, device, packaging, stores and release remain open. | +| 2026-08-13 | Owner continuation from clean/upstream `89ed89b` | `P9_0R7_INDIVIDUAL_GROWTH_ACTIVE` | Owner reviewed the R6 delivery and requested a larger continuation. R7 preserves the complete R6 path, grants one run-local individual training decision at its result, raises exactly one actual Company member from level one to level two, runs a fifth dual-pressure encounter and exposes the selected front/Farstring/Kindhand survival, tempo or recovery consequence before one-time `+8 Coin`. Authoritative XP, promotion, Market, Party order, casualty/recovery, persistence, chapters, packaging and release remain frozen. | diff --git a/docs/runtime/PHASE9_0R7_INDIVIDUAL_GROWTH_CONTRACT.md b/docs/runtime/PHASE9_0R7_INDIVIDUAL_GROWTH_CONTRACT.md new file mode 100644 index 00000000..e3ef6ae1 --- /dev/null +++ b/docs/runtime/PHASE9_0R7_INDIVIDUAL_GROWTH_CONTRACT.md @@ -0,0 +1,105 @@ +# Phase 9.0R7 Individual Growth Runtime Contract + +## Authority And Boundary + +This contract owns only the continuation from the accepted P9.0R6 +second-cycle result through one individual level choice, one fifth battle and +one third-cycle result. It previews the product authority that levels belong to +individual generated Recruits, but does not implement the authoritative XP, +promotion, Market, save or content systems. + +## Stable State + +```text +member_slots = [front, rear] + [added when present] +member_level(slot) = 2 only when slot == trained_member; otherwise 1 +veteran_mark_available = route_reward_committed and not training_committed +training_choice = empty | one current member slot +training_committed = false -> true exactly once +fifth_reward_committed = false -> true exactly once +``` + +Slots bind to the current runtime member identity and profession. An absent +`added` slot never renders and is illegal at selection, review and commit. + +## Training Transaction + +- `open_training` requires the R6 result and committed route reward, clears + only the uncommitted training selection and opens the training scene. +- `choose_training` accepts one current member slot and mutates selection only. +- `open_training_review` requires one legal selection and mutates nothing. +- `cancel_training_review` returns to the same selected training scene. +- `commit_training` revalidates the selected slot, consumes the mark, makes + exactly that slot `Lv.2`, locks the transaction and starts the fifth battle. +- Duplicate or out-of-page commit is inert. + +## Fifth Battle + +The fifth encounter uses existing accepted actors and Riftblade-family assets. +It is a bounded presentation fixture, not an authoritative combat engine or a +new catalog identity. + +Base state: + +```text +front_hp = 100 +rear_hp = 100 +enemy_hp = 140 +base_time = 7.40s +Farstring Lv.2 time = 6.40s +reward = +8 Coin at verified result +``` + +Ordered consequences: + +1. A trained Farstring performs one early shot before enemy pressure. +2. Front crush deals `-45`; retained `EQ-002` reduces it to `-30`; trained + front reduces the already-derived damage by another `20`. +3. Split pressure hits the original rear for `-40`. +4. Original rear acts once. +5. Added rear acts once when present; otherwise the retained build follows up. +6. Route guard reaches `0` and reward commits once. + +Kindhand healing targets the damaged original rear. A normal Kindhand restores +`+12` to rear HP `72`; a trained Kindhand restores `+25` to rear HP `85`. +Farstring training changes timing only. Front training changes front HP only. +Both rear professions act once in a full line. + +## Result Matrix + +| Trained role | Frontpin retained | Front HP | Rear HP with Kindhand | Time | +|---|---|---:|---:|---:| +| front | yes | `90` | `72` | `7.40` | +| front | no | `75` | `72` | `7.40` | +| Farstring | yes | `70` | `72` when Kindhand present | `6.40` | +| Farstring | no | `55` | `72` when Kindhand present | `6.40` | +| Kindhand | yes | `70` | `85` | `7.40` | +| Kindhand | no | `55` | `85` | `7.40` | + +When a two-person Company has no Kindhand, rear HP remains `60`. When Kindhand +is present but not trained, rear HP becomes `72`. Route selection changes the +inherited Coin only; it does not secretly change this fixed fifth encounter. + +## Presentation + +- Training is a scene with the actual Company standing in the world and one + selectable level crest above or beside each member, not a generic settings + list or spreadsheet. +- Every member shows position, profession, current level and the exact next + event change before selection. +- Review names the member and single counterfactual, then offers Back and Train. +- Fifth battle visibly distinguishes early shot, reduced front damage and + stronger rear recovery using existing number/VFX feedback. +- Result names the causal level effect before Coin/HP/time totals. +- Primary `844x390` has no scrolling and every action is at least 44px. + +## Evidence + +- Focused tests cover legal member sets, training transaction, member levels, + all role outcomes, exact times, reward and cleanup. +- Real parsed ScreenTouch covers open, revise, review, cancel, commit, battle + and result with no fallback or direct callback path. +- Normal-render captures cover two- and three-person training, review, the + three role effects and representative results. +- Fast preview evidence cannot become formal candidate, human, device or + release evidence.