agent-environment-retr…
Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use engineering-retrospective.
Use when the user wants to elicit refused directions, generalize them, and close matching tracker items as not planned. Not for duplicates, spam, or items closed as completed or obsolete.
$ npx -y skills add OutlineDriven/odin-claude-plugin --skill wontfix --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/wontfixContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when the user wants to elicit refused directions, generalize them, and close matching tracker items as not planned. Not for duplicates, spam, or items closed as completed or obsolete.
name: wontfix description: 'Use when the user wants to elicit refused directions, generalize them, and close matching tracker items as not planned. Not for duplicates, spam, or items closed as completed or obsolete.' disable-model-invocation: true
| Field | Bound contract | |---|---| | Trigger | User wants to elicit refused directions, generalize and concretize them, and close matching tracker items as not planned. | | Authority | Remote: closes matching tracker items as not planned; requires explicit human invocation. The exact target set and its consequence are previewed and approved before any mutation; the same approval gates the optional local docs record. No credential, paid, publishing, or deployment mutation occurs. | | Side effect | Matching tracker items closed as not planned; optional refusal preserved in docs. | | Done | Refused directions are documented and matching items are closed as not planned after user approval. |
Must be supplied by the user:
Optional:
1. Name the tracker in scope: run `gh repo view --json nameWithOwner`; on error, ask for `owner/repo` and rerun `gh repo view <owner>/<repo> --json nameWithOwner`. Done when: tracker is identified, or the step has stopped on failure with zero mutations. 2. Elicit refused directions: ask the user what will not be done. Record each statement verbatim. Never add, infer, or propose refusals the user did not state. Done when: all refused directions are recorded verbatim. 3. Generalize and concretize each verbatim refusal: the generalization is the refused class of work in one sentence; the concretization is the detectable matching signals (keywords, component or path names, label names, design choices). A refusal that resists either form is ambiguous. Done when: every refusal has a generalization and concretization, or is marked ambiguous. 4. Resolve every ambiguous refusal and confirm the completed refusal list with the user. The list is frozen only after this confirmation. Done when: refusal list is confirmed and frozen. 5. Enumerate the open tracker surface: `gh issue list --repo <owner>/<repo> --state open --json number,title,body,url,labels --limit 200` and `gh pr list --repo <owner>/<repo> --state open --json number,title,body,url,labels --limit 200`. When the returned count equals the limit, rerun with a higher `--limit` until the open set is fully covered. Done when: open issues and PRs are fully enumerated, or the step has stopped on enumeration failure with zero mutations. 6. Match items to refusals: an item joins the closure set only when its title, body, or labels match a concretized signal of some refusal. For borderline candidates read the full item with `gh issue view` or `gh pr view`, and include it only on an explicit signal match. Record kind, number, title, URL, matched refusal, and matched signal for every included item; list excluded borderline items as not matched. Done when: every open item is classified as matched or not matched. 7. Preview and gate: present the exact closure set (number, kind, title, URL, matched refusal) with the consequence: issues close with reason "not planned", pull requests close unmerged with the refusal as the closing comment, and the docs record plan when requested. Mutate only after the user explicitly approves this exact set; any later change to the set requires fresh approval. Done when: user explicitly approves the exact closure set, or the step waits for approval. 8. Close each approved item, one at a time, recording every result: issue: `gh issue close <number> --repo <owner>/<repo> --reason "not planned" --comment "<generalization>"`; pull request: `gh pr close <number> --repo <owner>/<repo> --comment "<generalization> (closed as not planned)"`. A failed close is recorded and does not block the remaining approved items; failed items are never silently skipped. Done when: every approved item is attempted with its result recorded. 9. Confirm every intended closure: `gh issue view <number> --repo <owner>/<repo> --json state,stateReason` must report `"state": "CLOSED"` with `"stateReason": "NOT_PLANNED"`, and `gh pr view <number> --repo <owner>/<repo> --json state` must report `"state": "CLOSED"`. An item still reporting open receives exactly one retry of its close command and one re-check; a second miss is reported as unconfirmed. Done when: every approved item is confirmed closed or reported as unconfirmed. 10. Write the optional docs record only when the user requested it and after the step 7 approval: append a dated section to `docs/refused-directions.md` (create the file when missing) listing each refusal verbatim, its generalization and concretization, and the closed item numbers with URLs. Rollback is deletion of the appended section; the rest of the file is untouched. Done when: docs record is written or skipped (not requested). 11. Report per Output. The done predicate holds only when every approved item is confirmed closed. Done when: report is emitted and done predicate is evaluated.
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
Repo: OutlineDriven/odin-claude-plugin
Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use engineering-retrospective.
Use when a repo needs agent setup, AGENTS.md added or made lean, CLAUDE.md audited, or agent instructions scored or pruned. Not for remote, credential,…
Use when a human explicitly asks for a full repository agent-compatibility pass returning a scored report with prioritized fixes. Not for tasks that require…
Use when setting up a project, auditing agent command permissions, or asking which read-only bash commands and domains to allow. Not for remote, credential,…
Use when asked to build or review a CLI intended for coding agents and return flag-driven, pipeline-safe, idempotent design advice. Not for running or…
Use when the user asks to make the skills framework work in a new harness, IDE, or CLI. Not for remote, credential, publish, deploy, or irreversible changes.