agentleFS
ChariereFiedlerChariereFiedler/ronce-racine/skills/recording-decisions/SKILL.md

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

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
  1. Distinctive:

    This skill: when: a non-trivial technical choice is made mid-session and risks being undone out of ignorance

    line 16
  2. Very specific:

    bug-ticket-root-cause: if: you are tracing a bug to fix, not a design decision

    line 17
  3. Very specific:

    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 …

    line 18
  4. Distinctive:

    Do not record: variable names, import order, trivial choices.

    line 29
  5. Distinctive:

    Never modify an existing decision - write a new one that deprecates it

    line 56
  6. Distinctive:

    Not in a closed ticket, a chat message or a PR description alone - invisible from the code in three weeks

    line 58
  7. Distinctive:

    No script: essentially a human decision.

    line 79
  8. Very specific:

    If the repo has a docs/adr/ directory, follow its existing numbering and template rather than these.

    line 80

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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-cause if: you are tracing a bug to fix, not a design decision
  • 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 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:

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

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

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.