Skip to content
Development
Skill

/decision-diary

Use when a user wants to record why one world won over the others, as a decision-diary entry. Not for remote, credential, publish, deploy, or irreversible changes.

From plugin
odin-claude-plugin
40200 skills

Claude Code

$ npx -y skills add OutlineDriven/odin-claude-plugin --skill decision-diary --agent claude-code

SKILL.md

decision-diary.SKILL.md
name: decision-diary
description: 'Use when a user wants to record why one world won over the others, as a decision-diary entry. Not for remote, credential, publish, deploy, or irreversible changes.'
disable-model-invocation: true

Decision diary

Contract

| Field | Bound contract | |---|---| | Trigger | User wants to record why one world won over the others. | | Authority | Reversible local: writes only one decision-diary entry at the agreed diary location; rollback is version control. No remote mutation. | | Side effect | A decision-diary entry documenting why one world won. | | Done | The decision and its rationale are recorded in the decision diary. |

Inputs

Winning decision: the world or option that won. Required. Considered worlds: every option that was on the field, including the winner. Required. Rationale: why the winning world won and why each rejected world lost. Required. Decision-diary location: the local file path where the entry is appended. Required; if no location is established, the user must supply it. Optional inputs: date, surrounding context, human opinions, agent doubts, and obvious assumptions that shaped the choice.

Procedure

1. Confirm the winning decision and the full set of considered worlds from the user. Do not infer a winner or invent options that were not on the field. Done when: the winning decision and all considered worlds are confirmed from the user. 2. Capture why the winning world won, using the user's terms. Done when: the winning rationale is recorded in the user's own terms. 3. Capture, for each rejected world, the reason it lost. Done when: every rejected world has a loss reason recorded. 4. Record any human opinions, agent doubts, and obvious assumptions the user names as load-bearing for the choice. Omit this section when the user names none; do not fabricate doubts or assumptions. Done when: named opinions, doubts, and assumptions are recorded, or the section is omitted because the user named none. 5. Compose one diary entry containing the winning decision, the considered worlds, the winning rationale, the per-rejected-world loss reasons, and any named opinions, doubts, or assumptions. Done when: the entry contains all five elements. 6. Append the entry to the decision-diary file at the agreed location. Create the file only if the user confirms it does not yet exist and names this path as its home. Done when: the entry is appended to the diary file at the agreed location. 7. Read the entry back from the diary and confirm it is persisted and readable. Done when: the entry is read back and confirmed persisted and readable.

Failure and recovery

Missing rationale: if the user cannot state why the winning world won, stop and ask for it. Do not invent or paraphrase a rationale the user did not supply. Missing diary location: if no decision-diary path is established and the user does not supply one, stop. Do not write to an arbitrary or guessed file. Partial write: if the entry cannot be written in full, no partial entry is committed. The diary file is left unchanged. Blocked result: return the missing input and the unfinished entry text. Never report done when no complete, readable entry is persisted in the diary.

Output

One appended decision-diary entry at the agreed location, containing in order: winning decision, considered worlds, winning rationale, per-rejected-world loss reasons, named opinions or doubts.

Read more
@outlinedriven
Ships withodin-claude-plugin

Formerly the ODIN Claude Plugin. The repository URL is unchanged. Outline-Driven Development, nicknamed ODIN, is a highly opinionated code-agent skill library: principles-first engineering, surgical editing, and workflow automation, published as installable

Stars on GitHub

Momentum

stars in total
40
Star history of OutlineDriven/odin-claude-plugin on GitHub, a chart by star-history.com

Other skills on odin-claude-plugin.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about decision-diary.

Which coding agents can use decision-diary?
decision-diary installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.