test-design-review
Skill3 starsChanged 3 months agoMITView on GitHub
Critically review tests or diffs against Dave Farley's Properties of Good Tests and Gojko Adzic's Specification by Example principles. Evaluates test speed, determinism, atomicity, maintainability, necessity, and behavior-versus-implementation fidelity, flagging violations with concrete fixes. Triggers on: 'test review', 'review tests', 'review these tests', 'critique tests', 'test design review'.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- matusbu/claude-code-test-automation-skillstheir own version, first seen Oct 20, 2026
- jasonswett/llm-skillstheir own version, first seen Mar 16, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- jasonswett/llm-skills★ 194same name
- matusbu/claude-code-test-automation-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository74 other files it gives its agents.
- AGENTS.mdAGENTS.md
- adzic-bddSkill
- agent-md-refactorSkill
- agent-muxSkill
- agent-role-impersonatorSkill
- agilquest-reservationsSkill
- ai-text-humanizerSkill
- architecture-decision-recordsSkill
- asd-ste100Skill
- ast-grepSkill
- atacSkill
- aws-cliSkill
- bart-adversarial-reviewerSkill
- branch-doctorSkill
- c4-architectureSkill
- claude-sub-agentSkill
- codemap-config-setupSkill
- codemap-exploreSkill
- codemap-handoffSkill
- codemap-hub-safetySkill
- codemapSkill
- copilot-sub-agentSkill
- daily-standupSkill
- daily-statusSkill
- design-thinkingSkill
- docx-word-processorSkill
- farley-tddSkill
- gemini-sub-agentSkill
- git-commit-formatterSkill
- git-forensicsSkill
- github-actions-permissionsSkill
- github-cliSkill
- git-repo-discoverySkill
- git-safety-guardrailsSkill
- harness-idpSkill
- iteration-plannerSkill
- jira-issue-managerSkill
- justfile-assistantSkill
- kiro-sub-agentSkill
- lessons-learnedSkill
- lisa-planning-agentSkill
- lovejoy-release-agentSkill
- lsp-code-analysisSkill
- macro-to-microSkill
- marge-product-agentSkill
- meeting-notesSkill
- mermaid-diagram-generatorSkill
- modern-cli-overridesSkill
- native-web-searchSkill
- obsidian-notetakerSkill
- outlook-headlessSkill
- pdf-document-processorSkill
- pi-sub-agentSkill
- pptx-slide-processorSkill
- python-publishSkill
- ralph-build-agentSkill
- release-pleaseSkill
- skill-creatorSkill
- skill-managerSkill
- socratic-tutorSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 5 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 21
Every unit and integration test must satisfy Farley's 6 core properties:
- Distinctive: line 52
If specific files/lines are provided, review those.
- Very specific: line 53
If a diff or branch is provided, extract all modified or added test files (git diff origin/main...HEAD -- '*test*' '*spec*').
- Distinctive: line 56
Check for test pollution risks (global state, uncleaned fixtures, ordering dependencies).
- Distinctive: line 58
Check if tests read as executable specifications.
- Distinctive: line 60
Check signal-to-noise: flag incidental setup or redundant assertions.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Test Design Review
Review tests (or a git diff containing tests) against an authoritative dual rubric: Dave Farley's Properties of Good Tests and Gojko Adzic's Specification by Example (BDD).
The Dual Rubric
1. Dave Farley's Properties of Good Tests
Every unit and integration test must satisfy Farley's 6 core properties:
| Property | Standard | Violation Tells |
| Fast | Unit tests execute in milliseconds; test suite runs in seconds. | Use of sleep(), artificial delays, network calls, slow disk I/O in unit tests. |
| Maintainable | Tests change only when requirements change, not when internal code refactors. | Fragile mocks coupling to private methods; copy-pasted 50-line test setups. |
| Repeatable | Deterministic: passes 1,000 times out of 1,000 runs in any order on any machine. | Flakiness, reliance on system timezone/clock, random seeds without fixed seeding, database pollution across runs. |
| Atomic | Each test is completely self-contained, tests one logical behavior, and fails for exactly one reason. | Cascading failures (Test B fails only if Test A runs first), .first or .last queries dependent on DB ordering. |
| Necessary | Every assertion validates a required domain capability or invariant. | Tautological assertions (assert true), testing standard library or framework features, redundant is_successful checks before body checks. |
| Understandable | Serves as living documentation. Clear Arrange-Act-Assert structure and intention-revealing names. | Vague test names (test_case_1, it_works), mixed levels of abstraction, obscure assertions. |
2. Gojko Adzic's Specification by Example (BDD)
Tests are executable specifications. They must reflect business behavior, not mechanical wiring:
| Principle | Standard | Violation Tells |
| Behavior over Implementation | Specify what happens in response to a business event, not how functions communicate internally. | Asserting method call counts (verify(service, times(3))), mocking internal collaborators excessively, inspecting private state. |
| High Signal-to-Noise Ratio | Every variable, input, and assertion in the test directly influences the outcome. | Incidental boilerplate, 20 unneeded mock returns, arbitrary dummy data obscuring the relevant parameter. |
| Concrete Domain Examples | Illustrate edge cases and rules with realistic domain examples rather than abstract placeholders. | Meaningless test values (foo, bar, asdf, test1), lack of domain edge-case verification. |
| Living Documentation | Specification names describe scenarios and business consequences. | Technical names (test_process_data_flag_false) instead of domain rules (when_account_is_suspended_reject_withdrawal). |
Review Process
When reviewing tests:
- Locate Target Tests:
- If specific files/lines are provided, review those.
- If a diff or branch is provided, extract all modified or added test files (
git diff origin/main...HEAD -- '*test*' '*spec*').
- Evaluate Farley Properties:
- Audit test speed, isolation, determinism, and atomicity.
- Check for test pollution risks (global state, uncleaned fixtures, ordering dependencies).
- Evaluate Adzic Specification Fidelity:
- Check if tests read as executable specifications.
- Identify tests coupled to implementation details rather than behavior.
- Check signal-to-noise: flag incidental setup or redundant assertions.
- Produce Structured Review Report:
- Output the Farley Scorecard & Adzic Scorecard.
- For every flagged violation: provide file path, line numbers, offending code, explanation, and a drop-in replacement fix.
Review Report Output Template
# Test Design Review
## Summary & Recommendation
- **Target:** `<file or diff>`
- **Verdict:** [PASS / NEEDS REVISION / BLOCKING]
- **Key Takeaway:** <1-2 sentences on overall test quality>
## Farley Properties Scorecard
- **Fast:** [Pass / Warning / Fail] — <notes>
- **Maintainable:** [Pass / Warning / Fail] — <notes>
- **Repeatable:** [Pass / Warning / Fail] — <notes>
- **Atomic:** [Pass / Warning / Fail] — <notes>
- **Necessary:** [Pass / Warning / Fail] — <notes>
- **Understandable:** [Pass / Warning / Fail] — <notes>
## Adzic Specification Scorecard
- **Behavior over Implementation:** [Pass / Warning / Fail] — <notes>
- **Signal-to-Noise Ratio:** [Pass / Warning / Fail] — <notes>
- **Concrete Examples:** [Pass / Warning / Fail] — <notes>
## Detailed Findings & Fixes
### 1. [Violation Name] (`path/to/test.ext:L12-L25`)
- **Rubric Rule:** Farley (Atomic) / Adzic (Behavior over Implementation)
- **Problem:** <explanation of the defect>
- **Offending Code:**
```code
<bad code>- Recommended Fix:
<improved code>Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

