232 lines
14 KiB
Markdown
232 lines
14 KiB
Markdown
# P9.8 First Contract Completion Implementation Plan
|
|
|
|
> Status: `COMPLETE`
|
|
> Active step: `COMPLETE`
|
|
> Baseline: `dc5a74ebb4b59d944fe303c80fb3410ba79fd9b6`
|
|
> Goal: `docs/goals/PHASE9_8_FIRST_CONTRACT_COMPLETION_GOAL.md`
|
|
> Contract: `docs/runtime/PHASE9_8_FIRST_CONTRACT_COMPLETION_CONTRACT.md`
|
|
|
|
## Player-Visible Stopping Point
|
|
|
|
Starting from the exact P9.7 saved Market 8, complete Rounds 8-12, choose one
|
|
Artifact, promote one eligible Recruit, prepare for and fight The Many-Paned
|
|
Stag, recover from one viable boss defeat, and atomically close the Contract
|
|
into a persistent Windglass clear/Renown/Record result.
|
|
|
|
No Owner H5 review is requested before Step 7 closes. Internal steps are
|
|
verified, committed and pushed without pausing for routine authorization.
|
|
|
|
## Ordered Steps
|
|
|
|
| Step | Status | Player outcome | Commit boundary |
|
|
|---|---|---|---|
|
|
| P9.8-STEP-0 Contract | `COMPLETE` | Exact first-Contract scope and terminal are frozen. | Goal, contract, plan, checkpoint and ledger pushed. |
|
|
| P9.8-STEP-1 Content authority | `COMPLETE` | Markets 8-12, Artifact, promotion and boss objects resolve from deterministic validated data. | Source `3a26827`; content/schema tests and P9.7 regressions pass strict-clean. |
|
|
| P9.8-STEP-2 Contract state and save | `COMPLETE` | P9.7 save migrates to v3 and all new decisions commit atomically. | Source `e8b5817`; domain/persistence and P9.7 regressions pass strict-clean. |
|
|
| P9.8-STEP-3 Rounds 8-12 | `COMPLETE` | Five escalating Rounds reach capacity 10 and fixed Boss Muster. | Source `6698c09`; round/counterfactual and P9.7 regressions pass strict-clean. |
|
|
| P9.8-STEP-4 Artifact and promotion | `COMPLETE` | One shared Artifact and one Recruit promotion visibly change battle grammar. | Source `a10ae81`; all 20 effects and branch counterfactuals pass strict-clean. |
|
|
| P9.8-STEP-5 Boss and run close | `COMPLETE` | Both boss plans, defeat/recovery and exactly-once persistent clear work. | Source `71c0900`; boss/save/run-close and regressions pass strict-clean. |
|
|
| P9.8-STEP-6 Complete runtime evidence | `COMPLETE` | The entire Contract is playable by touch with readable motion and results. | Source `5757597`; full flow, five profiles, layouts, recording and regression pass. |
|
|
| P9.8-STEP-7 H5 and closure | `COMPLETE` | One fresh cached H5 exposes the complete Contract for Owner review. | Source `5757597`; Gallery `0h_nSaLaL6h0`; cached remote delivery verified. |
|
|
|
|
## Step Contracts
|
|
|
|
### P9.8-STEP-1 CONTENT AUTHORITY
|
|
|
|
```text
|
|
PLAYER OUTCOME: Every new Market object, route, Artifact, promotion and boss
|
|
preview has a stable readable identity and deterministic consequence.
|
|
IN SCOPE: P9.8 content registry; Markets 8-12; fifteen route offers; bounded
|
|
Recruit/equipment offers; three Artifact rows; reachable promotion pairs;
|
|
Windglass enemy compositions; Stag definition; localization; validation.
|
|
OUT OF SCOPE: state mutation, UI, save, runtime and H5.
|
|
OWNED FILES: runtime/content/p9_8_content.gd plus UID;
|
|
runtime/tests/p9_8/content_authority_test.gd plus UID; durable status.
|
|
ACCEPTANCE: IDs/references/board shapes/rewards/capacities/locale/hash are exact;
|
|
malformed fixtures reject; P9.7 content and settlement regressions pass.
|
|
COMMIT: focused source/test/status push before Step 2.
|
|
```
|
|
|
|
### P9.8-STEP-2 CONTRACT STATE AND SAVE
|
|
|
|
```text
|
|
PLAYER OUTCOME: Existing progress resumes truthfully and every new choice is
|
|
interruption-safe, idempotent and inspectable.
|
|
IN SCOPE: isolated P9.8 state/service/save v3; v2 migration; Artifact/promotion/
|
|
Boss Muster/clear drafts and receipts; complete snapshot rejection boundaries.
|
|
OUT OF SCOPE: battle simulation and presentation.
|
|
ACCEPTANCE: successful operations increment once; rejected operations preserve
|
|
every field; v2 migration, corruption, backup, rollback, interruption,
|
|
duplicate claim and zero-offline checks pass with P9.7 regressions.
|
|
COMMIT: focused domain/persistence/status push.
|
|
```
|
|
|
|
### P9.8-STEP-3 ROUNDS 8-12
|
|
|
|
```text
|
|
PLAYER OUTCOME: Five escalating preparation/battle cycles reach a fixed Boss
|
|
Muster, with capacity 8/9/10 changing the legal Company plan.
|
|
IN SCOPE: content-fed compositions and mechanics; fifteen routes; reward/XP/
|
|
survival/capacity settlement; distinct counterfactuals; boss entry.
|
|
OUT OF SCOPE: Artifact/promotion rule application and presentation.
|
|
ACCEPTANCE: all routes terminate under 150 seconds; five exact state-dependent
|
|
choice boundaries hold; settlement/reload/duplicate checks and P9.7 pass.
|
|
COMMIT: focused battle/status push.
|
|
```
|
|
|
|
### P9.8-STEP-4 ARTIFACT AND PROMOTION
|
|
|
|
```text
|
|
PLAYER OUTCOME: The player makes two understandable build decisions that alter
|
|
shared and individual action grammar before the boss.
|
|
IN SCOPE: deterministic Artifact draft/commit; eligible promotion preview/
|
|
confirm; preserved identity/equipment/HP/order; battle effects and negatives.
|
|
OUT OF SCOPE: boss battle and final UI polish.
|
|
ACCEPTANCE: at least two rational Artifact states and two promotion directions;
|
|
ineligible/duplicate/cancel/reload paths exact; prior round paths pass.
|
|
COMMIT: focused systems/status push.
|
|
```
|
|
|
|
### P9.8-STEP-5 BOSS AND RUN CLOSE
|
|
|
|
```text
|
|
PLAYER OUTCOME: The Stag visibly screens, rotates and sweeps; rotate and brace
|
|
plans both work, defeat has a fair recovery, and victory permanently clears
|
|
the Contract once.
|
|
IN SCOPE: boss state/service; pane/sweep/phase events; plan commit; defeat/
|
|
recovery; pending clear; Renown/Record/discovery settlement; save retries.
|
|
OUT OF SCOPE: final broad presentation and H5.
|
|
ACCEPTANCE: both plans win in their intended state and lose in a counter-state;
|
|
timeout bounded; boss recovery preserves authority; clear retry is idempotent;
|
|
run-only state clears atomically; full P9.3-P9.7 regressions pass.
|
|
COMMIT: focused boss/status push.
|
|
```
|
|
|
|
### P9.8-STEP-6 COMPLETE RUNTIME EVIDENCE
|
|
|
|
```text
|
|
PLAYER OUTCOME: One uninterrupted landscape playthrough communicates every
|
|
Market, build, boss and persistent-result decision through the game world.
|
|
IN SCOPE: isolated P9.8 controller and main handoff; touch/drag; animation and
|
|
combat feedback; five profiles; layouts/locales/accessibility; recording.
|
|
OUT OF SCOPE: final production art/audio, packaging and release.
|
|
ACCEPTANCE: parsed touch/drag with fallback/direct zero; opening through clear
|
|
and defeat/recovery flows; <=30s decision gaps; required viewport matrix;
|
|
20-30s motion recording; strict diagnostics/process cleanup zero.
|
|
COMMIT: complete source-bound evidence/status push.
|
|
```
|
|
|
|
### P9.8-STEP-7 H5 AND CLOSURE
|
|
|
|
```text
|
|
PLAYER OUTCOME: The Owner can test the complete first Contract 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.
|
|
ACCEPTANCE: exact source binding; tests/docs/evidence absent from PCK; remote
|
|
bytes/MIME/cache/304 pass; clean upstream repository and owned processes zero.
|
|
COMMIT: docs-only closure after immutable delivery.
|
|
```
|
|
|
|
## Issue Register
|
|
|
|
| ID | Status | Finding |
|
|
|---|---|---|
|
|
| P98-I01 | `RESOLVED_IN_CONTRACT` | Five more ordinary fights alone would not complete the product loop; Artifact, promotion, Boss Muster, boss recovery and persistent close are mandatory. |
|
|
| P98-I02 | `RESOLVED_IN_PLAN` | P9.7 state clamps at Round 7/Market 8. P9.8 composes a new versioned layer instead of silently weakening accepted invariants. |
|
|
| P98-I03 | `OPEN_FINAL_ART_AUDIO` | Existing rigs, palette variants and synthesized feedback remain temporary. Final profession/enemy art and music/SFX are outside this gameplay milestone. |
|
|
| P98-I04 | `OPEN_HUMAN` | Agent evidence cannot prove understanding, fun, visual acceptance or willingness to continue. |
|
|
| P98-I05 | `RESOLVED_AUTHORITY_FORWARD` | The activation draft accidentally assigned new effects to existing Artifact IDs. Contract r1 now binds `AR-001`, `AR-002` and `AR-007` to their canonical catalog rules before product implementation. |
|
|
| P98-I06 | `INHERITED_P9_6_LAYOUT` | Unchanged P9.6 English-130% layout authority expands `P97EnterMarketButton` to 270px at x=612 in an 844px viewport. Accepted source `71c0900` and P9.8 source fail identically; P9.8 does not change or waive that frozen earlier screen. |
|
|
|
|
## Current Evidence
|
|
|
|
- Baseline `dc5a74e` is clean and upstream-equal.
|
|
- Accepted P9.7 product source is `a77400a`.
|
|
- P9.7 formal evidence and Gallery item `pv90lquELNh_` remain immutable.
|
|
- Step 1 source `3a26827` adds 5 Market boards, 15 routes, 20 Recruit
|
|
candidates, 8 equipment rows, 3 canonical Artifacts, 20 reachable promotion
|
|
branches, all 12 Windglass ordinary/elite enemies and `BO-R1-01`.
|
|
- Fresh Git-archive evidence at `/private/tmp/abg-p98-3a26827-step1-r1/`
|
|
passes import, P9.8 content, P9.7 content and P9.7 settlement strict-clean.
|
|
Inventory SHA-256 is
|
|
`891818839515fff0b1a75540e7eaea024dfcb8e288758f72a8dff34a0ab329a6`
|
|
and covers 5/5 entries.
|
|
- Step 2 source `e8b5817` adds isolated P9.8 state/service/save-v3 modules.
|
|
Exact P9.7 Market 8 migrates with Company, inventory, HP and histories intact;
|
|
v0/v1 remain on preserved P9.7 authority, Artifact and promotion transactions
|
|
are idempotent, and interrupted v3 encounters restore the exact pre-battle
|
|
Market with zero offline rewards.
|
|
- Fresh Git-archive evidence at `/private/tmp/abg-p98-e8b5817-step2-r1/`
|
|
passes six P9.8/P9.7 markers with strict diagnostics zero. Inventory SHA-256
|
|
is `f76903db141a6e11d69cfa6b1999912c6e28207105abfb05e25d856c024fea9c`
|
|
and covers 8/8 entries.
|
|
- Step 3 source `6698c09` completes Rounds 8-12, exact capacity progression
|
|
`8/8/9/9/10`, deterministic Company growth, fifteen bounded routes, five
|
|
explicit state-dependent counterfactuals, defeat/recovery and a fixed-hash
|
|
`BO-R1-01` Boss Muster. The separate `contract_phase` preserves P9.7's typed
|
|
Market/Encounter phase instead of weakening it.
|
|
- Fresh Git-archive evidence at `/private/tmp/abg-p98-6698c09-step3-r1/`
|
|
passes nine P9.8/P9.7 markers and strict diagnostics zero. Inventory SHA-256
|
|
is `483715c7f98cbfe4fa6cdf4a95b19305fcf6911ca91c7ba5136b4edea5a49394`
|
|
and covers 11/11 entries.
|
|
- Step 4 source `a10ae81` applies canonical Artifact rules only from the next
|
|
Market and makes the first eligible promotion mandatory before another route.
|
|
All twenty reachable branches preserve identity/HP/equipment/order and emit a
|
|
distinct battle rule; four opposed pairs have different event/timing/HP
|
|
consequences.
|
|
- Fresh Git-archive evidence at `/private/tmp/abg-p98-a10ae81-step4-r1/`
|
|
passes ten P9.8/P9.7 markers with strict diagnostics zero. Inventory SHA-256
|
|
is `df738b41c8f0752b8a8f14ffc6c399f4d8086c053ab32ee8d54572d9a9095cc4`
|
|
and covers 12/12 entries.
|
|
- Step 5 source `71c0900` adds the isolated Many-Paned Stag state/battle/close
|
|
layer. A healthy mixed Company wins by rotate at tick 166 or brace at tick
|
|
202; brace preserves 48 more HP, while rotate is faster. Single-Recruit
|
|
defeat reopens the identical boss for 14 Coin. Pending clear, interruption,
|
|
exact 3 Renown, one twelve-Round Company Record and run-only cleanup are
|
|
idempotent.
|
|
- Fresh Git-archive evidence at `/private/tmp/abg-p98-71c0900-step5-r1/`
|
|
passes eleven P9.8/P9.7 markers with strict diagnostics zero. Inventory
|
|
SHA-256 is
|
|
`0840b8e19552fa759cfade9f7abf220cba64eb61126cf673cec7f8663d549c66`
|
|
and covers 13/13 entries.
|
|
- Step 6 source `5757597` connects the exact P9.7 Relay threshold to P9.8 with
|
|
one explicit parsed-touch continuation, prioritizes valid save-v3 resume and
|
|
presents Artifact, promotion, Markets 8-12, final Rally, both Stag plans,
|
|
ordinary/Boss combat feedback, defeat recovery and persistent close in the
|
|
accepted landscape world.
|
|
- The complete parsed-input flow records 42 Touch and one Drag with fallback
|
|
and direct action counts zero. Five profiles retain 97 decision timestamps,
|
|
longest gap 18 seconds, both Artifact/promotion branches, one defeat/recovery,
|
|
one interruption reload and both Boss plans.
|
|
- Fresh fixed-source evidence is
|
|
`/private/tmp/abg-p98-5757597-step6-r4/`. Twelve P9.8 logs and 24 executable
|
|
P9.3-P9.7 regressions pass strict-clean; the one unchanged P9.6 layout failure
|
|
is byte-unchanged and reproduces identically at accepted source `71c0900`.
|
|
Nine normal frames cover four viewports, both locales, 130% text, reduced
|
|
motion, mute and low power. The `844x390`, 30 FPS MovieWriter recording is
|
|
25.4 seconds/762 frames with black intervals zero. The 66-row inventory
|
|
SHA-256 is
|
|
`c1224db4726c8c29476df3c5dd0711bf8507b09fbe13b60c58eb48d27fecb677`.
|
|
- R1 is append-only `INVALID_PREFLIGHT_SELF_MATCH`, R2 is append-only
|
|
`INVALID_RECORDING_DIMENSIONS`, and R3 is append-only
|
|
`INVALID_AUDIT_COMMAND`; none contributes to the R4 judgment.
|
|
- Step 7 Web R2 exports nine runtime-only files from exact source `5757597`.
|
|
Its PCK contains the P9.8 controller/boss/save/content authority and zero
|
|
test, docs, evidence or build path. The export manifest SHA-256 is
|
|
`20fdaff799f8f85b33fd292a9568ed2b0f6d99933c4dedeb8e52f165876ff766`.
|
|
- Private Gallery item `0h_nSaLaL6h0` preserves all nine source bytes. HTML
|
|
remains short-cached; runtime files use one-year private immutable cache,
|
|
ETag and `Vary: Accept-Encoding`. Four gzip representations decode to the
|
|
originals and all nine conditional requests return `304`.
|
|
- Gallery R2 evidence is `/private/tmp/abg-p98-5757597-gallery-r2/`; its
|
|
inventory SHA-256 is
|
|
`e73a583f70e4cce9e1d867739a4117c642983f0b77d2a9ec974fcc7c94a8e338`.
|
|
Web R1 `INVALID_EXPORT_TEMPLATE_ENV` and Gallery R1
|
|
`INVALID_REMOTE_TRANSFER_SESSION` remain append-only and contribute no
|
|
product judgment.
|
|
- P9.8 is `runtime_verified` and `agent_visual_reviewed`, with a cached H5 ready
|
|
for Owner play. Human understanding/fun/visual/listening, browser Canvas,
|
|
physical device, native packaging, stores and release remain open.
|