본문으로 건너뛰기
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(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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 / 1,000자

이 양식은 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의 스킬 모두 보기

이 스킬의 문제 신고