Files
settled-reach/decisions
jpmschweitzerandClaude Opus 4.7 53263492ab docs(decisions): D-225 atlas layer-stream proxy — resolves Q-098, adds Q-099
Resolves how per-body cascade layer data reaches the Godot Atlas viewer (#960),
on the lead's mod-first directive + Tyre's design pass:
- No bake (privileges first-party content + ~100MB install bloat). A server-side
  layer-stream proxy computes on demand from moddable source files and streams
  Layer1Output to the client.
- Transport: additive message tag on the existing IPC stream (no second socket);
  single framed MessagePack response; raster stays a disk load.
- Mod-first BodySourceResolver: mod dirs override base install; heightmap.png is
  the sole source of truth.
- Cache via the D-206 background queue on miss (never blocks the tick thread,
  D-203); eviction -> recompute (deterministic, ~45ms).
- Whole Layer1Output per response; client composites additive overlays.

Q-098 resolved against its own premise (no durable store needed — recompute on
eviction is fine for a viewer). Q-099 spun off: mods adding new bodies need
terrain_reference rows in the binary systems.db (D-189), out of scope for #960.

Implementation decomposed into #968 (activate AnalyzeBody cascade run + cache
populate — the long pole) -> #969 (proxy + bridge protocol) -> #960 (viewer).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 16:39:41 +02:00
..

Decisions

Confirmed decisions, open questions, and rejected alternatives for The Settled Reach.

Decisions are split by domain. Each agent's briefing indicates which files to read. When in doubt about where a decision belongs: if it constrains how we build, it's architecture. If it defines what we build, it's scope. If it defines what the player experiences, it's content or perception. If it defines how the team works, it's process.

Cross-domain decisions live in one file with cross-reference notes in related files. Split threshold: when any file exceeds ~350 lines, review whether it should split.

Domain Files

File Domain Decisions
architecture.md Technical foundation D-008, D-009, D-010, D-012, D-020, D-026, D-030, D-031, D-041, D-042, D-054, D-055, D-066, D-068, D-073, D-085, D-088, D-094, D-096, D-097, D-099, D-100, D-101, D-102, D-103, D-106, D-108, D-109, D-113, D-133, D-134, D-135, D-136, D-137, D-141, D-148, D-149, D-150, D-151, D-152, D-188, D-191, D-192, D-194D-218, D-220
perception.md Player observation D-011, D-015, D-016, D-017, D-018, D-019, D-033, D-035, D-043, D-044, D-045, D-046, D-047, D-048, D-049, D-052, D-056, D-057, D-058, D-059, D-060, D-061, D-067, D-069, D-070, D-071, D-072, D-076, D-077, D-078, D-086
content.md NPC, dialogue, templates D-023, D-024, D-025, D-028, D-029, D-032, D-034, D-035, D-036, D-037, D-050, D-062, D-063, D-064, D-074, D-075, D-084, D-090, D-092, D-093, D-095, D-098, D-104, D-105, D-107, D-121, D-122, D-123, D-124, D-125, D-126, D-127, D-128, D-129, D-130, D-131, D-132, D-138, D-139, D-140, D-142, D-147
scope.md Game concept, prototype D-001, D-003, D-005, D-006, D-007, D-013, D-014, D-027, D-038, D-039, D-051, D-053, D-065, D-087, D-089, D-091, D-114, D-115, D-116, D-117, D-118, D-119, D-120, D-145, D-146, D-153, D-154, D-155, D-156, D-157
economics.md Economics layer, currencies, corporations, simulation D-171, D-172, D-173, D-174, D-175, D-176, D-177, D-178, D-179, D-180, D-181, D-182, D-183, D-184, D-185, D-186, D-187, D-189, D-190
process.md Team, workflow D-004, D-021, D-022, D-040, D-221
questions.md Open questions (index) Q-001 through Q-094
questions-architecture.md Technical questions Q-001, Q-006, Q-009, Q-018Q-023, Q-029, Q-030, Q-046, Q-059, Q-060, Q-063Q-094
questions-perception.md Observation questions Q-003, Q-014, Q-016, Q-024Q-026, Q-051, Q-053, Q-054
questions-content.md Narrative questions Q-010, Q-012Q-015, Q-017, Q-028, Q-031, Q-033, Q-040Q-045, Q-047Q-050, Q-052, Q-056, Q-057, Q-WTF-039, Q-WTF-040, Q-WTF-041
questions-scope.md Scope questions Q-002, Q-004, Q-005, Q-007, Q-008, Q-011, Q-027, Q-032, Q-034Q-039, Q-058, Q-061, Q-062
rejected.md Rejected alternatives R-001 through R-011

Querying Decisions

The SQLite database contains a decisions table synced from these files. Common queries:

# All active architecture decisions
tooling/db/sqlite-query "SELECT id, title FROM decisions WHERE domain='architecture' AND status='active'"

# Decisions without implementing tickets
make decisions-orphan

# Decision coverage by domain
make decisions-coverage

Adding a Decision

  1. Edit the appropriate domain file
  2. Follow the existing format (### D-NNN: Title heading)
  3. Commit — the pre-commit hook runs decisions-sync automatically
  4. Update relevant agent briefings if needed

Maintained by Qatux.