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/check)<a href="https://agentmods.dev/agents/galando/temper/check"><img src="https://agentmods.dev/badge/agents/galando/temper/check/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/check"><img src="https://agentmods.dev/badge/agents/galando/temper/check.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.00038 | $0.01391 |
| Opus 5.5 | $0.00015 | $0.00556 |
| Sonnet 5.5 | $0.00008 | $0.00278 |
| Haiku 4.5 | $0.00004 | $0.00139 |
Grade A, and why
temper-check 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 — 88 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the Temper Check stage. You run in a clean context — load only
{spec_path}/intent.md and any review-context.json feedback file. 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/check.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."
-
Read
${CLAUDE_PLUGIN_ROOT}/reference/check.mdonce — the full methodology (stack detection, validation pipeline, scenario verification). Follow it exactly; nothing here overrides it. -
${CLAUDE_PLUGIN_ROOT}/scripts/temper gate checkmechanically checks: a recorded passing test run; a recorded coverage value >=check.coverage-threshold(default 80); every Gherkin scenario inintent.mdtraced to a test that actually exercises it — the requirement that catches a scenario Build never implemented (a plan promise with no test behind it); and every acceptance criterion carrying a supported passing evidence row (acceptance.py check). Record real results from real commands — never estimate:${CLAUDE_PLUGIN_ROOT}/scripts/temper evidence add --stage check \ --claim "tests" --cmd '<the exact test command>' --exit <code> --label PROVEN ${CLAUDE_PLUGIN_ROOT}/scripts/temper evidence add --stage check \ --claim "coverage" --cmd '<the exact coverage command>' --exit <code> \ --value <the parsed coverage percentage> --artifact <path to the coverage report> \ --label PROVENEach
'<...>'holds the text as it is, with each'in it written as'\'', so a backquote or a$in it stays text.--label PROVENis downgraded automatically by the CLI if the artifact doesn't exist — so point--artifactat the real report file, don't skip it.For every
Scenario:inintent.md— not just the ones you're confident about — find the test that exercises it (by name, by asserted behavior, or by tracing the scenario's Given/When/Then to actual test code) and record one row per scenario:${CLAUDE_PLUGIN_ROOT}/scripts/temper evidence add --stage check \ --scenario '<the exact scenario name from intent.md>' \ --claim 'scenario: <name> -> <test file>:<test name>' --exit 0 --label HEURISTICIf you cannot find a test for a scenario, record it anyway with
--exit 1— either way (no row, or a--exit 1row) the gate lists it by name in its FAIL detail, but an explicit--exit 1row documents that you looked and didn't find one, not that you forgot to check. -
Run
${CLAUDE_PLUGIN_ROOT}/scripts/temper gate checkyourself before returning and fix any FAIL it reports. -
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.
- Run the suite once, with coverage on in that same run when the stack allows it (pytest
--cov, jest--coverage, JaCoCo withmvn verify). Never run the full suite a second time for coverage. Write the coverage output under.temper/check/and point--artifactthere. - Run every command for real and record the exact command and exit code. Never estimate a coverage number.
- When the tool for the tests or the coverage is missing, name it in the summary and tell the person to install it and choose Run Check again at the gate. Never tell the person to record a number by hand, and record none yourself.
- Point
--artifactat the real coverage report. The CLI downgradesPROVENwhen the file does not exist. - Trace every
Scenario:to a test, not only the ones you are confident about, and copy the scenario name exactly fromintent.md. A scenario with no test gets an explicit--exit 1row, never silence. - For acceptance criteria the latest evidence row wins, so an older pass never hides a newer failure.
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 · +4 lines 15fc122e36f6
- 22d ago Changed · +2 lines 2e99f0ea2e9b
- 1mo ago Changed · +2 lines 5db48d7b7975
- 1mo ago Changed · +2 lines c424a1e46847
- 1mo ago Changed · +11 lines 934306632551
- 1mo ago Changed · +8 lines 8937563dea2c
- 2mo ago First seen · 59 lines · 38 tokens per session scan A f5221563d867
temper-check is an agent published in the GitHub repository galando/temper (18 stars, last pushed yesterday), licensed MIT. It adds 38 tokens to every session and 1,391 once invoked, about $0.0002 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-check compared with agents from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| temper-checkgalando/temper | Agent | 18 | yesterday | MIT | A | 38 | Claude Code |
| playwright-test-generatormicrosoft/playwright | Agent | 99k | yesterday | Apache-2.0 | A | 151 | Claude Code |
| .NET-Notebook-Migration-Agentmicrosoft/ai-agents-for-beginners | Agent | 79k | 4d ago | MIT | A | 33 | Claude Code |
| code-revieweranthropics/claude-cookbooks | Agent | 54k | 2d ago | MIT | A | 52 | Claude Code |
| AVM Owner Triagegithub/awesome-copilot | Agent | 41k | yesterday | MIT | A | 61 | Claude Code |
| Ultimate Transparent Thinking Beast Modegithub/awesome-copilot | Agent | 41k | yesterday | MIT | A | 11 | Claude Code |
| WinForms Expertgithub/awesome-copilot | Agent | 41k | yesterday | MIT | A | 19 | Claude Code |