Consolidate current readiness and existing rule decisions, preserve selective subagents and automatic verified Git pushes, and record the efficiency pilot. Add source-bound compact checks, private saved-game snapshots/online backups, and bounded HTTP seat-restoration checks with 15 meaningful regressions. At the user's explicit request, archive and clear 3,644 old local rooms and related records while retaining schema/migrations; preserve future games from a fresh empty baseline. Private backups and credentials are outside Git. Validation: npm run check passes types, lint and all 4,177 offline tests. Full report: 20260913-efficiency-check-3, 130.147 seconds; source fingerprint 344ce1d44475b0cd4ff10a915f28331cb4e2fcacbc7595636fbaa645c0568f64. Two earlier broad attempts stopped at new type/lint errors before tests; both were fixed. Independent review found cancellation falsely passing; SIGINT/SIGTERM regressions and review confirm the fix. Documentation links, example test selection, private backup integrity and empty baseline verified. No app/build/dependency/HTTP implementation changed; no production build, HTTP suite, browser acceptance or AI calibration claimed for this checkpoint. The full game goal and existing release gates remain unfinished.
4.2 KiB
4.2 KiB
Working on Dune
Unofficial Dune board game: React 19, TypeScript, Vinext/Vite, Cloudflare
Workers and D1. Use npm and the checked-in lockfile; Node >=22.13 is required
for the in-memory SQLite tests. tsx is a pinned development dependency.
Start small
- Read
README.mdand this guide first. Seedocs/DEVELOPMENT.mdfor the architecture map and focused verification commands. - Read
docs/CURRENT_STATUS.mdfor current gates anddocs/RULE_DECISIONS.mdfor existing rulings before reopening research. - Run
git status --shortbefore editing; preserve other work. - Search the relevant feature in
game/,components/,tests/, anddocs/. Userg -nand bounded reads forgame/engine.tsandcomponents/game-table.tsx; both are large orchestration files. docs/IMPLEMENTATION_STATUS.mdis a historical evidence log, newest first. Read its opening checkpoint and the relevant feature document rather than loading the entire log. Verify historical claims against current code/tests.- Do not read
github.mdfor routine development: it is ignored private local credential material. Do not put secrets in logs or tracked files.
Implement and verify
- Keep rule calculations/validation in focused
game/modules; integrate them through the engine, player view, bots and UI as the feature requires. - Preserve rejected-action immutability, physical card/force custody, private information boundaries, and JSON save/restore behavior. Reuse shared rule quotes instead of independently duplicating legality in bots or components.
- Add meaningful regressions to
tests/**/*.test.ts; discovery is automatic. HTTP tests must start with// @dune-suite integration. Tests importingnode:sqliteare classified as in-memory recovery tests automatically. - During iteration:
npm test -- <filename-fragment>; multiple fragments form a union. Use--listto inspect selection and--name <regex>to narrow cases. A filename typo fails rather than silently passing an empty suite. - Before handing off code changes:
npm run check(types, lint, offline tests). Runnpm run buildfor app/build/dependency changes. Runnpm run test:integrationagainst a development server for HTTP, auth or persistence changes. Documentation-only edits need link/command review. - Extend testing when failures or changed behavior justify it. Do not run AI calibration or browser acceptance for unrelated maintenance changes.
- If a sandbox blocks test subprocess pipes with
EPERM, rerun the exact check with approved subprocess permissions. Do not disable isolation or skip tests to obtain a green result; the runner self-test checks real failure propagation. - Report actual check results and limitations. Passing focused tests does not certify a complete faction, expansion or rules mode; preserve release gates.
Preserve development state
- The user-authorized 2026-09-13 reset cleared old local games once; see
docs/VERIFICATION_WORKFLOW.md. Preserve all games created afterward. - Keep
.wrangler/stateand all saved games. Never reset a database to fix a test, migration, connection or gameplay problem. Migrations are additive. - Reuse a running dev server. Warn before interrupting human play, defer to a safe point, and verify restoration after a necessary restart. No recurring maintenance automation is installed; do not recreate it without a request.
.openai/hosting.jsonidentifies the existing Sites project. Preserve it. Follow the applicable Sites skills for site work; publication has existing completion and verification gates documented inREADME.md.- Keep generated builds, caches and editor backups out of version control. Avoid mass formatting, unrelated dependency updates and broad engine rewrites.
Efficient checkpoints
- Use
docs/VERIFICATION_WORKFLOW.mdfor compact source-bound check reports and private saved-game/seat checks. Keep artifacts outside the checkout. - Use subagents selectively for bounded independent tasks and complex reviews; they remain explicitly authorized. Share concise briefs and file ownership.
- Review, verify, commit and push completed checkpoints automatically under “Push all from now on.” Confirm push success; never force-push or expose secrets.