VIRIM Infotech
Your AI Assisted Product Developers

vm-adr-writer

Skill detail with category, linked agents, and source metadata.

vm-adr-writer

Drafts standardized Architecture Decision Records (ADRs) with indexed IDs, consistent governance content, and full decision context including alternatives considered, trade-off analysis, and consequences. Produces ADR files in a numbered sequence following the Michael Nygard template pattern. Use whenever a material architecture or design decision is made during API design, data model design, solution design, or refactoring.

Category: architecture Used by 4 agents

Source: .github/skills/architecture/vm-adr-writer/SKILL.md

Used By Agents

Preview

View source preview (first 3000 chars)

# Architecture Decision Record Writer

This skill produces standardized Architecture Decision Records (ADRs) following the Michael Nygard template pattern. Each ADR captures a single material design decision with its full context, alternatives, trade-offs, and consequences.

## When to Invoke

Invoke this skill whenever a material architecture or design decision is made, including:

- Technology or framework selection
- API versioning, authentication, or contract strategy
- Database engine, schema pattern, or migration approach
- Component decomposition or service boundary placement
- Integration pattern selection (sync vs async, REST vs gRPC, etc.)
- Refactoring strategy that changes structural design
- Trade-off resolution where multiple viable alternatives existed

Do NOT invoke for trivial decisions (variable naming, formatting choices, minor implementation details).

---

## ADR File Naming

ADRs are numbered sequentially within the project output directory:

```
docs/{agent-output-folder}/adr/
  ADR-001-{slug}.md
  ADR-002-{slug}.md
  ...
```

The slug is a lowercase-hyphenated summary of the decision title. Example: `ADR-003-use-event-sourcing-for-audit-trail.md`.

To determine the next ADR number:
1. Check the `docs/{agent-output-folder}/adr/` directory for existing ADR files.
2. If no directory or no files exist, start at `ADR-001`.
3. Otherwise, increment from the highest existing number.

---

## ADR Template

Every ADR must follow this structure exactly. Load `assets/adr-template.md` and fill in all `{placeholder}` fields before writing the file.

---

## Output Rules

1. One ADR per decision. Do not combine multiple decisions into a single ADR.
2. The Status field starts as `Proposed` unless the calling agent has explicit approval authority, in which case use `Accepted`.
3. Always populate the Alternatives section. An ADR without alternatives is incomplete -- if only one option existed, explain why no alternatives were viable.
4. The Consequences section must include both positive and negative entries. Every decision has trade-offs.
5. Cross-reference related ADRs in the References section when a decision depends on or supersedes a prior one.
6. Keep language factual and concise. Avoid subjective qualifiers ("elegant", "beautiful", "ideal").
7. If the calling agent provides trade-off analysis output, incorporate it directly into the Alternatives and Consequences sections rather than duplicating the analysis.

---

## JSON Index

When creating ADRs, also maintain an `adr-index.json` file in the same `adr/` directory:

```json
{
  "generated_by": "{calling-agent-name}",
  "adr_directory": "docs/{agent-output-folder}/adr/",
  "records": [
    {
      "id": "ADR-001",
      "title": "{Decision title}",
      "status": "Accepted",
      "date": "2026-04-02",
      "file": "ADR-001-{slug}.md"
    }
  ]
}
```

If `adr-index.json` already exists, append the new record to the `records` array. Do not overwrite existing entries.

---

## Temp