miucr

miucr is a skill for Claude Code from vanducng/skills. It costs 152 tokens per session (16,535 once invoked), scanned C, original, MIT.

An AI-assisted code review tool for checking staged changes, commits, branch ranges, and GitHub pull requests. It can also run reviews through a local service or an agent connection.

In plain words
What is it for?
Use it to review local Git changes or pull requests, post findings to GitHub, run review webhooks, and compare reviewer results against expected findings.
Why use it?
It helps find bugs and other review issues while keeping file selection, line references, duplicate findings, and review status consistent.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: mentions CLAUDE.md; mentions subagents; mentions Claude Code.

Part of the vd plugin — 80 skills, 14 agents shipped together

Good fit Use it to review local Git changes or pull requests, post findings to GitHub, run review webhooks, and compare reviewer results against expected findings.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/vanducng/skills/miucr
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add vanducng/skills --skill miucr
Clone the repo
git clone --depth 1 https://github.com/vanducng/skills

Made for: Claude Code.

Or install vd, the plugin that ships this one along with the rest of its 80 skills, 14 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for miucr

README.md
[![agentmods](https://agentmods.dev/badge/skills/vanducng/skills/miucr/github.svg)](https://agentmods.dev/skills/vanducng/skills/miucr)
Your own site
<a href="https://agentmods.dev/skills/vanducng/skills/miucr"><img src="https://agentmods.dev/badge/skills/vanducng/skills/miucr/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for miucr

Your own site · 80×15
<a href="https://agentmods.dev/skills/vanducng/skills/miucr"><img src="https://agentmods.dev/badge/skills/vanducng/skills/miucr.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 152 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 16,535 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 2 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00152 $0.16535
Opus 5 $0.00076 $0.08267
Sonnet 5 $0.00030 $0.03307
Haiku 4.5 $0.00015 $0.01654

Measured 5d ago against content hash c7d306414a94, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade C, and why

miucr scanned grade C with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Downloads and executes remote codehighSupply chain

curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.

curl -fsSL https://cr.miu.sh/install.sh | sh # asset-aware latest

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -fsSL https://cr.miu.sh/install.sh | sh # asset-aware latest
skills/miucr/SKILL.md · 824 lines

How it starts

The opening of the file, as written. The whole thing — 824 lines — stays where its author put it; the contents beside it link to each section on GitHub.

miucr: owned AI code-review CLI (v0.65.0)

miucr (the miu-cr project) is a fast, pure-Go (CGO_ENABLED=0) AI code reviewer. It keeps the correctness-critical parts deterministic (file selection, context assembly, line-anchoring, severity gating, dedupe) and uses the LLM only for judgment (finding bugs, proposing fixes). It runs five review ways:

  • Local review: miucr review over a staged diff, a commit, or a ref range.
  • GitHub PR review: miucr review --pr (dry-run by default; --post reacts 👀, upserts ONE summary issue comment, and posts inline comments as a PR review).
  • serve daemon: HMAC webhook (default) and/or opt-in poll trigger; optional REST API + GitHub App auth.
  • MCP server: miucr mcp exposes review_run / review_get over stdio to any agent host.
  • Evaluation: miucr eval compares miu-cr and other reviewer commands against JSON expected findings.

Review behavior worth knowing (design choices that prevent noise):

  • One upserted summary, posted first. --post writes ONE summary issue comment, edited in place on re-runs (never stacked), and acknowledges the PR with 👀. If no summary exists yet, it also creates a short Review running placeholder before the LLM starts; on later commits it keeps the prior completed summary visible until the new result is ready. The final summary replaces that same comment and is posted BEFORE the inline review so it anchors on top (overview → details). Inline findings are a separate PR review. review_id is NOT shown in the comment (it only resolves on the local store; it stays in the JSON envelope). On a fatal review failure after miucr's internal retries, --post upserts that SAME summary comment with a visible GitHub alert instead of failing silently: operational/provider/infrastructure failures (agent.unavailable, provider.rate_limited, quota.exceeded, review.timeout, github.unavailable, etc.) render as [!WARNING], while unknown internal.error failures render as [!CAUTION]; a later successful run replaces it with findings.
  • The summary is a per-finding lifecycle ledger, not just the latest run. Below a concise ≤5-bullet "What changed" summary, it renders two always-visible tracking tables - ⚠️ Open (N) and ✅ Resolved (N) - each finding tracked by its line-independent fingerprint across commits: a Priority column (P0-P4), status (open / resolved / reopened), the origin commit it was first raised on and the resolved commit it disappeared on (both linked), priority before→after for escalations, and first-seen / resolved timestamps. A clean review uses natural all-clear prose like Review passed! No findings on the first review pass. or Review passed! 3 findings resolved. Good cleanup. The deterministic note gets stronger as more findings are cleared and adapts to focused vs broad diffs. The footer is Last reviewed commit + review attempts + the miu-cr release. Lifecycle state is storeless: it lives in a hidden <!-- miu-cr-ledger:<base64> --> marker inside the comment (like the runs counter), so it survives ephemeral CI with no DB. A finding resolves only when it is absent AND its file is still in the diff (absence off-diff ≠ fix).
  • Inline comments persist; resolving the threads is left to you / your coding agent. Each finding's inline comment is posted ONCE and deduped across re-runs via a hidden <!-- miucr:fp=… --> marker, so a re-review never re-posts or deletes it. miucr does NOT click "Resolve conversation": when a finding is fixed, GitHub auto-marks the thread Outdated and the summary ledger moves it to ✅ Resolved, but the inline thread itself stays open for the developer/coding agent to resolve. A host config may opt into thread_resolution_sync.mode: poll to mirror manual GitHub "Resolve conversation" state into the summary (the Resolved row shows a clean 💬 conversation marker linked to the discussion thread, distinct from a commit-resolved row's open → resolved SHA arrow); this never starts an LLM review and never feeds approval. So an agent acting on a review should read the inline threads, apply the fixes, reply on each handled inline thread with what changed and why, then resolve the thread.
  • Repeat-run stability is deterministic inputs + low-variance generation. For the same repo/ref/config, file selection, context assembly, rules, anchoring, gating, fingerprints, and comment dedupe are deterministic. SDK-backed Anthropic/OpenAI calls use temperature: 0; exact model output can still vary, so PR posting is idempotent rather than duplicate-prone.
  • One-click suggestions and approvals are explicit write actions. --suggest emits a native GitHub ```suggestion block ONLY for findings at or above the suggestion floor (medium) when the patch deterministically replaces the exact anchored line(s) and the model is certain of a grounded mechanical fix (a cited rule or an obvious best practice). It NEVER guesses an unverifiable value (a URL, path, route, ID, version, config key, API signature); such concerns become a verification-question in the rationale instead. --patch-repair (requires --suggest) runs one focused 2nd LLM pass to recover a repairable near-miss patch. --approval clean|threshold submits APPROVE only when the policy and safety gates pass; the first approval body is short (LGTM) and links to the code review summary unless --approval-note none is set. Approval is head-SHA scoped: a later clean push can be approved again bodyless, threshold re-approvals carry the threshold note, and the same commit is not approved twice. Permission/self-approval failures warn and degrade rather than failing the review.
  • -o pretty is the human-readable local format; -o json is for agents; -o sarif for editors/CI.
  • Multi-provider profiles. Add a named provider (e.g. z.ai/glm) with kind, base_url, model, auth, and either auth_env or auth_command; select with --provider <name>. Built-in kinds: anthropic, openai (ChatGPT-plan OAuth via miucr login). Transient GitHub/network errors auto-retry with backoff. Optionally cap a provider instance's usage with [providers.<name>.quota] (dimension = tokens|requests, limit, window = <Go duration like 5h/24h>|monthly); uncapped by default, fail-closed, over-quota → typed quota.exceeded.
  • Thinking on by default; deterministic fallback. Capable models (Claude, gpt-5/o-series, codex, z.ai GLM 4.5+) review with extended thinking/reasoning (deeper analysis; temperature is omitted because thinking forces temp 1). Models without thinking (gpt-4o, plain glm-4 chat) sample at temperature 0 for stable, reproducible findings. Both are config-exposed: [review].thinking (auto|off|low|medium|high, default auto) and [review].temperature (0-2, default 0). Set MIUCR_TRACE_REASONING=true to capture that reasoning into the review trace (miucr trace <id>).

Read the full file on GitHub · 824 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 824 lines · 152 tokens per session scan C c7d306414a94

Subscribe to this mod's changes

miucr is a skill published in the GitHub repository vanducng/skills (7 stars, last pushed 5d ago), licensed MIT. It adds 152 tokens to every session and 16,535 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it C with 2 findings (downloads and executes remote code, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-04.

Related

Other skills, from other repositories

spec-finish

Post-implementation completion workflow for Spec-backed Plans. Use after spec-implement completes to validate, review, create stacked commits, and open a PR via code-pull-request. Triggers only with an active Spec-backed Plan after spec-implement completes, including when the user says "finish", "done", or "complete"…

martinffx/atelier · 73 tokens

summarize-changes

Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff.

conorbronsdon/agent-skill-builder · 38 tokens

work-unit-commits

Plan commits as reviewable work units. Trigger: implementation, commit splitting, chained PRs, or keeping tests and docs with code.

Gentleman-Programming/gentle-ai · 33 tokens

pr-review

Address feedback left on a GitHub pull request: fetch unresolved review threads, make agreed Elixir/Phoenix code fixes, reply, and resolve. Use for a PR URL/number or reviewer comments. NOT for pre-PR review, findings triage, or CI monitoring.

oliver-kriska/claude-elixir-phoenix · 59 tokens

phx-pr-review

Address feedback left on a GitHub pull request: fetch unresolved review threads, make agreed Elixir/Phoenix code fixes, reply, and resolve. Use for a PR URL/number or reviewer comments. NOT for pre-PR review, findings triage, or CI monitoring.

oliver-kriska/claude-elixir-phoenix · 61 tokens

resolve-pr-comments

Evaluate, fix, answer, and reply to GitHub pull request review comments and conversation comments. Handles both change requests (fix or skip) and reviewer questions (explain using reasoning recalled from past Claude Code transcripts). Use when the user asks to "resolve PR comments", "fix review comments", "address PR…

tobihagemann/turbo · 95 tokens