Thanks for your interest in contributing! This document covers the process and standards for contributing to this project.
git clone https://github.com/josephmqiu/game-theory-model.git
cd game-theory-model
bun install
bun run electron:devUse bun run dev when you only need the renderer/browser development surface. Use bun run electron:dev for the actual desktop product path.
bun run typecheck # Should pass with no errors
bun run test # Should pass all testsUse the bug report template. Include:
- App version (from
package.json, the packaged app version, or the macOS native About panel if applicable) - Platform (macOS, Windows, Linux, or renderer dev server if the bug is development-only)
- Steps to reproduce
- Expected vs actual behavior
Use the feature request template.
- Fork the repository
- Create a feature branch from
main - Make your changes
- Run checks:
bun run typecheck && bun run test - Submit a pull request
- Keep PRs focused — one feature or fix per PR
- Follow existing code conventions (see below)
- Include tests for new behavior
- Fill out the PR template
- Files:
domain-rolepattern (e.g.,canvas-store.ts,entity-layout.ts) - Stores:
<domain>-store(e.g.,canvas-store,document-store) - Services:
<domain>-<job>(e.g.,entity-layout,design-screenshot)
This is the most important architectural rule:
src/runs in the browser (via Vite). No Node.js APIs allowed.server/runs in Node.js. Node.js APIs are fine here.- Communication between them: HTTP/SSE only.
- Mocked unit tests cannot catch boundary violations — test in the browser.
- Tests protect real behavior, not implementation details
- Run
bun run typecheck && bun run testbefore submitting - Build/typecheck/test passing is necessary but not sufficient — verify runtime behavior too
- If your change affects desktop-only behavior, verify it in
bun run electron:dev
This project follows the Contributor Covenant. By participating, you agree to uphold this code.