Skip to main content

decision-note

Write a decision note under notes/ (filter, numbered file, index line)

Zur Installation springen

Quellinformationen

Repository
enix/kube-image-keeper
Letzte Quellaktivität
24. September 2026 um 13:40
Erkannte Sprache von SKILL.md
Englisch
Sterne
751
Forks
60

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
decision-note
description
Write a decision note under notes/ (filter, numbered file, index line)
argument-hint
<decision in one sentence>
disable-model-invocation
true
allowed-tools
Read Grep Glob Write Edit Bash(ls *) Bash(git log *) Bash(task lint-markdown *) Bash(task lint-markdown-fix *)
# Write a decision note Decision to record: $ARGUMENTS. The rules come from [`notes/README.md`](../../../notes/README.md) and [0005](../../../notes/0005-decision-log-filter.md); if this skill disagrees, they win. ## 1. Apply the filter A note is warranted only when at least one of these holds: - the decision constrains work beyond the change that implements it; - it rejects an alternative that someone will plausibly propose again; - it has no single commit to live in (process, architecture, spec interpretation, repository-wide tooling). If none holds, say so, draft the commit body that carries the "why" instead, and stop. ## 2. Record only deliberation that happened Take the alternatives from the conversation. If they are not there, ask the user which ones were actually weighed and why they lost. Never invent a **Rejected** line to fill the template: no alternative weighed means no **Rejected** section. ## 3. Number and name the file Run `ls notes/`. The next number is the highest existing `NNNN-` plus 1, on 4 digits. The slug is short and kebab-case: `notes/NNNN-short-slug.md`. ## 4. Write the note Copy the shape of [`notes/0009-rbac-rules-from-markers-bindings-from-chart.md`](../../../notes/0009-rbac-rules-from-markers-bindings-from-chart.md): - H1 `# NNNN — <title>` (the em dash is the notes' convention, keep it). - `**Date:** YYYY-MM-DD · **Status:** decided`, with today's date in digits. Use `draft` if the user says the shape is not settled. - `**Decision:**` first, stating the decision itself. One sentence, a few more only for the exceptions the reader must know. - `**Why:**` in 2 to 4 bullets, each a fact the reader could not guess. - `**Rejected:**` one bullet per alternative actually weighed: the alternative, a colon, why it lost. - Under 25 lines in total. Follow the `## Writing` section of `AGENTS.md`: no padding, no restating the title. Status values: - `draft`: work in progress, may be incomplete or dropped; edit freely. - `active`: the reference in force, details still expected to move; edit in place. - `decided`: frozen; typo fixes only, changed only by a superseding note. - `superseded by NNNN`: kept for history; read note `NNNN` instead. How a note changes depends on its status ([0002](../../../notes/0002-development-pipeline.md), working agreements): - `draft`: edit freely, no trace needed. - `active`: amend in place, the way 0002 and 0003 were: 1. Set `**Amended:** YYYY-MM-DD` between Date and Status (add it, or update it to today). 2. Open each changed passage with `*(Amended YYYY-MM-DD:)*`. When it reverses what the note first said, say so: `*(amendment vs the original plan, which ...)*`. 3. Update the index line of `notes/README.md` if the decision in one line changed. 4. When the shape stops moving, set the status to `decided`: the note is frozen from then on. - `decided`: frozen, never rewritten; supersede it with a new note. To supersede note `OOOO`: 1. Write the new note `NNNN` as above. Its **Decision** restates the whole decision now in force, not a diff, so the reader never needs `OOOO`; start it with `Supersedes [OOOO](./OOOO-slug.md).` 2. Its **Why** gives what changed since `OOOO`. The old decision becomes a **Rejected** line: it was weighed, and lost. 3. Supersede a whole note, never part of it. If only part of `OOOO` changes, the new note still restates the part that holds. 4. In `OOOO`, change only the status: `**Status:** superseded by [NNNN](./NNNN-slug.md)`. Date and body stay as they are. 5. In the index, keep the line of `OOOO` and end it with `Superseded by [NNNN](./NNNN-slug.md).` 6. Point the live references to `NNNN`: `grep -rn 'OOOO' AGENTS.md CONTRIBUTING.md .claude`. References inside other notes are history; leave them. Skeleton: ```markdown # NNNN — <title> **Date:** YYYY-MM-DD · **Status:** decided **Decision:** <the decision, in one sentence>. **Why:** - <reason the reader could not guess> - <second reason> **Rejected:** - <alternative>: <why it lost>. ``` ## 5. Add the index line Append one entry to the `## Index` of `notes/README.md`, in number order, same shape as the others: `- [NNNN — <title>](./NNNN-slug.md): <the decision in one line>.` State the decision, not the topic. Wrap at about 90 columns with a 2-space continuation indent. ## 6. Link back Remind the user that the commit implementing the decision references the note: the note number in the commit body, and `[NNNN](./notes/NNNN-slug.md)` in `AGENTS.md` or the matching `.claude/rules/` file when the decision constrains agents. ## 7. Lint ```sh task lint-markdown-fix -- notes/NNNN-slug.md notes/README.md ``` Fix by hand what it could not fix, until `task lint-markdown -- <same files>` passes. Do not commit: the user reviews the note first.
Auf GitHub ansehen