temper-check

temper-check is an agent for Claude Code from galando/temper. It costs 38 tokens per session (1,391 once invoked), scanned A, original, MIT.

A validation stage for Temper that runs checks suited to the project's technology stack, including compilation, tests, coverage, linting, and security checks. Code coverage measures how much of the code is exercised by tests.

In plain words
What is it for?
Validating a completed change, recording test and coverage results, checking code style and security, and tracing scenarios from the plan to actual tests.
Why use it?
It turns quality checks into recorded evidence instead of relying on guesses or a final successful test command. It also verifies that every planned behavior scenario is covered by a test.

Agent for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT} variable. Also seen: model in frontmatter; names the AskUserQuestion tool.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the temper plugin — 5 skills, 11 commands, 11 agents, 2 hooks shipped together

Good fit Validating a completed change, recording test and coverage results, checking code style and security, and tracing scenarios from the plan to actual tests.

Compare 6 agents from other repositories ↓
Install

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.

Claude Code
/plugin marketplace add galando/temper
Claude Code
/plugin install temper

Made for: Claude Code.

Or install temper, the plugin that ships this one along with the rest of its 5 skills, 11 commands, 11 agents, 2 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 temper-check

README.md
[![agentmods](https://agentmods.dev/badge/agents/galando/temper/check/github.svg)](https://agentmods.dev/agents/galando/temper/check)
Your own site
<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.

agentmods 80×15 button for temper-check

Your own site · 80×15
<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>
Per session 38 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,391 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 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.00038 $0.01391
Opus 5.5 $0.00015 $0.00556
Sonnet 5.5 $0.00008 $0.00278
Haiku 4.5 $0.00004 $0.00139

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

Security

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.

agents/check.md · 88 lines

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."

  1. Read ${CLAUDE_PLUGIN_ROOT}/reference/check.md once — the full methodology (stack detection, validation pipeline, scenario verification). Follow it exactly; nothing here overrides it.

  2. ${CLAUDE_PLUGIN_ROOT}/scripts/temper gate check mechanically checks: a recorded passing test run; a recorded coverage value >= check.coverage-threshold (default 80); every Gherkin scenario in intent.md traced 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 PROVEN
    

    Each '<...>' holds the text as it is, with each ' in it written as '\'', so a backquote or a $ in it stays text. --label PROVEN is downgraded automatically by the CLI if the artifact doesn't exist — so point --artifact at the real report file, don't skip it.

    For every Scenario: in intent.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 HEURISTIC
    

    If you cannot find a test for a scenario, record it anyway with --exit 1 — either way (no row, or a --exit 1 row) the gate lists it by name in its FAIL detail, but an explicit --exit 1 row documents that you looked and didn't find one, not that you forgot to check.

  3. Run ${CLAUDE_PLUGIN_ROOT}/scripts/temper gate check yourself before returning and fix any FAIL it reports.

  4. Do NOT show an AskUserQuestion gate — 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 with mvn verify). Never run the full suite a second time for coverage. Write the coverage output under .temper/check/ and point --artifact there.
  • 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 --artifact at the real coverage report. The CLI downgrades PROVEN when 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 from intent.md. A scenario with no test gets an explicit --exit 1 row, never silence.
  • For acceptance criteria the latest evidence row wins, so an older pass never hides a newer failure.

Read the full file on GitHub · 88 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 Changed · +4 lines 15fc122e36f6
  2. 22d ago Changed · +2 lines 2e99f0ea2e9b
  3. 1mo ago Changed · +2 lines 5db48d7b7975
  4. 1mo ago Changed · +2 lines c424a1e46847
  5. 1mo ago Changed · +11 lines 934306632551
  6. 1mo ago Changed · +8 lines 8937563dea2c
  7. 2mo ago First seen · 59 lines · 38 tokens per session scan A f5221563d867

Subscribe to this mod's changes

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.

Related

temper-check compared with agents from other repositories

temper-check next to 6 agents from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
temper-checkgalando/temperAgent18yesterdayMITA38Claude Code
playwright-test-generatormicrosoft/playwrightAgent99kyesterdayApache-2.0A151Claude Code
.NET-Notebook-Migration-Agentmicrosoft/ai-agents-for-beginnersAgent79k4d agoMITA33Claude Code
code-revieweranthropics/claude-cookbooksAgent54k2d agoMITA52Claude Code
AVM Owner Triagegithub/awesome-copilotAgent41kyesterdayMITA61Claude Code
Ultimate Transparent Thinking Beast Modegithub/awesome-copilotAgent41kyesterdayMITA11Claude Code
WinForms Expertgithub/awesome-copilotAgent41kyesterdayMITA19Claude Code