Files
settled-reach/whatsinagame/templates/decisions/README.md
T
jpmschweitzerandClaude Opus 4.6 b025fe8152 chore(db): remove db/connectors backwards-compat symlink (#568)
Remove the db/connectors → tooling/db/ symlink added in Sprint 21
(#274) and migrate all references to use tooling/db/ directly.

- Delete tracked symlink from db/connectors
- Remove duplicate db/connectors/* permission patterns from settings
- Update project-structure.md to reflect removal
- Move whatsinagame/static/db/connectors/ to whatsinagame/static/tooling/db/
- Update 20 whatsinagame template, skill, and test files
- Update comment references in client/tests/test_anti_tedium.gd
- Historical docs (old sprint briefings, changelog, discussions) left as-is

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 22:13:26 +01:00

85 lines
2.6 KiB
Markdown

# Decision Records
This directory contains the project's decision records, organized by domain. Decisions are the **source of truth** for all architectural, design, scope, and process choices.
## Domain Files
| File | Domain | Contents |
|------|--------|----------|
| `architecture.md` | Architecture | Technical foundation — how we build, tools, patterns, infrastructure |
| `scope.md` | Scope | Project concept, target audience, platform, feature boundaries |
| `process.md` | Process | Team workflow, communication, development process |
| `questions.md` | Open Questions | Unresolved questions requiring team discussion |
| `rejected.md` | Rejected | Options considered and rejected, with rationale |
## Decision Types
- **D-NNN** — Confirmed decisions (active or superseded)
- **Q-NNN** — Open questions awaiting resolution
- **R-NNN** — Rejected alternatives (kept for historical context)
## Adding a Decision
1. Choose the appropriate domain file
2. Assign the next available ID in sequence
3. Use this format:
```markdown
### D-NNN: Decision title
- **Date:** YYYY-MM-DD
- **Decision:** What was decided
- **Rationale:** Why this option was chosen
- **Raised by:** Who proposed or surfaced the question
- **Dissent:** Any disagreement, or "None"
```
4. Run `make decisions-sync` to update the SQLite index
## Querying Decisions
### Via CLI (preferred)
```bash
# List all active confirmed decisions
make decisions-active
# Find decisions without associated tickets
make decisions-orphan
# Check decision-to-ticket coverage
make decisions-coverage
```
### Via SQLite wrapper
```bash
# All active decisions
tooling/db/sqlite-query "SELECT id, domain, title FROM decisions WHERE status='active' AND type='confirmed' ORDER BY domain, id"
# Decisions in a specific domain
tooling/db/sqlite-query "SELECT id, title FROM decisions WHERE domain='architecture' AND status='active'"
# Search by keyword
tooling/db/sqlite-query "SELECT id, domain, title FROM decisions WHERE title LIKE '%keyword%' OR decision LIKE '%keyword%'"
# Decisions linked to a specific ticket
tooling/db/sqlite-query "SELECT d.id, d.title FROM decisions d JOIN tickets t ON d.id = t.decision_ref WHERE t.id = 42"
# Open questions
tooling/db/sqlite-query "SELECT id, title FROM decisions WHERE type='question' AND status='active'"
```
### Via Qdrant (semantic search)
```bash
tooling/db/qdrant-search "asymmetric information design"
```
## Superseding a Decision
When a decision is replaced:
1. Add `- **Status:** Superseded by D-NNN` to the original
2. Reference the original in the new decision's rationale
3. Run `make decisions-sync`