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

343 lines
20 KiB
Markdown

# P10.0 Full Market And Company Core Implementation Plan
> Status: `OWNER_REJECTED_WEB_TOUCH_REPAIR_ACTIVE`
> Active step: `NONE; SEE P10.0R1 REPAIR PLAN`
> Baseline: `2ea14f506ee730eab086963ee8ee0d7c4ccb419e`
> Goal: `docs/goals/PHASE10_0_FULL_MARKET_COMPANY_CORE_GOAL.md`
> Contract: `docs/runtime/PHASE10_0_FULL_MARKET_COMPANY_CORE_CONTRACT.md`
## Player-Visible Stopping Point
Replace phase-scripted Windglass play with one canonical engine that generates,
prepares, fights, recovers and closes both Contracts through the complete
Market/Company loop. RG-02 becomes visible but remains unplayable.
Internal steps are verified, committed and pushed without pausing for routine
authorization. No P10 H5 is published before Step 6 closes.
## Ordered Steps
<!-- markdownlint-disable MD013 -->
| Step | Status | Player outcome | Commit boundary |
| --- | --- | --- | --- |
| P10.0-STEP-0 Contract | `COMPLETE` | The full Market, Company, wave-battle and Region stopping point are frozen. | Goal, contract, plan, checkpoint and ledger pushed. |
| P10.0-STEP-1 Catalog and board authority | `COMPLETE` | A reserved seed produces four provisional Recruits and every Market produces stable 3/4/3 offers from the real Windglass catalog. | P10 registry/generator plus focused schema, seed and board tests. |
| P10.0-STEP-2 Market and Company transactions | `COMPLETE` | The player can hire, buy, sell, equip, lock, refresh, dismiss, deploy Reserve and reorder without partial state. | Canonical state/service plus atomicity tests. |
| P10.0-STEP-3 Growth, casualty and wave battle | `COMPLETE` | Levels, promotion, Artifacts, fixed waves and permanent Fallen outcomes create a changing Company. | Growth/battle/casualty services plus counterfactual tests. |
| P10.0-STEP-4 Contracts, save and simulations | `COMPLETE` | Two Windglass Runs survive interruption and close to persistent RG-02 without a dominant policy. | Save v6, bosses, close and five-profile simulation. |
| P10.0-STEP-5 Complete landscape runtime | `COMPLETE` | The canonical Region is playable from Title to RG-02 by direct world touch and drag. | Controller/front-door integration, matrix, recording and regression evidence. |
| P10.0-STEP-6 H5 and closure | `COMPLETE` | One fresh cached H5 exposes the canonical full-Market Region. | Source `f7031b8`; Gallery `jenrVhhukcwf`; remote bytes/cache/304 pass. |
<!-- markdownlint-enable MD013 -->
## Step Contracts
### P10.0-STEP-1 CATALOG AND BOARD AUTHORITY
```text
ID: P10.0-STEP-1
PLAYER OUTCOME: A Run seed creates four stable provisional Recruits, and each
Market exposes three Recruit, four equipment and three risk offers from the
real catalog without reload rerolls.
IN SCOPE: P10 content registry; 12 base/24 advanced Professions; 36 Traits;
EQ-001..040; AR-001..008; EN-R1-01..12; two Boss descriptors; deterministic
Recruit generation; Contract descriptors; stable board generation; schemas.
OUT OF SCOPE: state mutation, prices, purchases, battle execution, saves,
runtime UI, new media and later Regions.
OWNED FILES: runtime/p10_0/content_registry.gd plus UID;
runtime/p10_0/offer_generator.gd plus UID; focused Step-1 tests plus UIDs;
durable status after focused source commit.
ACCEPTANCE CHECKS: exact counts and unique IDs; descendant/trait/item/enemy/
boss references resolve; no filler-equivalent signatures; four draft rows;
every Market 3/4/3; risks 0/1/2; seed labels independent; same inputs byte
identical; changed seed/Market/refresh changes only owned draws; malformed
authority rejects; P9.10 regressions unchanged.
EVIDENCE LEVEL EXPECTED: automated_verified.
COMMIT BOUNDARY: focused source/test push, then docs-only step closure.
LEGAL TERMINAL: P10.0 Step 1 catalog and board authority complete.
NEXT STEP: P10.0-STEP-2.
```
### P10.0-STEP-2 MARKET AND COMPANY TRANSACTIONS
```text
ID: P10.0-STEP-2
PLAYER OUTCOME: One stable Market supports the full budget, roster, Reserve and
order decisions without hidden or partial mutation.
IN SCOPE: canonical Run/Market state and service; draft commit; prices; Coin;
Credit; lock/unlock/refresh; hire; buy/sell/equip; dismiss; deploy/Reserve;
reorder; operation receipts and atomicity tests.
OUT OF SCOPE: XP/promotion, battle execution, persistence and runtime UI.
OWNED FILES: runtime/p10_0 state/service modules plus UIDs; focused tests plus
UIDs; durable status.
ACCEPTANCE CHECKS: exact board counts and prices; capacity 4..10; one equipment
slot; final dismissal rejected; automatic formation proposal; legal Reserve;
every success +1 revision; every rejection preserves all fields; duplicate
same intent returns receipt; mismatched intent rejects.
EVIDENCE LEVEL EXPECTED: automated_verified.
COMMIT BOUNDARY: focused source/test push, then docs-only step closure.
LEGAL TERMINAL: P10.0 Step 2 Market and Company transactions complete.
NEXT STEP: P10.0-STEP-3.
```
### P10.0-STEP-3 GROWTH, CASUALTY AND WAVE BATTLE
```text
ID: P10.0-STEP-3
PLAYER OUTCOME: The prepared Company visibly resolves fixed waves, grows,
promotes and permanently changes when a Recruit falls.
IN SCOPE: XP/levels; two-branch promotion; Artifact choice; fixed-tick waves;
Profession/Trait/item execution; casualties; equipment return; Credit;
reward drafts; ordinary recovery; counterfactuals.
OUT OF SCOPE: bosses, full save, runtime presentation and H5.
OWNED FILES: runtime/p10_0 growth/battle/casualty modules plus UIDs; fixtures
and focused tests plus UIDs; durable status.
ACCEPTANCE CHECKS: deterministic events; 2-4 waves; no battle >150s; Reserve
never auto-enters; Fallen never returns; equipment returns; Credit bounded;
level cap 10; exact descendants only; first decisive cause retained; no
universal Profession/Trait/item/order policy across fixed fixtures.
EVIDENCE LEVEL EXPECTED: automated_verified.
COMMIT BOUNDARY: focused source/test push, then docs-only step closure.
LEGAL TERMINAL: P10.0 Step 3 growth, casualty and wave battle complete.
NEXT STEP: P10.0-STEP-4.
```
### P10.0-STEP-4 CONTRACTS, SAVE AND SIMULATIONS
```text
ID: P10.0-STEP-4
PLAYER OUTCOME: Both Windglass Contracts recover, close and persist without
rerolls, duplicate rewards or permanent-stat grinding.
IN SCOPE: two Bosses; Muster/recovery; Contract/Region close; Guild handoff;
Save v6; profile migration; five profiles; solvency and anti-dominance.
OUT OF SCOPE: runtime UI, final media, H5 and later Regions.
OWNED FILES: runtime/p10_0 boss/contract/save modules plus UIDs; simulations
and focused tests plus UIDs; durable status.
ACCEPTANCE CHECKS: both bosses and recoveries; exact first-clear facts/Renown/
Records once; corruption/backup/rollback/interruption; zero offline value;
five profiles complete within bounds; every required operation and content
family reachable; at least two rational policies per declared fork.
EVIDENCE LEVEL EXPECTED: simulation_verified.
COMMIT BOUNDARY: focused source/test push, then docs-only step closure.
LEGAL TERMINAL: P10.0 Step 4 Contracts, save and simulations complete.
NEXT STEP: P10.0-STEP-5.
```
### P10.0-STEP-5 COMPLETE LANDSCAPE RUNTIME
```text
ID: P10.0-STEP-5
PLAYER OUTCOME: Title through RG-02 is one game-like landscape flow where
Market preparation and continuous-wave consequences are directly playable.
IN SCOPE: P10 controller; front-door route; direct world targets; drag/tap
alternatives; Market/Reserve/line; wave battle feedback; profiles; required
viewports/locales/accessibility; 25-30 second representative recording.
OUT OF SCOPE: gameplay rule changes, final production media, H5 and release.
OWNED FILES: runtime/p10_0 runtime controller plus UID; bounded main handoff;
runtime tests plus UIDs; durable status.
ACCEPTANCE CHECKS: parsed Touch/Drag only; fallback/direct zero; full required
runtime states; Market not a card wall; small actors and continuous waves;
signed feedback/Fallen removal/causal result; required matrix; <=30s evidence
gaps; strict diagnostics and owned cleanup zero.
EVIDENCE LEVEL EXPECTED: runtime_verified and agent_visual_reviewed.
COMMIT BOUNDARY: complete source-bound evidence/status push.
LEGAL TERMINAL: P10.0 Step 5 canonical Region runtime complete.
NEXT STEP: P10.0-STEP-6.
```
### P10.0-STEP-6 H5 AND CLOSURE
```text
ID: P10.0-STEP-6
PLAYER OUTCOME: The canonical full-Market Windglass Region is available from
one cached private landscape H5.
IN SCOPE: fresh runtime-only Web export; stable cache; one Gallery item; source
hashes; delivery record and durable closure.
OUT OF SCOPE: gameplay edits, native packaging, devices, stores and release.
OWNED FILES: docs/runtime/p10_0/H5_DELIVERY.md and durable status only.
ACCEPTANCE CHECKS: exact source binding; tests/docs/evidence absent from PCK;
remote bytes/MIME/cache/304 pass; clean upstream repository; processes zero.
EVIDENCE LEVEL EXPECTED: delivery transport verified; human gates remain open.
COMMIT BOUNDARY: docs-only closure after immutable delivery.
LEGAL TERMINAL: Aetherbound Guild P10.0 full Market and Company core candidate ready.
NEXT STEP: production presentation or RG-02 only through a new approved plan.
```
## Issue Register
<!-- markdownlint-disable MD013 -->
| ID | Status | Finding |
| --- | --- | --- |
| P100-I01 | `RESOLVED_IN_SCOPE` | Adding RG-02 before the Market/Company core would duplicate a scripted loop; P10.0 migrates only existing Windglass content to the canonical engine. |
| P100-I02 | `RESOLVED_IN_CONTRACT` | Continuous battle does not mean infinite respawn. Enemy waves are fixed and previewed; Fallen Recruits never respawn and Reserve never auto-enters. |
| P100-I03 | `RESOLVED_STEP_5` | P10.0 owns the isolated canonical engine and fresh-boot landscape front door while the explicit P9 entry points remain available for frozen regression coverage. |
| P100-I04 | `OPEN_MEDIA` | The complete Profession catalog does not yet have final unique production animation families. P10.0 may use role-family presentation, but final bulk media remains a later gated milestone. |
| P100-I05 | `RESOLVED_STEP_2` | Windglass `EQ-001..040` maps deterministic price tiers by contiguous ten-row buckets: `001..010` tier 0 through `031..040` tier 3. This makes the existing four-tier formula executable without implying power superiority. |
| P100-I06 | `OPEN_CONTRACT_CONFLICT` | `AR-001/AR-002` exchange Recruit/equipment slot counts and therefore conflict with the P10.0 exact 3/4/3 Market contract. Step 3 does not offer or activate them; Step 4 may not silently change board counts and must retain this boundary unless the product contract is explicitly revised. |
<!-- markdownlint-enable MD013 -->
## Completed Step Evidence
### P10.0 Step 1 Catalog And Board Authority - 2026-08-15
- Source `a603f8242a61b3aa946d16da4bb5f42bd7490fb5` adds only the
P10.0 runtime catalog, read-only registry, offer generator, focused tests and
their tracked UID files. Accepted P9 source and front-door runtime are
unchanged.
- The registry binds source SHA-256
`fb99bcd75ca6308091fa56b45f8da551276a496a1f96acbb44225efe491fdfef`
and exposes 137 localized, tagged and uniquely signed rows: 12 base plus 24
advanced Professions, 36 Traits, 40 equipment, eight Artifacts, 12 enemies,
two Bosses, one Region and two ordered Contracts.
- One applied seed reservation produces four complete provisional Recruit
records. Both Contracts expose 12 deterministic Markets with exact 3/4/3
boards and risks 0/1/2. Refresh changes Recruit/equipment draws only;
presentation revision cannot reroll combat fields.
- Fresh fixed-source R2 evidence is
`/private/tmp/abg-p100-a603f82-step1-r2/`. Both P10.0 tests and four P9.10
regression anchors pass with six exact markers and strict diagnostics zero.
Its nine-row inventory SHA-256 is
`f03dc01d810eceafc9b8a293b58ab9f01cff1f28698f938fe591c2eda80099e1`.
- R1 remains append-only `INVALID_EVIDENCE_METADATA`; its tests are not reused
for the Step 1 claim. Step 1 reaches `automated_verified`. Step 2 is active
only for canonical Market/Company state and atomic transactions.
### P10.0 Step 2 Market And Company Transactions - 2026-08-15
- Source `506ca4b114450171e67dba04d23bcc925003eab4` adds only the
isolated P10.0 Run state, Market service, three focused tests and five tracked
UID files. Accepted P9 source, `main.gd`, battle, save and UI are unchanged.
- Seed reservation, four-offer materialization, revisable unordered two-of-four
selection and Run commit are distinct idempotent operations. Run creation
transfers the exact two records into a 52-Coin, zero-Credit, capacity-four
Market without a state containing both or neither draft and Run.
- The Market supports formula-bound hire/Credit, buy/sell/equip/unequip,
three paid locks, escalating refresh, Company/Reserve deployment, automatic
order proposal, explicit reorder, legal dismissal and read-only battle
preview plus immutable battle commit. Capacity is not a total roster cap.
- All commits use operation ID, expected revision and exact price or prior
identity. Applied operations add one revision; duplicate same intent returns
its receipt; 25 rejection branches and two malformed restores preserve the
complete public and internal snapshot.
- Fresh fixed-source evidence is `/private/tmp/abg-p100-506ca4b-step2-r1/`.
Five P10.0 and four P9.10 markers pass with strict diagnostics zero. Its
12-row inventory SHA-256 is
`a0eb158a847af838d6c44e12284ddcac19ca34f35a3c5154f8d0f149cdd432f3`.
Step 2 reaches `automated_verified`; Step 3 now owns growth, promotion,
Artifacts, fixed waves and permanent casualty settlement only.
### P10.0 Step 3 Growth, Casualty And Wave Battle - 2026-08-15
- Source `9b51abcc6eeb9917a4fe9e879abd055b480e41b9` adds the isolated
fixed-tick wave battle, atomic resolution service, three executable Artifact
rules and two focused tests. Accepted P9 source, `main.gd`, bosses, save and
presentation remain unchanged.
- The battle service executes deterministic `100ms` ticks, exact two/three/four
waves and a `1500`-tick cap. Profession roles act automatically; healing,
Guard/interception, projectiles, displacement, collapse and causal events are
retained. Reserve never enters, Fallen never returns and withdrawal resolves
exactly 20 ticks after a valid request.
- Atomic settlement retains the first decisive event, permanently removes each
casualty, returns its one equipped item, applies Credit through the exact
formula and `54` cap, installs one free protected recovery offer, applies
survivor XP/levels and opens a stable reward draft. Duplicate settlement and
reward intents are idempotent; malformed reward and battle snapshots reject.
- Level thresholds are `20+10L`, battle XP is `10+2R+4Q`, level cap is ten and
level-four/three-survival promotion exposes exactly two regular descendants.
Promotion preserves Recruit identity, Trait, equipment, history, level, XP
and HP ratio.
- `AR-003`, `AR-005` and `AR-006` are selectable and executable: disclosed
price exchange, presentation-only redraw with the combat record locked, and
one Trait redraw with Profession/grades/level/gear/price locked. Order,
Profession, Trait and item counterfactuals produce distinct authoritative
traces. `AR-001/AR-002` remain blocked by issue `P100-I06`.
- Fresh fixed-source evidence is
`/private/tmp/abg-p100-9b51abc-step3-r1/`. Seven P10.0 and four P9.10 exact
markers pass with strict diagnostics and owned-process counts zero. Its
15-row inventory verifies 15/15; inventory SHA-256 is
`bd987f9b3a7ffe48c28582a545e872a9ca6c215a3a356384a9f3984c9ac3ff5b`.
Step 3 reaches `automated_verified`; Step 4 is active only for both bosses,
Contract close, Save v6 and five-profile simulations.
### P10.0 Step 4 Contracts, Save And Simulations - 2026-08-15
- Source `16f37c45bae5c8b4047b100a504f6f0f9f22b547` adds the two
deterministic Windglass Boss services, atomic Contract close, persistent
Guild profile, Save v6 and three focused Step 4 tests. `main.gd`, accepted P9
runtime, UI, H5, media and release paths are unchanged.
- Both Bosses expose two distinct plans, stable Muster identity and recoverable
failure without resurrection. First clears grant exact Renown `14/18`, add
exact clear/discovery facts and one Company Record each, then expose RG-02
without making it playable.
- Save v6 binds checksum and commit hashes, active/backup fallback, rollback
rejection, candidate interruption, idempotent receipts and Guild-only P9
migration. Offline Coin, Credit, XP, Renown, healing and battle ticks are all
zero.
- Five fixed profiles complete ten Runs, 120 ordinary Rounds and ten Bosses
with 330 decisions, a `31.3s` maximum decision gap and five permanent
casualties. Risk, Market, order, reward, recovery and Boss policies remain
non-universal while all declared Windglass content families are reachable.
- Fresh fixed-source evidence is
`/private/tmp/abg-p100-16f37c4-step4-r1/`. Ten P10.0 and four frozen P9.10
exact markers pass with strict diagnostics and owned-process counts zero.
Its 21-row inventory verifies 21/21; inventory SHA-256 is
`a2ea1e3b130e1290a99806cb312abb46c0ba47e55f7a0aa9f8e63090e9cff63f`.
Step 4 reaches `simulation_verified`; Step 5 alone now owns controller/front-
door integration, parsed mobile input, required runtime states, matrix and
recording evidence. H5, human, device, packaging and release remain open or
frozen.
### P10.0 Step 5 Complete Landscape Runtime - 2026-08-15
- Source `f7031b8395867c9fbf38539040612d7daabbea25` integrates the
P10.0 controller as the fresh-boot front door while retaining explicit P9
entry points. The bounded delta also adds Step-5 fixtures/tests and repairs
reward-draft hashing across JSON numeric normalization without changing the
accepted reward formula or outcome values.
- The runtime completes Title, two-of-four draft, the full 3/4/3 Market,
Company/Reserve/equipment/order operations, ordinary battle, reward and
protected recovery, both Bosses, Company Records and visible RG-02. It also
exposes Simplified Chinese/English, 130% text, reduced motion, mute, low
power, settings and reset.
- Fresh fixed-source evidence is
`/private/tmp/abg-p100-f7031b8-step5-r1/`, bound to archive SHA-256
`c2ea3d57add7bc3bb186e559b37deb4d0bad1760c4f432441efcf338fd121ef1`.
Sixteen P10.0 programs and ten frozen P9.10 regressions pass. Parsed input is
ScreenTouch 29 / ScreenDrag 1 / fallback 0 / direct 0; strict diagnostics and
owned-process cleanup are zero.
- Thirteen normal frames cover 760x360, 844x390, 1280x720 and portrait guidance,
both locales and required accessibility variants. The normal MovieWriter is
844x390 at 30 FPS for 795 frames/26.5 seconds with six distinct samples and
zero black intervals. The 61-row inventory verifies 61/61; inventory SHA-256
is `d26ffd046ef6f9e3787491caa897f97c57ed4be62d8f9a1160422dec4d881d49`.
- Step 5 reaches `runtime_verified + agent_visual_reviewed`. Owner authorized
Step 6 for an exact-source runtime-only Web export, one private cached Gallery
item and durable closure. Human understanding, fun, visual acceptance,
listening, device, packaging, store and release gates remain open.
### P10.0 Step 6 H5 And Closure - 2026-08-15
- Web R1 at `/private/tmp/abg-p100-f7031b8-web-r1/` exports nine files from a
fresh Git archive of exact source `f7031b8` after physically removing all 245
`runtime/tests` files. PCK inventory is 360 paths, forbidden paths zero and
all ten P10.0 compiled modules plus `catalog.json` present.
- Import, Release Web export and PCK diagnostics are strict-clean. The nine-row
export manifest SHA-256 is
`77ed3be125860c53a99a82d8223091ef03d1adda0f17726700c9207c2b491bde`.
- New Gallery item `jenrVhhukcwf` preserves all nine source bytes, serves four
deterministic gzip representations, applies the declared short HTML and
immutable runtime caches, and returns nine bodyless conditional 304 responses.
- Gallery R1 is append-only `INVALID_STDIN_SESSION` before any remote request.
Fresh R2 at `/private/tmp/abg-p100-f7031b8-gallery-r2/` passes with credential
matches zero; its five-row inventory SHA-256 is
`35a00c963aae5a7fbc25e413270e456b1a8490564902741834c5cc7aefade8f9`.
- P10.0 reaches `runtime_verified + agent_visual_reviewed + delivery transport
verified`. Human understanding, fun, visual acceptance, listening, browser
Canvas, physical device, packaging, store and release gates remain open.
- Owner play rejected the H5 at the first action because New Expedition did not
respond to phone touch. Completed Step 6 transport facts remain append-only;
playable delivery is withdrawn and repair authority moves to P10.0R1.