Claude-native starter kit that bootstraps multi-agent team infrastructure for any project. Clone once, install as a global skill, run /kit-install in any project directory. Includes: - 3-tier profile system (minimal/standard/full: 3-12 agents) - 16 agent archetype templates with personality spectrum - 18 skill templates using domain-action naming convention - Stakeholder persona panel for workshops and PR reviews - SQLite ticketing DB with CLI tools (config-based DB paths) - Decision tracking, sprint lifecycle, workshop orchestration - Multi-git-host support (GitHub, Gitea, GitLab) - /kit-update skill for syncing with source repo evolution - Naming theme support for agent identity/flavor - Smoke tests for all three profile tiers Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
85 lines
2.6 KiB
Markdown
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
|
|
db/connectors/sqlite-query "SELECT id, domain, title FROM decisions WHERE status='active' AND type='confirmed' ORDER BY domain, id"
|
|
|
|
# Decisions in a specific domain
|
|
db/connectors/sqlite-query "SELECT id, title FROM decisions WHERE domain='architecture' AND status='active'"
|
|
|
|
# Search by keyword
|
|
db/connectors/sqlite-query "SELECT id, domain, title FROM decisions WHERE title LIKE '%keyword%' OR decision LIKE '%keyword%'"
|
|
|
|
# Decisions linked to a specific ticket
|
|
db/connectors/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
|
|
db/connectors/sqlite-query "SELECT id, title FROM decisions WHERE type='question' AND status='active'"
|
|
```
|
|
|
|
### Via Qdrant (semantic search)
|
|
|
|
```bash
|
|
db/connectors/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`
|