Blocking PR #129 items 1, 2 (plus polish 16 and 17): - D-191 §8 prose rewritten to match the code. The previous amendment said positions were `{x, y}` objects against a "typically 1024 × 512" grid, but the generator, the six hand-authored templates, and all 2394 procedural seed files ship `[row, col]` integer arrays against a `{"w": 512, "h": 256}` grid. The decision doc is now aligned with reality: positions are `[row, col]`, the storage grid is 512 × 256, and the row-first ordering is called out explicitly so readers can cross-reference NumPy/flood-fill/A*/cost-grid conventions. - §8 now follows the D-094 amendment pattern. The superseded 2026-04-10 prose is preserved verbatim as "Original (superseded)" with a dated Amendment block on top — future readers can see what changed and why instead of silently losing the history. - brands.toml header gains a short Phase 2 boundary note. The 4 anchor brands come from D-189 §5; the additional ~23 brands from D-189 §11 are deliberately deferred to Phase 3 — Phase 2 only needs the demand- node plumbing and V-B01..V-B06 validation exercised end-to-end. - systems-schema.sql `bodies.terrain_reference` comment now pins the repo-root-relative path convention (wiki/star-systems/<slug>/bodies/ <body_id>/heightmap.png) so the three downstream pipelines (populate, atlas generator, client loader) share a documented contract instead of drifting against an unwritten convention.
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-191 |
| 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 |
| questions.md | Open questions (index) | Q-001 through Q-094 |
| questions-architecture.md | Technical questions | Q-001, Q-006, Q-009, Q-018–Q-023, Q-029, Q-030, Q-046, Q-059, Q-060, Q-063–Q-094 |
| questions-perception.md | Observation questions | Q-003, Q-014, Q-016, Q-024–Q-026, Q-051, Q-053, Q-054 |
| questions-content.md | Narrative questions | Q-010, Q-012–Q-015, Q-017, Q-028, Q-031, Q-033, Q-040–Q-045, Q-047–Q-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-034–Q-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
- Edit the appropriate domain file
- Follow the existing format (
### D-NNN: Titleheading) - Commit — the pre-commit hook runs
decisions-syncautomatically - Update relevant agent briefings if needed
Maintained by Qatux.