From dtk
Use when making architectural choices, introducing new patterns, choosing between alternatives, or revising a previous technical decision.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dtk:adrThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Capture significant technical decisions and persist them as **individual files** in `docs/adrs/`.
Capture significant technical decisions and persist them as individual files in docs/adrs/.
Not for lessons from reviews (use /dtk:learn-from-review). ADRs capture what was decided and why.
SCRIPTS="bin/skill-scripts"; [ -d "$SCRIPTS" ] || SCRIPTS="${CLAUDE_PLUGIN_ROOT:-}/bin/skill-scripts"; [ -d "$SCRIPTS" ] || SCRIPTS=$(find ~/.claude/plugins -path "*/dtk/bin/skill-scripts" -maxdepth 5 2>/dev/null | head -1); echo "$SCRIPTS"
Use the output path as $SCRIPTS for all script commands below.
Use $ARGUMENTS as topic, or analyze current conversation for: new dependencies, schema choices, architectural patterns, API decisions, infrastructure choices, performance trade-offs.
Ask focused questions if critical context is missing (max 3-4 per ADR).
| Weight | Criteria |
|---|---|
| Heavy | Hard to reverse, wide blast radius, long-term direction |
| Medium | Moderate to reverse, affects multiple modules |
| Light | Easy to reverse, single module scope |
NEXT=$(bash $SCRIPTS/adr/next-number.sh)
Path: docs/adrs/ADR-{NNN}-{short-slug}.md
# ADR-{NNN}: {Short descriptive title}
**Date:** {YYYY-MM-DD}
**Status:** Accepted
**Weight:** Heavy | Medium | Light
**Triggered by:** {Feature/ticket/issue}
## Context
{2-3 sentences: situation and constraints}
## Decision
{1-2 sentences: what was decided}
## Alternatives Considered
- **{Alternative A}:** {Why rejected — 1 sentence}
- **{Alternative B}:** {Why rejected — 1 sentence}
## Consequences
- {Expected positive outcome}
- {Known trade-off or risk}
- {What to watch for}
## Revisit When
{Concrete trigger for reconsidering}
docs/adrs/index.mdSuperseded by ADR-{NNN}, add **Supersedes:** [ADR-{old}](ADR-{old}-{slug}.md) to new ADR**Related:** [ADR-{NNN}](ADR-{NNN}-{slug}.md)docs/lessons/ influenced this, add **Informed by:** [{title}](../lessons/{category}/{file}.md)Add row at top of docs/adrs/index.md (newest first):
| {NNN} | [{Title}](ADR-{NNN}-{slug}.md) | {Weight} | Accepted | {Date} |
## /adr Summary
### Created
- 📄 `docs/adrs/ADR-008-redis-per-key-ttl.md` — Redis with per-key TTL (Heavy)
### Related: ADR-004 (ISR revalidation)
### Superseded: ADR-002 → "Superseded by ADR-008"
### Informed by: `docs/lessons/performance/003-cache-invalidation.md`
Revisit When is mandatorydocs/ — permanent, version-controllednpx claudepluginhub junielton/claude-base-dtk --plugin dtkDocuments significant technical decisions (technology choices, architecture patterns, API contracts) as lightweight ADR files in the repo.
Creates Architecture Decision Records (ADRs) documenting technical decisions, context, alternatives considered, and consequences. Use for architectural choices, library/framework selections, or system component designs.
Records concise Architecture Decision Records (ADRs) capturing what was decided and why, for decisions that are hard to reverse, surprising without context, or involve real trade-offs.