From aaid-tdd
Validates unit tests against AAID TDD quality criteria: isolation, naming conventions, test structure, mocking practices, and coverage patterns. Produces a pass/warn/fail table with specific findings.
How this skill is triggered — by the user, by Claude, or both
Slash command
/aaid-tdd:validate [directory, file, or blank to discover][directory, file, or blank to discover]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Systematically validate unit tests against the AAID TDD quality checklist. You analyze everything — no external tools needed.
Systematically validate unit tests against the AAID TDD quality checklist. You analyze everything — no external tools needed.
If $ARGUMENTS specifies files or directories, use that as the validation target. Otherwise, auto-discover:
*Test.*, *Spec.*, *.test.*, *.spec.*, *_test.*test/, tests/, __tests__/, src/test/, spec/Early exit conditions:
package.json, pom.xml, build.gradle, pyproject.toml, Cargo.toml, or similar), ask the user to navigate to a project directory or provide a path.If auto-discovery finds multiple potential targets or ambiguous structure, ask the user to confirm.
Present discovered structure:
Unit Test Discovery
Target: [path]
Files analyzed: [count]
Language: [detected]
Test Framework: [detected]
Read the quality checklist: references/CHECKLIST.md
This is the authoritative source for all quality criteria. Parse its 5 parts:
For each checklist item, examine the actual codebase:
Analysis techniques:
sleep( calls, multiple unrelated assertions, conditionals in tests, private method access via reflectionshould prefix, behavioral descriptions, no implementation leaksBe specific. Every finding must cite file and line number with a concrete example.
Present the full validation report:
Unit Test Validation Report
Target: [path]
Files Analyzed: [count]
Overall: [X pass, Y warn, Z fail]
| Category | Criterion | Status | Finding |
|---|---|---|---|
| Isolation | Single unit per test | PASS/WARN/FAIL | [specific finding] |
| Isolation | Non-pure deps mocked | PASS/WARN/FAIL | [specific finding] |
| Isolation | No over-specified mocks | PASS/WARN/FAIL | [specific finding] |
| Design | Tests target logic & decisions | PASS/WARN/FAIL | [specific finding] |
| Design | Behavior tested, not implementation | PASS/WARN/FAIL | [specific finding] |
| Design | Private methods not tested directly | PASS/WARN/FAIL | [specific finding] |
| Structure | Behavioral naming with should | PASS/WARN/FAIL | [specific finding] |
| Structure | Names specific enough to diagnose | PASS/WARN/FAIL | [specific finding] |
| Structure | Given/When/Then body structure | PASS/WARN/FAIL | [specific finding] |
| Structure | One assertion per test | PASS/WARN/FAIL | [specific finding] |
| Structure | No hardcoded string assertions | PASS/WARN/FAIL | [specific finding] |
| Structure | Parameterized where appropriate | PASS/WARN/FAIL | [specific finding] |
| Coverage | 80% target met | PASS/WARN/FAIL | [specific finding] |
| Execution | Tests run in milliseconds | PASS/WARN/FAIL | [specific finding] |
| Verification | No test interdependencies | PASS/WARN/FAIL | [specific finding] |
Status definitions:
Findings must be specific:
testCalculateDiscount at DiscountTest.kt:23 uses implementation-style naming — rename to should apply percentage discount to total price"Categorize by severity:
Critical (must fix): Isolation failures, tests that hit real services, shared mutable state between tests Important (should fix): Implementation-style naming, missing Given/When/Then, hardcoded string assertions, slow tests Nice-to-have (consider): Missing parameterization, coverage below 80%, minor naming inconsistencies
Present top 3-5 concrete recommendations with file, line, and suggested fix.
Ask the user which issues to fix. Do NOT auto-fix without approval.
test_ prefix instead of should), adapt; focus on principles not namingnpx claudepluginhub dawid-dahl-umain/augmented-ai-development --plugin aaid-tddReviews test suites for coverage, isolation, mock usage, naming conventions, and completeness using checklist for 80%+ coverage, AAA pattern, mock correctness, type safety, and best practices.
Enforces test quality principles including Arrange-Act-Assert structure, single behavior per test, and meaningful naming when writing or reviewing test code.
Reviews test files for bug-catching quality, grading on six dimensions like assertion depth, input coverage, mock health with actionable scorecard.