From odin
Iteratively repairs code from verifier failures, structured findings, or bug descriptions: fix one→commit→verify→keep green or git revert, up to 20 iterations. Auto-routes GitHub PR fixes.
npx claudepluginhub outlinedriven/odin-claude-plugin --plugin odinThis skill uses the workspace's default tool permissions.
Failure-driven iterative repair. Detect → Prioritize → Fix ONE thing → Commit → Verify → Keep/Revert → Repeat.
Fixes bugs using test-first loop: add minimal failing reproduction test, apply smallest fix to affected module, verify full test suite and linters. Use for reported bugs needing verified low-impact fixes.
Fixes bugs and regressions: investigates root cause with GitHub issues/grep/git, applies minimal changes, adds type-appropriate regression tests, verifies tests, reviews code and tests via gates.
Share bugs, ideas, or general feedback.
Failure-driven iterative repair. Detect → Prioritize → Fix ONE thing → Commit → Verify → Keep/Revert → Repeat.
Apply: user says "fix", "make it pass", "apply findings"; input is a verifier failure, findings file, or bug description.
NOT apply:
gh-fix-cigh-address-commentsresolve or debugproceedFirst output line before ANY edit:
detected: <mode> — target=TARGET guard=GUARD scope=SCOPE cap=20
Mode values: gh-route, findings, verifier-failure, bug-spec. Full classifier: references/classifier.md.
First-match wins. Full detail: references/classifier.md.
| Priority | Mode | Minimum condition |
|---|---|---|
| 1 | gh-route | GH-flavored input + open PR + gh auth status clean |
| 2 | findings | Path to */findings.md, */review/*.md, or structured findings text |
| 3 | verifier-failure | Raw verifier stdout (FAILED, error TS, --- FAIL, etc.) |
| 4 | bug-spec | Natural-language description — catch-all fallback |
Auto-infer: target verifier, scope glob, guard command, iteration cap (default 20).
Trigger AskUserQuestion (single-select per axis, NEVER multiSelect) when:
MIXED_MODE: findings artifact AND verifier-failure output both presentGH_PARTIAL: GH-flavored input but no open PR, or gh auth status failsLANG_UNKNOWN: verifier-failure detected but verifier undetectableSCOPE_AMBIGUOUS: bug-spec with no module, file, or component referenceFull spec: references/loop.md. Key rules:
git revert HEAD --no-edit on red. A commit is kept only when the guard passes.delta > 0 + guard ok → KEEPdelta > 0 + guard fail → REWORK (max 2 reworks per item; 4th attempt → SKIP)delta ≤ 0 → DISCARD — revert immediatelygit revert HEAD --no-edit. Never reset --hard.main, master, release/*).iterations: N or --iterations N in invocation.Repo-native first (use fd --max-depth 2 to locate):
Justfile → just test (guard: just check)Makefile → make test (guard: make check)package.json → npm test (guard: tsc --noEmit && eslint .)dune-project → dune build @runtest (guard: dune build)Language fallbacks:
pytest + ruff check . && mypy .vitest run + tsc --noEmit && eslint .cargo test + cargo clippy -- -D warningsgo test ./... + golangci-lint rundune build @runtest + dune buildFull matrix: references/verifiers.md.
When open PR + gh auth status clean + GH-flavored input:
| Sub-target | Trigger language |
|---|---|
gh-fix-ci | "CI", "Actions", "workflow", "checks", Actions run URL |
gh-address-comments | "reviewer said", "address comment", "PR feedback", "requested changes" |
Both sets of language → fire AMBIGUOUS_GH_ROUTE (single-select: gh-fix-ci vs gh-address-comments).
Partial match → GH_PARTIAL ambiguity flag.
debug upstream: unclear root cause — debug findings become the fix target.triage-issue upstream: bug-spec mode — triage produces repro + TDD plan first.test-driven partner: failing test ↔ green flip; delegate RED→GREEN cycle.proceed complement: planned change without failure → proceed; failure-driven → fix.resolve / review / triage-issue as findings sources: their output paths feed findings mode.LANG_UNKNOWN.blocked.md, recommend debug.AskUserQuestion for guard command.MIXED_MODE.@ts-ignore / # type: ignore / // eslint-disable to silence errors.git reset --hard.--mode <X> bypasses classifier entirely; gh-fix-ci re-entering as fix --mode verifier-failure cannot loop back into gh-fix-ci.references/loop.md, references/classifier.md, references/verifiers.md.