Standing Mandates
- ALWAYS write the Decision in declarative active voice (
~를 채택한다, ~로 한다). Reject hedging like ~를 고려한다, ~가 적합할 것 같다.
- ALWAYS fill Negative consequences. Empty Negative is not honest — ask the user what they're paying.
- NEVER edit or delete a previously accepted ADR. Reverse with a new ADR; mark the old one
Superseded by ADR-XXXX.
- NEVER fabricate a Design Review reference. If none exists, write
Related: (none — captured post-hoc).
ADR Writer
Produce an Architecture Decision Record in the team's fixed template. Input is either an approved Design Review or raw decision context. Output is declarative, sequentially numbered, and stored at docs/adr/.
When to Use / When Not to Use
| Use |
Skip |
| Decision is hard to reverse (DB, protocol, schema, boundary) |
Trivial implementation detail |
| Multiple reasonable alternatives existed |
Only one viable option |
| Team will turn over before the decision is revisited |
Decision will be revisited within weeks |
| Design Review is approved and needs to be locked in |
Design Review still Draft/In Review — finish it with design-review-writer first |
Process
- Locate the source — Design Review path, or raw 3-5 line context. If DR exists, read it and map §2/§5/§6/§7/§8 → ADR slots.
- Assign number + status — scan
docs/adr/ for highest NNNN-*.md, take +1; set Proposed/Accepted/Deprecated/Superseded.
- Write
Context — quantified, for a smart engineer who joined today.
- Write
Decision — declarative, active voice, 1-3 sentences. If available, invoke writer-verification to catch hedging.
- Write
Rationale — chosen-option reasons referencing Context constraints + one line per rejected alternative.
- Write
Consequences — Positive / Negative / Neutral, all three buckets. If Negative is empty, invoke bias-auditor.
- Write
References — Design Review, RFCs, prior ADRs, vendor docs; or explicit (none).
- Set metadata + save — Date today, real Deciders,
docs/adr/NNNN-<slug>.md.
Full per-step playbook — including the Design Review → ADR section mapping, declarative-voice examples, and Consequences bucket definitions — in references/process-detail.md. Read it when you reach the matching step.
Output Template
Produce the document in this exact structure. Section names and order are fixed.
# ADR-NNNN: [결정 제목]
## Metadata
- **Status**: Proposed | Accepted | Deprecated | Superseded by ADR-XXXX
- **Date**: YYYY-MM-DD
- **Deciders**:
- **Related**: [Design Review #, RFC #, 이전 ADR #]
## Context
- 이 결정이 필요한 배경과 제약 조건
- 현재 상황과 해결해야 할 문제
## Decision
- 단정형으로 확정 사항 기술
- "~를 채택한다", "~로 한다"
## Rationale
- 이 결정을 내린 핵심 근거
- 검토한 대안과 탈락 사유 요약
## Consequences
### Positive
- 이 결정으로 얻는 이점
### Negative
- 감수해야 할 비용과 한계
### Neutral
- 영향은 있으나 좋고 나쁨이 명확하지 않은 변화
## References
- Design Review, RFC, 외부 문서 링크
What Claude Does / What You Do
| Claude |
You |
| Reads the Design Review and maps sections → ADR slots |
Provide the Design Review path, or raw context |
| Rewrites the chosen design in declarative voice |
Approve final wording or push back with concrete edits |
| Forces 3-bucket Consequences (Positive/Negative/Neutral) |
Confirm Negative reflects real cost, not boilerplate |
| Assigns the next sequential number |
Verify the number doesn't collide with an unmerged ADR |
| Updates the superseded ADR's Status in the same change |
Confirm the old ADR is in the same repo |
| Auto-fills Date with today |
Set Deciders to the actual decision-makers |
Storage Convention
docs/adr/
0001-use-postgresql-as-primary-store.md
0002-adopt-kafka-for-inter-service-events.md
0003-split-payment-domain-into-service.md
0007-supersede-0001-migrate-to-aurora.md
Sequential numbering. Never delete or rewrite an accepted ADR — supersede instead.
Quick Checklist
Related Skills
design-review-writer — produce the upstream Design Review this ADR captures
doc-coauthoring — section-by-section co-write mechanics for long Context
writer-verification — final pass to catch hedging in Decision
tradeoff-articulator — frame Rationale as "accept X to gain Y"
bias-auditor — when the decision boundary is unclear or Negative is empty
architecture-designer / domain-driven-design / microservices-architect — domain context for the decision being captured
Fallback if any related skill is not installed: see references/process-detail.md.
1---2name: adr-writer3description: Use when capturing an architectural decision as an ADR — after a Design Review or from raw context. Triggers: "ADR 써줘", "이 결정 ADR로", "write an ADR", "document this decision". Fixed template; Decision must be declarative ("~를 채택한다").4---56## Standing Mandates78- ALWAYS write the Decision in declarative active voice (`~를 채택한다`, `~로 한다`). Reject hedging like `~를 고려한다`, `~가 적합할 것 같다`.9- ALWAYS fill Negative consequences. Empty Negative is not honest — ask the user what they're paying.10- NEVER edit or delete a previously accepted ADR. Reverse with a new ADR; mark the old one `Superseded by ADR-XXXX`.11- NEVER fabricate a Design Review reference. If none exists, write `Related: (none — captured post-hoc)`.1213# ADR Writer1415Produce an Architecture Decision Record in the team's fixed template. Input is either an approved Design Review or raw decision context. Output is declarative, sequentially numbered, and stored at `docs/adr/`.1617## When to Use / When Not to Use1819| Use | Skip |20|-----|------|21| Decision is hard to reverse (DB, protocol, schema, boundary) | Trivial implementation detail |22| Multiple reasonable alternatives existed | Only one viable option |23| Team will turn over before the decision is revisited | Decision will be revisited within weeks |24| Design Review is approved and needs to be locked in | Design Review still `Draft`/`In Review` — finish it with `design-review-writer` first |2526## Process27281. **Locate the source** — Design Review path, or raw 3-5 line context. If DR exists, read it and map §2/§5/§6/§7/§8 → ADR slots.292. **Assign number + status** — scan `docs/adr/` for highest `NNNN-*.md`, take +1; set `Proposed`/`Accepted`/`Deprecated`/`Superseded`.303. **Write `Context`** — quantified, for a smart engineer who joined today.314. **Write `Decision`** — declarative, active voice, 1-3 sentences. If available, invoke `writer-verification` to catch hedging.325. **Write `Rationale`** — chosen-option reasons referencing Context constraints + one line per rejected alternative.336. **Write `Consequences`** — Positive / Negative / Neutral, all three buckets. If Negative is empty, invoke `bias-auditor`.347. **Write `References`** — Design Review, RFCs, prior ADRs, vendor docs; or explicit `(none)`.358. **Set metadata + save** — Date today, real Deciders, `docs/adr/NNNN-<slug>.md`.3637Full per-step playbook — including the Design Review → ADR section mapping, declarative-voice examples, and Consequences bucket definitions — in `references/process-detail.md`. Read it when you reach the matching step.3839## Output Template4041Produce the document in this **exact** structure. Section names and order are fixed.4243```markdown44# ADR-NNNN: [결정 제목]4546## Metadata47- **Status**: Proposed | Accepted | Deprecated | Superseded by ADR-XXXX48- **Date**: YYYY-MM-DD49- **Deciders**:50- **Related**: [Design Review #, RFC #, 이전 ADR #]5152## Context53- 이 결정이 필요한 배경과 제약 조건54- 현재 상황과 해결해야 할 문제5556## Decision57- 단정형으로 확정 사항 기술58- "~를 채택한다", "~로 한다"5960## Rationale61- 이 결정을 내린 핵심 근거62- 검토한 대안과 탈락 사유 요약6364## Consequences65### Positive66- 이 결정으로 얻는 이점6768### Negative69- 감수해야 할 비용과 한계7071### Neutral72- 영향은 있으나 좋고 나쁨이 명확하지 않은 변화7374## References75- Design Review, RFC, 외부 문서 링크76```7778## What Claude Does / What You Do7980| Claude | You |81|--------|-----|82| Reads the Design Review and maps sections → ADR slots | Provide the Design Review path, or raw context |83| Rewrites the chosen design in declarative voice | Approve final wording or push back with concrete edits |84| Forces 3-bucket Consequences (Positive/Negative/Neutral) | Confirm Negative reflects real cost, not boilerplate |85| Assigns the next sequential number | Verify the number doesn't collide with an unmerged ADR |86| Updates the superseded ADR's Status in the same change | Confirm the old ADR is in the same repo |87| Auto-fills Date with today | Set Deciders to the actual decision-makers |8889## Storage Convention9091```92docs/adr/93 0001-use-postgresql-as-primary-store.md94 0002-adopt-kafka-for-inter-service-events.md95 0003-split-payment-domain-into-service.md96 0007-supersede-0001-migrate-to-aurora.md97```9899Sequential numbering. Never delete or rewrite an accepted ADR — supersede instead.100101## Quick Checklist102103- [ ] Status reflects current truth, not perpetually `Proposed`104- [ ] Decision is declarative active voice — no `might`, `could`, `should consider`105- [ ] Rationale references Context constraints by name106- [ ] At least 2 alternatives listed with rejection reasons107- [ ] Consequences has non-empty Positive *and* Negative108- [ ] Neutral bucket used for "things that are now true" — not left as filler109- [ ] References to Design Review present (or explicit `(none)`)110- [ ] Filename matches `NNNN-<slug>.md` and lands in `docs/adr/`111- [ ] If superseding, the old ADR's Status was updated in the same change112113## Related Skills114115- `design-review-writer` — produce the upstream Design Review this ADR captures116- `doc-coauthoring` — section-by-section co-write mechanics for long Context117- `writer-verification` — final pass to catch hedging in Decision118- `tradeoff-articulator` — frame Rationale as "accept X to gain Y"119- `bias-auditor` — when the decision boundary is unclear or Negative is empty120- `architecture-designer` / `domain-driven-design` / `microservices-architect` — domain context for the decision being captured121122Fallback if any related skill is not installed: see `references/process-detail.md`.