MCAF: ADR Writing
Trigger On
- a dependency, boundary, platform, contract, or data model is changing
- a design decision has meaningful trade-offs that should be recorded
- a repo-wide engineering policy needs a durable rationale
Value
- produce a concrete project delta: code, docs, config, tests, CI, or review artifact
- reduce ambiguity through explicit planning, verification, and final validation skills
- leave reusable project context so future tasks are faster and safer
Do Not Use For
- feature-level behaviour details without an architecture decision
- generic architecture overview content
Inputs
docs/Architecture.md
- related feature docs
- the nearest
AGENTS.md
- current constraints, options, and risks
Quick Start
- Read the nearest
AGENTS.md and confirm scope and constraints.
- Run this skill's
Workflow through the Ralph Loop until outcomes are acceptable.
- Return the
Required Result Format with concrete artifacts and verification evidence.
Workflow
- Start from the concrete decision that must be made now.
- If the ADR is missing, scaffold it from
references/adr-template.md.
- Record:
- context and problem
- chosen decision
- alternatives considered
- trade-offs and consequences
- implementation plan
- Add diagrams only when they remove ambiguity.
- Link the ADR to affected feature docs and
docs/Architecture.md.
Deliver
docs/ADR/ADR-XXXX-short-title.md
- linked updates to architecture docs when the decision changes boundaries
Validate
- the decision and rejected alternatives are explicit
- trade-offs are concrete, not hand-wavy
- implementation impact is clear
- a future engineer can understand why this path was chosen
Ralph Loop
Use the Ralph Loop for every task, including docs, architecture, testing, and tooling work.
- Plan first (mandatory):
- analyze current state
- define target outcome, constraints, and risks
- write a detailed execution plan
- list final validation skills to run at the end, with order and reason
- Execute one planned step and produce a concrete delta.
- Review the result and capture findings with actionable next fixes.
- Apply fixes in small batches and rerun the relevant checks or review steps.
- Update the plan after each iteration.
- Repeat until outcomes are acceptable or only explicit exceptions remain.
- If a dependency is missing, bootstrap it or return
status: not_applicable with explicit reason and fallback path.
Required Result Format
status: complete | clean | improved | configured | not_applicable | blocked
plan: concise plan and current iteration step
actions_taken: concrete changes made
validation_skills: final skills run, or skipped with reasons
verification: commands, checks, or review evidence summary
remaining: top unresolved items or none
For setup-only requests with no execution, return status: configured and exact next commands.
Load References
- start with
references/adr-template.md
- use
references/ADR-FORMATS.md only for numbering or formatting conventions
Example Requests
- "Write an ADR for moving to event-driven notifications."
- "Document why we are adding PostgreSQL instead of keeping SQLite."
- "Capture the policy decision behind local project AGENTS files."
1---2name: mcaf-adr-writing3description: Create or update an ADR under `docs/ADR/` for architectural decisions, dependency changes, data-model changes, or cross-cutting policy shifts. Use when the user asks to write, update, or document an ADR, record a design decision, capture architecture trade-offs, or justify a repo-wide technical policy.4---56# MCAF: ADR Writing78## Trigger On910- a dependency, boundary, platform, contract, or data model is changing11- a design decision has meaningful trade-offs that should be recorded12- a repo-wide engineering policy needs a durable rationale1314## Value1516- produce a concrete project delta: code, docs, config, tests, CI, or review artifact17- reduce ambiguity through explicit planning, verification, and final validation skills18- leave reusable project context so future tasks are faster and safer1920## Do Not Use For2122- feature-level behaviour details without an architecture decision23- generic architecture overview content2425## Inputs2627- `docs/Architecture.md`28- related feature docs29- the nearest `AGENTS.md`30- current constraints, options, and risks3132## Quick Start33341. Read the nearest `AGENTS.md` and confirm scope and constraints.352. Run this skill's `Workflow` through the `Ralph Loop` until outcomes are acceptable.363. Return the `Required Result Format` with concrete artifacts and verification evidence.3738## Workflow39401. Start from the concrete decision that must be made now.412. If the ADR is missing, scaffold it from `references/adr-template.md`.423. Record:43 - context and problem44 - chosen decision45 - alternatives considered46 - trade-offs and consequences47 - implementation plan484. Add diagrams only when they remove ambiguity.495. Link the ADR to affected feature docs and `docs/Architecture.md`.5051## Deliver5253- `docs/ADR/ADR-XXXX-short-title.md`54- linked updates to architecture docs when the decision changes boundaries5556## Validate5758- the decision and rejected alternatives are explicit59- trade-offs are concrete, not hand-wavy60- implementation impact is clear61- a future engineer can understand why this path was chosen6263## Ralph Loop6465Use the Ralph Loop for every task, including docs, architecture, testing, and tooling work.66671. Plan first (mandatory):68 - analyze current state69 - define target outcome, constraints, and risks70 - write a detailed execution plan71 - list final validation skills to run at the end, with order and reason722. Execute one planned step and produce a concrete delta.733. Review the result and capture findings with actionable next fixes.744. Apply fixes in small batches and rerun the relevant checks or review steps.755. Update the plan after each iteration.766. Repeat until outcomes are acceptable or only explicit exceptions remain.777. If a dependency is missing, bootstrap it or return `status: not_applicable` with explicit reason and fallback path.7879### Required Result Format8081- `status`: `complete` | `clean` | `improved` | `configured` | `not_applicable` | `blocked`82- `plan`: concise plan and current iteration step83- `actions_taken`: concrete changes made84- `validation_skills`: final skills run, or skipped with reasons85- `verification`: commands, checks, or review evidence summary86- `remaining`: top unresolved items or `none`8788For setup-only requests with no execution, return `status: configured` and exact next commands.8990## Load References9192- start with `references/adr-template.md`93- use `references/ADR-FORMATS.md` only for numbering or formatting conventions9495## Example Requests9697- "Write an ADR for moving to event-driven notifications."98- "Document why we are adding PostgreSQL instead of keeping SQLite."99- "Capture the policy decision behind local project AGENTS files."