No description
Find a file
Joey Yakimowich-Payne db11a8f2d6
feat(thressgame-100): epic complete \u2014 F1-F4 all APPROVE
Final verification wave for the thressgame-100 epic complete. All 4
reviewers rendered APPROVE verdicts. Epic ACCEPTED.

F1 ORACLE REVIEW \u2014 APPROVE
  All 8 architectural criteria PASS:
  - architectural integrity, determinism preservation, topology opt-in
    safety, cascade-loop safety, economy paradigm-break containment,
    coverage accounting honesty, recipe simplification honesty, no
    silent scope creep
  - 5 non-blocking observations documented for future hardening

F2 MANUAL QA \u2014 APPROVE
  - 53/53 wave e2e tests green (W1-W5 specs, all via run-pw.sh against
    docker compose dev stack)
  - 12/12 templates regression green (1 pre-existing flake on
    templates-thressgame:687, unrelated to epic; passed on retry)
  - hide-when-zero verified (score chips absent in pure-chess games)
  - 70 recipes confirmed in Templates modal
  - 8 preset stubs verified with amber-border distinguisher

F3 TEST-SUITE QUALITY \u2014 APPROVE
  - 3270 tests / exit 0
  - 0 fixmes / 0 skips / 0 .only
  - +329 test delta (2941 \u2192 3270) verified exact
  - All 20+ new test files report N pass / 0 fail
  - 0 flake / 0 retry mentions
  - Determinism property tests verified (W2 + W5 N=100 byte-identical)
  - Perf budget held (countdowns p99=24.5ms vs 150ms = 83.8 % margin)
  - Fixed 1 eslint false-positive in countdowns-perf.test.ts:187
    (changed inline disable comment to disable/enable block to
    properly suppress no-console on lines 188-190)

F4 SCOPE FIDELITY \u2014 APPROVE
  - 70 locked recipe IDs match plan exactly
  - 9 new primitive files exist
  - registry-count = 59 (progression 50\u219252\u219256\u219259 locked)
  - 0 out-of-scope creep (MAX_RECURSION_DEPTH=3 unchanged, no i18n,
    no V4, files confined to approved directories)
  - WONT_FIX manifest 151 lines documenting 6 rules
  - RULES.md cross-ref section at line 498 with 8-row table
  - User directive satisfied: 'Do 85%' delivered 100% of effective
    denominator; 'no time/cost limit' \u2014 deliberate ~3-hour pacing;
    'no backward-compat' \u2014 decision J applied across all waves;
    'just fucking get it all done' \u2014 all 6 waves landed
  - All 5 wave evidence files contain F1-F4 placeholders

EPIC FINAL STATE:
  Plan target:       50/51 = 98 % modifier + 8 preset stubs + 6
                     WONT_FIX = 100 % accounted of raw 65 rules
  Actual delivery:   IDENTICAL to plan
  Recipe count:      70 (was 23, +47)
  New primitives:    11 + 6 resolver shapes
  Tests:             3270 passing (was 2941, +329)
  E2E specs:         5 wave-specific + 1 templates regression =
                     53/53 wave + 12/12 regression
  Determinism:       N=100 byte-identical for W2 + W5 subsystems
  Perf:              countdowns p99 = 24.5ms, well under budget

Epic ACCEPTED.

Plan:               .sisyphus/plans/thressgame-100.md
Notepads:           .sisyphus/notepads/thressgame-100/
Final evidence:     .sisyphus/evidence/thressgame-100-FINAL.txt (gitignored)
Wave evidence:      .sisyphus/evidence/thressgame-100-wave{1,2,3,4,5}.txt
WONT_FIX manifest:  packages/chess/docs/THRESSGAME_WONT_FIX.md
RULES.md cross-ref: packages/chess/RULES.md\u00a7'Cross-References' (line 498)
2026-04-27 17:46:56 -06:00
.github/workflows chore(root): scaffold monorepo — Phase 0 complete 2026-04-16 13:32:21 -06:00
.sisyphus feat(thressgame-100): epic complete \u2014 F1-F4 all APPROVE 2026-04-27 17:46:56 -06:00
docs feat(ui): AttrCombobox declare vs. consume semantics 2026-04-21 13:07:27 -06:00
packages feat(thressgame-100): epic complete \u2014 F1-F4 all APPROVE 2026-04-27 17:46:56 -06:00
scripts feat(rete): add replay engine + state-hash determinism verifier (P3.3) 2026-04-16 15:25:13 -06:00
.dockerignore infra: docker compose dev + production Dockerfiles 2026-04-27 13:44:17 -06:00
.gitignore chore(sisyphus): Rule Variants Final Verification Wave — all reviewers APPROVE 2026-04-21 10:15:18 -06:00
docker-compose.dev.yml infra: docker compose dev + production Dockerfiles 2026-04-27 13:44:17 -06:00
docker-compose.yml infra: docker compose dev + production Dockerfiles 2026-04-27 13:44:17 -06:00
Dockerfile.dev infra: docker compose dev + production Dockerfiles 2026-04-27 13:44:17 -06:00
eslint.config.js feat(engine): damage-resistance modifier descriptor 2026-04-18 22:22:31 -06:00
lefthook.yml chore(root): scaffold monorepo — Phase 0 complete 2026-04-16 13:32:21 -06:00
LICENSE chore(root): scaffold monorepo — Phase 0 complete 2026-04-16 13:32:21 -06:00
package.json feat(rete): add replay engine + state-hash determinism verifier (P3.3) 2026-04-16 15:25:13 -06:00
playwright.config.ts fix(rete): inject clock into EventLog; use tsc for DTS; fix cycle.test.ts private access; add Playwright worker limit 2026-04-16 18:25:49 -06:00
README.md chore(root): scaffold monorepo — Phase 0 complete 2026-04-16 13:32:21 -06:00
tsconfig.base.json chore(root): scaffold monorepo — Phase 0 complete 2026-04-16 13:32:21 -06:00
tsconfig.json chore(root): scaffold monorepo — Phase 0 complete 2026-04-16 13:32:21 -06:00
vitest.workspace.ts chore(root): scaffold monorepo — Phase 0 complete 2026-04-16 13:32:21 -06:00

@paratype

A Doorenbos-style Rete II rules engine for TypeScript games, with an authoritative WebSocket chess demo.

Packages

Docs

Getting Started

bun install && bun run check