Skip to content
Development
Skill

/record-decision

Append a new Architecture Decision Record (ADR) to the repo with an auto-incremented number and the MADR template. TRIGGER when the user says "record this decision", "log this decision", "add an ADR for X", "create an ADR about Y", "record the choice to use Postgres", "write up

From plugin
nyann
741 skills41 commands3 hooks

Claude Code

$ npx -y skills add thettwe/nyann --skill record-decision --agent claude-code

SKILL.md

record-decision.SKILL.md
name: record-decision
description: >
  Append a new Architecture Decision Record (ADR) to the repo with an
  auto-incremented number and the MADR template.
  TRIGGER when the user says "record this decision", "log this
  decision", "add an ADR for X", "create an ADR about Y", "record the
  choice to use Postgres", "write up this decision", "document this
  as an ADR", "/nyann:record-decision".
  Do NOT trigger on "write a doc" / "add documentation" (those are
  broader — route to the appropriate doc skill). Do NOT trigger on
  "record a bug" / "open an issue" (those are GitHub concerns).
  Do NOT trigger on "what decisions have we made" (that's reading
  existing ADRs, not creating one).

record-decision

Wraps `bin/record-decision.sh`. Creates one ADR file per invocation under `docs/decisions/` (or the profile's configured location). Only MADR format is supported in v1.

1. Collect inputs from the user

  • **`--title`** (required). Short, imperative headline: *"Use Postgres

for the primary datastore"*, *"Adopt pnpm over npm"*. If the user's phrasing is long and prose-y ("I think we should probably go with Postgres because…"), propose a crisp title and confirm.

  • **`--status`**. `proposed` (default) when the decision is still up

for review; `accepted` when the user says "we've already decided" or similar. Never default to `accepted` silently — when unclear, **you MUST call the `AskUserQuestion` tool** (not plain text):

  {
    "questions": [
      {
        "question": "What is the status of this decision?",
        "header": "Status",
        "multiSelect": false,
        "options": [
          { "label": "Proposed (Default)", "description": "Decision is open for review" },
          { "label": "Accepted", "description": "Decision has already been agreed upon" }
        ]
      }
    ]
  }
  • **`--dir`**. Default `docs/decisions`. Override when the repo uses

a different location (check the profile's `documentation.scaffold_types` if uncertain).

  • **`--slug`** — derived from the title. Review the auto-derived slug

with the user when the title contains non-ASCII or unusual punctuation.

2. Check for existing scaffolding

`record-decision` creates the directory if missing, but doesn't scaffold a `README.md` or `ADR-000`. If the directory is empty (no prior ADRs), mention that `bootstrap-project` scaffolds an introductory `ADR-000` and offer to run it first — but proceed with the new ADR either way if the user insists.

3. Dry-run first when the title is non-obvious

Run `bin/record-decision.sh --dry-run` and read back:

  • The target path (which ADR number it'll land at).
  • The derived slug.

Confirm before the real run. Single-line "record that we chose X" phrasings can skip confirmation when the title is already explicit.

4. Invoke

bin/record-decision.sh --target <cwd> \
  --title "<imperative headline>" \
  [--status proposed|accepted] \
  [--dir <path>] \
  [--slug <slug>] \
  [--date YYYY-MM-DD] \
  [--dry-run]

5. After creation

The output JSON gives you the relative path. Offer to:

  • Open the file so the user can fill in the sections (Context,

Decision drivers, Considered options, Decision outcome, Consequences, Validation).

  • Stage it for commit via `/nyann:commit` (suggest a commit subject

like `docs(adr): ADR-NNN — <title>`).

Do NOT auto-fill the body from the user's conversation. An ADR's value comes from the writer thinking through the structure; filling it with Claude-generated prose dilutes that.

6. Number collisions

Numbers come from scanning `ADR-<NNN>-*.md` files in the target directory. When the user has a non-conventional ADR naming scheme (e.g. `0001-foo.md` without the `ADR-` prefix), the detector will miss them and start at 000. If the user reports this, offer to rename existing files or accept a manual `--dir` pointing at a separate location.

When to hand off

  • "Show me existing ADRs" → `ls docs/decisions/` or a simple file

listing; outside this skill.

  • "Update an existing ADR" → this skill creates only. Supersedence

is represented as a new ADR pointing at the old one (MADR convention).

  • "Generate a changelog entry for this decision" → `release` skill

handles CHANGELOG; ADRs and CHANGELOG are separate stores.

Read more
@thettwe
Ships withnyann

ငြမ်း is Burmese for scaffolding. Nyann is the Claude Code plugin that picks expert git defaults for your stack — branching, working hooks (Husky / pre-commit.com / lefthook), commits, releases, CI, docs — then keeps the repo on those rails through every PR

Stars on GitHub

Momentum

stars in total
7
Star history of thettwe/nyann on GitHub, a chart by star-history.com

Other skills on nyann.

add-team-source

add-team-source

Register a git URL as a team-profile source so nyann can periodically sync and expose its profiles under a namespace. TRIGGER…

@thettwe@thettweInstall Skill
bootstrap-project

bootstrap-project

Bootstrap a fresh or existing repo with nyann. TRIGGER when the user says "set up this project", "initialize git workflow",…

@thettwe@thettweInstall Skill
check-prereqs

check-prereqs

Survey the machine and report which nyann features are usable right now. TRIGGER when the user says "is my machine ready for…

@thettwe@thettweInstall Skill
cleanup-branches

cleanup-branches

Prune local branches whose work is already merged into the base. TRIGGER when the user says "clean up branches", "delete merged…

@thettwe@thettweInstall Skill
commit

commit

Generate a Conventional Commits message from the staged diff and create the commit after user confirmation. TRIGGER when the user…

@thettwe@thettweInstall Skill
diagnose

diagnose

Bundle a redacted, support-grade snapshot of the current nyann state for inclusion in a bug report or support request. Combines…

@thettwe@thettweInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills13d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react4d252k
@facebook@facebookInstall Skill

Questions about record-decision.

Which coding agents can use record-decision?
record-decision installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.