Create client/, server/, tooling/, tests/, .config/ (tracked) and .cache/ (gitignored). Update CLAUDE.md project structure to reflect the new layout including workshops directory. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
75 lines
3.2 KiB
Markdown
75 lines
3.2 KiB
Markdown
# The Settled Reach
|
|
|
|
A top-down immersive sim — occlusion-based detective game with combat elements, set in an original science fiction universe. Single-character perspective, asymmetric information as core mechanic, Rimworld-style storyteller. Godot 4 client + Rust/bevy_ecs simulation server via subprocess/IPC (D-020).
|
|
|
|
**Official Title:** The Settled Reach (D-021)
|
|
**Repository name:** commonwealth (historical code name, retained for path stability)
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
client/ # Godot 4 client (D-020)
|
|
server/ # Rust/bevy_ecs simulation server (D-020)
|
|
tooling/ # Build tools, scripts, asset pipelines
|
|
tests/ # Integration and end-to-end tests
|
|
.config/ # Configuration files (linters, formatters, CI)
|
|
.cache/ # Local caches for testing/linting (gitignored)
|
|
docs/
|
|
discussions/ # Discussion rounds (all rounds archived here per D-022)
|
|
briefings/ # Per-agent context briefings (maintained by Qatux)
|
|
architecture/ # Technical architecture documents
|
|
design/ # Game design documents
|
|
workshops/ # Workshop briefs and outputs (per-workshop subdirectories)
|
|
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
|
|
DECISIONS.md # Confirmed decisions (D-001+), open questions (Q-001+)
|
|
TEAM.md # Team roster and roles
|
|
```
|
|
|
|
## 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 `docs/discussions/` for recent discussion rounds if needed
|
|
|
|
### 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 project-specific scopes:
|
|
`agents`, `skills`, `docs`, `briefings`, `discussions`, `schema`, `db`, `config`, `engine`, `simulation`, `client`, `ui`, `audio`, `assets`, `meta`
|
|
|
|
### Local services
|
|
- Qdrant: `http://tower-of-joy:6333/`
|
|
- Ollama: `http://tower-of-joy:11434/` (nomic-embed-text)
|
|
- Collection: `commonwealth` (768 dimensions, cosine distance)
|