← ClaudeAtlas

evaluate-testslisted

Audits existing tests in two modes: (1) test-file quality — grades tests against Beck's behavioral and structure-insensitive criteria, flagging implementation-coupled, fragile, and theater tests with a prioritized rewrite list; (2) TDD compliance — analyzes git history for test-first discipline, producing a 0-25 scorecard with AI anti-pattern findings. Use when auditing inherited suites, checking AI-generated tests before merge, prepping for safe refactoring, or verifying TDD was followed. Not for writing new tests (tdd), or when there are no tests yet.
michaelalber/ai-toolkit · ★ 1 · AI & Automation · score 77
Install: claude install-skill michaelalber/ai-toolkit
# Evaluate Tests > "If tests break when you rename a private method, your tests are describing the solution, > not the problem." > — Adapted from Kent Beck ## Two Modes | Mode | Input | Output | Use when | |------|-------|--------|----------| | **1 · Test-file quality** | a test file or directory | per-test classification + prioritized rewrite list | auditing whether existing tests are behavioral and refactor-safe | | **2 · TDD compliance** | git commit history (+ test/impl files) | 0–25 compliance scorecard + anti-pattern findings | verifying test-first discipline was actually followed | Pick the mode from the request. Run both for a full audit — Mode 1's findings feed the Behavioral and Coverage categories of Mode 2's scorecard. --- # Mode 1 — Test-File Quality ## What This Skill Evaluates For each test, assess two properties and one pattern: ### 1. Behavioral (does the test specify behavior?) A behavioral test fails when the observable outcome breaks. An implementation-coupled test fails when internals change even if behavior is identical. | Signal | Behavioral | Implementation-coupled | |--------|-----------|----------------------| | Assertion target | Return value, state visible through public API, side effect via public interface | Mock call count (`assert_called_with`), private field access (`_total`), internal call order | | Refactor sensitivity | Survives extract-method, rename, move-class | Breaks on rename even when behavior is unchanged | | Failure mess