From odin
Reviews and compresses a diff along three independent axes — reuse, quality, efficiency — via parallel agents, then applies validated fixes. Useful when a user wants to simplify a specific change-set.
How this skill is triggered — by the user, by Claude, or both
Slash command
/odin:simplifyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A deliberate `compress` op invoked on a specific change-set. Decompose simplification into three axes that fail independently and so can be reviewed independently: **reuse** (what already exists), **quality** (shape of the new code), **efficiency** (cost of the new code). Three parallel read-only review agents — one per axis — emit findings against the same diff; the orchestrator composes, audi...
A deliberate compress op invoked on a specific change-set. Decompose simplification into three axes that fail independently and so can be reviewed independently: reuse (what already exists), quality (shape of the new code), efficiency (cost of the new code). Three parallel read-only review agents — one per axis — emit findings against the same diff; the orchestrator composes, audits, and applies fixes one rejection-ground class per atomic commit.
The three axes map directly onto ODIN's rejection grounds. Reuse axis primarily detects Graft (new code grafted where a utility already exists). Quality axis primarily detects Excess (unnecessary surface — params, state, comments-of-what) and Sprawl (structure without functional cause — wrappers, ladders, copy-paste variants). Efficiency axis primarily detects Excess (work that need not happen) and Sprawl (structure that bloats hot paths). The op-cell is compress and the patch rule is Minimal Sufficient Change: behavior is preserved, entropy is reduced.
Axis prompts (verbatim, copy-pasteable):
references/reuse.md — Agent 1 prompt, three rules, Graft focusreferences/quality.md — Agent 2 prompt, eight patterns, Excess + Sprawlreferences/efficiency.md — Agent 3 prompt, seven patterns, Excess + Sprawlreferences/orchestration.md — single-message dispatch recipe, composition, Reviewer audit, fix-sequencingcompress. Every commit body carries Op: compress. Behavior preservation is a gate, not a guideline.~/.claude/claude/system-prompt-baseline.md <reject_patches>. Any hit → revert and re-plan.cleanup-codebase's territory.refactor-break-bw-compat's territory.review.fix. simplify is self-sourcing.Phase 1 — Detect diff scope. The diff must capture all branch state under review — every commit since the branch diverged from its base, plus staged, plus unstaged. The orchestrator does not guess the base; it resolves an explicit anchor, or errors. Resolve via the first base ref that exists, then run git diff <base> (no ..HEAD, so working-tree changes are included):
git merge-base HEAD origin/maingit merge-base HEAD origin/mastergit merge-base HEAD maingit merge-base HEAD master@{upstream} (the branch's configured upstream tracking ref, full divergence)If none of the five resolve, gate the working-tree-only fallback on two ordered checks — first that HEAD exists as a commit at all, then that it has no parent:
git rev-parse --verify HEAD 2>/dev/null. If it fails, HEAD is unborn (fresh git init, no commits yet). Skip git diff entirely and fall through to the user-named-files / no-git-context path below. Do not run git diff HEAD on an unborn HEAD — it errors and would mask the unborn state.git rev-parse --verify HEAD^ 2>/dev/null. If it fails, HEAD is the repo's root commit (real commit, no parent), so there is no committed history that could be silently dropped — the entire scope IS the working tree. Use git diff HEAD. Surface a one-line note: "scope: working-tree only, on root commit".simplify against <ref>" and abort. Do not fall back to git diff HEAD — on a local-only main/master/trunk/develop with committed work, that would silently drop the committed work, and the scope contract requires capturing every commit since branch divergence plus staged plus unstaged.If there is no git context at all (no .git/), or HEAD is unborn per Check A, fall back to user-named files supplied in the invocation. Empty after all valid resolutions → exit 11. See references/orchestration.md for the exact resolution shell snippet and the explicit-base override syntax.
Phase 2 — Dispatch three review agents in one message. Single tool-call message containing three Agent invocations. Each agent receives <axis-prompt from references/> + "\n\n---\n\nDIFF:\n" + <captured diff>. Agents are read-only — no edits, disjoint axes, independence asserted in the spawn message. See references/orchestration.md for the concrete dispatch shape.
Phase 3 — Audit, then apply. Wait for all three. Aggregate findings by {axis, file, line, rejection-ground}; dedupe identical cross-axis findings. Dispatch a Reviewer agent to audit the composed list against completeness / consistency / accuracy / scope; the Reviewer's output is the validated survivor set. The orchestrator applies the survivors directly — one rejection-ground class per atomic commit (Op: compress trailer) — and drops non-survivors without comment. No re-adjudication in either direction. Re-run repo-native tests after each commit; on red, auto-revert via git revert HEAD --no-edit.
compress. Behavior preservation is a gate, not a guideline. A test regression between pre- and post-simplify is an automatic git revert HEAD --no-edit. No # type: ignore, no disabling of guards to make tests pass.~/.claude/claude/system-prompt-baseline.md <git> charter "one concern per commit" rule. Mixed-class commits trip exit 15.<reject_patches>. Any hit → revert and re-plan. If any rule here conflicts with ~/.claude/claude/system-prompt-baseline.md, the baseline wins.| Gate | Pass Criteria | Blocking |
|---|---|---|
| Diff scope detected | git diff (or staged / user-named fallback) produced a non-empty change-set | Yes — exit 11 if empty |
| Single-message dispatch | All three review agents launched in one tool-call message | Yes |
| Independence asserted | Spawn message documents the independence argument (disjoint axes, read-only) | Yes |
| Reviewer audit | Composed findings passed completeness / consistency / accuracy / scope check before fixes begin | Yes |
| Behavior preserved | Repo-native tests green after every fix commit | Yes — auto-revert on red, exit 13 |
| No new rejection ground | Post-fix audit shows no Excess / Graft / Sprawl / Sever introduced by the simplify patch | Yes — exit 14 |
| Atomic per class | Each commit contains exactly one rejection-ground class (Excess OR Graft OR Sprawl) | Yes — exit 15 if mixed |
| Op trailer present | Every commit body carries Op: compress | Yes |
| Code | Meaning |
|---|---|
| 0 | Clean — simplification landed, all fix commits green, no rejection ground introduced |
| 11 | No changes detected — diff empty after all fallbacks; pass-through, no work to do |
| 12 | False-positive-only findings — agents emitted findings but none survived the Reviewer audit; report attached, no patch needed |
| 13 | Behavior regression on a fix — tests went red; offending commit auto-reverted via git revert HEAD --no-edit |
| 14 | New rejection ground introduced — post-fix audit caught Excess / Graft / Sprawl / Sever in the simplify patch; reverted, re-plan required |
| 15 | Mixed-concern commit — a fix commit bundled more than one rejection-ground class; must split before merging |
simplify is the deliberate axis-decomposed pass on a specific diff. Cleanup runs inside a file you already had to open; simplify runs over a change-set you intend to compress.simplify is a specialized invocation of this pattern with a fixed three-axis decomposition (reuse / quality / efficiency). See parallel-launch/references/delegation-scenarios.md for the underlying parallelism rules.simplify also applies the fixes its review agents found.simplify is self-sourcing: it generates its own findings via parallel review agents and consumes them in the same skill invocation.simplify never breaks public contracts; it is compress-only.npx claudepluginhub outlinedriven/odin-claude-plugin --plugin odinReviews git diffs for reuse opportunities, quality issues, and inefficiencies using three parallel agents, then fixes issues. Triggers on 'simplify', 'clean up', or after code changes.
Reviews a diff for code reuse, quality, and clarity issues, then optionally applies high-confidence, behavior-preserving fixes using parallel sub-agents.
Post-session code review that analyzes git diff to simplify and consolidate changed code, modernize syntax, and catch efficiency issues. Use after a working session or when asked to clean up or reduce slop.