packages/knowledge-hub/dataset/.skills/capability/record-decision/SKILL.md
Records an architectural or non-architectural decision. Architectural decisions produce an ADR; non-architectural decisions produce an ADL entry. Both always update the relevant adoption files. Invocable independently or composed by /implement and /review.
npx skillsauth add foomakers/pair record-decisionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Record a technical decision as either an ADR (architectural) or ADL (non-architectural). Always update the corresponding adoption files to keep them as the single source of truth for "what we use now."
| Argument | Required | Description |
| ---------- | -------- | -------------------------------------------------------------------------------- |
| $type | Yes | Decision type: architectural or non-architectural |
| $topic | Yes | Short kebab-case topic name (e.g., streaming-downloads, date-library-choice) |
| $summary | No | One-line summary of the decision (will be asked interactively if omitted) |
Check: Is $type provided? If yes, use it.
Act: If not provided, ask the developer:
Is this decision architectural (affects system structure, patterns, service boundaries, quality attributes) or non-architectural (library choice, convention adoption, tooling preference)?
Verify: Decision type is set to architectural or non-architectural.
Check: Search for existing decision files matching $topic:
architectural: scan adoption/tech/adr/ for files containing $topic in filename.non-architectural: scan adoption/decision-log/ for files containing $topic in filename.Skip: If no existing file found, proceed to Step 3 (create new).
Act: If existing file found, ask the developer:
Found existing decision:
[filename]. Do you want to update this decision or create a new one?
Verify: Mode is set to create or update.
File naming: YYYY-MM-DD-<topic>.md (today's date, one file per decision).
architectural → ADR:YYYY-MM-DD-<topic>.md following the standalone ADR template. Fill in all sections: Status, Date, Context, Options Considered, Decision, Consequences, and Adoption Impact.non-architectural → ADL:YYYY-MM-DD-<topic>.md following the standalone ADL template. Fill in all sections: Date, Status, Category, Context, Decision, Alternatives Considered, Consequences, and Adoption Impact.This step is always required — adoption is the single source of truth.
DECISION RECORDED:
├── Type: [Architectural (ADR) | Non-architectural (ADL)]
├── File: [path to decision file]
├── Mode: [Created | Updated]
├── Adoption: [list of updated adoption files]
└── Status: [Consistent | Inconsistency detected — details]
When composed by /implement or /review:
/record-decision with $type and $topic.When invoked independently:
YYYY-MM-DD-<topic>.md already exists and the developer chose "create new," append an incremented suffix: YYYY-MM-DD-<topic>-2.md.YYYY-MM-DD-<topic>.md) ensures sortability and avoids numbering conflicts.development
Creates or updates a Product Requirements Document through structured template analysis, hypothesis-driven information gathering, and iterative review. Idempotent — detects existing PRD and offers selective section update.
development
Reviews a pull request through a structured 6-phase process: validation, technical review, adoption compliance, completeness check, decision, and optional merge with parent cascade. Composes /verify-quality, /verify-done, /record-decision, /assess-debt (required) and /verify-adoption, /assess-stack (optional with graceful degradation). Output follows the code review template. Idempotent — re-invocation resumes from incomplete phases.
tools
Refines a user story from Todo to Refined state through structured phases: selection, requirements analysis (Given-When-Then), technical analysis, sprint readiness, and documentation. Section-level idempotency — detects partial refinement and resumes. Composes /write-issue for PM tool updates.
testing
Breaks a refined user story into implementation tasks. Task-level idempotency: detects existing tasks and creates only missing ones. Appends condensed Technical Analysis + Task Breakdown (checklist, Dependency Graph, AC Coverage table, detailed tasks) to the story body. Composes /write-issue to update the story issue body. Tasks are documented inline in the story — no separate task issues are created.