← agent skills / adr-capture

adr-capture

Catch an architectural decision as it is made and draft an ADR in your team's format, with explicit TODOs for missing mandatory fields. Never auto-commits.

install · cli
$ curl -fsSL https://raw.githubusercontent.com/Osipchuk/agent-skills/main/install.sh | sh -s -- adr-capture

One line, works with any agent — installs just this skill into ~/.claude/skills/. Needs only curl; it fetches uv and the askill CLI if they're missing.

Installs skills/adr-capture/SKILL.md into ~/.claude/skills/adr-capture/; Claude reads it on the next session start. The plugin tab pulls the whole library instead.

Fires on an explicit request ("draft an ADR", "record this decision") and proactively when the conversation shows a commitment plus a rationale ("we'll go with X over Y because Z"). It assigns the next id, fills what was said, and flags mandatory regulated sections as TODO. It stays quiet during exploratory discussion and never writes without confirmation.

# skills/adr-capture/SKILL.md — frontmatter
name: adr-capture
description: Catch an architectural or technical decision as it is being made and draft an Architecture Decision Record (ADR) in the team's format, leaving explicit TODOs for fields the conversation did not cover. Never writes or commits without explicit confirmation. Use this when the user asks to "draft an ADR", "record this decision", "capture this as an ADR", AND proactively offer it when the conversation shows a commitment pattern — "we'll go with X over Y because Z", "let's standardize on...", "decided to...", "we're choosing..." — paired with a rationale. It assigns the next ADR id, fills what the discussion supports, and flags team-mandatory sections (e.g. regulatory impact, data classification, rollback plan) as TODO when missing. Do NOT use for: exploratory discussion with no commitment ("we might try", "could consider", "what if we"), non-architectural decisions (scheduling, naming, trivial style), or generating product/requirements specs. When unsure whether a real decision was actually made, ask one question rather than draft.
  • Catches the decision while it's warm — the friction of writing ADRs by hand is exactly why they don't get written.
  • Biases to false negatives: asks once rather than spamming the log with drafts of things merely floated.
  • Knows your mandatory sections (regulatory impact, data classification, rollback) and TODOs them rather than inventing content.
  • Review-then-write: drafts in chat, writes only on confirmation, never past Status: Proposed.
example · Vector store decision captured 3 turns · 610 tok
input
user
OK, going with pgvector over Qdrant — closed-contour rules out the cloud, self-hosting Qdrant adds a service to operate, and we already run Postgres well. Risk is scaling past ~10M vectors.
↓ skill fires
skill
[adr-capture] commitment plus rationale detected, offering to draft
output
tool_call
scan docs/adr for the next id
tool_out
highest is 0041, next is 0042
assistant
Looks like a decision — want me to capture it? Draft of ADR-0042 (vector store): Decision is pgvector on the existing cluster. Alternatives: Qdrant Cloud rejected (closed-contour), self-hosted Qdrant rejected (extra ops). Consequences: reuses PG ops and audit pipeline; minus, scaling past ~10M vectors is unproven. Regulatory impact and rollback plan are left as TODO for you to fill. I won't write the file until you confirm.
Two engineers settle on pgvector with a stated rationale; the skill drafts the ADR and leaves regulated fields as TODO.