From odin
Investigates reported bugs to root cause, designs TDD RED-GREEN fix plans through public interfaces, and creates GitHub issues. Triggers on bug reports, 'triage', issue investigation, or fix plans.
npx claudepluginhub outlinedriven/odin-claude-plugin --plugin odinThis skill uses the workspace's default tool permissions.
Investigate, find root cause, emit a fix plan shaped as RED-GREEN cycles. Mostly hands-off — minimize user prompts.
Executes step-by-step bug fix workflow: read issue, diagnose root cause, reproduce (browser for UI bugs), minimal fix, regression test, verify, open PR.
Systematically debugs by tracing root causes with predictions before test-first fixes. Use for errors, test failures, GitHub/Linear/Jira issues, stack traces.
Share bugs, ideas, or general feedback.
Investigate, find root cause, emit a fix plan shaped as RED-GREEN cycles. Mostly hands-off — minimize user prompts.
If the user has not already described the bug, ask exactly one question: "What's the problem you're seeing?" Then start investigating. No follow-ups yet.
Dispatch an Explore agent. Find:
Use git --no-pager grep -n -C 3 <pattern> and ast-grep run -p '<pattern>' -l <lang> -C 3 for structural traces.
From the investigation, lock:
Ordered list of RED-GREEN cycles. Each cycle is a vertical slice through public interfaces.
Rules:
gh issue create --title "<bug summary>" --body-file <tmp> using the template below. Do NOT ask the user to review first — file it, then share the URL and a one-line root-cause summary.
## Problem
- Actual: what happens
- Expected: what should happen
- Repro: numbered steps (or "non-deterministic; observed in <context>")
## Root Cause Analysis
- Code path involved (described by module + behavior, not file paths)
- Why current code fails (the contract violation, not the line)
- Contributing factors
## TDD Fix Plan
1. **RED:** Write a test asserting <observable behavior>.
**GREEN:** Minimal change to make it pass.
2. **RED:** Write a test asserting <next observable behavior>.
**GREEN:** Minimal change to make it pass.
**REFACTOR:** Cleanup after green (extract, rename, deduplicate). Optional.
## Acceptance Criteria
- [ ] Behavior X visible from public interface
- [ ] Behavior Y visible from public interface
- [ ] All new tests pass
- [ ] Existing tests still pass
Python (pytest):
test_balance_returns_zero_for_new_account asserts account_service.balance(new_id) == Decimal("0").
GREEN: Initialize default balance in account constructor.Rust (cargo test):
#[test] fn balance_returns_zero_for_new_account asserts service.balance(id)? == Decimal::ZERO.
GREEN: Initialize default balance in Account::new.