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 — 139 skills, 18 commands, 5 agents, 3 hooks shipped together

Good fit 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.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/s977043/river-review/test-assertion-effectiveness
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.

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 139 skills, 18 commands, 5 agents, 3 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/github.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/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 Test Assertion Effectiveness 常に PASS するテストの検出

Your own site · 80×15
<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="Reviewed on agentmods" width="80" 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. 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.00367 $0.06278
Opus 5.5 $0.00147 $0.02511
Sonnet 5.5 $0.00073 $0.01256
Haiku 4.5 $0.00037 $0.00628

Measured 1mo ago against content hash e561e02e03de, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, 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 1mo 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. 1mo 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 (7 stars, last pushed today), licensed MIT. It adds 367 tokens to every session and 6,278 once invoked, about $0.0015 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-31.

Related

Other skills, from other repositories

run-iteration-eval

Run the Logic-Lens content-eval pipeline for one iteration and produce a scored summary.json — use to measure a skill change. Wraps scripts/run-content-evals.sh (runner, costs tokens) and scripts/grade-iteration.py (grader, free, re-runnable). ALWAYS sync the plugin cache first. Use when the user wants to "run the…

hyhmrright/logic-lens · 108 tokens

iterate-skill

Run the Logic-Lens skill-improvement loop end to end — baseline → diagnose failures → edit → sync cache → re-eval → verify net gain → iterate until clean. Use whenever the goal is to RAISE a skill's eval score or fix a failing eval mode: "improve logic-review", "the format compliance is failing, fix it", "iterate on…

hyhmrright/logic-lens · 0 tokens

brooks-test

Test quality review drawing on twelve classic engineering books — with primary focus on xUnit Test Patterns, The Art of Unit Testing, How Google Tests Software, and Working Effectively with Legacy Code — that diagnoses structural problems in an existing test suite: brittleness, mock abuse, coverage illusions, slow…

hyhmrright/brooks-lint · 161 tokens

vibe-gap-analysis

Assesses production readiness or audits a codebase against its specs. Supports quick static mode, deep 17-dimension audit, or single-dimension focus. Use before a production launch, after a major refactor, when inheriting a codebase, or when someone asks how done the project is.

ash1794/vibe-engineering · 65 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

shipyard-verification

Requires fresh verification evidence before any claim that work is complete, fixed, or passing. Use before committing, creating PRs, or moving to the next task. Also use when a status report contains words like "should", "probably", or "seems to", or expresses satisfaction ("Great!", "Done!") before verification…

lgbarn/shipyard · 73 tokens