Skip to content
Back to skills

Adr New

ASecurity

USE WHEN a load-bearing architectural decision is being made in conversation (database / framework / auth model / integration choice, or explicit rejection of an alternative) — one likely to be re-litigated in 6 months without the rationale. Bootstraps a numbered MADR ADR in `docs/adr/`, asks for context + decision + alternatives, updates the index. Immutable status once accepted. See `docs/adr/README.md` for the convention; full Do/Don't list in this SKILL body.

  • 68 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 28, 2026
ai-agentsbashgitdatabase

Security analysis

A100/100

Scanned May 28, 2026

npx -y skills add Filip-Podstavec/claude-leverage --skill adr-new --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Adr New?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Adr New
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/filip-podstavec-adr-new/badge)](https://www.skillsdirectory.com/skills/filip-podstavec-adr-new)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: adr-new
description: >
  USE WHEN a load-bearing architectural decision is being made in
  conversation (database / framework / auth model / integration
  choice, or explicit rejection of an alternative) — one likely to be
  re-litigated in 6 months without the rationale. Bootstraps a
  numbered MADR ADR in `docs/adr/`, asks for context + decision +
  alternatives, updates the index. Immutable status once accepted.
  See `docs/adr/README.md` for the convention; full Do/Don't list in
  this SKILL body.
allowed-tools:
  - Read
  - Write
  - Edit
  - Glob
  - Bash(ls:*)
  - Bash(test:*)
  - Bash(date:*)
argument-hint: "[title] [--status proposed|accepted] [--noninteractive]"
---

# /adr-new

## What it does

Creates a new numbered ADR file in `docs/adr/` and adds an entry to the
index. ADRs are the lightweight memory of *why* the architecture looks
the way it does — without them, six months from now nobody (human or
agent) remembers why we chose A instead of B.

The convention is documented in
[`docs/adr/README.md`](../../docs/adr/README.md): MADR-flavored,
numbered, immutable status (proposed → accepted → deprecated /
superseded).

## Workflow

1. **Find target dir.** Default `docs/adr/` from the current repo root
   (via `git rev-parse --show-toplevel`). If no `docs/adr/` exists,
   ask the user: "create it now?". If yes, also copy
   `templates/adr-template.md` if shipped (the plugin ships its own
   template under `docs/adr/template.md` — useful as a reference even
   when the target repo doesn't have one yet).

2. **Pick next number.** List existing `docs/adr/NNNN-*.md` files,
   parse the leading number, take the max + 1. Pad to 4 digits.

3. **Get the title.**
   - If `$ARGUMENTS` has a positional, use it as the title.
   - If `--noninteractive`, fail if no title was given (we won't
     hallucinate one).
   - Otherwise, prompt the user.
   - Convert to kebab-case for the filename:
     `0042-replace-polling-with-webhooks.md`.

4. **Ask for context** (skip in `--noninteractive`):
   - One-line summary of the problem.
   - The chosen option (one sentence, stated as fact in present
     tense).
   - 1–3 alternatives considered (one line each).
   - Whether to mark `status: proposed` (default) or `accepted` (if
     the team already decided in conversation and just needs the
     record).

5. **Generate the file** at `docs/adr/<NNNN>-<kebab-title>.md` using
   the MADR template (the plugin ships
   [`docs/adr/template.md`](../../docs/adr/template.md) for reference).
   Substitute:
   - `NNNN` → resolved number
   - `Title` → user-provided title
   - `YYYY-MM-DD` → today (`date +%Y-%m-%d`)
   - `Status` → resolved value
   - Context / Decision / Alternatives → user input or
     `<TODO: fill in>` placeholders if user skipped them

6. **Update the index.** Append the new ADR to the bulleted list in
   `docs/adr/README.md` (or create it if it doesn't exist). Preserve
   the existing index style:
   `- [NNNN — Title](NNNN-kebab.md)`

7. **Report.** Print the new file path and remind the user that ADRs
   are immutable once `accepted` — future revisions are *new* ADRs
   superseding the old one, not edits.

## Hard rules

- **Numbers are immutable.** Once shipped, an ADR's number never
  changes. If you regenerate the file (because of typos in the title
  before commit), keep the number.
- **Status is immutable once `accepted`.** Edits to an `accepted` ADR
  should be limited to typos and link fixes. Substantive changes ship
  as a new ADR that explicitly supersedes the old one
  (`Status: superseded by NNNN`).
- **The index is the source of truth for "what ADRs exist."** Always
  update it; never let it drift from the directory contents.
- **Never overwrite an existing ADR.** If the kebab-title collides
  with an existing file, ask the user for a different title.

## Tunables

- `--status accepted` — start the ADR as `accepted` rather than
  `proposed`. Use when the decision is already settled and you're just
  recording it.
- `--noninteractive` — skip prompts; requires a title positional and
  fills the context/decision/alternatives with `<TODO>` placeholders.
- `--dry-run` — print what would be written, write nothing.

## When to write an ADR (and when not to)

**Write an ADR for:**
- Architectural tradeoffs likely to be re-litigated (e.g., "no
  embedding RAG", "AGENTS.md canonical, CLAUDE.md import").
- Decisions that depend on external constraints (a vendor, an open
  issue, a benchmark result).
- Decisions where alternatives are plausible enough that a future
  agent will propose them.

**Don't write an ADR for:**
- Implementation choices the code itself shows (variable names,
  function structure).
- One-off tactical fixes.
- Things covered by an obvious convention (test naming, lint config).

If you're not sure: write it. Three sentences in `docs/adr/0042.md`
is cheap; re-arguing the same point six months later is expensive.

## What this skill does NOT do

- **Doesn't make the decision.** It records a decision you've already
  made. If you don't yet know the decision, you want a `docs/specs/`
  document (or `superpowers:brainstorming`), not an ADR.
- **Doesn't read the conversation context.** You tell it the
  decision in your own words; the skill just structures the file.
- **Doesn't supersede or modify existing ADRs.** Modification is a
  manual edit + new ADR with `Status: superseded by NNNN`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.