diff --git a/AGENTS.md b/AGENTS.md index 6a110926..8a355542 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -13,15 +13,12 @@ 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 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. +P9.0R6 is the preserved route-decision baseline. P9.0R7 is the preserved +individual-growth H5 baseline. P9.0R8 is the only active runtime slice: build a +real front-door module consisting of resource initialization, visual title, +main menu, game introduction, settings and deliberate New Game handoff to the +preserved Guild Yard. Do not add a fake Continue action while save is absent. +It 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 b5bb5c65..da630132 100644 --- a/CURRENT_CHECKPOINT.md +++ b/CURRENT_CHECKPOINT.md @@ -1,7 +1,7 @@ # Current Checkpoint -Active Goal: `docs/goals/PHASE9_0R7_INDIVIDUAL_GROWTH_GOAL.md` -Active contract: `docs/runtime/PHASE9_0R7_INDIVIDUAL_GROWTH_CONTRACT.md` +Active Goal: `docs/goals/PHASE9_0R8_FRONT_DOOR_GOAL.md` +Active contract: `docs/runtime/PHASE9_0R8_FRONT_DOOR_CONTRACT.md` Active ledger: `docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md` P9.0R5 baseline: `6ae33971451912b3cc87c8ffe3b8831fa67c967c` P9.0R5 product preview source: `073ff690ea5a27cb47ee1b563c3eebd6cde9e788` @@ -18,7 +18,8 @@ P9.0R6 Gallery item: `iS4R4BKNLQr1` P9.0R7 baseline: `89ed89b2a5b45ee5ab10c989736f2d8c65ea88dd` P9.0R7 product preview source: `b7d50af403d3fe5d3fcc92943bc21d1d1748ae3d` P9.0R7 Gallery item: `REs3L6178z7p` -Stage: `P9_0R7_INDIVIDUAL_GROWTH_H5_PREVIEW_READY` +P9.0R8 baseline: `d008c792ee8bc819fd642533a386cc54f85ce36d` +Stage: `P9_0R8_FRONT_DOOR_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 diff --git a/docs/goals/PHASE9_0R8_FRONT_DOOR_GOAL.md b/docs/goals/PHASE9_0R8_FRONT_DOOR_GOAL.md new file mode 100644 index 00000000..437bf881 --- /dev/null +++ b/docs/goals/PHASE9_0R8_FRONT_DOOR_GOAL.md @@ -0,0 +1,75 @@ +# Phase 9.0R8 Front-Door Module Goal + +## Owner Decision And Role + +On 2026-08-13 the Owner required development to proceed by player-facing +modules and identified the missing front door before further combat expansion. + +- Role: development task. +- Repository: `aetherbound_guild` only. +- Baseline: clean/upstream P9.0R7 closure + `d008c792ee8bc819fd642533a386cc54f85ce36d`. +- Preserved playable product source: + `b7d50af403d3fe5d3fcc92943bc21d1d1748ae3d`. +- Active contract: `docs/runtime/PHASE9_0R8_FRONT_DOOR_CONTRACT.md`. +- Active ledger: `docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md`. + +## Player Problem + +The runtime verifies resources and shows a visual title, but it currently +combines entering the game with starting a run. Language, text, motion and +sound appear as unexplained title icons. There is no explicit main menu, game +introduction or settings page. A player cannot first understand what the game +is, choose presentation preferences, and then deliberately begin. + +## Owned Module + +`resource initialization -> title entry -> main menu` + +The main menu owns three independent routes: + +1. `Start New Game` clears transient run state and opens the preserved Guild + Yard. +2. `Game Introduction` explains the fantasy, immediate objective and the + currently playable decision loop, then returns without mutation. +3. `Settings` exposes language, text size, reduced motion and mute with named + values, live preview and a Back action. + +No `Continue` button is shown because authoritative persistence does not yet +exist. A disabled or fake continue action would teach a false product promise. + +## Acceptance + +- Successful Boot still presents its verified state before Title. +- Title has one clear `Enter Game` action and no unexplained settings strip. +- Main menu has exactly three primary routes: New Game, Introduction and + Settings. +- Introduction states what the player does now, why battles are automatic, + and how adaptation, routes and individual growth form the current loop. +- Settings use readable named rows rather than bare icons; every change is + immediate, reversible and session-local. +- Introduction and Settings Back return to the unchanged main menu. +- New Game is the only route that clears/starts the transient experience. +- In-game Home and confirmed Restart return to the main menu and leave no + transient Company, Coin, battle, route or training state. +- Real parsed ScreenTouch proves the complete front-door navigation with + `fallback=0 direct=0`. +- `844x390` Simplified Chinese and English/130% normal-render pages fit without + scrolling, clipping or controls below 44px. +- The complete P9.0R7 playable path remains available after New Game. + +## Frozen + +- P9.0R3-R7 combat, economy, route and growth values. +- Character/background/VFX/animation assets and paid generation. +- Save/Continue, account, cloud, slots, profile, credits, privacy links and + platform services. +- Authoritative XP, Market, chapters, content expansion, packaging and release. + +## Legal Terminals + +`Aetherbound Guild P9.0R8 front-door H5 preview ready` + +or + +`Aetherbound Guild P9.0R8 redesign required: ` diff --git a/docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md b/docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md index c208f295..0bc76842 100644 --- a/docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md +++ b/docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md @@ -32,3 +32,4 @@ separate. | 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. | | 2026-08-13 | product `b7d50af`; Gallery `REs3L6178z7p` | `P9_0R7_INDIVIDUAL_GROWTH_H5_PREVIEW_READY` | Clean/upstream source continues the R6 result into unselected actual-member training, reversible review/commit, one fifth battle and a causal third-cycle result. Exactly one member reaches `Lv.2`: front training yields `90/75` instead of `70/55` HP, Farstring moves its one shot earlier for `6.40s` instead of `7.40s`, and Kindhand restores rear HP to `85` instead of `72/60`; `+8 Coin` commits once. The gate passes the R7 matrix, parsed ScreenTouch `touch=8 fallback=0 direct=0`, P9.0R3-R6 regressions and eleven `844x390` Chinese states with 44px controls and strict diagnostics zero. The fixed-source runtime-only PCK excludes tests/evidence/build; nine payloads verify against `export.sha256` whose SHA-256 is `6a2b04e823da55af21b658d1d96bf3faf969849496cdabe077770ca0fa55066e`. Local and remote normal-GPU Chrome reach the real Chinese Title with browser diagnostics zero. Cold start remains slow because the roughly 53 MB bundle is uncompressed. This is preview evidence only; Owner growth-choice comprehension/fun/continuation, listening, device, packaging, stores and release remain open. | +| 2026-08-13 | Owner modular-development decision from clean/upstream `d008c79` | `P9_0R8_FRONT_DOOR_ACTIVE` | Owner requires player-facing module sequencing before more battle expansion and identifies the missing initialization/title/main-menu/introduction/settings front door. R8 preserves the complete R7 gameplay after New Game, separates Title entry from run creation, adds an honest three-route Main Menu and session-local named settings, and deliberately omits Continue while save is absent. R7 values/assets, save, Market, content expansion, packaging and release remain frozen. | diff --git a/docs/runtime/PHASE9_0R8_FRONT_DOOR_CONTRACT.md b/docs/runtime/PHASE9_0R8_FRONT_DOOR_CONTRACT.md new file mode 100644 index 00000000..9ca9d262 --- /dev/null +++ b/docs/runtime/PHASE9_0R8_FRONT_DOOR_CONTRACT.md @@ -0,0 +1,85 @@ +# Phase 9.0R8 Front-Door Runtime Contract + +## State Map + +```text +BOOT -> TITLE -> MAIN_MENU +MAIN_MENU -> YARD +MAIN_MENU <-> GAME_INTRO +MAIN_MENU <-> SETTINGS +gameplay Home/confirmed Restart -> MAIN_MENU +``` + +`BOOT` is automatic resource verification. `TITLE` is the visual identity and +one explicit entry action. `MAIN_MENU` is the navigation authority. These are +different states even when they reuse the same background. + +## Stable Controls + +| Page | Required controls | +|---|---| +| Title | `EnterGameButton` | +| Main menu | `StartNewGameButton`, `GameIntroButton`, `SettingsButton` | +| Introduction | `IntroductionBackButton` | +| Settings | `SettingsLocaleButton`, `SettingsTextScaleButton`, `SettingsMotionButton`, `SettingsMuteButton`, `SettingsBackButton` | + +The main menu must not render `Continue`, `Load`, `Account` or release/store +actions while their systems are absent. + +## Introduction Copy Authority + +The page answers four questions in player language: + +1. **Who am I?** The guild captain rebuilding an expedition Company across + broken wind roads. +2. **What do I do first?** Choose one front and one rear Recruit, then depart. +3. **Why is combat automatic?** The player builds the Company and reads the + threat; recruited roles execute the committed plan. +4. **What changes between battles?** Diagnose the result, adapt equipment, + choose routes and train an individual member so the next encounter changes. + +It describes only the currently playable R7 flow. It does not advertise +future chapters, saves, a Market or a complete profession catalog as present. + +## Settings Semantics + +Settings are session-local presentation values and never mutate gameplay: + +- language: `简体中文` / `English`; +- text: `100%` / `130%`; +- motion: `标准` / `减少动态`; +- sound: `开启` / `静音`. + +Each row names the category, current value and effect. Tapping cycles the two +declared values and immediately rerenders the current Settings page. Back keeps +the selected presentation values and returns to Main Menu. + +## New Game And Home + +- `start_new_game` is legal only from Main Menu. +- It calls the existing complete transient cleanup exactly once, then opens + the Guild Yard with the preserved first-choice guidance. +- `go_home` and confirmed Restart clear the same transient state and return to + Main Menu. +- Title entry, Introduction, Settings and Back never clear or create gameplay + state. + +## Presentation + +- Title remains an immersive world scene with identity and one command. +- Main Menu uses the world as the dominant surface and one quiet command rail; + it is not a settings form or nested card dashboard. +- Introduction uses an expedition path composition with four numbered beats. +- Settings uses one parchment workbench with four full-width named rows. +- Primary landscape is `844x390`; no scrolling; all actions at least 44px. +- Portrait continues to request landscape orientation. + +## Evidence + +- Domain/navigation test proves legal page transitions, no fake Continue, + gameplay mutation boundaries and Home/Restart cleanup. +- Real parsed ScreenTouch covers Title -> Main Menu -> Introduction -> Back -> + Settings -> all four changes -> Back -> New Game. +- Normal rendering covers Boot success, Title, Main Menu, Introduction and + Settings in Chinese plus English/130% Settings. +- P9.0R7 focused, touch and R3-R6 regressions remain green.