Files
settled-reach/CLAUDE.md
T
jpmschweitzerandClaude Opus 4.6 0ce20b9cd2 refactor(meta): compact CLAUDE.md from 188 to 67 lines
Move CLI reference material, endpoint configs, and orchestration
patterns to .claude/rules/ (auto-loaded). CLAUDE.md now focuses on
project identity, safety rules, and workflow conventions.

Update cross-references in ticket, docs-search, and git-commit
skills to point to new rules/ locations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 12:37:29 +01:00

3.6 KiB

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.

Official Title: The Settled Reach Repository name: settled-reach Version source of truth: project.yaml (root version field, scheme: 0.1.{sprint_number})

Project Structure

client/               # Godot 4 client
server/               # Rust/bevy_ecs simulation server
tooling/              # Build tools, scripts, asset pipelines
tests/                # Integration and end-to-end tests
docs/                 # Architecture, design, briefings, sprints, workshops
db/                   # Schema + connector scripts (ticket CLI, SQLite, Qdrant)
.claude/              # Agents, skills, rules
decisions/            # Decision domain files (D-NNN confirmed, Q-NNN open, R-NNN rejected)

Full annotated tree: .claude/rules/project-structure.md

DevOps

See docs/DEVOPS.md for build, test, lint, and CI procedures. All development operations go through the top-level Makefile — run make for a summary of targets.

Agent Instructions

Worktree boundaries

This project uses git worktrees in a shared parent directory (settled-reach/). Each team branch (server, client, copy, audio, visual, ci) has its own worktree. The worktree root IS the git root.

  • All work must remain within the git root unless explicitly instructed otherwise.
  • All file paths are relative to the worktree root (e.g. server/src/bridge/types.rs).
  • Do not navigate to or access sibling worktrees (../client/, ../copy/, etc.) unless explicitly instructed.

Database

The ticketing database (settledreach.db) lives in the parent directory shared across all worktrees — it is not tracked in git. A backup is committed to docs/backups/settledreach.db.backup via main only.

Before starting work

  1. Read your sprint briefing at docs/sprints/sprint-N/{team}.md for current tasks
  2. Use db/connectors/ticket show <id> for full ticket details
  3. Read the relevant decisions/*.md domain file(s) referenced in the briefing
  4. Background context: docs/briefings/{your-name}.md, docs/discussions/

CLI tools

Prefer CLI wrappers over raw SQL. Never use the sqlite3 CLI — it crashes in Claude Code (std::bad_alloc). Use the wrapper scripts instead.

Tool Command Full reference
Tickets db/connectors/ticket list, show, create, assign /ticket skill
Sprints db/connectors/sprint status, start-work, prepare /sprint-start skill
SQL queries db/connectors/sqlite-query "SELECT ..."
SQL writes db/connectors/sqlite-exec "UPDATE ..."
Doc search db/connectors/qdrant-search "query" /docs-search skill
Doc index db/connectors/qdrant-index path/to/file.md /docs-search skill

File conventions

  • Decisions: domain files in decisions/ (see decisions/README.md for index)
  • Decision IDs: D-NNN (confirmed), Q-NNN (open questions), R-NNN (rejected)
  • Diagrams: .d2 source + .png renders in docs/diagrams/{category}/. Create or update diagrams via /d2-diagram when D-records are added or modified.
  • Discussion rounds: numbered sequentially, archived to docs/discussions/ when complete
  • Briefings: one per agent, updated after decision-producing rounds
  • Tickets: managed via db/connectors/ticket CLI or /ticket skill