agentleFS
azborgonovoazborgonovo/ai-skills/skills/decisions/log-decision/SKILL.md

log-decision

Skill1 starsChanged 2 months agoMITView on GitHub

Drafts a structured document, called a DR, that captures the reasoning behind a significant decision. Use when the user invokes /log-decision. Use it also when the conversation reaches a decision about architectural trade-offs or technology choices, or reaches anything the user calls "hard to reverse", "locked in", or "a big commitment". In those cases, suggest a DR without waiting to be asked.

7 other projects use 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. 0 are common, 2 are distinctive, and 6 are very specific to this project.

  • 0

    Common

    Most of the 7 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 6

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use AskUserQuestion for each question, and ask about one topic area at a time.

    line 25
  2. Distinctive:

    Never assume. Ask whenever something is ambiguous.

    line 56
  3. Very specific:

    Look for an existing DR directory in the project root, in this priority order: docs/decisions/, then adr/, then .decisions/.

    line 60
  4. Very specific:

    When none of the three exists, use docs/decisions/ and create it.

    line 61
  5. Very specific:

    Use the format DR-NNNN-kebab-title.md.

    line 68
  6. Very specific:

    Read the template from ${CLAUDE_SKILL_DIR}/assets/dr-template.md.

    line 73
  7. Very specific:

    If the status is superseded, find the DR that this one supersedes.

    line 77
  8. Distinctive:

    After you write the file, tell the user the file path and a one-line summary of the decision.

    line 81

“Common” is measured: kept by at least 6 in 10 of the 7 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

Log Decision

Help the user capture a Decision Record for a significant decision that is costly to change.

When the user invokes /log-decision with an argument, use $ARGUMENTS as the title. With no argument, ask for a title. When the conversation triggered this skill instead, say something like: "This looks like a significant decision. Would you like me to draft a Decision Record (DR)?" Wait for confirmation before you proceed.

Not sure yet? If the user is still exploring options, or has not settled on a direction, suggest /decide instead. That skill is a thinking partner for working through the problem before anyone documents it.

Execution steps

1. Gather information

Use AskUserQuestion for each question, and ask about one topic area at a time. Do not present every field at once. Start with the essentials. Ask about an optional field only when the user is engaged in that level of detail.

If the user has just come from a /decide session, the conversation already holds three of the fields. Those are the Context and Problem Statement, the Forces and Constraints, and the Considered Options. Confirm the key points instead of asking again, and move straight to the Decision field and to any gap.

Essentials, which are always required:

FieldGuidance
TitleA short phrase that names the problem and the solution, such as "Use PostgreSQL as primary datastore"
Context and Problem StatementWhich situation led to this decision, and which problem it solves. Note any relevant code location or work item that gives context.
Considered OptionsWhich alternatives the user evaluated. Aim for at least two. Give a brief description, the pros, and the cons for each one. Stay objective, and represent a rejected option fairly.
DecisionWhich option the user chose, and why. Prefer the Y-Statement format: "In the context of [situation], facing [concern], we decided [option], to achieve [quality], accepting [downside]." Free-form prose also works.

Depth, which you ask about only when the conversation has not covered it:

FieldGuidance
Forces and ConstraintsWhich requirements, assumptions, forces, or constraints shaped the decision
ConsequencesThe ramifications, both positive and negative
More InformationExtra evidence, links, or related decisions. Include links to PRs, issues, and external resources such as docs, RFCs, and benchmarks, where they apply.

Metadata, which you ask about only when provenance or governance matters:

FieldGuidance
StatusOne of these values, with proposed as the default. draft means being written and not ready for review. proposed means complete and open for review or approval. rejected means reviewed and not adopted. adopted means accepted and in effect. retired means once adopted and no longer active, with no replacement. superseded means replaced by a newer decision.
DateThe date of the decision, with today as the default
Decision-makersWho took part in making the decision
ConsultedWho was consulted, in two-way communication
InformedWho is kept up to date, in one-way communication

Never assume. Ask whenever something is ambiguous.

2. Determine the DR directory and the next number

  1. Look for an existing DR directory in the project root, in this priority order: docs/decisions/, then adr/, then .decisions/.
  2. When none of the three exists, use docs/decisions/ and create it.
  3. Scan the existing files that match DR-*.md to find the highest sequence number, then use N + 1. Start at 0001 when no file exists.
  4. While you scan, note any DR whose title or content looks related to the current decision. Report those to the user, so they can reference or supersede them.

3. Derive the file name

  • Kebab-case the title, strip the special characters, and truncate it to roughly 50 characters.
  • Use the format DR-NNNN-kebab-title.md.
  • For example: DR-0003-use-postgresql-as-primary-datastore.md.

4. Write the DR file

Read the template from ${CLAUDE_SKILL_DIR}/assets/dr-template.md. Fill every section with the information you gathered. For an optional section with no content, remove the section and its <!-- This is an optional element. Feel free to remove. --> comment. Leave no placeholder text.

Include markdown links wherever they help: to the PRs or issues that motivated the decision, to external docs such as RFCs, benchmarks, and vendor pages, and to related DRs. Use a relative path for a link between DR files. Use a full web URL for every other link.

If the status is superseded, find the DR that this one supersedes. Add a "Superseded by DR-NNNN" note to its ## More Information section, and append that section when it is absent. Then reference that DR in the ## More Information section of the new file.

A DR outlives the conversation that produced it, and a reader opens it months later with none of that context. Write short sentences in the active voice, define a term that such a reader can miss at its first use, and cut filler. Keep the Y-statement shape of the Decision section, and keep every link and quoted value exactly as it is. When a plain-English writing skill such as simple-english is available, invoke it and apply its rules to the draft, before you write the file.

After you write the file, tell the user the file path and a one-line summary of the decision. Do not offer to improve the DR unless the user asks.

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.