recording-decisions
Skill9 starsChanged 24 days agoMITView on GitHub
Use when a non-trivial technical choice is made during a session - "let's go with X", "on choisit X", "we'll pick", "on part sur", "decision made", "décision prise", a counter-intuitive approach adopted, an external constraint accepted, a workaround whose reason will be forgotten.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- supabase/supabase-gotheir own version, first seen Oct 2, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- supabase/supabase-go★ 10same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository59 other files it gives its agents.
- AGENTS.mdAGENTS.md
- adversarial-feature-challengeSkill
- api-contract-versioningSkill
- bug-ticket-root-causeSkill
- bug-triage-structuredSkill
- ci-pipeline-orchestrationSkill
- commit-readiness-reviewSkill
- comprehensive-test-strategySkill
- database-schema-evolutionSkill
- ddd-backend-implementationSkill
- design-system-component-lifecycleSkill
- detection-sweepSkill
- domain-glossarySkill
- domain-modeling-designSkill
- frontend-fullstack-implementationSkill
- frontend-spec-call-site-auditSkill
- merge-request-reviewSkill
- performance-profilingSkill
- recording-decisionsSkill
- recurring-bug-root-causeSkill
- refactoring-shared-component-apiSkill
- validating-features-end-to-endSkill
- visual-regression-checkSkill
- writing-robust-testsSkill
- adversarial-feature-challengeSkill
- api-contract-versioningSkill
- audit-architectureSkill
- audit-ci-cdSkill
- audit-complianceSkill
- audit-industrialisationSkill
- audit-observabilitySkill
- audit-performance-frontendSkill
- audit-qualitySkill
- audit-reportSkill
- audit-securitySkill
- audit-testingSkill
- bug-ticket-root-causeSkill
- bug-triage-structuredSkill
- ci-pipeline-orchestrationSkill
- commit-readiness-reviewSkill
- comprehensive-test-strategySkill
- daily-workflow-optimizationSkill
- database-schema-evolutionSkill
- ddd-backend-implementationSkill
- design-system-component-lifecycleSkill
- detection-sweepSkill
- domain-glossarySkill
- domain-modeling-designSkill
- frontend-fullstack-implementationSkill
- frontend-spec-call-site-auditSkill
- merge-request-reviewSkill
- performance-profilingSkill
- production-incident-diagnosticSkill
- qa-session-intakeSkill
- recurring-bug-root-causeSkill
- refactoring-shared-component-apiSkill
- validating-features-end-to-endSkill
- visual-regression-checkSkill
- writing-robust-testsSkill
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 5 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
This skill: when: a non-trivial technical choice is made mid-session and risks being undone out of ignorance
- Very specific: line 17
bug-ticket-root-cause: if: you are tracing a bug to fix, not a design decision - Very specific: line 18
writing-plans: if: you are designing a full plan up front - the decision gets recorded at the moment it is made, it is not replaced by … - Distinctive: line 29
Do not record: variable names, import order, trivial choices.
- Distinctive: line 56
Never modify an existing decision - write a new one that deprecates it
- Distinctive: line 58
Not in a closed ticket, a chat message or a PR description alone - invisible from the code in three weeks
- Distinctive: line 79
No script: essentially a human decision.
- Very specific: line 80
If the repo has a docs/adr/ directory, follow its existing numbering and template rather than these.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Recording Decisions - capture non-obvious choices
If the current repo has an equivalent skill, it wins - it knows where the decision log lives.
This skill vs. others
- This skill when: a non-trivial technical choice is made mid-session and risks being undone out of ignorance
bug-ticket-root-causeif: you are tracing a bug to fix, not a design decisionwriting-plansif: you are designing a full plan up front - the decision gets recorded at the moment it is made, it is not replaced by the plan
When to record
Threshold: "would a developer (or agent) picking this up in three weeks need to know this to avoid undoing it?" If yes → record.
- A choice between 2+ approaches (polling vs. websocket, lib A vs. B)
- A counter-intuitive pattern or workaround whose reason evaporates
- An accepted external constraint (infra, library, third-party API)
- A change of course versus the ticket/spec
Do not record: variable names, import order, trivial choices.
Double anchoring (both, not either)
Two distinct regression vectors → two protections:
- Decision log - against deliberate migration ("nobody knows why it's like this, let's change it"). Location:
docs/adr/if the repo has one, otherwise.claude/decisions.md. Format:
## YYYY-MM-DD - <Short title>
**Context**: [problem that forced the decision, ticket/branch]
**Options**: 1. A - pro/con · 2. B - pro/con
**Decision**: [choice + rationale]
**Consequences**: [code impact, workflow, re-evaluate if <condition>]
**Status**: Proposed | Accepted | Implemented | Deprecated- Comment at the implementation site - against the impulsive "fix" during a refactor. Short, with a strong signal and a back-reference:
// Intentional 5s polling - DO NOT migrate to WebSocket:
// the LB drops idle connections >60s. See ADR-007.Rules
- Record at the moment of the decision, not at the end of the session (context evaporates)
- Never modify an existing decision - write a new one that deprecates it
- Include the re-evaluation condition ("if the infra changes…"): a decision with no expiry date becomes dogma
- Not in a closed ticket, a chat message or a PR description alone - invisible from the code in three weeks
Traps & rationalizations
| Excuse | Reality |
| "I'll record it at the end of the session" | The context (rejected options, exact constraint) evaporates. Record at the moment of choice. |
| "It's obvious why we do it this way" | Obvious today, a mystery in three weeks. The test: "would someone picking it up guess it without risk of undoing it?" |
| "The log is enough, no need for a comment" | The log protects against deliberate migration; the comment protects against the impulsive "fix" in a refactor. Both. |
| "I said it in the PR / chat" | Invisible from the code. Log + comment at the implementation site. |
| "I'm fixing the old decision that was wrong" | Never rewrite: write a new one that deprecates the old (the history of the reasoning matters). |
Exit condition
- Decision recorded at the moment it was made
- Log entry in the right place (
docs/adr/otherwise.claude/decisions.md): context, options, decision, consequences, status - Comment at the implementation site with a strong signal + back-reference (if impulsive regression is plausible)
- Explicit re-evaluation condition ("revisit if …")
Tooling
- No script: essentially a human decision. Inline templates above (log entry + comment).
- If the repo has a
docs/adr/directory, follow its existing numbering and template rather than these.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

