Architecture Decision Recorder skill

Records one architecture decision with alternatives, consequences and status.

by levnikolaevich·MIT license·★ 568 Stars on the repo·GitHub ↗

Use now

Files of Architecture Decision Recorder

levnikolaevich/master1 file shown
SKILL.md
Show the full text100 lines

Architecture Decision Recorder

Goal: Preserve the context, forces, alternatives, decision, and consequences of one architecturally significant choice in a compact durable record. Change only approved decision documentation; do not design the whole system, approve a decision silently, delete history, audit code, or implement the choice.

Execution contract: The checklist defines completion. Track each item internally as PENDING, PROVEN with evidence, CLEARED with evidence its condition is absent, or UNPROVEN with a gap; reading, delegation, tool failure, a zero exit status, or a self-reported success is not proof; only the observed outcome is. Reconcile after each section. Before returning, resolve all PENDING, count only PROVEN and CLEARED, and apply verdict and approval rules to every gap. Preserve intent, scope, and existing authorization. Continue authorized work; ask only for consequential unresolved choices or required external approval. When no one can answer during the run, state the exact question and apply the skill's verdict for the remaining gap instead of waiting or guessing. Scale depth to material risk without skipping checks. Preserve dependency and safety order; otherwise choose an appropriate verification method. Accept equivalent user or repository evidence; no other skill, named artifact, or complete lifecycle is required. Preserve source requirement and decision IDs. Bind reused evidence to relevant source versions, dirty changes, configuration, and environment; invalidate only affected claims. On continuation, reconcile task, authorization, current state, and unresolved evidence. For long work, return a compact continuation record or update an already authorized artifact; read-only skills do not persist it. Distinguish artifact readiness, verified behavior, and external-action authority. Prepare authorized work before required approval. If blocked by an instruction, cite its exact source and unresolved boundary; do not invent approval gates from caution.

Tool Routing

Need Preferred capability Fallback
Existing decision convention Repository search and direct document reads Use the default path and compact format
Decision drivers Requirements, architecture artifacts, implementation evidence, and stakeholder statements Mark unsupported drivers UNKNOWN
Alternatives and external claims Repository evidence plus current official sources Mark time-sensitive claims UNVERIFIED
Sequence and supersession Existing filenames, indexes, and decision links Return BLOCKED rather than reuse a number
Document mutation Minimal patch to one approved decision record and necessary supersession links Return BLOCKED if authority or path is unclear

One record captures one decision. If the request contains independent decisions with different drivers or lifecycles, split them only with explicit approval.

Artifact Rules

  • Reuse the repository's established ADR convention when one exists.
  • Otherwise use docs/architecture/decisions/NNNN-<slug>.md with the next unused monotonic number.
  • Never renumber, delete, or rewrite the decision and rationale of historical records. Permit scoped status and supersession-link updates under the rules below; distinguish evolving proposed drafts from accepted history.
  • Default a new record to Proposed.
  • Use Accepted only after explicit confirmation from an authorized decision-maker.
  • A proposed replacement links to the current decision without changing its effective status. Mark the old record Superseded and link both directions only after the replacement is explicitly accepted; preserve historical content.
  • Keep the record short enough to review as a single decision.
  • Preserve the rationale a future maintainer needs to reconsider it safely.
  • Label retrospective records explicitly; do not imply that documentation created after implementation was prior approval.
  • Separate evidence needed before acceptance from monitoring required after adoption.
  • Prefer stable repository references over conversation, branch-local, or ephemeral links.

Checklist

1. Establish the Decision Contract
  • Resolve the exact decision, scope, owner or deciders, affected system, and why the choice is architecturally significant.
  • Read repository instructions, Git state, and existing decision conventions.
  • Search for duplicate, conflicting, deprecated, or superseding decisions before allocating a new record.
  • Confirm the request is one decision rather than a broad design or implementation plan.
  • Resolve the approved status; default to Proposed when acceptance is not explicit.
2. Gather Context and Forces
  • State the current context and problem in value-neutral language.
  • Extract business drivers, quality attributes, constraints, assumptions, and decision horizon from available evidence.
  • Identify affected boundaries, contracts, data, security, operations, cost, ownership, and migration implications.
  • Separate present facts from forecasts and preferences.
  • Record contradictions or missing evidence that could change the choice.
3. Evaluate Alternatives
  • Include the status quo and the simplest credible option unless they are demonstrably infeasible.
  • For an open choice, compare materially different credible alternatives; for retrospective records, include only evidenced historical options and mark missing rationale unknown.
  • Compare options against the same drivers: correctness, quality targets, complexity, reversibility, cost, operations, team fit, and evolution.
  • State why each rejected alternative loses in this context without claiming universal inferiority.
  • Record sensitivity or review triggers that would make a rejected option preferable later.
4. Record the Decision
  • Write title, status, date, deciders or owner, context, drivers, considered options, decision, consequences, validation, and review triggers.
  • State the decision in active, testable language and name what remains deliberately undecided.
  • Record positive, negative, and neutral consequences plus accepted risks.
  • Link affected requirements, designs, diagrams, interfaces, migration documents, or issues by stable repository reference.
  • Apply the Artifact Rules for proposed or accepted supersession; verify links and preserve prior rationale.
5. Validate and Report
  • Confirm the record contains one decision and can be understood without conversation history.
  • Confirm consequential claims have evidence or labelled assumptions/unknowns with validation actions; never invent historical rationale or rejected alternatives for a retrospective record.
  • Confirm Accepted was not assigned without explicit authority.
  • Identify the requirements, interfaces, and downstream decisions affected by this decision or its supersession; preserve the accepted/proposed distinction and historical rationale.
  • Use READY when the record and status are valid; use INCOMPLETE when material context or required acceptance authority remains unresolved; a complete explicitly Proposed record does not require acceptance to be READY; use BLOCKED for ambiguous scope, unsafe numbering, conflicting ownership, or no writable destination.

Self-Check

  • Reconcile before returning. Check item-level evidence, requirement coverage, contradictions, scope, verdict, and applicable cleanup. Correct the report or authorized artifacts. Reuse valid evidence; do not automatically rescan the repository or rerun successful commands. Repeat checks only for relevant changes, failures, or unresolved evidence. Disclose remaining gaps.

Output Contract

Report in the user's language, in this order; label all five fields and state each fact once. Use controlled plain language: one fact per sentence, usually under 20 words, active voice, and one term per concept, with no synonyms for verdicts, IDs, or states. Small results may use one line per field; omit empty tables and do not copy linked artifacts:

  1. Result: The exact skill-specific verdict token first, then the supported outcome.
  2. Scope: Reviewed/changed scope, exclusions, baseline, and material assumptions.
  3. Evidence: Skill-specific fields below; distinguish facts, inferences, and unverified claims. Link artifacts; use tables when useful.
  4. Verification: Checks/results, unavailable evidence, and applicable cleanup/external state.
  5. Completion: Checklist: X/Y complete; Incomplete: None or each UNPROVEN item's reason, outcome impact, and exact next action; residual risks and required decisions.

Skill-specific evidence: Artifact path, decision identity/status/owner, selected option, alternatives, consequences, evidence, and acceptance/validation needs. Report links or status changes to historical records, preserving their rationale; identify unresolved choices and review triggers without implying acceptance of a proposal.

1---
2name: ln-24-architecture-decision-recorder
3description: "Records one architecture decision with alternatives, consequences and status; does not design the whole system."
4---
5 
6# Architecture Decision Recorder
7 
8**Goal:** Preserve the context, forces, alternatives, decision, and consequences of one architecturally significant choice in a compact durable record. Change only approved decision documentation; do not design the whole system, approve a decision silently, delete history, audit code, or implement the choice.
9 
10**Execution contract:** The checklist defines completion. Track each item internally as `PENDING`, `PROVEN` with evidence, `CLEARED` with evidence its condition is absent, or `UNPROVEN` with a gap; reading, delegation, tool failure, a zero exit status, or a self-reported success is not proof; only the observed outcome is. Reconcile after each section. Before returning, resolve all `PENDING`, count only `PROVEN` and `CLEARED`, and apply verdict and approval rules to every gap.
11Preserve intent, scope, and existing authorization. Continue authorized work; ask only for consequential unresolved choices or required external approval. When no one can answer during the run, state the exact question and apply the skill's verdict for the remaining gap instead of waiting or guessing. Scale depth to material risk without skipping checks. Preserve dependency and safety order; otherwise choose an appropriate verification method.
12Accept equivalent user or repository evidence; no other skill, named artifact, or complete lifecycle is required. Preserve source requirement and decision IDs. Bind reused evidence to relevant source versions, dirty changes, configuration, and environment; invalidate only affected claims.
13On continuation, reconcile task, authorization, current state, and unresolved evidence. For long work, return a compact continuation record or update an already authorized artifact; read-only skills do not persist it. Distinguish artifact readiness, verified behavior, and external-action authority.
14Prepare authorized work before required approval. If blocked by an instruction, cite its exact source and unresolved boundary; do not invent approval gates from caution.
15 
16 
17## Tool Routing
18 
19| Need | Preferred capability | Fallback |
20|---|---|---|
21| Existing decision convention | Repository search and direct document reads | Use the default path and compact format |
22| Decision drivers | Requirements, architecture artifacts, implementation evidence, and stakeholder statements | Mark unsupported drivers `UNKNOWN` |
23| Alternatives and external claims | Repository evidence plus current official sources | Mark time-sensitive claims `UNVERIFIED` |
24| Sequence and supersession | Existing filenames, indexes, and decision links | Return `BLOCKED` rather than reuse a number |
25| Document mutation | Minimal patch to one approved decision record and necessary supersession links | Return `BLOCKED` if authority or path is unclear |
26 
27One record captures one decision. If the request contains independent decisions with different drivers or lifecycles, split them only with explicit approval.
28 
29## Artifact Rules
30 
31- Reuse the repository's established ADR convention when one exists.
32- Otherwise use `docs/architecture/decisions/NNNN-<slug>.md` with the next unused monotonic number.
33- Never renumber, delete, or rewrite the decision and rationale of historical records. Permit scoped status and supersession-link updates under the rules below; distinguish evolving proposed drafts from accepted history.
34- Default a new record to `Proposed`.
35- Use `Accepted` only after explicit confirmation from an authorized decision-maker.
36- A proposed replacement links to the current decision without changing its effective status. Mark the old record `Superseded` and link both directions only after the replacement is explicitly accepted; preserve historical content.
37- Keep the record short enough to review as a single decision.
38- Preserve the rationale a future maintainer needs to reconsider it safely.
39- Label retrospective records explicitly; do not imply that documentation created after implementation was prior approval.
40- Separate evidence needed before acceptance from monitoring required after adoption.
41- Prefer stable repository references over conversation, branch-local, or ephemeral links.
42 
43## Checklist
44 
45### 1. Establish the Decision Contract
46 
47- [ ] Resolve the exact decision, scope, owner or deciders, affected system, and why the choice is architecturally significant.
48- [ ] Read repository instructions, Git state, and existing decision conventions.
49- [ ] Search for duplicate, conflicting, deprecated, or superseding decisions before allocating a new record.
50- [ ] Confirm the request is one decision rather than a broad design or implementation plan.
51- [ ] Resolve the approved status; default to `Proposed` when acceptance is not explicit.
52 
53### 2. Gather Context and Forces
54 
55- [ ] State the current context and problem in value-neutral language.
56- [ ] Extract business drivers, quality attributes, constraints, assumptions, and decision horizon from available evidence.
57- [ ] Identify affected boundaries, contracts, data, security, operations, cost, ownership, and migration implications.
58- [ ] Separate present facts from forecasts and preferences.
59- [ ] Record contradictions or missing evidence that could change the choice.
60 
61### 3. Evaluate Alternatives
62 
63- [ ] Include the status quo and the simplest credible option unless they are demonstrably infeasible.
64- [ ] For an open choice, compare materially different credible alternatives; for retrospective records, include only evidenced historical options and mark missing rationale unknown.
65- [ ] Compare options against the same drivers: correctness, quality targets, complexity, reversibility, cost, operations, team fit, and evolution.
66- [ ] State why each rejected alternative loses in this context without claiming universal inferiority.
67- [ ] Record sensitivity or review triggers that would make a rejected option preferable later.
68 
69### 4. Record the Decision
70 
71- [ ] Write title, status, date, deciders or owner, context, drivers, considered options, decision, consequences, validation, and review triggers.
72- [ ] State the decision in active, testable language and name what remains deliberately undecided.
73- [ ] Record positive, negative, and neutral consequences plus accepted risks.
74- [ ] Link affected requirements, designs, diagrams, interfaces, migration documents, or issues by stable repository reference.
75- [ ] Apply the Artifact Rules for proposed or accepted supersession; verify links and preserve prior rationale.
76 
77### 5. Validate and Report
78 
79- [ ] Confirm the record contains one decision and can be understood without conversation history.
80- [ ] Confirm consequential claims have evidence or labelled assumptions/unknowns with validation actions; never invent historical rationale or rejected alternatives for a retrospective record.
81- [ ] Confirm `Accepted` was not assigned without explicit authority.
82- [ ] Identify the requirements, interfaces, and downstream decisions affected by this decision or its supersession; preserve the accepted/proposed distinction and historical rationale.
83- [ ] Use `READY` when the record and status are valid; use `INCOMPLETE` when material context or required acceptance authority remains unresolved; a complete explicitly Proposed record does not require acceptance to be `READY`; use `BLOCKED` for ambiguous scope, unsafe numbering, conflicting ownership, or no writable destination.
84 
85## Self-Check
86 
87- [ ] **Reconcile before returning.** Check item-level evidence, requirement coverage, contradictions, scope, verdict, and applicable cleanup. Correct the report or authorized artifacts. Reuse valid evidence; do not automatically rescan the repository or rerun successful commands. Repeat checks only for relevant changes, failures, or unresolved evidence. Disclose remaining gaps.
88 
89## Output Contract
90 
91Report in the user's language, in this order; label all five fields and state each fact once. Use controlled plain language: one fact per sentence, usually under 20 words, active voice, and one term per concept, with no synonyms for verdicts, IDs, or states. Small results may use one line per field; omit empty tables and do not copy linked artifacts:
92 
931. **Result:** The exact skill-specific verdict token first, then the supported outcome.
942. **Scope:** Reviewed/changed scope, exclusions, baseline, and material assumptions.
953. **Evidence:** Skill-specific fields below; distinguish facts, inferences, and unverified claims. Link artifacts; use tables when useful.
964. **Verification:** Checks/results, unavailable evidence, and applicable cleanup/external state.
975. **Completion:** `Checklist: X/Y complete`; `Incomplete: None` or each `UNPROVEN` item's reason, outcome impact, and exact next action; residual risks and required decisions.
98 
99**Skill-specific evidence:** Artifact path, decision identity/status/owner, selected option, alternatives, consequences, evidence, and acceptance/validation needs. Report links or status changes to historical records, preserving their rationale; identify unresolved choices and review triggers without implying acceptance of a proposal.
100 

Discussion

Alternatives

Skillshare changelogGenerate CHANGELOG.md entry from recent commits in conventional format. Also syncs the website changelog page. Use this skill whenever the user asks to: generate a changelog, document what changed between tags, or create a new CHANGELOG entry. If you see requests like "write the changelog for v0.17", what changed since last release", this is the skill to use. Do NOT manually edit CHANGELOG.md without this skill — it ensures proper formatting, user-perspective writing, and website changelog sync. For full release workflows (Release PR review, tests, draft assets, publication, announcements), use /release instead.Coding · MITSkillshare update docsUpdate website docs to match recent code changes, cross-validating every flag against source. Use this skill whenever the user asks to: update documentation, sync docs with code, document a new flag or command, fix stale docs, or update the README. This skill covers all website/docs/ categories (commands, reference, understand, how-to, troubleshooting, getting-started) plus the built-in skill description and README. If you just implemented a feature and need to update docs, this is the skill to use. Never manually edit website docs without cross-validating flags against Go source first.Coding · MITGithub repository analysis and enhancementAct as a GitHub Repository Analyst to perform in-depth analysis and suggest improvements for repository structure, documentation, code quality, and community engagement.Coding · CC0-1.0Github repository analystAct as a GitHub Repository Analyst. You are an expert in software development and repository management with extensive experience in code analysis, documentation, and interaction with the GitHub community.Coding · CC0-1.0