Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Branch code review with structured scoring against project guidelines. Produces categorized findings with severity levels and LLM-generated fix prompts. Quality gate: only posts review to PR if score meets threshold. Triggers on: "code review", "review branch", "review PR", "review changes", "score code"
.claude/skills/miosa-osa-code-review/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -7% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 42% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 82% | 0% |
> Structured code review with scoring, findings, and auto-generated fix prompts.
Review all changes on a branch (or between two refs) against project coding guidelines. Produce a scored report with categorized findings, severity levels, and actionable fix prompts that an LLM can execute directly. Supports a quality gate: if the score meets the threshold, post the review as a PR comment. If below threshold, return findings to the developer for iteration.
bash# Review current branch against main /code-review # Review a specific branch /code-review --branch feature/auth-refactor # Review with custom threshold /code-review --branch feature/auth-refactor --gate 9 # Review and post to PR if passing /code-review --pr 42 --post-if-passing # Review against specific guidelines /code-review --guidelines .cursor/rules/elixir.md # Output as JSON for CI integration /code-review --format json
| Flag | Type | Default | Description | |------|------|---------|-------------| | --branch | string | current branch | Branch to review | | --base | string | main | Base branch to diff against | | --pr | int | — | Pull request number to review | | --gate | int | 8 | Minimum score (1-10) to pass quality gate | | --post-if-passing | flag | false | Post review as PR comment if score >= gate | | --guidelines | string | auto-detect | Path to coding guidelines file | | --format | enum | markdown | Output format: markdown, json | | --severity | enum | all | Filter findings: all, critical, major, minor | | --fix-prompts | flag | true | Generate LLM fix prompts for each finding | | --max-files | int | 50 | Maximum files to review (largest diff first) |
--base and --branch. Identify all changed files, additions, deletions, and modifications.--guidelines, CLAUDE.md, .cursor/rules/, or language-specific defaults). Extract the rules to check against.--gate. If passing and --post-if-passing is set, format and post as PR comment./code-review --branch feature/user-auth
## Code Review — feature/user-auth
### Score: 7/10 — BELOW GATE (8)
### Findings
| # | Severity | File | Line | Issue |
|---|----------|------|------|-------|
| 1 | CRITICAL | lib/auth/session.ex | 45 | Token stored in plain text without encryption |
| 2 | MAJOR | lib/auth/login.ex | 23 | Missing rate limiting on login endpoint |
| 3 | MAJOR | test/auth_test.exs | — | No tests for token expiration edge case |
| 4 | MINOR | lib/auth/session.ex | 12 | Variable name `t` should be descriptive |
### Fix Prompts
#### Finding #1 — Token encryption
> In `lib/auth/session.ex` line 45, the session token is stored as plain text.
> Encrypt it using `Plug.Crypto.encrypt/3` before storage and decrypt on read.
> Reference: project guideline §Security — "All tokens at rest must be encrypted."markdown## Code Review — <branch> ### Score: N/10 — PASS | BELOW GATE ### Summary - Files reviewed: N - Findings: N critical, N major, N minor - Guidelines checked: N rules ### Findings | # | Severity | File | Line | Issue | |---|----------|------|------|-------| | 1 | ... | ... | ... | ... | ### Fix Prompts #### Finding #N — Title > Actionable LLM prompt to fix the issue... ### Verdict PASS — Ready to merge | FAIL — Address N findings before merge
/create-pr — Optional integration for posting reviewsgh) — For PR comment posting| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | pass→pass | 20,192 | 18,594 | -8% | 1 | 1 | 0% | 3,620 | 4,495 | +24% | 0 | 0 | — |
case-01 | fail→fail | 29,342 | 3,820 | -87% | 1 | 1 | 0% | 1,042 | 1,616 | +55% | 0 | 0 | — |
case-02 | fail→fail | 6,736 | 7,255 | +8% | 1 | 1 | 0% | 859 | 2,389 | +178% | 0 | 0 | — |
case-03 | fail→fail | 19,063 | 14,817 | -22% | 1 | 1 | 0% | 3,389 | 3,952 | +17% | 0 | 0 | — |
case-05 | pass→pass | 13,479 | 14,531 | +8% | 1 | 1 | 0% | 2,496 | 3,989 | +60% | 0 | 0 | — |
case-06 | pass→pass | 11,206 | 7,467 | -33% | 1 | 1 | 0% | 1,639 | 2,508 | +53% | 0 | 0 | — |
case-07 | fail→pass | 16,785 | 6,149 | -63% | 1 | 1 | 0% | 2,391 | 2,315 | -3% | 0 | 0 | — |
case-08 | fail→pass | 30,025 | 5,590 | -81% | 1 | 1 | 0% | 1,759 | 1,759 | 0% | 0 | 0 | — |
case-09 | fail→pass | 9,997 | 2,434 | -76% | 1 | 1 | 0% | 1,684 | 1,571 | -7% | 0 | 0 | — |
case-10 | fail→pass | 9,249 | 4,226 | -54% | 1 | 1 | 0% | 1,388 | 1,965 | +42% | 0 | 0 | — |
case-11 | fail→pass | 5,181 | 2,226 | -57% | 1 | 1 | 0% | 869 | 1,584 | +82% | 0 | 0 | — |
case-12 | pass→pass | 29,712 | 34,316 | +15% | 1 | 1 | 0% | 1,663 | 1,573 | -5% | 0 | 0 | — |
case-13 | fail→pass | 16,516 | 13,366 | -19% | 1 | 1 | 0% | 2,747 | 3,493 | +27% | 0 | 0 | — |
case-14 | fail→pass | 21,489 | 3,412 | -84% | 1 | 1 | 0% | 3,885 | 1,769 | -54% | 0 | 0 | — |
case-15 | fail→pass | 19,542 | 2,668 | -86% | 1 | 1 | 0% | 3,362 | 1,548 | -54% | 0 | 0 | — |
case-16 | pass→pass | 10,281 | 2,746 | -73% | 1 | 1 | 0% | 1,753 | 1,568 | -11% | 0 | 0 | — |
case-17 | fail→pass | 11,553 | 2,914 | -75% | 1 | 1 | 0% | 1,693 | 1,628 | -4% | 0 | 0 | — |
case-18 | pass→pass | 4,976 | 2,275 | -54% | 1 | 1 | 0% | 774 | 1,532 | +98% | 0 | 0 | — |
case-19 | fail→pass | 11,892 | 2,540 | -79% | 1 | 1 | 0% | 1,883 | 1,533 | -19% | 0 | 0 | — |
case-20 | pass→pass | 16,336 | 5,324 | -67% | 1 | 1 | 0% | 2,221 | 2,169 | -2% | 0 | 0 | — |
case-21 | fail→pass | 12,719 | 1,918 | -85% | 1 | 1 | 0% | 1,961 | 1,470 | -25% | 0 | 0 | — |
case-22 | fail→pass | 9,619 | 2,380 | -75% | 1 | 1 | 0% | 1,535 | 1,631 | +6% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +55 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.