跳到正文
cccskills
免费在 GitHub 公开

architecture-decision-record-skill

Write architecture decision records, short documents explaining a software design choice, its context, and its consequences. It helps decide what deserves a record, select a template, organize files, and link replacement decisions to earlier records.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Use when a user wants to create, write, name, place, or organize an Architecture Decision Record (ADR) in a software project — e.g. "write an ADR for choosing a database", "document this architecture decision", "set up an adr/ or decisions/ directory", "which ADR template should I use", "supersede an old ADR". Covers picking a template, naming the file, filling in context/decision/consequences, and deciding whether a decision even needs an ADR.

查看安装方法

适用场景

  • Record why a database or library was chosen
  • Set up a directory for decision records
  • Choose an ADR template that fits the decision
  • Replace an earlier decision while preserving its history

包含的文件(3)

  • SKILL.md5.8 KB
  • reference/templates.md11.0 KB
  • reference/writing-guide.md3.9 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Architecture decision record (ADR) skill

Helps a developer or team create and maintain architecture decision records: short documents that capture an important architecture decision, the context that led to it, and its consequences.

This skill is general-purpose: it applies to any repository the user is working in, not just this one. reference/templates.md and reference/writing-guide.md are self-contained — no need to read the rest of this repo to use them.

1. Decide if this decision deserves an ADR

Not every decision needs one. Recommend an ADR when the decision:

  • Is architecturally significant (affects structure, external interfaces, quality attributes, or is expensive/risky to reverse).
  • Needs to be understood by future developers who weren't in the room.
  • Involved real trade-offs worth recording (not a one-line style choice already covered by a linter or style guide).

Skip an ADR when the decision is tiny, self-contained, single-developer, already covered by policy/standards, or purely a temporary workaround/POC.

If the user is unsure, ask what the decision is and who needs to understand "why" later — that usually settles it.

2. Find or create the ADR directory

Look for an existing convention first:

git ls-files | grep -iE '(^|/)(adr|adrs|decisions?)(/|$)'
  • If one exists, follow its naming/format/numbering so far.
  • If none exists, ask the user (or default to) a top-level decisions/ or adr/ directory. Some teams prefer decisions/ because the word "architecture" and the abbreviation "ADR" put some contributors off, while "decisions" invites broader use (vendor, planning, scheduling decisions too).
  • Some projects number files (0001-choose-database.md, adr-tools style); others don't. Match what's already there; otherwise unnumbered present-tense file names (see below) are simplest to start with.

3. Name the file

Convention used across this ecosystem:

  • A present-tense imperative verb phrase, e.g. choose-database.md, format-timestamps.md, manage-passwords.md, handle-exceptions.md.
  • Lowercase with dashes.
  • .md extension.
  • If the project numbers ADRs, prefix with a zero-padded sequence number, e.g. 0007-choose-database.md.

4. Pick a template

Ask the user's preference, or pick based on the shape of the decision — see reference/templates.md for the full skeletons. Quick guide:

SituationTemplate
Default / most teams / unsureNygard — Title, Status, Context, Decision, Consequences
Want lightweight options-with-pros/consMADR
Enterprise, need traceability to requirements/principlesTyree & Akerman
Fast executive sign-off on a narrow technical choice (a library, a model, a CI strategy)ITD (Important Technical Decision)
Vendor/tool selection with cost, SWOT, stakeholder opinionsBusiness case
Want a one-paragraph "Y-statement" style summary plus narrativeAlexandrian pattern
Need formal, testable non-functional requirements languagePlanguage
Contributing to / matching EdgeX Foundry conventionsEdgeX
Full architecture documentation, ADR is one section of itarc42 (§9)
Want a lightweight traffic-light options-comparison tableGareth Morgan
Want an "Options → Options Analysis → Recommendation" narrative flowGIG Cymru NHS Wales

When in doubt, default to Nygard — it's the simplest, most widely recognized, and easiest for a team to adopt without tooling.

5. Write it well

Load reference/writing-guide.md for the fuller checklist. The essentials:

  • One decision per ADR. Don't bundle multiple architecturally distinct decisions into one file.
  • Context should explain the organization's situation, constraints, and the forces in tension — not just "we needed a database."
  • Decision should state the chosen direction plainly, not hedge.
  • Consequences should cover both what gets easier and what gets harder, plus any follow-on ADRs this decision now requires.
  • Timestamp it. Costs, vendor pricing, and scaling numbers change — date anything that might go stale.
  • Give the record a status: proposed | accepted | rejected | deprecated | superseded by <link>.

6. Handle supersession, not silent edits

ADRs are usually treated as immutable once accepted (some teams instead prefer a "living document" with dated addenda — ask if unsure which this team wants). When a new decision replaces an old one:

  1. Create a new ADR file describing the new decision.
  2. Update the old ADR's Status to Superseded by [new-adr](path).
  3. Link back from the new ADR's Status/Links section: Supersedes [old-adr](path).

7. Optional: wire it into pull requests

If the user wants ADR presence enforced or automatically surfaced on PRs, mention (don't set these up unprompted):

  • ADR Guard — GitHub Action that fails a PR when watched code paths change without an ADR being added/updated. Supports ADR-Exempt: waivers.
  • Decision Guardian — surfaces relevant existing decision records on a PR touching that code.

Full background, more templates, and further reading live in the architecture-decision-record repo.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Maintain a collection of architecture decision record templates, examples, translations, and tool links. It explains which files to update for each contribution and how to review pull requests for completeness, consistent formatting, and relevant content.

中文简介正在准备中。当前显示英语简介。

  • Add an ADR template to the collection
  • Add a worked decision record example
  • Update links to ADR tools and pull request checks
architecture-decision-record/architecture-decision-record1.7万2026年10月21日 更新

查看 architecture-decision-record 的全部技能

报告此技能的问题