Reflect D-020 engine decision in project description (Godot 4 + Rust/bevy_ecs via subprocess/IPC). Update connector usage examples to reference the new whitelistable wrapper scripts instead of calling python3 directly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
66 lines
2.7 KiB
Markdown
66 lines
2.7 KiB
Markdown
# Commonwealth Game Project
|
|
|
|
A top-down immersive sim — occlusion-based detective game with combat elements, set in an original science fiction universe (Commonwealth-inspired). Single-character perspective, asymmetric information as core mechanic, Rimworld-style storyteller. Godot 4 client + Rust/bevy_ecs simulation server via subprocess/IPC (D-020).
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
DECISIONS.md # Confirmed decisions (D-001+), open questions (Q-001+)
|
|
DISCUSSION.md # Active discussion round only
|
|
TEAM.md # Team roster and roles
|
|
docs/
|
|
discussions/ # Archived discussion rounds (historical)
|
|
briefings/ # Per-agent context briefings (maintained by Qatux)
|
|
architecture/ # Technical architecture documents
|
|
design/ # Game design documents
|
|
db/
|
|
commonwealth.db # SQLite ticketing database
|
|
schema.sql # Database schema
|
|
connectors/ # Connector scripts for SQLite and Qdrant
|
|
config.json # Endpoint configuration
|
|
sqlite_connector.py # SQLite mini MCP
|
|
qdrant_connector.py # Qdrant + ollama mini MCP
|
|
.claude/
|
|
agents/ # Agent personality files
|
|
skills/ # Skill definitions
|
|
```
|
|
|
|
## Agent Instructions
|
|
|
|
### Before starting work
|
|
1. Read your briefing at `docs/briefings/{your-name}.md` for current project context
|
|
2. Read `DECISIONS.md` for confirmed decisions relevant to your work
|
|
3. Check `DISCUSSION.md` for any active discussion
|
|
|
|
### SQLite access
|
|
**Never use the `sqlite3` CLI** - it crashes in Claude Code due to a known std::bad_alloc bug.
|
|
|
|
Use the whitelistable wrapper scripts:
|
|
```bash
|
|
db/connectors/sqlite-query "SELECT * FROM tickets WHERE status='in_progress'"
|
|
db/connectors/sqlite-exec "UPDATE tickets SET status='done' WHERE id=1"
|
|
```
|
|
|
|
### Qdrant / document search
|
|
```bash
|
|
db/connectors/qdrant-search "asymmetric information design"
|
|
db/connectors/qdrant-index docs/briefings/tyre.md
|
|
db/connectors/qdrant-health
|
|
db/connectors/qdrant-count
|
|
```
|
|
|
|
### File conventions
|
|
- Decision IDs: `D-NNN` (confirmed), `Q-NNN` (open questions), `R-NNN` (rejected)
|
|
- Discussion rounds: numbered sequentially, archived to `docs/discussions/` when complete
|
|
- Briefings: one per agent, updated after decision-producing rounds
|
|
- Tickets: managed via `/ticket` skill or `sqlite_connector.py` directly
|
|
|
|
### Commit conventions
|
|
Use conventional commits with Commonwealth-specific scopes:
|
|
`agents`, `skills`, `docs`, `briefings`, `discussions`, `schema`, `db`, `config`, `engine`, `simulation`, `client`, `ui`, `audio`, `assets`
|
|
|
|
### Local services
|
|
- Qdrant: `http://tower-of-joy:6333/`
|
|
- Ollama: `http://tower-of-joy:11434/` (nomic-embed-text)
|
|
- Collection: `commonwealth` (768 dimensions, cosine distance)
|