docs: open P9.0R4 second cycle

This commit is contained in:
2026-08-13 01:23:31 +08:00
parent 232e3a0a45
commit 05cc64279d
5 changed files with 236 additions and 6 deletions
@@ -0,0 +1,89 @@
# Phase 9.0R4 Second-Cycle Adaptation Runtime Contract
## State Machine
```text
first_battle
-> first_result_diagnosis_and_coin
-> adaptation_unselected
-> adaptation_selected
-> second_battle
-> second_result
```
`first_result_diagnosis_and_coin` commits the existing Steady `B0/R1/Q0`
victory Coin exactly once. Viewing or leaving any page does not mutate Coin.
The adaptation is reversible until `Begin second battle`; after that it is
locked for the encounter.
## First Result
The cause line is derived only from committed P9.0R3 facts:
- Hearthguard: first strike `-18`, explicitly blocked;
- Wayrunner: first strike `-12`, explicitly evaded/reduced;
- Farstring: one rear hit `-36` opened the finish;
- Kindhand: one heal `+12`, capped by current front HP.
The player sees the cause before `+20 Coin`, current front HP and the next
action. The result does not claim casualty, reward draft, Market or persistence.
## Adaptation Choice
| Stable ID | Player-facing promise | Tradeoff | Recommended when |
|---|---|---|---|
| `EQ-002` | Anchor the front against the veteran's first push; first hit becomes `-10` | The next front basic resolves after the rear action | No rear healer is present or survival is preferred |
| `EQ-061` | Resolve the first front basic before the veteran strikes | Full `-30` strike lands and the second front basic is delayed | Kindhand can recover the hit or speed is preferred |
Recommendation is explanatory, never selection. Both buttons remain equally
reachable and the selected state can be changed before commit.
## Second Battle Event Map
### `EQ-002` safer route
1. both lines enter;
2. veteran telegraphs a pushing strike;
3. Frontpin resists displacement and the front commits `100 -> 90` (`-10`);
4. Farstring commits enemy `100 -> 64` (`-36`) or Kindhand commits front
`90 -> 100` (`+10`, exact capped heal);
5. delayed front/rear coordination commits enemy to `34`;
6. finisher commits enemy `34 -> 0`.
### `EQ-061` faster route
1. both lines enter;
2. Early Bell advances the first front basic and commits enemy `100 -> 72`
(`-28`) before the strike;
3. the full pushing strike commits front `100 -> 70` (`-30`);
4. Farstring commits enemy `72 -> 36` (`-36`) or Kindhand commits front
`70 -> 82` (`+12`);
5. the delayed second front basic commits enemy to `24`;
6. finisher commits enemy to `0`.
Every HP mutation emits one matching P9.0R3 feedback payload. Non-mutating
telegraph/recovery states emit no number. Existing animations may be retimed or
reordered but their source frames cannot change.
## Presentation
- Result and preparation remain battlefield scenes, not receipt tables or
nested cards.
- The two loan choices read as physical tactical plinths with a familiar shield
and bell/tempo symbol, exact effect, cost `借用/Loan`, and one tradeoff.
- The known threat and current two-person squad stay visible with the choice.
- Second result leads with `更稳/Safer` or `更快/Faster`, then shows exact front
HP and elapsed time. It never says one route is globally best.
- `844x390` is the primary fast-preview viewport; content must not require
scrolling. Portrait retains the rotate notice.
## Preview Evidence
- Focused test covers once-only Coin, no preselection, selection revision,
commit lock, both route event maps, exact HP, distinct elapsed time, Restart
and Home cleanup.
- One normal-render `844x390` Simplified-Chinese route captures first result,
unselected adaptation, selected adaptation, second battle and second result.
- Logs are scanned for script, parse/resource/import, assertion, ObjectDB and
cleanup markers.
- The exported H5 is labeled preview. It is not immutable candidate evidence.