Help us improve
Share bugs, ideas, or general feedback.
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.
npx claudepluginhub dawid-dahl-umain/augmented-ai-development --plugin aaid-tddHow 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.
Reviews 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: AAA structure, single behavior per test, assertion quality, isolation, meaningful naming, and test data management. Use when writing or reviewing tests.
Reviews test files for bug-catching quality, grading on six dimensions like assertion depth, input coverage, mock health with actionable scorecard.
Share bugs, ideas, or general feedback.
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 naming