Skip to content
Back to skills

Pair Capability Record Decision

ASecurity

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 /pair-process-implement and /pair-process-review.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
code-qualitygo

Security analysis

A100/100

Scanned November 7, 2026

npx -y skills add learnn-com/designn --skill pair-capability-record-decision --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pair Capability Record Decision?

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

Security grade badge for Pair Capability Record Decision
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/learnn-com-pair-capability-record-decision/badge)](https://www.skillsdirectory.com/skills/learnn-com-pair-capability-record-decision)

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: pair-capability-record-decision
description: "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 /pair-process-implement and /pair-process-review."
version: 0.4.1
author: Foomakers
---

# /pair-capability-record-decision — Decision Recorder

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."

## Arguments

| 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)        |

## Core Rule: ADR and ADL Are Mutually Exclusive

- **Architectural decision** → ADR file + adoption update. Never ADL.
- **Non-architectural decision** → ADL file + adoption update. Never ADR.
- **Adoption update is always required** regardless of decision type.
- Adoption files = "what we use now." ADR/ADL = "why we decided."

## Algorithm

### Step 1: Classify Decision Type

1. **Check**: Is `$type` provided? If yes, use it.
2. **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)?

3. **Verify**: Decision type is set to `architectural` or `non-architectural`.

### Step 2: Detect Existing Decision

1. **Check**: Search for existing decision files matching `$topic`:
   - If `architectural`: scan [adoption/tech/adr/](../../../.pair/adoption/tech/adr) for files containing `$topic` in filename.
   - If `non-architectural`: scan [adoption/decision-log/](../../../.pair/adoption/decision-log) for files containing `$topic` in filename.
2. **Skip**: If no existing file found, proceed to Step 3 (create new).
3. **Act**: If existing file found, ask the developer:

   > Found existing decision: `[filename]`. Do you want to **update** this decision or **create a new one**?

   - **Update**: Read existing file, present current content, proceed to Step 4 with update mode.
   - **Create new**: Proceed to Step 3 with create mode (for cases where the topic evolved into a distinct decision).
4. **Verify**: Mode is set to `create` or `update`.

### Step 3: Write Decision File

**File naming**: `YYYY-MM-DD-<topic>.md` (today's date, one file per decision).

#### If `architectural` → ADR:

1. **Check**: Does [adoption/tech/adr/](../../../.pair/adoption/tech/adr) directory exist?
2. **Act**: If not, create it.
3. **Act**: Create (or update) the ADR file at [adoption/tech/adr/](../../../.pair/adoption/tech/adr)`YYYY-MM-DD-<topic>.md` following the standalone [ADR template](../../../.pair/knowledge/guidelines/collaboration/templates/adr-template.md). Fill in all sections: Status, Date, Context, Options Considered, Decision, Consequences, and Adoption Impact.
4. **Verify**: ADR file exists with complete content following the template structure.

#### If `non-architectural` → ADL:

1. **Check**: Does [adoption/decision-log/](../../../.pair/adoption/decision-log) directory exist?
2. **Act**: If not, create it.
3. **Act**: Create (or update) the ADL file at [adoption/decision-log/](../../../.pair/adoption/decision-log)`YYYY-MM-DD-<topic>.md` following the standalone [ADL template](../../../.pair/knowledge/guidelines/collaboration/templates/adl-template.md). Fill in all sections: Date, Status, Category, Context, Decision, Alternatives Considered, Consequences, and Adoption Impact.
4. **Verify**: ADL file exists with complete content following the template structure.

### Step 4: Update Adoption Files

This step is **always required** — adoption is the single source of truth.

1. **Check**: Identify which adoption files are affected by this decision:
   - [tech-stack.md](../../../.pair/adoption/tech/tech-stack.md) — if the decision involves libraries, frameworks, or tools
   - [architecture.md](../../../.pair/adoption/tech/architecture.md) — if the decision involves architectural patterns, boundaries, or infrastructure
   - [way-of-working.md](../../../.pair/adoption/tech/way-of-working.md) — if the decision involves process, workflow, or tooling conventions
   - Other adoption files as relevant
2. **Act**: For each affected adoption file:
   - Read current content.
   - Add or update the relevant entry to reflect the decision.
   - Preserve existing content — only add/modify the affected section.
3. **Verify**: Each updated adoption file reflects the current state of facts.

### Step 5: Consistency Check

1. **Check**: Re-read the decision file (ADR or ADL) and all updated adoption files.
2. **Act**: Verify that every claim in the decision file is reflected in adoption, and vice versa.
3. **Verify**: If inconsistency found, report to developer and propose correction.

## Output Format

```text
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]
```

## Composition Interface

When composed by `/pair-process-implement` or `/pair-process-review`:

- **Input**: The composing skill detects a decision need and invokes `/pair-capability-record-decision` with `$type` and `$topic`.
- **Output**: Returns the path to the decision file and list of updated adoption files.
- The composing skill includes the decision file in the next commit.

When invoked **independently**:

- Interactive: asks for type, topic, and summary if not provided as arguments.
- Writes files and reports results. Developer commits the changes.

## Edge Cases

- **Same topic + same date**: If a file `YYYY-MM-DD-<topic>.md` already exists and the developer chose "create new," append an incremented suffix: `YYYY-MM-DD-<topic>-2.md`.
- **Adoption file doesn't exist**: Create it with the decision content as the initial entry. Warn the developer that a new adoption file was created.
- **Decision supersedes another**: Set the old decision's status to "Superseded by [new file]" and the new decision references the old one.

## Graceful Degradation

- If [ADR template](../../../.pair/knowledge/guidelines/collaboration/templates/adr-template.md) is not found, use the minimal ADR structure: Status, Date, Context, Decision, Consequences, Adoption Impact.
- If [ADL template](../../../.pair/knowledge/guidelines/collaboration/templates/adl-template.md) is not found, use the minimal ADL structure: Date, Status, Context, Decision, Consequences, Adoption Impact.
- If adoption directories don't exist, create them and warn: "Created adoption directory — this appears to be a new project."

## Notes

- ADR and ADL are mutually exclusive. Never write both for the same decision.
- Adoption files are always updated. A decision without adoption update is incomplete.
- Date-based naming (`YYYY-MM-DD-<topic>.md`) ensures sortability and avoids numbering conflicts.
- This skill modifies files: decision files and adoption files. All changes should be committed together.

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.