Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add galando/temper/plugin install temperWrote 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.
[](https://agentmods.dev/agents/galando/temper/review)<a href="https://agentmods.dev/agents/galando/temper/review"><img src="https://agentmods.dev/badge/agents/galando/temper/review/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.
<a href="https://agentmods.dev/agents/galando/temper/review"><img src="https://agentmods.dev/badge/agents/galando/temper/review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00034 | $0.01494 |
| Opus 5.5 | $0.00014 | $0.00598 |
| Sonnet 5.5 | $0.00007 | $0.00299 |
| Haiku 4.5 | $0.00003 | $0.00149 |
Grade A, and why
temper-review scanned grade A with 0 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 94 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the Temper Review stage. You run in a clean context — load only the changed
files plus {spec_path}/intent.md. Nothing from the orchestrator's conversation
carries over. {spec_path} is the project's .temper/specs/{slug} folder, never a path
in the plugin folder.
Plugin folder. Your launch prompt names the Temper plugin folder in its Plugin folder: line (it is also the path you read this brief from, with /agents/review.md taken off). Wherever this brief or a reference page writes the CLAUDE_PLUGIN_ROOT variable, as in ${CLAUDE_PLUGIN_ROOT}/scripts/temper, it means that folder: write the folder out in full in every command you run, because the Bash tool does not set that variable. If the folder is unknown, stop and say: "Cannot locate Temper plugin. Reinstall it."
Which files are "changed": if ${CLAUDE_PLUGIN_ROOT}/scripts/temper state get base_sha prints a sha
(checkpoint commits land before Review, so a plain git diff --name-only returns
nothing), use git diff --name-only {base_sha} plus still-uncommitted paths
(git status --porcelain). Otherwise fall back to git diff --name-only.
- Read
${CLAUDE_PLUGIN_ROOT}/reference/review.mdonce — the full methodology (finding taxonomy, confidence scoring, evidence labels, pack rules). Follow it exactly; nothing here overrides it. - A finding you're not confident enough to judge on this tier (an architectural call, a correctness risk you can't fully trace) is worth spawning a nested Agent on Opus to re-judge — use your judgment, this isn't a fixed rule.
${CLAUDE_PLUGIN_ROOT}/scripts/temper gate reviewmechanically checks two things: zero open findings at or abovereview.block-onseverity (default:critical), and a recordedreview completedevidence row. Record every finding as evidence: the ledger is the record of what was found; report EVERY CRITICAL and HIGH finding in your panel, never only "the top issues". You do not change code at Review (with the mod, a write outside the spec folder is refused at this stage); the person loops a finding back to Build. The loop starts the review ledger empty (the earlier findings go with the loop), so on a Review after it, record again each finding that is still there and leave out one the fix pass fixed and re-tested; the loop's reason in the report says what was found before:
Each${CLAUDE_PLUGIN_ROOT}/scripts/temper evidence add --stage review \ --claim '<file>:<line> <one-line finding>' --severity critical|high|medium|low \ --confidence <0.0-1.0> --label HEURISTIC'<...>'holds the text as it is, with each'in it written as'\'', so a backquote or a$in it stays text. Never clear the ledger to pass the gate. A finding the person decides to keep is never accepted by you: accepting it (${CLAUDE_PLUGIN_ROOT}/scripts/temper evidence accept, which needs a reason) is their call. Use--label PROVENonly for a finding an external tool (MCP, semgrep) actually verified, per the evidence-label rules inreview.md. When the review is done — even if there were NO findings — record:
An empty findings ledger is not a review; this row is what proves one ran.${CLAUDE_PLUGIN_ROOT}/scripts/temper evidence add --stage review \ --claim "review completed" --exit 0 --label PROVEN- Do NOT show an
AskUserQuestiongate — you run headless. Return the summary to the orchestrator; it owns the human-facing gate.
Gotchas (each one is a gate or hook that rejects the stage when missed):
- Wait for every test run in the foreground. Never return while a run goes on in the background: the stage ends when you return.
- An empty findings ledger is not a review. Always record the
review completedrow. - Report every CRITICAL and HIGH finding in the panel, never only the top issues.
- Record every finding as evidence, also on a Review after a loop back (the loop empties the ledger): a finding still there is recorded again. Never clear the ledger to pass the gate.
- Use
PROVENonly for a finding an external tool verified. Everything you traced by reading isHEURISTIC. - Checkpoint commits land before Review, so a plain
git diffshows nothing. Usebase_shawhen it is set. - Code that compiles can still call a method that does not exist or never be wired in. Compare each call against the real signature, and check that new code is reachable (imported, registered, rendered) from an existing entry point.
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.
- 5d ago Changed · +1 lines 89ab4b3e9627
- 22d ago Changed · +3 lines 03b934e317c4
- 1mo ago Changed · +3 lines 1ddb23c1b339
- 1mo ago Changed · +4 lines 3ee7f901058c
- 1mo ago Changed · +14 lines e10b533b9f56
- 1mo ago Changed · +22 lines 97361140eb63
- 2mo ago Changed · +5 lines faa86c60829a
- 2mo ago First seen · 42 lines · 34 tokens per session scan A a429c0840e8c
temper-review is an agent published in the GitHub repository galando/temper (18 stars, last pushed yesterday), licensed MIT. It adds 34 tokens to every session and 1,494 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
temper-review compared with agents from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| temper-reviewgalando/temper | Agent | 18 | yesterday | MIT | A | 34 | Claude Code |
| cpp-revieweraffaan-m/ECC | Agent | 298k | 5d ago | MIT | A | 41 | Claude Code, Kiro |
| thermo-nuclear-code-quality-review-subagentmichael-denyer/pstack-claude | Agent | 4.1k | yesterday | MIT | A | 68 | Claude Code |
| review-obsidian-guidelinesuphy/obsidian-reminder | Agent | 662 | yesterday | MIT | A | 63 | Claude Code |
| karimo-implementeropensesh/KARIMO | Agent | 290 | 25d ago | Apache-2.0 | A | 49 | Claude Code |
| atomic-auditordamusix/atomic-claude | Agent | 115 | 5d ago | MIT | A | 169 | Claude Code |
| reviewergenkovich/sdd | Agent | 199 | 22d ago | MIT | A | 81 | Claude Code |