skills/test-review/SKILL.md
Test coverage review via Codex MCP. 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.
npx skillsauth add sd0xdev/sd0x-dev-flow test-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
codex-code-review)doc-review)/verify)| Command | Description | Use Case |
| -------------------- | ----------------------- | ------------------- |
| /codex-test-review | Review test sufficiency | Required |
| /codex-test-gen | Generate unit tests | Add missing tests |
| /check-coverage | Test coverage analysis | After feature dev |
/codex-test-reviewSmart detect target → Read test + source → Codex review (5 dimensions) → Coverage assessment + Gate → Loop if Needs additions
| Input | Behavior | |-------|----------| | File path | Review that file directly | | Directory | Review all tests in directory | | Description | Auto-find related test files | | Module name | Search related test files | | No parameter | Auto-detect from git diff |
TEST_FILE)SOURCE_FILE, inferred from test path)First review: mcp__codex__codex with test review prompt. See references/codex-prompt-test-review.md.
Loop review: mcp__codex__codex-reply with re-review template. See references/codex-prompt-test-review.md.
Config: sandbox: 'read-only', approval-policy: 'never'
Save the returned threadId.
/codex-test-review --ac-traceAC 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
| Input | Behavior |
|-------|----------|
| --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-trace | Existing behavior (5-dimension coverage review) |
## Acceptance Criteria section in request doc- [ ] / - [x] items/codex-review-fast, /codex-review-doc, /codex-review, /precommit, /precommit-fast, /pr-reviewFor each non-quality-gate AC:
| Evidence Type | Priority | How to Find |
|--------------|----------|-------------|
| Automated test | 1 (preferred) | Search Related Files test paths; match AC text → test assertions |
| Runtime verification | 2 | Search /feature-verify results at L3+ confidence |
| Manual exception | 3 (verified only) | Check AC annotation <!-- exception: REASON, expires: DATE --> |
Fresh thread (mcp__codex__codex). See references/codex-prompt-ac-trace.md.
| Rule | Detail |
|------|--------|
| Cache | request-path + git diff hash key; same session reuse |
| Timeout | 30s → fallback to Claude-only + ⚠️ Inconclusive |
| Unavailable | All items ⚠️ Inconclusive; advisory → ⚠️ Adequate with exceptions; strict → ⚠️ Need Human |
Config: sandbox: 'read-only', approval-policy: 'never'
Save the returned threadId.
| Gate | Check |
|------|-------|
| Reason class | Closed enum: ENV_UNAVAILABLE / UNSAFE_TO_AUTOMATE / ONE_TIME_MIGRATION |
| Codex verification | Must emit VALID_EXCEPTION |
| Expiry | ISO 8601; expired = ⛔ (strict) or ⚠️ (advisory) |
Exception caps (from @rules/testing.md): 1-8 AC = max 1; 9-12 = max 2; 13+ = hard cap 2. Prohibited domains: Security AC, Data-integrity AC, Regression AC = no exceptions allowed.
Gate sentinels (from @rules/testing.md):
| Sentinel | Meaning |
|----------|---------|
| ✅ Adequate | All ACs covered by evidence |
| ⚠️ Adequate with exceptions | Validated exceptions within cap |
| ⚠️ Need Human | Codex unavailable or inconclusive |
| ⛔ Inadequate | Unverified exception, cap breach, or prohibited domain |
/codex-test-genRead source → Derive test path → Codex generate → Save test file → Suggest review
src/service/xxx.ts → test/unit/service/xxx.test.tsreferences/codex-prompt-test-gen.md./codex-test-review| Dimension | Scoring Criteria | Weight | | --------------- | -------------------------------------- | ------ | | Happy path | All public methods, main flows | High | | Error handling | try/catch, error callbacks | High | | Edge cases | null/undefined, extremes, empty sets | Medium | | Mock quality | Not excessive, not insufficient | Medium |
| Type | Directory | Mock | Focus |
| ----------- | ------------------- | ---------------- | -------------------- |
| Unit | test/unit/ | Full | Single function |
| Integration | test/integration/ | Only external | Inter-module |
| E2E | test/e2e/ | Prohibited | Complete flow |
| Type | Cases |
| ------ | ------------------------------------------------ |
| String | "", " ", null, undefined, very long |
| Number | 0, -1, NaN, Infinity, MAX_SAFE_INTEGER |
| Array | [], [null], very large, nested |
| Object | {}, null, circular reference |
⚠️ @CLAUDE.md auto-loop: fix → re-review → ... → ✅ PASS ⚠️
⛔ Needs additions → add tests → /codex-test-review --continue <threadId> → repeat until ✅ Sufficient.
Max 3 rounds. Still failing → report blocker.
## Test Coverage Review
| Dimension | Coverage | Rating |
|-----------|----------|--------|
| ... | ... | ⭐1-5 |
### Gate: ✅ Tests sufficient / ⛔ Needs additions
references/codex-prompt-test-review.mdreferences/codex-prompt-test-gen.mdreferences/codex-prompt-ac-trace.mdInput: /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
documentation
Rewrite the previous reply in Traditional Chinese
development
Monitor GitHub Actions CI runs until completion. Use when: watching CI after push, checking build status, monitoring PR checks, waiting for CI completion, user says 'watch CI', 'check CI', 'CI status', 'monitor build', or /watch-ci. Not for: pushing code (use push-ci), creating PRs (use create-pr). Output: per-run verdict (pass/fail/timeout).
development
Verification loop — lint -> typecheck -> unit -> integration -> e2e
development
Research current code state then update corresponding docs, ensuring docs stay in sync with code.