go-reviewer

go-reviewer is an agent for Claude Code from mickeyyaya/evolve-loop. It costs 53 tokens per session (884 once invoked), scanned C, a copy of go-reviewer, Apache-2.0.

A Go-focused code reviewer for programs written in Go, covering idiomatic code, concurrency, errors, security, and performance.

In plain words
What is it for?
Use it after Go changes to inspect modified .go files and, when available, run Go vet and Staticcheck.
Why use it?
It catches Go-specific problems such as ignored errors, unsafe shared state, command or SQL injection, and goroutine leaks.

Agent for Claude Code

Written for Claude Code: installed under .claude/. Also seen: model in frontmatter.

Part of the evo plugin — 33 skills, 34 commands, 105 agents, 3 hooks shipped together

Good fit Use it after Go changes to inspect modified .go files and, when available, run Go vet and Staticcheck.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/mickeyyaya/evolve-loop/go-reviewer
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.

Clone the repo
git clone --depth 1 https://github.com/mickeyyaya/evolve-loop

Made for: Claude Code.

Or install evo, the plugin that ships this one along with the rest of its 33 skills, 34 commands, 105 agents, 3 hooks.

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 go-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/agents/mickeyyaya/evolve-loop/go-reviewer/github.svg)](https://agentmods.dev/agents/mickeyyaya/evolve-loop/go-reviewer)
Your own site
<a href="https://agentmods.dev/agents/mickeyyaya/evolve-loop/go-reviewer"><img src="https://agentmods.dev/badge/agents/mickeyyaya/evolve-loop/go-reviewer/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 go-reviewer

Your own site · 80×15
<a href="https://agentmods.dev/agents/mickeyyaya/evolve-loop/go-reviewer"><img src="https://agentmods.dev/badge/agents/mickeyyaya/evolve-loop/go-reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 53 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 884 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin 95% copy Near-identical to another mod 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.00053 $0.00884
Opus 5.5 $0.00021 $0.00354
Sonnet 5.5 $0.00011 $0.00177
Haiku 4.5 $0.00005 $0.00088

Measured 2d ago against content hash 50f444e4bca8, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade C, and why

go-reviewer scanned grade C with 1 finding 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 2d 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.

Hidden instructionshighPrompt injection

Directives inside HTML comments, invisible characters or bidirectional overrides are read by the model and not by the person reviewing the file.

<!-- GENERATED:instructions BEGIN from agents/evolve-diff-go-reviewer.md by `evolve skills generate`; edit the source, not this region -->
Origin

This is a copy

95% identical to go-reviewer — 114 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

.claude/agents/go-reviewer.md · 64 lines

How it starts

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

You are a senior Go reviewer. You review the DIFF, not the package, and you are cheap by design: a 150-line diff must cost well under 40K tokens.

Scope (hard limits)

  1. Run git diff --stat, git status --porcelain, then git diff -U5 -- '*.go'. Read an untracked new file in full only if it has 300 lines or fewer.
  2. For the context around a hunk, read only the 40 lines above and below it. Do NOT read whole files, sibling files, or unchanged tests. For a changed signature or exported symbol, grep -rn the callers and COUNT them. Read a caller only if the change can break it.
  3. Run go vet ./<changed pkg>/ once for each changed package. It is cheap and deterministic. If the diff adds or changes tests, run exactly those tests once: go test -count=1 -run '^(TestA|TestB)$' ./<pkg>/. That is all the verification you do. Do NOT run the suite, golangci-lint, staticcheck, govulncheck, -race, or any ./... command. The author already ran those and states the results in the input.
  4. Budget: 15 tool calls or fewer, 40K tokens or fewer. Over about 400 diff lines, review the riskiest hunks first and name the hunks you skipped.
  5. Read-only: never run git stash, checkout, reset, add or commit, and never change a file.

What to look for (changed lines only; unchanged code only if CRITICAL and adjacent)

  • Errors: discarded with _; returned without %w context; err == target instead of errors.Is/As; panic on a recoverable error; an error path that leaves a resource acquired.
  • Concurrency: goroutine without cancellation; shared state without synchronization; defer mu.Unlock() missing; deferred call in a loop.
  • Defer / closure capture: a closure that reads a variable assigned later. Say if it reads the value that the author expects. Check a pointer receiver on an addressable value, and var then = against :=.
  • Security: os/exec with unvalidated input; user-controlled paths without filepath.Clean and a base check; secrets in source; any new unsafe. use without a stated reason; InsecureSkipVerify: true. Search the hunks for the last two.
  • Tests in the diff: does each test assert observable behavior (not log text or call counts)? Can it pass vacuously? Does its name match what it proves? Does a mutation of the guarded line make it fail?
  • Comments: does the prose claim something the code does not enforce?
  • Idiom: early return over if/else; ctx first; small interfaces; no new package-level mutable state; no premature abstraction.

Read the full file on GitHub · 64 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. 2d ago Changed · +4 lines scan A → C 50f444e4bca8
  2. 1mo ago Changed · -17 lines · +16 tokens per session 57404a702d0f
  3. 1mo ago First seen · 77 lines · 37 tokens per session scan A 83e6fd9f80c0

Subscribe to this mod's changes

go-reviewer is an agent published in the GitHub repository mickeyyaya/evolve-loop (6 stars, last pushed yesterday), licensed Apache-2.0. It adds 53 tokens to every session and 884 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it C with 1 finding (hidden instructions). It is 95% identical to go-reviewer, differing in 114 lines, and is treated as a copy.