agentleFS
carlkiblercarlkibler/agent-skills/skills/decision-log/SKILL.md

decision-log

Skill6 starsChanged 4 months agoMITView on GitHub

Record a technical or product decision, alternatives, and rationale for future agents.

46 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use product-brief, retrospective and 9 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • erik-kroonSkill

    product-brief

    Turn conversation context, codebase findings, and product intent into a PRD-style brief without assuming a specific issue tracker. Use when the user wants a PRD, product brief, feature spec, or implementation-ready product artifact.

    Also in 3 projects that use this

  • MicrosoftSkill

    retrospective

    Review how work went and improve the next round. USE WHEN asked for a retro, delays, or process lessons. DO NOT USE for code review or transcript replay.

    Also in 4 projects that use this

  • OpenAISkill

    meeting-prep

    Use when creating Public Equity Investing meeting prep briefs. Do not use for private diligence, IB, FP&A, legal, or scheduling-only tasks.

    Also in 3 projects that use this

  • Microsoft AzureSkill

    test

    Also in 3 projects that use this

  • HashiCorpSkill

    changelog

    Add a `.changelog/<PR_NUMBER>.txt` entry for a GitHub Pull Request, commit, and push.

    Also in 3 projects that use this

  • genomewalkerSkill

    learn

    Learn from web sources, generate SKILL.md, and store key patterns in soul memory. Trigger keywords: learn, skill-gen, web-learn, documentation, tutorial.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 8 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 39 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    After a non-obvious architectural or product decision

    line 19
  2. Distinctive:

    When choosing between 2+ viable approaches (especially when rejecting an appealing option)

    line 20
  3. Distinctive:

    Before implementing something that will confuse a future reader

    line 21
  4. Distinctive:

    When the team agrees on something that required significant discussion

    line 22
  5. Distinctive:

    Ask the user (or infer from context):

    line 37
  6. Distinctive:

    If the user is in the middle of implementation, infer as much as possible from context (open files, recent commits, project instruction …

    line 45
  7. Very specific:

    If the repo already keeps decisions elsewhere (e.g.

    line 49
  8. Very specific:

    Create or update .decisions/README.md — a running index of all decisions:

    line 109
  9. Distinctive:

    Ask if anything needs correction

    line 122
  10. Distinctive:

    If there's a PR open, suggest adding a reference to it

    line 124

“Common” is measured: kept by at least 6 in 10 of the 39 edited versions of this file we could read. “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

Decision Log

The "why did we do it this way?" skill. Captures decisions at the moment they're made — while the context is alive — so future sessions don't have to reverse-engineer intent from code.

When to Use

  • After a non-obvious architectural or product decision
  • When choosing between 2+ viable approaches (especially when rejecting an appealing option)
  • Before implementing something that will confuse a future reader
  • When the team agrees on something that required significant discussion
  • Any time you think "I'll remember why we did this" (you won't)

When NOT to Use

  • Obvious implementation details
  • Single-option decisions with no real alternative
  • Pure refactors where the logic is self-evident in the diff

<process>

Phase 1: Extract the Decision

Ask the user (or infer from context):

  1. What — What was decided? One clear sentence.
  2. Why — What was the core reason? (constraint, performance, simplicity, user need, etc.)
  3. Alternatives rejected — What were the other options? Why didn't they win?
  4. Context — What would a future reader need to know to understand this decision? (related files, external constraints, deadlines, team knowledge gaps)
  5. Revisit triggers — Under what conditions should this decision be reconsidered?

If the user is in the middle of implementation, infer as much as possible from context (open files, recent commits, project instruction files) and ask only what's missing.

Phase 2: Write the Decision Log Entry

If the repo already keeps decisions elsewhere (e.g. docs/adr/, docs/decisions/), follow that convention. Otherwise create .decisions/YYYYMMDD-<slug>.md in the project root (one file per decision; never overwrite an existing entry, supersede it instead). Use today's date and a kebab-case slug from the decision title.

File format

# [Decision Title]

**Date:** YYYY-MM-DD  
**Status:** Active | Superseded by [link] | Deprecated  
**Decider:** [person or team]

## Decision

[One clear sentence: we chose X.]

## Context

[What was the situation? What problem were we solving? What constraints existed?]

## Options Considered

### Option A: [Chosen] ✓
[Description]
**Pros:** [list]
**Cons:** [list]

### Option B: [Rejected]
[Description]
**Pros:** [list]  
**Cons:** [list]  
**Why rejected:** [specific reason]

### Option C: [Rejected] (if applicable)
...

## Rationale

[Why Option A won. The core reasoning. What would have to be true for us to pick differently?]

## Consequences

**Positive:** [what this enables]  
**Negative / Trade-offs:** [what we gave up]  
**Risks:** [what could go wrong with this choice]

## Revisit When

- [Specific trigger: "if X starts taking more than Y seconds"]
- [Technology changes: "if library Z adds support for W"]
- [Scale changes: "if we exceed N users"]

## Related

- [File or module most affected]
- [Other decisions this relates to]
- [External docs or prior art]

Phase 3: Update the Decision Index

Create or update .decisions/README.md — a running index of all decisions:

# Decision Log

| Date | Decision | Status |
|------|----------|--------|
| YYYY-MM-DD | [Title](./YYYYMMDD-slug.md) | Active |

Phase 4: Confirm and Offer Next Steps

  • Show the user the written entry
  • Ask if anything needs correction
  • Suggest: "You may want to commit this now so it's part of the same PR as the implementation."
  • If there's a PR open, suggest adding a reference to it
</process>

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.