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 asked to audit comments in code files and propose structural replacements or deletions with per-candidate approval. Not for deterministic commented-out-code removal: use deslop.
$ npx -y skills add OutlineDriven/odin-claude-plugin --skill no-comments --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/no-commentsContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when asked to audit comments in code files and propose structural replacements or deletions with per-candidate approval. Not for deterministic commented-out-code removal: use deslop.
name: no-comments description: 'Use when asked to audit comments in code files and propose structural replacements or deletions with per-candidate approval. Not for deterministic commented-out-code removal: use deslop.'
| Field | Bound contract | |---|---| | Trigger | Audit comments in code files and propose structural replacements or deletions with per-candidate approval. | | Authority | Human-gated: asks per-candidate approval before modifying source files; otherwise reversible local: writes only the audit ledger and approved source edits; rollback is undo (revert each edited file to its captured pre-edit state). No remote mutation. | | Side effect | Writes an audit ledger. Applies accepted edits only after the user chooses an action for each candidate. | | Done | A complete audit ledger with one decision per comment and no unprocessed candidates. |
Required:
Optional:
1. Receive and validate target file paths. Reject paths that escape the working directory or are not readable. Detect the comment syntax family for each file from its extension or content. Report and exclude files whose syntax is not in the supported catalog. Done when: all valid paths are accepted with their syntax family, and invalid or unsupported-syntax paths are rejected with a reason. 2. Scan each target file for comments in its detected syntax family. Record line number, text content, and syntax form. Done when: every comment in every target file is recorded with line number, text, and form. 3. Classify each comment into one of these categories:
a. **Legal or business rule**: names a legal or business rule, cites a regulation or license term. Retained. b. **API contract**: documents a public API contract, parameter, return value, or thrown exception. Retained. c. **Design decision**: preserves a non-obvious design decision or cites a specification. Retained. d. **Dead code**: commented-out code or broken examples. Deletion candidate. e. **Redundant**: restates what the code already expresses without ambiguity. Deletion candidate. f. **TODO marker**: `TODO`, `FIXME`, `HACK`, `XXX`, or equivalent. Deletion candidate unless tied to an open issue in the same repository. g. **Vague**: contains indefinite words (`soon`, `later`, `maybe`, `should`, `improve`, `optimize`) without a concrete action or specification. Deletion candidate. h. **Noise**: empty comment, repeated punctuation, or whitespace. Deletion candidate.
Done when: every comment has a category assignment. 4. For each deletion candidate that would leave the code less readable, draft one structural alternative: rename a variable or function to make the comment redundant, extract a named function or constant to make the intent explicit, add an assertion or test that enforces the same constraint, or introduce a well-named guard clause. Each deletion candidate has either a structural alternative or a delete-only plan. Done when: every deletion candidate has a proposed action. 5. Present the candidates to the user and require a choice for each one: delete the comment, accept the structural alternative, or retain the comment unchanged. Done when: the user has chosen an action for every deletion candidate. 6. Write the audit ledger: one row per comment with file, line, text, category, proposed action, and user decision. Done when: the ledger is written with one decision per comment and no unprocessed candidates. 7. Apply each accepted edit. Before applying an edit to a file, capture its current content in memory. If the edit fails or the result is syntactically invalid, revert that file to the captured content and record the failure in the ledger. Continue to the next file. Done when: all accepted edits are applied and verified, or failed edits are reverted and recorded.
| Failure class | Condition | Result | |---|---|---| | `invalid-path` | A target path is outside the working directory or unreadable | Stop before scanning. Report the path. | | `unsupported-syntax` | A file uses a comment syntax not in the supported catalog | Report the file and exclude it. Continue with the remaining files. | | `edit-failure` | An edit write or syntax check fails on a file | Revert that file to its captured pre-edit content. Record the failure in the ledger. Continue to the next file. | | `rollback-failure` | A revert cannot restore a file to its pre-edit state | Stop. Report the file and the inability to recover. Do not continue to other files. | | `no-targets` | No valid target file paths were supplied | Stop. Report the missing input. | | `ledger-write-failure` | The audit ledger cannot be written | Report the failure. The audit is complete but undelivered; the user has the chat output as a fallback. |
Partial-result rule: if edits succeed on some files before a failure, the ledger records the edited set and the failed set separately. Files that were not yet processed are listed as remaining work.
One audit ledger: file, line, text, category, proposed action, and user decision per comment, plus status and remaining work. Accepted edits are applied to source files; failed edits are reverted and recorded.
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.