No description
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)
|
||
|---|---|---|
| .github/workflows | ||
| .sisyphus | ||
| docs | ||
| packages | ||
| scripts | ||
| .dockerignore | ||
| .gitignore | ||
| docker-compose.dev.yml | ||
| docker-compose.yml | ||
| Dockerfile.dev | ||
| eslint.config.js | ||
| lefthook.yml | ||
| LICENSE | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| tsconfig.base.json | ||
| tsconfig.json | ||
| vitest.workspace.ts | ||
@paratype
A Doorenbos-style Rete II rules engine for TypeScript games, with an authoritative WebSocket chess demo.
Packages
packages/rete— Rete II engine corepackages/chess— Browser chess demo (React + Vite)packages/server— Authoritative Bun WebSocket server
Docs
- SPEC.md — Engine specification
- PHASES.md — Development phases & perf budgets
- RULES.md — Chess rule presets
- PROTOCOL.md — WebSocket message protocol
Getting Started
bun install && bun run check