cc-os/plugins/cc-architect/references/tool-patterns/decisions-record.md

133 lines
3.0 KiB
Markdown
Raw Normal View History

# Decisions Record Pattern
Capture and persist decisions made during audits and reviews.
## Purpose
Prevent re-litigating settled decisions. Create institutional memory for tools.
## Directory Structure
```
<tool-root>/
.decisions/
2026-01-15-description-formula.md
2026-01-18-routing-depth.md
2026-01-20-golden-example-update.md
```
Decisions live in the tool's `.decisions/` directory, committed to version control.
## File Format
```markdown
---
date: 2026-01-20
context: audit / review / modification
decision_type: invariant_change / pattern_adoption / exception
---
# [Decision Title]
## Context
What prompted this decision? What audit or review surfaced it?
## Options Considered
1. **Option A:** Description. Trade-offs.
2. **Option B:** Description. Trade-offs.
3. **Option C:** Description. Trade-offs.
## Decision
We chose **Option B** because [reasoning].
## Consequences
- Golden example X updated to reflect this
- Invariant Y modified/added/removed
- [Other impacts]
## Participants
- Human: [name/handle if known]
- AI: [model used for audit]
```
## When to Record
**Always record:**
- Any change to an invariant
- Updates to golden examples
- Adoption of new patterns
- Exceptions to existing patterns
- Resolutions of audit findings
**Don't record:**
- Obvious bug fixes
- Typo corrections
- Formatting changes
- Decisions made by user without discussion
## Workflow Integration
### During Audits
```
1. Check .decisions/ before auditing
└─→ Load relevant prior decisions
2. Reference prior decisions in audit
└─→ "Per decision from 2026-01-15, X is intentional"
3. Record new decisions during audit
└─→ Write to .decisions/ before completing
```
### During Modifications
```
1. Check .decisions/ for this area
└─→ Understand why things are the way they are
2. If changing a decided behavior
└─→ Create new decision explaining why
3. Reference chain of decisions
└─→ "This supersedes decision from 2026-01-15"
```
## Naming Convention
`YYYY-MM-DD-<topic>.md`
Keep `<topic>` short but descriptive:
- `description-formula.md`
- `routing-depth-exception.md`
- `golden-example-auth-flow.md`
## Implementation Checklist
- [ ] Create `.decisions/` directory in tool root
- [ ] Audit workflows check `.decisions/` first
- [ ] Record decisions during audits (not after)
- [ ] Include context, options, reasoning, consequences
- [ ] Reference prior decisions when relevant
- [ ] Commit decisions to version control
## Anti-patterns
**Decision amnesia:** Not checking prior decisions before auditing. Always check first.
**Over-documentation:** Recording trivial decisions. Keep to substantive choices.
**Orphan decisions:** Decisions without context or reasoning. Future readers need the "why."
**Decision conflicts:** Multiple decisions on same topic without resolution. Use "supersedes" to clarify.
## Cross-references
- [Audit Pattern](audit-pattern.md) - Audits read and write decisions
- [Reversion Protection](reversion-protection.md) - Invariant changes require decisions