Add a numbered decision document under `decisions/` to capture a non-obvious architectural choice. Use when the user asks for a decision doc, ADR, design rationale, or wants to record why we picked one approach over alternatives.
Install
npx skillscat add remix-run/remix/make-decision-doc Install via the SkillsCat registry.
This skill creates a numbered decision document in the decisions/ directory to record non-obvious architectural choices, including the rationale, alternatives considered, and tradeoffs. It addresses the need to preserve context for future contributors who might question why a particular approach was selected over others. Use it when documenting design rationale, ADRs, or explaining divergences from standard practices.
Make Decision Doc
Overview
Decision docs live at the repo root in decisions/NNN-kebab-name.md. They explain why a choice was made — the tradeoff, the alternatives that were actually considered, and (when useful) the conditions under which we'd revisit. They are not feature specs, not how-to guides, and not changelog entries.
When to write one
- A non-obvious architectural choice was made and a future contributor would reasonably ask "why didn't we do X instead?".
- A choice has tradeoffs that are easy to second-guess without context (perf vs. simplicity, lock-in vs. flexibility, ergonomics vs. correctness).
- We diverged from a common default or industry-standard alternative and the reasoning matters.
Skip a decision doc when the choice is obvious, the alternatives weren't seriously considered, or the rationale already lives in code comments / change file / PR description.
Workflow
- Read the existing files under
decisions/(e.g.decisions/001-*.md) to match tone and structure. - Pick the next number by counting existing files (
ls decisions/ | wc -l) and add 1. Filename isNNN-kebab-slug.mdwith a 3-digit zero-padded prefix. - Pick a slug that names the thing being decided, not the verb (
single-matcher, notpick-single-matcher). - Draft the doc following the structure below. Keep it grounded — no hypothetical alternatives, no aspirational language.
- If the decision relates to other decisions, link them as footnotes (
[NNN]: ./NNN-other.md).
Structure
No rigid template — match the style of existing docs. The shape that tends to work:
- H1 title: a short statement or question that a reader scanning the folder can grok at a glance.
- Opening framing (1–3 short paragraphs): what the choice was, why it came up, and what the realistic alternatives were. Lead with concrete context, not abstractions.
- Tradeoff sections: typically "What gets simpler / harder", "Why we chose X", or named sections per dimension (perf, complexity, ergonomics). Use H2s.
- When to revisit (optional but encouraged): a numbered list of conditions that would flip the decision. Keeps the doc honest and gives future contributors a clear off-ramp.
- Footnote links to related decisions or external sources cited in the body.
Content rules
- Ground every claim. Cite benchmarks, blog posts, code references, or measured behavior. If the decision is "feels nicer", say so explicitly rather than dressing it up.
- Only list alternatives that were actually deliberated. Inventing options to knock down weakens the doc.
- Past tense for the decision ("we chose X"), present tense for ongoing implications ("X means we don't need Y").
- Keep prose tight. These docs reward density — readers come looking for a specific answer.
- Code references use the repo's standard
path/to/file.tsstyle; line ranges with backtick fences when illustrating a specific snippet. - No marketing tone, no hedging filler ("it's worth noting that…", "in many cases…"). State the call.
Checklist
- Did you read at least one existing decision doc to match style?
- Is the filename
NNN-kebab-slug.mdwith the next available number? - Does the H1 communicate the decision in one line?
- Are the alternatives ones that were actually considered?
- Did you cite concrete evidence (benchmarks, sources, code) instead of assertions?
- Is there a "when to revisit" section if the decision could plausibly flip?