decisions

decisions is a skill for Claude Code, Codex from scolladon/craft. It costs 31 tokens per session (1,220 once invoked), scanned A, original, MIT.

A design-decision workflow that records important technical choices as ADRs, or short documents explaining why a choice was made.

In plain words
What is it for?
It reviews proposed choices, adopts or escalates them, writes new decision records, and records when a decision replaces or changes another.
Why use it?
It makes design decisions explicit and keeps later changes consistent with earlier decisions.

Skill for Claude CodeCodex

Installs and runs on its own, but its text points at files inside its plugin — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed. Installing the plugin gets both.

Part of the craft plugin — 20 skills, 4 commands, 18 agents, 1 hook shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/scolladon/craft/decisions
Any agent
npx skills add scolladon/craft --skill decisions
Clone the repo
git clone --depth 1 https://github.com/scolladon/craft

Made for: Claude Code, Codex.

Or install craft, the plugin that ships this one along with the rest of its 20 skills, 4 commands, 18 agents, 1 hook.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for decisions

README.md
[![agentmods](https://agentmods.dev/badge/skills/scolladon/craft/decisions.svg)](https://agentmods.dev/skills/scolladon/craft/decisions)
Your own site
<a href="https://agentmods.dev/skills/scolladon/craft/decisions"><img src="https://agentmods.dev/badge/skills/scolladon/craft/decisions.svg" alt="Measured on agentmods" height="20"></a>
Per session 31 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,220 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00031 $0.01220
Opus 5 $0.00015 $0.00610
Sonnet 5 $0.00006 $0.00244
Haiku 4.5 $0.00003 $0.00122

Measured 4d ago against content hash 0f2f71e1ac9a, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

decisions scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/decisions/SKILL.md · 72 lines

How it starts

The opening of the file, as written. The whole thing — 72 lines — stays where its author put it; the contents beside it link to each section on GitHub.

craft:decisions

Preamble (always runs — non-overridable)

  1. Manifest read (lint if standalone). Probe: ADR directory (paths.adr, else docs/adr/, create if absent); repo ADR template, else "${CRAFT_ROOT:-${CLAUDE_PLUGIN_ROOT}}/templates/adr.md"; next ADR number = highest existing + 1.
  2. ADR writes route through the intention port's record — for the file adapter this is a thin relabel of today's docs/adr/ writes byte-for-byte (see docs/contributing/specs/intention.md); the authoring below is unchanged. A write now carries the governance declaration from templates/adr.md (the subjects: and supersedes: frontmatter fence). The decisions phase is the only ADR backfill writer: it writes the block into a pre-existing ADR it authors or supersedes, never as a read-phase side effect.

Procedure (default body — a manifest override: replaces everything below)

ENTIRELY session-owned — never delegated.

  1. Triage every candidate (session-owned) into adopt-or-escalate. A candidate is ADOPTED without escalation when its design recommendation is clear AND aligns with an existing ADR or a stated craft principle — check "aligns with an existing ADR" against the governing slice arriving on slot 1 (skills/run/SKILL.md's intention hint), an indexed read, never an unindexed wish over the full ADR directory. A candidate is a GENUINE FORK — escalated — when the recommendation is unclear, the alternatives carry a real user-judgment trade-off, or it deviates from an existing ADR/principle. When in doubt, escalate: adopt only the unambiguous.
  2. Genuine forks → user conversation. Per escalated candidate: present ≤3 options with the design's recommendation; capture the user's decision.
  3. No genuine forks (zero candidates, or every candidate adopted) → first-class no-op. Record NO-OP(decisions): no user-judgment decisions — <justification> in the run record, the 1–3 line justification naming what was adopted and the ADR/principle each aligns with (so the no-op is auditable, not asserted); the run record is carried into the PR body (documentation phase), so the no-op is stated, not hidden. Never invent questions to manufacture a conversation. Adopted recommendations stand as the design states them; they ARE still authored as ADRs (see step 5), each marked adopted-as-recommended (no user judgment) so the decision trail is complete — the no-op concerns the escalation conversation, not the ADR record.
  4. Cross-candidate interaction check (before authoring): once all candidates are settled (escalated ones ratified, the rest adopted), check whether any settled choice's rationale is voided or altered by another (a later choice can invalidate an earlier one's premise — including a ratified fork voiding an adopted choice). If so, re-surface the affected choice — escalating an adopted choice to the user if its premise is now in genuine doubt — before authoring.
  5. Author each settled decision — ratified (escalated-and-decided) and adopted (taken-as-recommended) — as <adr-dir>/NNN-<title>.md from the template; commit each as docs(adr): NNN <title>. An adopted choice's ADR marks its Decision section adopted-as-recommended (no user judgment) so the log stays distinguishable from a ratified choice, whose ADR records the user's judgment.

Read the full file on GitHub · 72 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 72 lines · 31 tokens per session scan A 0f2f71e1ac9a

Subscribe to this mod's changes

decisions is a skill published in the GitHub repository scolladon/craft (2 stars, last pushed 15d ago), licensed MIT. It adds 31 tokens to every session and 1,220 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

define

Manifest builder. Turns shared understanding into a verifiable Manifest with Deliverables, Acceptance Criteria, Global Invariants, and an Initial Approach. Use when planning features, scoping refactors, debugging complex issues, or when the user asks to define, scope, plan, spec out, make a manifest, or break down a…

doodledood/manifest-dev · 68 tokens

check-pr

Read-only inspection of a single GitHub PR lifecycle — checks CI, review threads, description sync, and mergeability, and returns PASS or FAIL with per-gate findings. Never invokes the merge button. Use when verifying a PR is ready to merge, polling lifecycle progress, checking mergeability, or babysitting a GitHub PR…

doodledood/manifest-dev · 74 tokens

babysit-pr

Author-side PR lifecycle babysitter and companion to review-pr. Use when the user wants to tend an existing GitHub PR through CI, review threads, description sync, mergeability, auto-fixes, or asks to babysit a PR with or without an existing manifest.

doodledood/manifest-dev · 59 tokens

review-code

Review a change along one specific quality dimension — bugs, design, simplicity, maintainability, testability, test quality, type safety, contracts, operational readiness, docs, prose value, change intent, defect-class completeness after a fix, or CLAUDE.md adherence. Loads exactly one dimension reference and audits…

doodledood/manifest-dev · 103 tokens

just-define

Goal-based Manifest builder. Encodes shared understanding into a verifiable Manifest — Deliverables, Acceptance Criteria, Global Invariants — deciding for itself how to interview. Use when the user asks to just define it, spec it lean, or make a manifest with minimal process.

doodledood/manifest-dev · 58 tokens

update-lid

Configure or reconcile a project for linked-intent development (LID). Dispatches on project state — fresh bootstrap, append directives to an existing agent-instructions file (AGENTS.md or CLAUDE.md), add missing mode marker, reconcile convention drift, or run mode transitions. Invoked as /update-lid. For fresh…

jszmajda/lid · 105 tokens