cratis-engineering-decision-record

Consult, author, accept, and supersede decision records in a repository's decisions folder.

3|Updated Dec 25, 2024
One-click install
npx skills add https://github.com/Cratis/Samples --skill cratis-engineering-decision-record-cratis
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: cratis-engineering-decision-record
Source: https://github.com/Cratis/Samples/tree/main/.cratis/ai/skills/cratis-engineering-decision-record
Command: npx skills add https://github.com/Cratis/Samples --skill cratis-engineering-decision-record-cratis

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Architectural rulings made in chat, reviews, or meetings get lost, re-litigated, or silently contradicted by later changes. This Skill keeps durable decisions in a versioned decisions/ folder with a defined lifecycle so every change can be checked against what was actually agreed. ## Core Features & Use Cases - Consult before changing: List accepted records whose applies-to globs match the paths you are touching, and cite them on work items, pull requests, and Decision: commit trailers. - Author and accept records: Apply a significance test, pass a completeness gate (options considered, default if unanswered, timeline, scope), write Done when / Verify by criteria, and record a named human decider on acceptance. - Supersede safely: Replace accepted decisions with two-way supersedes/superseded-by pointers, sweep stale citations, and regenerate the index so records stay discoverable. - Use Case: Before modifying a public API contract, consult decisions/ for binding records, discover one that forbids the change, and open a superseding record with a named decider instead of shipping a silent contradiction. ## Quick Start Check the decisions folder for any accepted records that apply to the files I am about to change, and draft a new decision record if this change settles a significant architectural question.

Frequently Asked Questions about cratis-engineering-decision-record

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I record an architectural decision in a repository?▼

Write a record in the decisions/ folder with front matter for id, title, status, stage, class, reversibility, and applies-to globs, plus body sections covering context, decision, options considered, default if unanswered, timeline, verification, and consequences. Open it as status: proposed and regenerate the index.

When should I create a decision record versus just making the change?▼

Create a record only when the significance test passes: someone would re-litigate the choice, it binds paths beyond your change, reversal costs real migration, or it rejects an option a reasonable reader would reach for. Reversible in-scope choices need no record.

How do I supersede an accepted decision record?▼

Never edit accepted decision text in place. Create a new record naming the old id in supersedes, set the old record's status to superseded with a superseded-by pointer, then update every work item, pull request, and commit trailer citing the old id.

Can an AI agent accept a decision record on its own?▼

No. Acceptance is a human verdict: the record must carry a decided date and a decider naming a specific person, never a role, team, or tool. An agent may draft the record and explain the choice, but it never grants acceptance.

What is the difference between decision status and stage?▼

Status tracks the review lifecycle (proposed, returned, accepted, rejected, deferred, superseded), while stage tracks how far an accepted decision has been carried out: none, implemented, or verified. Verified requires an observed signal, not just a green build.

Why does consulting decisions return zero records?▼

A zero result may mean nothing binds the change, or the record's applies-to glob matches nothing. Always report the match count explicitly so an empty result is visible rather than mistaken for reassurance.