Test Assertion Effectiveness 常に PASS するテストの検出

Test Assertion Effectiveness 常に PASS するテストの検出 is a skill for Claude Code from s977043/river-review. It costs 367 tokens per session (6,278 once invoked), scanned A, original, MIT.

A test review that finds assertions—checks in tests—that do not really verify the program under test and therefore may always pass.

In plain words
What is it for?
Use it when reviewing changed tests to find missing assertions, self-fulfilling expected values, nonexistent expected text, and other checks that cannot detect a regression.
Why use it?
A test can exist and still fail to catch broken code. This review points out missing or meaningless checks without changing the tests automatically.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the river-review plugin — 138 skills, 15 commands, 5 agents, 2 hooks 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 skills/s977043/river-review/test-assertion-effectiveness
Any agent
npx skills add s977043/river-review --skill test-assertion-effectiveness
Clone the repo
git clone --depth 1 https://github.com/s977043/river-review

Made for: Claude Code.

Or install river-review, the plugin that ships this one along with the rest of its 138 skills, 15 commands, 5 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 Test Assertion Effectiveness 常に PASS するテストの検出

README.md
[![agentmods](https://agentmods.dev/badge/skills/s977043/river-review/test-assertion-effectiveness.svg)](https://agentmods.dev/skills/s977043/river-review/test-assertion-effectiveness)
Your own site
<a href="https://agentmods.dev/skills/s977043/river-review/test-assertion-effectiveness"><img src="https://agentmods.dev/badge/skills/s977043/river-review/test-assertion-effectiveness.svg" alt="Measured on agentmods" height="20"></a>
Per session 367 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,278 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.1 $0.00367 $0.06278
Opus 5 $0.00183 $0.03139
Sonnet 5 $0.00073 $0.01256
Haiku 4.5 $0.00037 $0.00628

Measured 6d ago against content hash e561e02e03de, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

Test Assertion Effectiveness 常に PASS するテストの検出 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 6d 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.

skills/downstream/test-assertion-effectiveness/SKILL.md · 226 lines

How it starts

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

Naming / 命名

skills/README.md の Naming Q0–Q5 に従って決定した。Q0 では外部プロジェクトの成果物を取り込んでいないため「概念の再実装」に分類され、リネーム(新規命名)が既定となる。Q1 は衝突なし(assertion を含む skill id は既存に無い)、Q2・Q3 は参照元の原語が存在しないため適用外、Q4 で既存の test-* 命名ファミリ(test-existence / test-naming / test-plan-review)に整合することを確認し、Q5 で「価値(アサーションが有効であること)を名指す」名として test-assertion-effectiveness を採用した。機構名(tautology 検出・grep 照合)ではなく価値を名指す点が Q5 の要件である。

Pattern declaration

Primary pattern: Reviewer Secondary patterns: Inversion Why: アサーションの形はパターンとして拾えるが、「そのアサーションが SUT の挙動に依存しているか」の判定は意味的であり、期待値の照合先(テンプレート・コンポーネント)が discover できない差分では実行を止めるゲートが必要である。

Goal / 目的

テストの「有無」や「粒度」は既存 skill が見るが、書かれたアサーションが実際に失敗しうるかは誰も見ていない。アサーションが無効なテストは行を通過するためカバレッジ指標にも現れず、CI が緑であることも有効性の証明にならない(レビュー時点の CI が古い sha で緑だった実例が #1684 に記録されている)。この盲点を diff-time の静的観点として埋める。

次の 6 Check のいずれかに該当し、そのテストが実装の退行を検知できないと読み取れる場合に指摘する。report-only(ADR-005)であり、finding / question のみを出力して自動修正はしない。

Non-goals / 扱わないこと(委譲表)

隣接領域 委譲先 分界
テストが存在しない test-existence 委譲先は「変更コードに対応するテストが差分に無い」。本 skill は逆にテストがある差分にだけ働く(委譲先はテスト差分があると黙る前提のため)
未テスト経路・分岐・境界の量 coverage-gap 委譲先は「その経路のテストが存在しない」。本 skill は「テストは存在するがアサーションが落ちない」
実行ごとに結果が変わる不安定さ flaky-test 委譲先は非決定性。本 skill は決定論的に必ず PASS する構造
describe / it の命名・構造 test-naming 命名の明瞭さは対象外。名前が適切でもアサーションが無効なら本 skill が扱う
JS / TS の un-awaited expect(...).resolves / .rejects vitest-mock-isolation 委譲先が「常に pass する空 assertion」として既に所有する。async-correctness も本番コード側からここへ委譲済みであり、三重管理にしない
tdd-ledger artifact による RED / GREEN 証跡の検証 plangate-tdd-evidence 委譲先は artifact 駆動(artifact 非供給の adopter では常に NO_REVIEW)。本 skill はartifact に依存しない diff-time 観点
影響・失敗系・外部依存を調査した証拠の有無 impact-evidence-coverage 委譲先は同一 diff のテストを「証拠あり」として充足扱いにする。本 skill はそのテスト自体が有効かを見る(矛盾ではなく補完関係)
本番経路の例外握り潰し・配線切れ e2e-wiring / logging-observability 委譲先は src/** 等の本番経路。本 skill が見る握り潰しはテスト本体の中で判定を無効化するものに限る
.only / .skip / xit / @ts-ignore / 空の catch {} src/lib/heuristic-review.mjs の決定論検出器 決定論で判定済みのため重複指摘しない.claude/rules/review-core.md §「カスタム静的解析の False-positive 責務分界(#1070)」)

Read the full file on GitHub · 226 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. 6d ago First seen · 226 lines · 367 tokens per session scan A e561e02e03de

Subscribe to this mod's changes

Test Assertion Effectiveness 常に PASS するテストの検出 is a skill published in the GitHub repository s977043/river-review (3 stars, last pushed yesterday), licensed MIT. It adds 367 tokens to every session and 6,278 once invoked, about $0.0018 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 skills, from other repositories

brooks-sweep

Full-sweep mode: runs a unified analysis across all quality dimensions — code decay, architecture, tech debt, and test quality — then applies fixes directly to the codebase. Safe changes are auto-applied; risky changes are confirmed before execution. Drawing on twelve classic engineering books. Triggers when: user…

hyhmrright/brooks-lint · 178 tokens

pre-pr-audit

Pre-PR confidence audit with 5-dimension scoring. Use when: final check before commit/push/PR, evaluating PR readiness, assessing test quality + risk + coverage holistically. Triggers: pre-pr, readiness check, confidence audit, final verification, ready to PR, how confident. Not for: code review (use…

sd0xdev/sd0x-harness · 95 tokens

spike-consumer-adversarial

OI-3 spike harness — heavy consumer, ADVERSARIAL arm. Worst-case early-exit test: the mid-workflow Skill call has no continuation guardrail and the guidance skill ends with a final-sounding anchor. Use only when explicitly invoked by the spike harness with a TRIALID and data path.

testdouble/han · 0 tokens

code-standards

Apply a disciplined engineering workflow to any code change. Use whenever implementing a feature, fixing a bug, or refactoring — before writing code, not after. Walks orient → baseline → smallest change → test → verify → self-review, and enforces language-agnostic hard gates (don't mass-reformat, keep the linter and…

tamdogood/builder-essential-skills · 94 tokens

loop-test

Local sandbox for experimenting with Claude Code's /loop command (interval + dynamic/self-paced scheduling) applied to LETS workflows. Use when the user says "loop test", "loop-test", "test the loop skill", "цикл LETS", "ScheduleWakeup experiment", or wants to design a periodic /loop that polls state or babysits a…

restarter/lets-workflow · 112 tokens

fec-component-testing

用于编写或审查靠近 UI 代码的前端单元、组件或轻量集成测试,包括 React Testing Library、Vue Test Utils、hooks/composables、props/emits、回调、可访问查询、user-event 交互、mock、loading/error/empty 状态和回归覆盖。若是测试分层规划、真实浏览器旅程或现有验证失败,优先选择对应测试或验证工作流;中文触发词包括 组件测试、组件单测、单元测试、轻量集成测试。.

bovinphang/frontend-craft · 123 tokens