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 explicitly asks to choose which issues or pull requests to close interactively. Don''t use for closing items without per-item selection and explicit approval.
$ npx -y skills add OutlineDriven/odin-claude-plugin --skill interactive-drop-selector --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/interactive-drop-selectorContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when the user explicitly asks to choose which issues or pull requests to close interactively. Don''t use for closing items without per-item selection and explicit approval.
name: interactive-drop-selector description: 'Use when the user explicitly asks to choose which issues or pull requests to close interactively. Don''t use for closing items without per-item selection and explicit approval.' disable-model-invocation: true
| Field | Bound contract | |---|---| | Trigger | The user explicitly asks to choose which issues or pull requests to close interactively. | | Authority | Remote: closes approved issues or pull requests in the named tracker scope; requires explicit human invocation. Do not close any item until the user has selected exact targets and explicitly approved the final preview. | | Side effect | Close only the approved issues or pull requests in the named tracker scope; do not mutate unselected items or any other remote state. | | Done | Every approved target is confirmed closed remotely, and every failure or skipped target is reported without claiming success for it. |
The user must supply or unambiguously identify the repository or tracker scope. Obtain the candidate items from a user-supplied list or a read-only tracker query within that scope. Optional filters may limit the candidate set. A closing comment or reason is optional and must be supplied or approved by the user before it is posted; do not invent one. Existing authenticated read and mutation access must be available, but never request, create, replace, or expose credentials as part of this workflow.
1. Confirm that the request is an explicit human invocation and resolve the tracker scope, candidate source, and any filters. Stop as `blocked` if the scope is ambiguous or authenticated access is unavailable. 2. Read the candidate items and validate each item's stable identifier, type, title, current state, and tracker scope. Exclude already-closed items from selectable targets and identify them separately. 3. Present a numbered selection table containing each open candidate's stable identifier, type, title, and current state. Accept only selections that resolve uniquely to entries in this bounded table; reject unknown, duplicate, malformed, or out-of-scope selections. 4. Show a final preview of the exact selected identifiers, the repository or tracker scope, the consequence that each will be closed, and any comment that will be posted. Make no remote mutation yet. 5. Ask for explicit approval of that exact preview. A selection alone is not approval. If the user declines, changes the selection, or does not clearly approve, return `cancelled` without mutation or regenerate the preview and seek approval again. 6. Immediately before each close operation, re-read the target and confirm its stable identifier, scope, and open state still match the approved preview. If it changed, skip it and report a conflict; never widen or substitute the target set. 7. Close each still-valid approved target using the tracker's normal close operation, applying only the approved comment when one exists. Record the remote result for each target. Do not stop reporting after a partial failure, but do not retry an uncertain result until a read confirms whether the close occurred. 8. Re-read every approved target and classify it as `confirmed-closed`, `failed`, or `conflict`. The done predicate holds only when all approved targets are `confirmed-closed`.
Never swallow tracker errors or report the done predicate while any approved target is failed, conflicted, or unverified.
Return the tracker scope, the approved target set, and one terminal status per target with its stable identifier and observed remote state. Return overall `confirmed` only when all approved targets are verified closed; otherwise return `blocked`, `cancelled`, `partial`, or `unknown-result` with the exact reason and any remote mutations already confirmed.
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.