Create an Architectural Decision Record (ADR) as a structured Markdown document with front matter, coded consequences, alternatives, implementation notes, and references. Use when the user asks to document an architecture decision, create an ADR, capture alternatives and trade-offs, or save a decision under docs/adr.
Turn a decision brief into a machine-parseable and human-readable ADR saved under /docs/adr/ with sequential numbering, standardized front matter, positive and negative consequences, rejected alternatives, implementation notes, and references.
When to invoke
"Create an ADR for this architecture decision."
"Document why we chose this database."
"Write an architectural decision record with alternatives."
"Save this decision under docs/adr."
"Capture the consequences and implementation notes for this decision."
Inputs
Use $ARGUMENTS and the conversation context to extract:
Input
Required
Rule
Decision title
Yes
Short noun phrase used in ADR-NNNN: [Decision Title] and the filename slug.
Context
Yes
Problem statement, constraints, business requirements, and environment.
Decision
Yes
The selected option and rationale.
Alternatives
Yes
At least one considered option with rejection rationale.
Stakeholders
Yes
Names, roles, or responsible teams for authors.
If a required input cannot be determined, return blocked with the missing fields. In interactive environments, ask for the missing information before generating the ADR.
ADR file rules
Rule
Required format
Directory
/docs/adr/
Filename
adr-NNNN-[title-slug].md
Numbering
Use the next sequential 4-digit number, for example adr-0001-database-selection.md.
Status
Start as Proposed unless the user specifies Accepted, Rejected, Superseded, or Deprecated.
Language
Precise, unambiguous, direct prose.
Multi-item sections
Use coded bullets with 3-4 letter codes plus 3 digits.
Consequences
Include both positive and negative consequences.
Alternatives
Include description and rejection reason for each alternative.
References
Include related ADRs, external documentation, standards, or None identified.
Description or rejection reason for a considered option.
IMP-001
Implementation notes
Rollout, migration, monitoring, success criteria.
REF-001
References
Related ADR, external documentation, standard.
Procedure
Extract required inputs from $ARGUMENTS and context.
Inspect /docs/adr/ if it exists and determine the next adr-NNNN number; use 0001 when no prior ADR exists.
Slugify the title with lowercase words separated by hyphens.
Generate front matter and body using the required ADR template below.
Fill every section with concrete decision content; do not leave placeholder text.
Save the file as /docs/adr/adr-NNNN-[title-slug].md.
Report the created path and any assumptions.
ADR template
---
title: "ADR-NNNN: [Decision Title]"
status: "Proposed"
date: "YYYY-MM-DD"
authors: "[Stakeholder Names/Roles]"
tags: ["architecture", "decision"]
supersedes: ""
superseded_by: ""
---
# ADR-NNNN: [Decision Title]
## Status
**Proposed** | Accepted | Rejected | Superseded | Deprecated
## Context
[Problem statement, technical constraints, business requirements, and environmental factors requiring this decision.]
## Decision
[Chosen solution with clear rationale for selection.]
## Consequences
### Positive
- **POS-001**: [Beneficial outcomes and advantages]
- **POS-002**: [Performance, maintainability, scalability improvements]
- **POS-003**: [Alignment with architectural principles]
### Negative
- **NEG-001**: [Trade-offs, limitations, drawbacks]
- **NEG-002**: [Technical debt or complexity introduced]
- **NEG-003**: [Risks and future challenges]
## Alternatives Considered
### [Alternative 1 Name]
- **ALT-001**: **Description**: [Brief technical description]
- **ALT-002**: **Rejection Reason**: [Why this option was not selected]
### [Alternative 2 Name]
- **ALT-003**: **Description**: [Brief technical description]
- **ALT-004**: **Rejection Reason**: [Why this option was not selected]
## Implementation Notes
- **IMP-001**: [Key implementation considerations]
- **IMP-002**: [Migration or rollout strategy if applicable]
- **IMP-003**: [Monitoring and success criteria]
## References
- **REF-001**: [Related ADRs]
- **REF-002**: [External documentation]
- **REF-003**: [Standards or frameworks referenced]
Gotchas
Do not skip alternatives: an ADR without rejected alternatives is only a decision memo.
Do not use unnumbered filenames: adr-NNNN-[title-slug].md keeps chronology machine-sortable.
Do not omit negative consequences: trade-offs make the decision reviewable later.
Do not leave placeholders: if a field is unknown, block and request it rather than writing [TBD].
Legacy input aliases
If older automation passes ${input:DecisionTitle}, ${input:Context}, ${input:Decision}, ${input:Alternatives}, or ${input:Stakeholders}, map those values into $ARGUMENTS fields. Preserve every multi-item section as coded bullets.
Output template
## ADR creation result
**Status:** created | blocked | failed
**ADR:** `docs/adr/adr-NNNN-<title-slug>.md`
**Decision:** <one-sentence summary>
**Authors:** <stakeholders>
### Inputs used
| Field | Value |
| --- | --- |
| Context | <summary> |
| Decision | <summary> |
| Alternatives | <count and names> |
| Stakeholders | <names/roles> |
### Validation
- Next ADR number selected: pass | fail
- Required sections populated: pass | fail
- Positive and negative consequences included: pass | fail
- Alternatives include rejection rationale: pass | fail
Quality gate
The ADR is saved under /docs/adr/ with filename adr-NNNN-[title-slug].md.
The next sequential 4-digit ADR number was determined from existing ADR files.
Front matter includes title, status, date, authors, tags, supersedes, and superseded_by.
Context, Decision, Consequences, Alternatives Considered, Implementation Notes, and References are populated.
Positive and negative consequences use POS-NNN and NEG-NNN coded bullets.
Alternatives include both description and rejection reason using ALT-NNN coded bullets.
Implementation and reference items use IMP-NNN and REF-NNN coded bullets.
1---2name: create-architectural-decision-record-43description: Create an Architectural Decision Record (ADR) as a structured Markdown document with front matter, coded consequences, alternatives, implementation notes, and references. Use when the user asks to document an architecture decision, create an ADR, capture alternatives and trade-offs, or save a decision under docs/adr.4---56<!-- Generated from harness/github-copilot/plugins/mainframe-natural-adabas/skills/create-architectural-decision-record/SKILL.md by harness/claude-code/scripts/convert_from_copilot.py. Edit the source, not this file. -->78# Create architectural decision record910Turn a decision brief into a machine-parseable and human-readable ADR saved under `/docs/adr/` with sequential numbering, standardized front matter, positive and negative consequences, rejected alternatives, implementation notes, and references.1112## When to invoke1314- "Create an ADR for this architecture decision."15- "Document why we chose this database."16- "Write an architectural decision record with alternatives."17- "Save this decision under docs/adr."18- "Capture the consequences and implementation notes for this decision."1920## Inputs2122Use `$ARGUMENTS` and the conversation context to extract:2324| Input | Required | Rule |25| --- | --- | --- |26| Decision title | Yes | Short noun phrase used in `ADR-NNNN: [Decision Title]` and the filename slug. |27| Context | Yes | Problem statement, constraints, business requirements, and environment. |28| Decision | Yes | The selected option and rationale. |29| Alternatives | Yes | At least one considered option with rejection rationale. |30| Stakeholders | Yes | Names, roles, or responsible teams for `authors`. |3132If a required input cannot be determined, return `blocked` with the missing fields. In interactive environments, ask for the missing information before generating the ADR.3334## ADR file rules3536| Rule | Required format |37| --- | --- |38| Directory | `/docs/adr/` |39| Filename | `adr-NNNN-[title-slug].md` |40| Numbering | Use the next sequential 4-digit number, for example `adr-0001-database-selection.md`. |41| Status | Start as `Proposed` unless the user specifies `Accepted`, `Rejected`, `Superseded`, or `Deprecated`. |42| Language | Precise, unambiguous, direct prose. |43| Multi-item sections | Use coded bullets with 3-4 letter codes plus 3 digits. |44| Consequences | Include both positive and negative consequences. |45| Alternatives | Include description and rejection reason for each alternative. |46| References | Include related ADRs, external documentation, standards, or `None identified`. |4748## Coded bullet taxonomy4950| Code | Section | Example |51| --- | --- | --- |52| `POS-001` | Positive consequences | Benefit, quality improvement, operational advantage. |53| `NEG-001` | Negative consequences | Trade-off, limitation, complexity, risk. |54| `ALT-001` | Alternatives considered | Description or rejection reason for a considered option. |55| `IMP-001` | Implementation notes | Rollout, migration, monitoring, success criteria. |56| `REF-001` | References | Related ADR, external documentation, standard. |5758## Procedure59601. Extract required inputs from `$ARGUMENTS` and context.612. Inspect `/docs/adr/` if it exists and determine the next `adr-NNNN` number; use `0001` when no prior ADR exists.623. Slugify the title with lowercase words separated by hyphens.634. Generate front matter and body using the required ADR template below.645. Fill every section with concrete decision content; do not leave placeholder text.656. Save the file as `/docs/adr/adr-NNNN-[title-slug].md`.667. Report the created path and any assumptions.6768## ADR template6970```md71---72title: "ADR-NNNN: [Decision Title]"73status: "Proposed"74date: "YYYY-MM-DD"75authors: "[Stakeholder Names/Roles]"76tags: ["architecture", "decision"]77supersedes: ""78superseded_by: ""79---8081# ADR-NNNN: [Decision Title]8283## Status8485**Proposed** | Accepted | Rejected | Superseded | Deprecated8687## Context8889[Problem statement, technical constraints, business requirements, and environmental factors requiring this decision.]9091## Decision9293[Chosen solution with clear rationale for selection.]9495## Consequences9697### Positive9899- **POS-001**: [Beneficial outcomes and advantages]100- **POS-002**: [Performance, maintainability, scalability improvements]101- **POS-003**: [Alignment with architectural principles]102103### Negative104105- **NEG-001**: [Trade-offs, limitations, drawbacks]106- **NEG-002**: [Technical debt or complexity introduced]107- **NEG-003**: [Risks and future challenges]108109## Alternatives Considered110111### [Alternative 1 Name]112113- **ALT-001**: **Description**: [Brief technical description]114- **ALT-002**: **Rejection Reason**: [Why this option was not selected]115116### [Alternative 2 Name]117118- **ALT-003**: **Description**: [Brief technical description]119- **ALT-004**: **Rejection Reason**: [Why this option was not selected]120121## Implementation Notes122123- **IMP-001**: [Key implementation considerations]124- **IMP-002**: [Migration or rollout strategy if applicable]125- **IMP-003**: [Monitoring and success criteria]126127## References128129- **REF-001**: [Related ADRs]130- **REF-002**: [External documentation]131- **REF-003**: [Standards or frameworks referenced]132```133134## Gotchas135136- **Do not skip alternatives**: an ADR without rejected alternatives is only a decision memo.137- **Do not use unnumbered filenames**: `adr-NNNN-[title-slug].md` keeps chronology machine-sortable.138- **Do not omit negative consequences**: trade-offs make the decision reviewable later.139- **Do not leave placeholders**: if a field is unknown, block and request it rather than writing `[TBD]`.140141## Legacy input aliases142143If older automation passes `${input:DecisionTitle}`, `${input:Context}`, `${input:Decision}`, `${input:Alternatives}`, or `${input:Stakeholders}`, map those values into `$ARGUMENTS` fields. Preserve every `multi-item` section as coded bullets.144145## Output template146147```markdown148## ADR creation result149150**Status:** created | blocked | failed151**ADR:** `docs/adr/adr-NNNN-<title-slug>.md`152**Decision:** <one-sentence summary>153**Authors:** <stakeholders>154155### Inputs used156| Field | Value |157| --- | --- |158| Context | <summary> |159| Decision | <summary> |160| Alternatives | <count and names> |161| Stakeholders | <names/roles> |162163### Validation164- Next ADR number selected: pass | fail165- Required sections populated: pass | fail166- Positive and negative consequences included: pass | fail167- Alternatives include rejection rationale: pass | fail168```169170## Quality gate171172- [ ] The ADR is saved under `/docs/adr/` with filename `adr-NNNN-[title-slug].md`.173- [ ] The next sequential 4-digit ADR number was determined from existing ADR files.174- [ ] Front matter includes `title`, `status`, `date`, `authors`, `tags`, `supersedes`, and `superseded_by`.175- [ ] Context, Decision, Consequences, Alternatives Considered, Implementation Notes, and References are populated.176- [ ] Positive and negative consequences use `POS-NNN` and `NEG-NNN` coded bullets.177- [ ] Alternatives include both description and rejection reason using `ALT-NNN` coded bullets.178- [ ] Implementation and reference items use `IMP-NNN` and `REF-NNN` coded bullets.
Run npx skillmds@latest add paulasilvatech/create-architectural-decision-record-4 in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Create an Architectural Decision Record (ADR) as a structured Markdown document with front matter, coded consequences, alternatives, implementation notes, and references. Use when the user asks to document an architecture decision, create an ADR, capture alternatives and trade-offs, or save a decision under docs/adr. It is listed under Docs & Writing on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
paulasilvatech (@paulasilvatech) published this skill. Their other Agent Skills are listed on their SkillMD profile.