Skip to content
Development
Skill

/keep-why-continuous-capture

Use when a non-trivial change lands or is abandoned and its decision, rejected alternatives, and reason must be captured. Not for trivial or corrective changes: those belong in CHANGELOG.

From plugin
odin-claude-plugin
36200 skills
Install
$ npx -y skills add OutlineDriven/odin-claude-plugin --skill keep-why-continuous-capture --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/keep-why-continuous-capture

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when a non-trivial change lands or is abandoned and its decision, rejected alternatives, and reason must be captured. Not for trivial or corrective changes: those belong in CHANGELOG.

SKILL.md

keep-why-continuous-capture.SKILL.md
name: keep-why-continuous-capture
description: 'Use when a non-trivial change lands or is abandoned and its decision, rejected alternatives, and reason must be captured. Not for trivial or corrective changes: those belong in CHANGELOG.'
disable-model-invocation: true

Keep why continuous capture

Contract

| Field | Bound contract | |---|---| | Trigger | User implements or reviews a non-trivial change involving a design decision, rejected alternative, workaround, incident fix, operational constraint, or changed assumption, including a change started and then abandoned after discovering why it must not be touched (no diff results). Proportionality gate: obvious/self-evident choices get a sentence, not an entry; corrections of stale values/bugs are CHANGELOG material, not decisions. | | Authority | Reversible local: writes only one named topic file and one index line in the configured context directory; rollback is undo. No remote, VCS-history, credential, paid, published, or deployed mutation. | | Side effect | Writes or updates one topic file and one index line in the configured context directory and keeps the context index lean; records Decision + rejected alternative(s) + Reason, Type (decision | workaround | incident | constraint, one line per value or 'undefined: <reason>'), Status (active | superseded | open | needs-review), Evidence (confirmed | inferred | unknown), Source/Verification when traceable; optionally asks for issue/ticket/PR/post-mortem link per source-reference setting (always | never | filtered:<criteria>): 'no reference exists' is a complete answer, never invented. | | Done | Entry exists with all weight-bearing fields, zero invented rationale (gaps become focused questions or explicit unknown), conflicting sources recorded with conflict flagged open rather than resolved, confirmation gate honored, existing topic file updated instead of duplicated. |

Inputs

  • Topic name (required): the decision or topic this entry belongs to. Supplied by the change context (e.g., the name of the file, feature, or concern being modified).
  • Decision text (required): what was decided or what constraint is in force.
  • Rejection(s) (required): what was rejected, abandoned, or considered and why. If nothing was rejected, state 'none' explicitly.
  • Reason (required): the cause or constraint that justifies this outcome. Must not be invented; if unknown, state 'unknown: <what would confirm it>'.
  • Type (required): one of decision, workaround, incident, constraint. If ambiguous, list all that apply.
  • Status (required): one of active, superseded, open, needs-review.
  • Evidence (required): confirmed, inferred, or unknown.
  • Source/Verification (optional): URL, commit, issue, PR, or post-mortem link. Per source-reference setting (always | never | filtered:<criteria>). 'no reference exists' is a complete answer.
  • Context directory (required at invocation time): the configured local directory where topic files live.
  • Confirmation gate: present the completed entry to the user before writing; proceed only on explicit confirmation.

Procedure

1. **Detect trigger.** Recognize a non-trivial change involving a design decision, rejected alternative, workaround, incident fix, operational constraint, or changed assumption. This includes any change that was started and then abandoned after discovering why it must not be touched (zero diff). Apply the proportionality gate: obvious or self-evident choices require a sentence, not a full entry; corrections of stale values or bugs belong in CHANGELOG, not here. Done when: the trigger is confirmed or the skill exits silently for a trivial/corrective change.

2. **Bound scope.** Identify the single decision or topic at the center of the change. Do not widen scope to related decisions, history, or speculative futures. Stop if the change is trivial, purely corrective, or does not involve a decision worth recording. Done when: one decision or topic is identified and scope is bounded.

3. **Collect entry fields.** Gather the required fields: decision text, rejected alternatives and why each was rejected, reason for the outcome, type, status, evidence quality, and source/verification if available. If the reason is unknown, state 'unknown, <what would confirm it>'. Never invent rationale or resolve conflicts unilaterally. Done when: all required fields are gathered or marked unknown.

4. **Record conflicts open.** If two or more sources give conflicting reasons, record each reason and its source, flag the conflict as open, and set the status to needs-review. Do not resolve the conflict. Done when: every conflict is recorded with both sides and flagged open.

5. **Confirm with user.** Present the completed entry to the user for confirmation before writing. If the user declines or revises, incorporate feedback and reconfirm. Done when: the user explicitly confirms the entry.

6. **Write or update the topic file.** Locate or create the topic file in the context directory. If the topic already has an entry with the same decision, update the existing entry instead of creating a duplicate. Write the entry with all collected fields. Keep the context index lean: do not add a new index entry if one already exists for this topic. Done when: the topic file is written or updated with the entry and the index is lean.

7. **Stop on confirmation gate refusal.** If the user does not confirm, stop without writing. Return the collected (but uncommitted) fields as the result. Done when: the skill stops and returns the uncommitted fields.

Failure and recovery

  • No context directory configured: stop and report that the context directory is required. Do not choose a default location.
  • Topic file write fails (permission, disk full): stop, report the exact failure, and do not attempt rollback; the file is unchanged.
  • User declines confirmation: stop without writing. The entry is not persisted. Return the uncommitted fields.
  • Invented rationale detected: stop bef
Read more
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

Get the whole plugin
Stats
36
Stars
0
Forks
Active
Maintenance
Python
Language
Apache-2.0
License
3d ago
Last commit
10mo ago
Created

Repo: OutlineDriven/odin-claude-plugin

Other skills on odin-claude-plugin.