From sd0x-dev-flow
Reviews test coverage and sufficiency via Codex MCP, identifies gaps, audits quality across 5 dimensions. Supports git diff auto-detection, file targeting, and AC traceability from request docs.
npx claudepluginhub sd0xdev/sd0x-dev-flow --plugin sd0x-dev-flowThis skill is limited to using the following tools:
- Keywords: test coverage, test review, are tests sufficient, generate tests, test gen, coverage
Reviews existing test coverage for sufficiency using Codex MCP, suggests additional edge cases and gaps. Supports iterative review loops with context preservation.
Reviews test files for bug-catching quality, grading on six dimensions like assertion depth, input coverage, mock health with actionable scorecard.
Reviews test suites for coverage completeness, quality, and best practices. Checks happy/sad paths, edge cases, assertions, isolation, AAA patterns, and compliance with RSpec, Minitest, Jest, Playwright.
Share bugs, ideas, or general feedback.
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