LLM-driven SLG (Simulation/Strategy Game) monorepo. Three runtimes share one workspace:
| App | Language | Tooling | Purpose |
|---|---|---|---|
apps/llmagent |
Python 3.12 | uv |
Client-side LLM agent that plays the game |
apps/server |
Python 3.12 | uv |
Authoritative game server |
apps/landing |
TypeScript | pnpm + Next.js |
Public landing page |
Shared code lives in packages/* (TS) and python-packages/* (Python).
- Node.js ≥ 20.18 (
nvm use) - pnpm ≥ 9.12 (
corepack enable) - Python ≥ 3.12 +
uv(curl -LsSf https://astral.sh/uv/install.sh | sh)
./scripts/bootstrap.sh # installs Node + Python deps + git hookspnpm dev # run all apps in dev mode in parallel
pnpm check # lint + typecheck + test, every language
pnpm test # all tests, language-agnostic via Turbo
pnpm format # Prettier + Ruff formatPer-language:
uv run pytest apps/llmagent # single Python package
pnpm --filter @llmslg/landing dev # single TS appThis repo ships a complete Claude Code harness in .claude/:
CLAUDE.mdfiles (root + each subpackage) — context loaded automatically.claude/skills/— domain-specific procedures Claude can invoke.claude/agents/— subagent definitions for isolated work.claude/commands/— explicit slash commands (/check,/ship, …).claude/hooks/— deterministic lifecycle hooks (format-on-save, secret scan, …).claude/rules/— path-scoped style rules (auto-loaded by glob)
See docs/claude-code-guide.md for the full tour.
LLMSLG/
├── apps/ # Top-level runtimes
│ ├── llmagent/
│ ├── server/
│ └── landing/
├── packages/ # Shared TypeScript packages
├── python-packages/ # Shared Python packages
├── tooling/ # Internal dev tools (TS)
├── scripts/ # Cross-language repo scripts
├── docs/ # Architecture, ADRs, onboarding
└── .claude/ # Claude Code harness
Run pnpm check locally before opening a PR. CI re-runs everything plus
integration tests; both must be green to merge.
License: TBD.