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

17 KiB

P10.2 Siltwake Mid-Contract Implementation Plan

Status: COMPLETE Active step: NONE Planning baseline: 230ccc5c8032be6e92c59336fec941ccb53558cc Product predecessor: 47f2028c71215117d5cc37ffc7bb2797d9e9c84c Goal: docs/goals/PHASE10_2_SILTWAKE_MID_CONTRACT_GOAL.md Contract: docs/runtime/PHASE10_2_SILTWAKE_MID_CONTRACT_CONTRACT.md

Player-Visible Stopping Point

Starting at saved Market 2, the player completes three decision-bearing Siltwake Rounds, grows Line capacity from four to six, restores the Reed Ferry and reloads at stable Market 5 with the surviving Run state intact.

Ordered Steps

Step Status Player outcome Commit boundary
P10.2-STEP-0 Contract COMPLETE The three-Round scope and Market-5 stopping point are frozen. Goal, contract, plan, checkpoint and ledger.
P10.2-STEP-1 Content and boards COMPLETE Markets 2-4 expose deterministic Recruit, equipment and route decisions with exact previews. Source 24b22f0; four fixed-source markers pass strict-clean.
P10.2-STEP-2 Save v8 and repeated Market COMPLETE Market 2 resumes exactly and Company/Reserve/locks/capacity persist across repeated Markets. Source c3d9aa1; six fixed-source markers pass strict-clean.
P10.2-STEP-3 Three-Round battle arc COMPLETE Three different pressures make movement, focus and protected center timing matter. Source 30613bb; ten fixed-source markers pass strict-clean.
P10.2-STEP-4 Continuous landscape runtime COMPLETE Parsed touch carries the player from Market 2 through visible Ferry restoration and Market 5. Source 9692958; 14 tests, 10 normal frames and one 22.07s recording pass strict-clean.
P10.2-STEP-5 Profiles and candidate COMPLETE Five policies prove bounded pacing, persistence and no universal response. Source f0ae25d; 16 tests plus one normal matrix pass strict-clean.

Step Contracts

P10.2-STEP-1 CONTENT AND BOARDS

ID: P10.2-STEP-1
PLAYER OUTCOME: At Markets 2-4 the player can compare stable Recruit,
  equipment and route offers whose previews explain the next decision.
IN SCOPE: isolated P10.2 catalog/registry; EN-R2-08..10; EQ-049..56;
  three deterministic 3/4/3 Market boards; nine exact route rows; localized
  names/previews; content, reference, seed, hash, count and formula tests.
OUT OF SCOPE: state mutation, Save v8, transactions, battle execution,
  presentation, media, H5 and packaging.
OWNED FILES: runtime/p10_2/catalog.json; runtime/p10_2/content_registry.gd and
  UID; runtime/p10_2/mid_market_generator.gd and UID; focused P10.2 tests and
  UIDs; durable status after the source commit.
ACCEPTANCE CHECKS: exact IDs and source bindings; same inputs byte-identical;
  Market/refresh changes only owned draws; board shape 3/4/3; risk set 0/1/2;
  route compositions and Coin formulas exact; offer levels/prices exact;
  no unresolved or duplicate reference; malformed fixtures reject; P10.1
  content/Market regressions retain exact markers.
EVIDENCE LEVEL EXPECTED: automated_verified for content authority.
COMMIT BOUNDARY: focused source/test push, then durable Step-1 closure.
LEGAL TERMINAL: P10.2 Step 1 content and boards complete.
NEXT STEP: P10.2-STEP-2.

P10.2-STEP-2 SAVE V8 AND REPEATED MARKET

ID: P10.2-STEP-2
PLAYER OUTCOME: Saved Market 2 resumes exactly; hires, Reserve, loadout, order,
  locks and route commitment remain trustworthy through restart.
IN SCOPE: Save-v7-to-v8 migration; repeated Market state; hire, dismiss, buy,
  sell, equip, lock, refresh, deploy/order, Reserve and route transactions;
  pre-battle checkpoint and interruption-safe persistence.
OUT OF SCOPE: battle execution, new runtime presentation, media and H5.
OWNED FILES: isolated P10.2 state/Market/save modules and focused tests.
ACCEPTANCE CHECKS: exact migration; full success/negative atomicity; Company,
  deployed and Reserve distinction; legal capacity; one equipment slot;
  stable boards/locks; checksum/backup/rollback/corruption; zero offline value;
  P10.1 Save/Market regressions unchanged.
EVIDENCE LEVEL EXPECTED: automated_verified.
COMMIT BOUNDARY: focused source/test push, then durable Step-2 closure.
LEGAL TERMINAL: P10.2 Step 2 Save v8 and repeated Market complete.
NEXT STEP: P10.2-STEP-3.

P10.2-STEP-3 THREE-ROUND BATTLE ARC

ID: P10.2-STEP-3
PLAYER OUTCOME: Current Company state changes which of nine routes is rational,
  and each result creates a meaningful next-Market consequence.
IN SCOPE: Rounds 2-4; seed/Medic/Fogjaw mechanics; nine compositions; Coin,
  XP/level/survival, casualty, recovery, route history, capacity and Ferry
  settlement; fixed counterfactuals and P10.1 regressions.
OUT OF SCOPE: Artifacts, promotion, later enemies, Boss, presentation and H5.
OWNED FILES: isolated P10.2 battle/settlement modules and focused tests; minimal
  explicit reuse of read-only P10.1 authority.
ACCEPTANCE CHECKS: all routes terminate in bounds; exact event causality;
  required movement/focus/center counterfactuals; no universal response;
  rewards/XP/clears/capacity/Ferry apply once; permanent Fallen and bounded
  recovery; interruption restores the exact pre-battle checkpoint.
EVIDENCE LEVEL EXPECTED: automated_verified plus simulation-ready domain.
COMMIT BOUNDARY: focused source/test push, then durable Step-3 closure.
LEGAL TERMINAL: P10.2 Step 3 three-Round battle arc complete.
NEXT STEP: P10.2-STEP-4.

P10.2-STEP-4 CONTINUOUS LANDSCAPE RUNTIME

ID: P10.2-STEP-4
PLAYER OUTCOME: The player performs the complete Market-2-to-Market-5 arc in
  the game world and sees growth, pressure, recovery and restoration happen.
IN SCOPE: direct world targets; Market/Reserve/capacity presentation; route
  previews; accepted battle motion plus new event bindings; settlements;
  Ferry transformation; parsed touch/drag; normal-render fixtures/recording.
OUT OF SCOPE: new paid media, card/form UI, H5, native package and release.
OWNED FILES: isolated P10.2 controller/presentation helpers; one narrow main
  handoff; focused runtime/touch/layout/recording tests and UIDs.
ACCEPTANCE CHECKS: targets >=48px; no card wall; full flow uses parsed
  ScreenTouch/ScreenDrag with fallback/direct zero; new event states are
  causal and return to rest; Ferry transformation and Market-5 handoff visible;
  required layouts/locales/accessibility pass strict diagnostics.
EVIDENCE LEVEL EXPECTED: runtime_verified and agent_visual_reviewed.
COMMIT BOUNDARY: focused source/test push, then durable Step-4 closure.
LEGAL TERMINAL: P10.2 Step 4 continuous landscape runtime complete.
NEXT STEP: P10.2-STEP-5.

P10.2-STEP-5 PROFILES AND CANDIDATE

ID: P10.2-STEP-5
PLAYER OUTCOME: The three-Round arc remains understandable, recoverable and
  strategically variable across play styles, layouts and reload points.
IN SCOPE: five profiles; decision timestamps; anti-dominance; starvation and
  recovery; Save-v8 phase matrix; layout/accessibility matrix; immutable
  source-bound candidate evidence.
OUT OF SCOPE: product changes unless a declared gate exposes a product failure;
  H5, devices, package, store and release.
OWNED FILES: bounded P10.2 simulation/matrix tests and UIDs; evidence roots;
  durable closure.
ACCEPTANCE CHECKS: five distinct policies; explicit decisions and maximum gap
  <=12 seconds outside automatic battle; all routes/mechanics and opposed
  counterfactuals covered; stable Market-5 reload; no negative Coin,
  resurrection or offline reward; required layouts and strict diagnostics;
  clean/upstream source and owned processes zero.
EVIDENCE LEVEL EXPECTED: simulation_verified plus runtime_verified.
COMMIT BOUNDARY: focused verification source, immutable evidence and docs-only
  closure, each pushed before the legal terminal.
LEGAL TERMINAL: Aetherbound Guild P10.2 Siltwake mid-contract candidate ready.
NEXT STEP: Owner review or a separately activated later product milestone.

Issue Register

ID Status Finding
P102-I01 RESOLVED_IN_CONTRACT P10.1 stores only a Market-2 handoff. Save v8 must migrate it into a generated Market-2 board without changing the first result.
P102-I02 RESOLVED_IN_CONTRACT Three more Rounds are not a Contract clear. The stopping point is stable Market 5 with four clears and restored Ferry only.
P102-I03 RESOLVED_STEP_3 Isolated P10.2 battle authority preserves P10.1 results while reusing event semantics through the presentation adapter.
P102-I04 OPEN_FINAL_MEDIA Existing source-bound rigs remain temporary. New media stays frozen until the complete three-Round runtime proves composition and motion.

Completed Step Evidence

P10.2 Step 1 Content And Boards - 2026-08-15

  • Source 24b22f01ae3da591f4b0d18ff5fda5e8473cc10b adds only the isolated P10.2 catalog, validator, Market generator, two focused tests and their tracked UID files. P10.1 source remains byte-unchanged.
  • The registry exposes eight equipment, three new enemies, nine routes and three Markets. All 22 bounded identities have zh_CN/en authority, previews, response tags, execution keys and deterministic mechanic signatures.
  • Markets 2-4 generate exact 3/4/3 boards. Recruit slots bind stable future materialization keys; equipment is unique and costs 15 Coin; route risks, compositions, waves, rewards, recovery costs and tide data are disclosed.
  • Refresh changes Recruit/equipment rows only. Route and tide data never reroll, while a changed Run seed changes owned Market identities.
  • Fresh fixed-source R1 evidence is /private/tmp/abg-p102-24b22f0-step1-r1/. Both P10.2 tests and both P10.1 content/Market regressions pass with strict diagnostics and owned Godot process counts zero. Source archive SHA-256 is d80fa163bd1977e74ad2ac0f9a3f1640f93dd4fad11ade69c8a89e18f14a0eca; the seven-row inventory SHA-256 is 980de2713a44c79c0247238e9848e91388c1c095be1aa5cdfea5f4fa08617baf.
  • Step 1 reaches automated_verified. Step 2 alone now owns Save v8, exact Market-2 migration and repeated Market transactions.

P10.2 Step 2 Save V8 And Repeated Market - 2026-08-15

  • Source c3d9aa12805edd4e7f25dcca2865071e417b3c9b adds five isolated P10.2 modules, one shared fixture, two focused tests and tracked UID files. P10.1 source remains byte-unchanged.
  • Save v8 migrates only valid saved Market 2, advances sequence once, binds the v7 commit, preserves exact Run/Company/Coin/equipment/history facts and keeps checksum, backup, rollback, candidate interruption and zero-offline rules.
  • Repeated Market transactions support Recruit/equipment locks, stable refresh, unbounded Company hires, capacity-bounded ordered deployment, Reserve, buy/equip/sell, dismissal preview/confirm and one exact pre-battle checkpoint. Sixteen applied operations each increment once; seven declared rejection branches preserve the complete snapshot.
  • Fresh fixed-source R1 evidence is /private/tmp/abg-p102-c3d9aa1-step2-r1/. Four P10.2 and two P10.1 markers pass with strict diagnostics and owned Godot process counts zero. Source archive SHA-256 is 6ee413a03d497391359a15d295605f91fbe66fbcc8c00432ac45c450ada544b8; the nine-row inventory SHA-256 is 8e585bf988f9f4f915dd45f1fe0a7a5cc4d698ba8878167d8465a9a9f795d777.
  • The 602660-KiB extracted source/state harness copy was removed after the run; the compact evidence root remains 28 KiB and verifies 9/9.
  • Step 2 reaches automated_verified. Step 3 alone now owns battle execution, settlement, progression, casualty/recovery and Reed Ferry restoration.

P10.2 Step 3 Three-Round Battle Arc - 2026-08-15

  • Source 30613bb40a16456d47cd923bea6da1ffca731fca adds isolated battle/settlement services and two focused tests while widening only shared P10.2 state, locked-board carry and fixture support. P10.1 remains unchanged.
  • All nine routes terminate deterministically on the fixed clock. Hold, move, focus and center-guard are preferred by 2/2/3/2 routes; each route has a fixed preferred-versus-wrong outcome counterfactual.
  • Drownseed placement/burst or evade, Mire Medic healing/hindrance shortening, Fogjaw hidden/center/reveal and existing tide/order pressures are causal events. Battle snapshots bind route, board, checkpoint, actors and hashes.
  • Three victories grant exact Coin 24/33/42 and XP 14/20/26, carry HP, preserve locks, grow capacity 4/5/5/6, record four total route rows and restore the Reed Ferry at a Save-v8-stable Market 5.
  • Defeat permanently removes one Recruit, returns equipment, grants bounded Credit and half XP to survivors, preserves the Market board and completes exact-cost recovery without resurrection.
  • Fresh fixed-source R1 evidence is /private/tmp/abg-p102-30613bb-step3-r1/. Six P10.2 and four P10.1 markers pass with strict diagnostics and owned Godot process counts zero. Source archive SHA-256 is 0126fbf6f86ba4e4d30a43d4fcac890db199863216c52054276e9ee9dad7ead8; the 13-row inventory SHA-256 is 6292b9b5f9ab0494a80e7505991b7fd103e243615c62019e1bd2898230361129.
  • The 602744-KiB extracted source/state harness copy was removed after the run; the compact evidence root remains 44 KiB and verifies 13/13.
  • Step 3 reaches automated_verified. Step 4 now owns runtime presentation, parsed touch/drag, normal renders and one fixed recording.

P10.2 Step 4 Continuous Landscape Runtime - 2026-08-16

  • Source 96929580289504e8209b905132b3b40abc5a4c72 adds the isolated P10.2 controller and motion adapter, one narrow runtime/main.gd handoff, four focused runtime programs and tracked UID files. P10.1 source is unchanged and fresh Title still uses its accepted controller.
  • Saved P10.1 Market 2 migrates into Save v8; a direct world-first landscape carries Market 2 through three plan/battle/settlement transitions to Market 5. Line/Reserve swaps, equipment inspection, route posts and all four plans are real targets; capacity changes 4/5/5/6 and the restored Ferry changes hull, deck, posts, mast, flag and lantern before the final handoff.
  • Drownseed countdown/evade/burst, Mire Medic heal/interruption and Fogjaw hidden/reveal/center contact consume authoritative events through the accepted motion system. Enemy entrance, anticipation, contact, damage text, HP change, recovery and terminal settlement remain causal and return to rest.
  • Attempt R1 is append-only INVALID_EVIDENCE_RETENTION because the successful fresh import output was not retained. No R1 execution evidence is reused.
  • Fresh fixed-source R2 is /private/tmp/abg-p102-9692958-step4-r2/evidence/. Fourteen tests, ten normal captures and one MovieWriter run pass with strict diagnostics zero. Touch flow records Touch 21 / Drag 1; recording records Touch 5 / Drag 1; fallback/direct are zero.
  • The 844x390, 30 FPS recording has 662 frames, lasts 22.066667s and has zero black intervals. MP4 SHA-256 is 647615ba8dde9669cd9903ac33698e66e2df7472c37e228b838c6f5636ad83c6. The 40-row inventory verifies completely; inventory SHA-256 is 22a8f683693a6b4c304b34d3efb74f0fb3c668749214bdc3952cba4398ccc3d5.
  • Step 4 reaches runtime_verified + agent_visual_reviewed. Step 5 alone now owns five profiles, decision timestamps, anti-dominance and the complete Save-v8/layout candidate matrix. Human, H5, device and release gates remain open or frozen.

P10.2 Step 5 Profiles And Candidate - 2026-08-16

  • Verification source f0ae25d081ff8188ecb907759c7b74cb7015e92e adds only five-profile and candidate-matrix tests plus tracked UID files. Product runtime bytes remain unchanged from Step-4 source 9692958.
  • Five distinct policies record 85 decisions across all nine routes and four plans. The maximum nonbattle decision gap is 4.0s; nine fixed counterfactuals reverse outcomes. Recovery retains one permanent casualty, returning performs six exact Save-v8 reloads and all profiles reach Market 5 without negative Coin, resurrection or offline rewards.
  • The candidate matrix roundtrips nine Save-v8 states and normally renders 32 combinations of four viewports, two locales, two text scales and two accessibility profiles. Controls remain at least 48px; panels and cards are zero.
  • Attempt R1 is append-only INVALID_EVIDENCE_FINALIZATION_POLICY because execution control rejected its cleanup command before execution. Its 24-row inventory SHA-256 is 89ec98afe306787aa73a56cc60c226b3536b7ce9739d2493f93dd8ee56375677; no R1 execution evidence is reused.
  • Fresh fixed-source R2 is /private/tmp/abg-p102-f0ae25d-step5-r2/evidence/. Sixteen tests and one normal-render matrix pass with strict diagnostics and owned processes zero. The 26-row inventory verifies completely; inventory SHA-256 is 263ebba5510979ecb37eeb925acf25c8acc2adeb3943b68d520d40ae2c6e1719.
  • Step 5 reaches simulation_verified + runtime_verified; Step-4 agent visual evidence remains source-bound because no product runtime byte changed. Owner understanding, fun, visual/listening acceptance, H5, device, package, store and release remain open or frozen.