feedback5 WH: golden family diy — 6 battles of 自选 pieces through the BattleSpec path: 推进之王 in every form of tiers 5 / 6 (normal; elite with no module, SOL-X, SOL-Y) under each skill, and every kitted prototype at its locked selection, normal and elite; fast subset diy-001 (operator kit) and diy-003 (prototypes)

A new family (test/golden/diy.json): no existing scenario moved (roster 49, bonds 46, fields 22, matches 16 identical); determinism checked with --twice.
This commit is contained in:
sganggs committed 2026-10-05 19:57:55 +08:00
1 parent ee74401901
commit 42920c62c5
3 files changed
+389 -4

No files matched your search

+3 -2
View File
@@ -7,7 +7,7 @@ through.
- `tools/golden.mjs` builds the corpus from `data/*.json` (fixed order, fixed seeds) and reduces every scenario to a
digest. Its header documents the families and the digest fields.
- `test/golden/<family>.json` hold the digests (`roster`, `bonds`, `fields`, `matches`).
- `test/golden/<family>.json` hold the digests (`roster`, `bonds`, `fields`, `matches`, `diy`).
- `test/golden.test.js` recomputes them and compares. On a mismatch it prints the scenario, the field and old → new.
## The corpus
@@ -18,6 +18,7 @@ through.
| `bonds` | 46 battles: every bond at its activation threshold (1 layer) and at its top tier (999 layers) |
| `fields` | 22 battles: every Final Assault / Hidden Core leader on a pair and a solo template (shared pool, 200 s cap) and the 联防 field with 1 and 2 helpers on its own map (carried HP / SP, a knocked-out operator, two leakers' enemies) |
| `matches` | 16 bot-only matches to the end in virtual time: solo 标准 / 险境 / 绝境 / 终极 × 2 seeds, co-op 2 / 3 / 4, one server-run combat match, two runs boosted to the Hidden Core |
| `diy` | 6 battles of 自选 pieces (a DIY slot with its `diy` pick, `shared/diy.js`): every owned 6★ with an operator kit (`kits/index.js OPERATOR_KITS` — 推进之王 so far) in each form of tiers 5 and 6 (normal; elite with no module and with each module) under each skill, then every prototype pick with a kit at its locked selection, normal and elite, 12 per battle against the round's real wave; a new operator kit adds its scenarios |
Battles go through the production BattleSpec path (`server/sim/spec.js`, as browsers and the server's headless fields
run them); matches construct `Match` directly with a `VirtualScheduler`. Every option is explicit, so a change to a
@@ -29,7 +30,7 @@ within a tick (they are counted, not hashed) and wall-clock time. Damage / heali
to 2 decimals.
`npm test` runs the fast subset (the scenarios marked `"fast": true`: every chess record with its default loadout,
every stage and every non-leader enemy kind, every bond at its top tier, six fields, five matches — 53 of the 133). `GOLDEN_FULL=1` checks everything.
every stage and every non-leader enemy kind, every bond at its top tier, six fields, five matches, the first 自选 battle of the operator kits and of the prototypes — 55 of the 139). `GOLDEN_FULL=1` checks everything.
## Workflow