Agent skill

Test Review

by sd0xdev in sd0xdev/sd0x-harness

Test coverage review via Codex exec. An agent skill from sd0xdev/sd0x-harness.

MITAuto-check passedTesting & QA

Install Test Review

skills CLI
$ npx skills add sd0xdev/sd0x-harness --skill test-review -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sd0xdev/sd0x-harness test-review --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sd0xdev/sd0x-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/test-review .claude/skills/test-review && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
test-review
GitHub stars
192
Token cost
~2.9k tokens
SKILL.md length
1,104 words
Files
5 (incl. references)
Skills in repo
91
Repo updated
First seen
Licence
MIT

At a glance

Test coverage review via Codex exec. An agent skill from sd0xdev/sd0x-harness.

  • Works in 9 steps: Smart Detection → Read Test and Source → Codex Review → …
  • : reviewing test sufficiency
  • SKILL.md covers Trigger, When NOT to Use, Commands and Workflow: /codex-test-review, plus 10 more sections
  • Calls node

What it does

Test Review is an agent skill from sd0xdev/sd0x-harness. Test coverage review via Codex exec. Use when: reviewing test sufficiency, identifying coverage gaps, test quality audit. Not for: generating tests (use codex-test-gen), code review (use codex-code-review). Output: coverage analysis + gap report.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/codex-prompt-ac-trace.md`, `references/codex-prompt-test-gen.md` and `references/codex-prompt-test-review.md`).

It sits in Testing & QA, covering Test coverage, Test generation and Code review. The repository describes itself as: The harness layer for Claude Code — a reference implementation of harness engineering with hook-enforced dual review, state-machine gates that survive context compaction, and… The licence is MIT.

When your agent uses it

  • : reviewing test sufficiency
  • Identifying coverage gaps
  • Test quality audit

Example prompts

  • “/test-review”

Requirements

  • Pre-approved tools (allowed-tools): Bash(git:*), Bash(node:*), Read, Grep, Glob, Write, Task

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Smart Detection
  2. Read Test and Source
  3. Codex Review
  4. Input Resolution
  5. Parse & Filter ACs
  6. Search Evidence
  7. Codex Verify (independent)
  8. Exception Validation (3-gate)
  9. Output + Gate

What it can do on your machine

Read from SKILL.md and the folder at commit c9a2036. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(git:*)
    • Bash(node:*)
    • Read
    • Grep
    • Glob
    • Write
    • Task

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Test Review loads about 2.9k tokens when it runs, and up to ~6.1k if it reads all its reference files. Until then it costs about 65 tokens; SKILL.md has 1,104 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~65
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from sd0xdev/sd0x-harness at commit c9a2036, republished under its MIT licence (© sd0xdev). 1,104 words, ~2,946 tokens.

Download SKILL.mdSave it as .claude/skills/test-review/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
test-review
description
Test coverage review via Codex exec. Use when: reviewing test sufficiency, identifying coverage gaps, test quality audit. Not for: generating tests (use codex-test-gen), code review (use codex-code-review). Output: coverage analysis + gap report.
allowed-tools
Bash(git:*), Bash(node:*), Read, Grep, Glob, Write, Task
context
fork
agent
Explore

Test Review Skill

Read first: references/testing-contract.md — the evidence priority table, the exception gates and caps, and the Adequacy Gate sentinels every workflow here judges against (rules/testing.md is its resident core). If that Read fails, stop and report it; do not review or judge evidence from memory.

Trigger

  • Keywords: test coverage, test review, are tests sufficient, generate tests, test gen, coverage

When NOT to Use

  • Code review (use codex-code-review)
  • Document review (use doc-review)
  • Just want to run tests (use /verify)

Commands

CommandDescriptionUse Case
/codex-test-reviewReview test sufficiencyRequired
/codex-test-genGenerate unit testsAdd missing tests
/check-coverageTest coverage analysisAfter feature dev

Workflow: /codex-test-review

Smart detect target → Read test + source → Codex review (5 dimensions) → Coverage assessment + Gate → Loop if Needs additions
Step 1: Smart Detection
InputBehavior
File pathReview that file directly
DirectoryReview all tests in directory
DescriptionAuto-find related test files
Module nameSearch related test files
No parameterAuto-detect from git diff
Step 2: Read Test and Source
  • Read test file (TEST_FILE)
  • Read corresponding source (SOURCE_FILE, inferred from test path)
Step 3: Codex Review

First review: dispatch per @skills/codex-code-review/references/codex-transport.md § Start with the test review prompt. See references/codex-prompt-test-review.md.

Loop review: dispatch per § Resume with the re-review template. See references/codex-prompt-test-review.md. Rotation applies per the central contract (see § Review Loop below).

codex_fail → fallback carries the gate (adapter exit 1 only — @skills/codex-code-review/references/codex-transport.md § Completion state machine: a pending or unknown completion keeps the gate open with no fallback, exit 2 is a configuration error, and an alloc/cleanup failure is a lifecycle error) (@rules/auto-loop.md § Review Dispatch): decide via scripts/lib/review-dispatch.js (contract:'test:coverage'), record [REVIEWER_FALLBACK], dispatch contract-neutral-reviewer via Task with references/codex-prompt-test-review.md as the governing template (P3 = one retry, fresh instance), and validate the raw report with node scripts/validate-family-sentinel.js test:coverage before adopting the verdict. Carriers exhausted → no gate sentinel, behaviour-layer ⚠️ Need Human.

Save the returned threadId.

Workflow: /codex-test-review --ac-trace

AC traceability mode — maps Acceptance Criteria from request docs to test evidence.

--ac-trace input → Read request doc → Parse ACs → Filter quality-gate → Search evidence → Codex verify → Matrix + Gate
Step 1: Input Resolution
InputBehavior
--ac-trace <request-path>Read specified request doc
--ac-trace (no path)Auto-detect from docs/features/*/requests/*.md via git diff context
No --ac-traceExisting behavior (5-dimension coverage review)
Step 2: Parse & Filter ACs
  1. Locate ## Acceptance Criteria section in request doc
  2. Parse - [ ] / - [x] items
  3. Filter out quality-gate ACs matching: /codex-review-fast, /codex-review-doc, /codex-review, /precommit, /precommit-fast, /pr-review
Step 3: Search Evidence

For each non-quality-gate AC:

Evidence TypePriorityHow to Find
Automated test1 (preferred)Search Related Files test paths; match AC text → test assertions
Runtime verification2Search /feature-verify results at L3+ confidence
Manual exception3 (verified only)Check AC annotation <!-- exception: REASON, expires: DATE -->
Step 4: Codex Verify (independent)

Fresh thread (§ Start). See references/codex-prompt-ac-trace.md.

RuleDetail
Cacherequest-path + git diff hash key; same session reuse
codex_fail — adapter exit 1 only (@skills/codex-code-review/references/codex-transport.md § Completion state machine: pending/unknown keeps the gate open with no fallback; exit 2 is a configuration error; alloc/cleanup failures are lifecycle errors)Fallback carries the verification (@rules/auto-loop.md § Review Dispatch): decide via scripts/lib/review-dispatch.js (contract:'test:ac-trace'), record [REVIEWER_FALLBACK], dispatch contract-neutral-reviewer via Task with references/codex-prompt-ac-trace.md as the governing template (P3 = one retry, fresh instance); validate the raw report with node scripts/validate-family-sentinel.js test:ac-trace before deriving the public sentinel
Carriers exhaustedNo validated raw report exists, so no raw or public AC gate sentinel is derived — mark all items ⚠️ Inconclusive in the body and surface behaviour-layer ⚠️ Need Human only (whatever the mode); note nothing

Save the returned threadId.

Step 5: Exception Validation (3-gate)

Validate every manual exception against the three gates and the AC-count cap in references/testing-contract.md § Evidence Model — the closed reason-class set, the Codex VALID_EXCEPTION verdict and the expiry. The domains that never take an exception — security, data-integrity and regression ACs — are the resident core's rows, rules/testing.md § Evidence Model.

Step 6: Output + Gate

The public sentinels are derived from the raw report's gate: line — gate: Adequate → ✅ Adequate, gate: Adequate_with_exceptions → ⚠️ Adequate with exceptions, gate: Need_Human → ⚠️ Need Human, gate: Inadequate → ⛔ Inadequate. Whoever produced the raw report (Codex or fallback carrier), the raw layer is what validate-family-sentinel.js test:ac-trace checks; this skill's derivation alone produces the public form. What each sentinel means is references/testing-contract.md § Adequacy Gate Sentinels. Every carrier exhausted is the one ⚠️ Need Human case that is never derived from a report — it is behaviour-layer only.

Show full SKILL.md (437 more words)Show less

Workflow: /codex-test-gen

Read source → Derive test path → Codex generate → Save test file → Suggest review
Steps
  1. Read source file
  2. Derive test path: src/service/xxx.ts → test/unit/service/xxx.test.ts
  3. Bind FUNCTION_NAME before rendering the prompt: the function named in the invocation, or the literal all when the caller supplied only a path — /codex-test-gen src/service/xxx.ts is the documented file-only form, so the placeholder must resolve to something. It used to carry its own default inside the template; nothing evaluates the template now, so the binding is the caller's and it is stated here.
  4. Codex generates tests. See references/codex-prompt-test-gen.md.
  5. Save to target path
  6. Suggest: run tests then /codex-test-review

Review Dimensions

DimensionScoring CriteriaWeight
Happy pathAll public methods, main flowsHigh
Error handlingtry/catch, error callbacksHigh
Edge casesnull/undefined, extremes, empty setsMedium
Mock qualityNot excessive, not insufficientMedium

Three-Layer Tests

TypeDirectoryMockFocus
Unittest/unit/FullSingle function
Integrationtest/integration/Only externalInter-module
E2Etest/e2e/ProhibitedComplete flow

Common Boundaries

TypeCases
String"", " ", null, undefined, very long
Number0, -1, NaN, Infinity, MAX_SAFE_INTEGER
Array[], [null], very large, nested
Object{}, null, circular reference

Review Loop

⚠️ @CLAUDE.md auto-loop: fix → re-review → ... → ✅ PASS ⚠️

⛔ Needs additions → add tests → /codex-test-review --continue <threadId> → repeat until ✅ Sufficient.

Thread rotation — central contract (@skills/codex-code-review/references/review-common.md § Review Loop — Thread Rotation): at the R-a threshold (3 replies on this thread; @rules/auto-loop-project.md ## Review Thread Rotation overrides, 2–6) or on R-b judged context overrun, dispatch the first-review template on a new thread instead of replying — no old findings fed, reconciliation orchestration-side — and record [THREAD_ROTATED].

Sentinel alias union (no canonicalization): ✅ Tests sufficient / ✅ Sufficient carry one pass semantic, ⛔ Tests need supplementation / ⛔ Needs additions one fail semantic. Both shapes stay legal exactly as written — nothing rewrites one into the other — and every report carries exactly one terminal (validate-family-sentinel.js test:coverage rejects mixing).

Max 3 rounds. Still failing → report blocker.

Output

markdown
## Test Coverage Review
| Dimension | Coverage | Rating |
|-----------|----------|--------|
| ...       | ...      | ⭐1-5  |

<findings and suggestions>

✅ Tests sufficient

The report ends with exactly one terminal, alone at column 0 on the final line, drawn from the alias union above — pass: ✅ Tests sufficient or ✅ Sufficient; fail: ⛔ Tests need supplementation or ⛔ Needs additions. All four are legal exactly as written, which is why this list must match the union rather than name a preferred pair: validate-family-sentinel.js test:coverage accepts all four, and the first-pass prompt emits ⛔ Tests need supplementation, so a two-form list here would reject the template's own output. Never place two alternatives on one line.

Verification

  • Coverage assessment includes all dimensions
  • Exactly one gate terminal from the four-form alias union (✅ Tests sufficient / ✅ Sufficient / ⛔ Tests need supplementation / ⛔ Needs additions), alone at column 0 on the final line
  • Missing tests have specific code suggestions
  • Codex independently researched source code branches

References

  • Test review prompt: references/codex-prompt-test-review.md
  • Test gen prompt: references/codex-prompt-test-gen.md
  • AC trace prompt: references/codex-prompt-ac-trace.md
  • Standards: @rules/testing.md

Examples

Input: /codex-test-review test/unit/service/xxx.test.ts
Action: Read test + source → Codex review → Coverage assessment + Gate

Input: /codex-test-gen src/service/xxx.ts
Action: Read source → Codex generate → Save test → Suggest review

Input: Are this service's tests sufficient?
Action: /codex-test-review → Assess coverage → Output gaps + Gate

Input: /codex-test-review --ac-trace docs/features/auth/requests/2026-03-01-login.md
Action: Parse AC → Filter quality-gate → Search evidence → Codex verify → Matrix + Gate

© sd0xdev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (references) in skills/test-review of sd0xdev/sd0x-harness.

  • SKILL.md
  • references/codex-prompt-ac-trace.md
  • references/codex-prompt-test-gen.md
  • references/codex-prompt-test-review.md
  • references/testing-contract.md

Open the folder on GitHubat commit c9a2036

Compare with similar skills

Test Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Test Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Test Review this skillsd0xdev/sd0x-harness192—~2.9kAutomated safety check: PassMIT
Automated Test Planningtestdouble/han279—~6.7kAutomated safety check: PassMIT
Manual Test Planningtestdouble/han279—~2.9kAutomated safety check: PassMIT
E2E Test ThinkerUniClipboard/UniClipboard1.8k—~1.7kAutomated safety check: PassAGPL-3.0
Ralph Coveragejvm-skills/jvm-skills140—~683Automated safety check: PassApache-2.0
Designing TestsCloudAI-X/opencode-workflow275—~2.9kAutomated safety check: PassMIT

Similar skills

  • Produce a standalone test plan by analyzing code for test coverage gaps and edge cases.

    279 GitHub stars~6.7k tokensUpdated 6 days ago
    Testing & QAAuto-check passed
  • Manual Test Planning

    testdouble/han

    Produce a plain-language manual test plan from the context supplied to it — an executive summary, a high-level list of named tests, and a detail section per test with the steps a person follows by…

    279 GitHub stars~2.9k tokensUpdated 6 days ago
    Testing & QAAuto-check passed
  • E2E Test Thinker

    UniClipboard/UniClipboard

    Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests.

    1.8k GitHub stars~1.7k tokensUpdated today
    Testing & QAAuto-check passed
  • Ralph Coverage

    jvm-skills/jvm-skills

    Run Ralph in coverage mode — iteratively write tests for untested classes until coverage targets are met.

    140 GitHub stars~683 tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • Designing Tests

    CloudAI-X/opencode-workflow

    Guides test strategy, TDD/BDD approaches, test coverage planning, and testing best practices.

    275 GitHub stars~2.9k tokensUpdated 9 mo ago
    Testing & QAAuto-check passed
  • Mutation Testing

    proffesor-for-testing/agentic-qe

    Test quality validation through mutation testing, assessing test suite effectiveness by introducing code mutations and measuring kill rate.

    494 GitHub stars~1.7k tokensUpdated 3 days ago
    Testing & QAAuto-check passed

More from sd0xdev/sd0x-harness

All 91 skills in this repo
  • Adr

    sd0xdev/sd0x-harness

    Write an Architecture Decision Record (ADR) for a feature — Context / Decision / Status / Consequences / Alternatives, filed as docs/features/<feature/adr-<NNN-<title.md with a 3-digit zero-padded…

    192 GitHub stars~4.8k tokensUpdated yesterday
    Auto-check passed
  • Load PR Review

    sd0xdev/sd0x-harness

    Load GitHub PR review comments into AI session — analyze, triage, plan.

    192 GitHub stars~4.4k tokensUpdated yesterday
    Auto-check passed
  • Next Step

    sd0xdev/sd0x-harness

    Change-aware next step advisor. An agent skill from sd0xdev/sd0x-harness.

    192 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Obsidian CLI

    sd0xdev/sd0x-harness

    Obsidian vault integration via official CLI. An agent skill from sd0xdev/sd0x-harness.

    192 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Orchestrate

    sd0xdev/sd0x-harness

    Agent-driven workflow orchestration (v1 report-only). An agent skill from sd0xdev/sd0x-harness.

    192 GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • PR Comment

    sd0xdev/sd0x-harness

    Post friendly review comments to a GitHub PR — prepare locally, preview, then submit as atomic review.

    192 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Test Review

What does Test Review do?

Test coverage review via Codex exec. An agent skill from sd0xdev/sd0x-harness. Test Review is an agent skill from sd0xdev/sd0x-harness. Test coverage review via Codex exec.

When should I use Test Review?

Test Review fits situations like: : reviewing test sufficiency; identifying coverage gaps; test quality audit.

How do I install Test Review in Claude Code?

Run `npx skills add sd0xdev/sd0x-harness --skill test-review -a claude-code`. Or copy the skill folder (skills/test-review in sd0xdev/sd0x-harness) into .claude/skills/test-review in your project. Claude Code loads it when a task matches its description.

How do I install Test Review in Codex?

Run `npx skills add sd0xdev/sd0x-harness --skill test-review -a codex`. Or copy the skill folder (skills/test-review in sd0xdev/sd0x-harness) into .agents/skills/test-review in your project. Codex loads it when a task matches its description.

Can I use Test Review in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sd0xdev/sd0x-harness --skill test-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/test-review, .gemini/skills/test-review, .github/skills/test-review and .opencode/skills/test-review in your project.

What does Test Review need to run?

Going by SKILL.md and its folder, Test Review needs the command-line tools its instructions call (node). Its frontmatter pre-approves these tools: Bash(git:*), Bash(node:*), Read, Grep, Glob, Write, Task.

Does Test Review access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Test Review safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Test Review use?

Test Review is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Test Review use?

About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.2k tokens, read only when the agent opens those files.

What are the alternatives to Test Review?

Skills that share tags, products or a category with Test Review: Automated Test Planning (testdouble/han, 279 stars), Manual Test Planning (testdouble/han, 279 stars), E2E Test Thinker (UniClipboard/UniClipboard, 1.8k stars) and Ralph Coverage (jvm-skills/jvm-skills, 140 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Test Review?

sd0xdev (a GitHub user) maintains it in sd0xdev/sd0x-harness, which has 192 GitHub stars. The repository holds 91 skills in this directory. The repository was last updated on October 6, 2026.

Source: sd0xdev/sd0x-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.