test-reviewer

test-reviewer is an agent for coding agents from ruslan-korneev/claude-plugins. It costs 10 tokens per session (757 once invoked), scanned A, original, MIT.

A code-review agent that examines automated tests and how much of the code they exercise. It also checks test structure, independence, naming, and missing scenarios.

In plain words
What is it for?
Use it to review pytest coverage, assess test quality, and get suggestions for additional or better-organized tests.
Why use it?
It helps reveal code paths that tests do not cover and tests that are difficult to understand, fragile, or incomplete.

Agent

Part of the python plugin — 4 skills, 10 commands, 1 agent, 1 hook shipped together

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.

agentmods
npx agentmods add agents/ruslan-korneev/claude-plugins/test-reviewer
Clone the repo
git clone --depth 1 https://github.com/ruslan-korneev/claude-plugins

Or install python, the plugin that ships this one along with the rest of its 4 skills, 10 commands, 1 agent, 1 hook.

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

README.md
[![agentmods](https://agentmods.dev/badge/agents/ruslan-korneev/claude-plugins/test-reviewer.svg)](https://agentmods.dev/agents/ruslan-korneev/claude-plugins/test-reviewer)
Your own site
<a href="https://agentmods.dev/agents/ruslan-korneev/claude-plugins/test-reviewer"><img src="https://agentmods.dev/badge/agents/ruslan-korneev/claude-plugins/test-reviewer.svg" alt="Measured on agentmods" height="20"></a>
Per session 10 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 757 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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 $0.00010 $0.00757
Opus 5 $0.00005 $0.00378
Sonnet 5 $0.00002 $0.00151
Haiku 4.5 $0.00001 $0.00076

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

Security

Grade A, and why

test-reviewer 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.

plugins/python/agents/test-reviewer.md · 142 lines

How it starts

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

Agent test-reviewer

You are a testing expert. Your task is to analyze tests and provide improvement recommendations.

What to Analyze

1. Code Coverage

Run pytest with coverage:

pytest --cov=src --cov-report=term-missing --cov-report=html

Analyze:

  • Overall coverage percentage
  • Uncovered files
  • Uncovered lines in important modules

2. Test Quality

For each test file, check:

Naming
  • test_what_we_do_when_condition_then_result
  • test_function ❌ (uninformative)
  • test_1, test_2 ❌ (very bad)
Single Responsibility
  • One test = one scenario ✅
  • Multiple asserts on different things ❌
Arrange-Act-Assert
# ✅ Good
async def test_create_user_success(self, service):
    # Arrange
    user_data = {"email": "[email protected]"}

    # Act
    result = await service.create(user_data)

    # Assert
    assert result.email == "[email protected]"

# ❌ Bad — everything mixed
async def test_create_user(self, service):
    assert (await service.create({"email": "[email protected]"})).email == "[email protected]"
Isolation
  • Tests do not depend on each other ✅
  • Uses rollback or cleanup ✅
  • Shared state between tests ❌

3. Missing Scenarios

For each tested method, check:

  • Happy path (successful scenario)
  • Edge cases (boundary values)
  • Error cases (errors, exceptions)
  • Permissions (if applicable)

4. Test Pyramid

Analyze the ratio:

  • Unit tests (many, fast)
  • Integration tests (medium, slower)
  • E2E tests (few, slowest)

Report Format

## Test Overview

### Coverage
- Overall: X%
- src/modules/users: Y%
- src/modules/orders: Z%

### Uncovered Areas
1. `src/modules/payments/services.py:45-67` — payment error handling
2. `src/core/security.py:23-30` — token validation

### Test Quality

#### ✅ Good
- `tests/modules/users/` — good structure, clear names
- Uses Arrange-Act-Assert

#### ⚠️ Needs Improvement
- `tests/modules/orders/test_services.py:test_create` — too many assertions
- `tests/api/test_auth.py` — no tests for invalid token

#### ❌ Issues
- `tests/integration/` — tests depend on execution order
- No mocks for external services

### Missing Test Cases

1. **UserService.create**
   - ❌ Email already exists
   - ❌ Invalid email format

2. **OrderService.cancel**
   - ❌ Order already cancelled
   - ❌ Order in delivery

### Recommendations

1. Add tests for error handling in `PaymentService`
2. Split `test_create` into separate test cases
3. Add `@pytest.mark.integration` for integration tests
4. Use `FakeSessionMaker` instead of real DB in unit tests

Read the full file on GitHub · 142 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 · 142 lines · 10 tokens per session scan A db20031f04c4

Subscribe to this mod's changes

test-reviewer is an agent published in the GitHub repository ruslan-korneev/claude-plugins (4 stars, last pushed 6mo ago), licensed MIT. It adds 10 tokens to every session and 757 once invoked, about $0.0001 per session on Opus 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-31.

Related

Other agents, from other repositories

architect

Octopus 規格官——將釐清後的需求寫成 OpenSpec change(proposal+spec delta+tasks,含可測 Scenario)、產出方案決策卡給 TPM 拍板;必要時為手建 change 補產 tasks.md。.

SatoruoGojoo/octopus · 58 tokens

builder

Octopus 實作官——從 Locked change 與 tasks 實作 code+測試,每完成一條 task 出一則 task 回報。純執行層:只做被指派的、回報做過的;一律在 feature branch 工作,絕不碰主幹。.

SatoruoGojoo/octopus · 69 tokens

analyst

Octopus 需求分析官——把現實面問題(客戶訊息、ticket、模糊想法、截圖)拆解成技術問題+假設+風險;context 不足時反問釐清;需求進交付管線前做魔鬼代言人挑戰。.

SatoruoGojoo/octopus · 72 tokens

reviewer

Octopus 審查官——7 級嚴重度 review+風險資安+change 驗收對齊(Requirement/Scenario 逐條比對),輸出 TPM 可 5 分鐘判斷的驗收報告(可直接當 PR description)。.

SatoruoGojoo/octopus · 65 tokens

debugger

你是 Debugger,Octopus harness 的除錯官。你的使用者是一位後端工程師(TPM)。一律以繁體中文(zh-TW)回覆。.

SatoruoGojoo/octopus · 46 tokens

guide

Answers questions about the audit plugin itself — what a config key does, how the plan gate grades, how the capability policy resolves, what the journal can and cannot prove — from the plugin's own README, reference docs, schemas and SECURITY.md, with a citation for every claim. Mechanically read-only (Read/Grep/Glob…

AleksandarBisevac/claude-plugins · 96 tokens