validate-test-coverage
Homeostatic sensor validating test coverage percentage and detecting requirements without tests. Calculates coverage per requirement (REQ-*) and overall. Use as quality gate or continuous coverage monitoring.
When & Why to Use This Skill
This Claude skill functions as an automated quality gate and homeostatic sensor that monitors code test coverage. It goes beyond simple metrics by mapping coverage directly to specific business requirements (REQ-*), ensuring that critical paths maintain 100% coverage while identifying untested functional gaps to maintain high software reliability.
Use Cases
- Continuous Quality Monitoring: Automatically validating that every code change adheres to the minimum 80% coverage threshold before merging.
- Requirement Traceability: Mapping test results to specific functional requirements to ensure that every business feature is verified by code.
- Critical Path Enforcement: Guaranteeing 100% test coverage for high-priority modules such as security protocols, payment processing, and core business logic.
- Automated Gap Analysis: Identifying specific files and lines of code that lack tests and recommending the generation of missing test cases to restore system homeostasis.
| name | validate-test-coverage |
|---|---|
| description | Homeostatic sensor validating test coverage percentage and detecting requirements without tests. Calculates coverage per requirement (REQ-*) and overall. Use as quality gate or continuous coverage monitoring. |
| allowed-tools | [Read, Grep, Glob, Bash] |
validate-test-coverage
Skill Type: Sensor (Homeostasis) Purpose: Validate test coverage and detect gaps Prerequisites: Code and tests exist
Agent Instructions
You are a Sensor in the homeostasis system validating test coverage.
Desired State: coverage >= 80% overall, 100% for critical paths
Your goal is to:
- Calculate test coverage percentage
- Identify requirements without tests
- Detect code without test coverage
- Signal deviations if coverage < threshold
Workflow
Step 1: Run Coverage Tool
Execute coverage measurement:
# Python (pytest-cov)
pytest --cov=src --cov-report=term-missing --cov-report=json
# JavaScript (Jest)
npm test -- --coverage --coverageReporters=json
# Java (JaCoCo)
mvn test jacoco:report
Parse coverage data:
{
"totals": {
"percent_covered": 87.5,
"covered_lines": 350,
"total_lines": 400
},
"files": {
"src/auth.py": {"percent_covered": 95.2},
"src/payments.py": {"percent_covered": 72.1}
}
}
Step 2: Calculate Per-Requirement Coverage
For each REQ-*, find associated code and check coverage:
# Find files implementing <REQ-ID>
grep -rl "# Implements: <REQ-ID>" src/
# For each file, check coverage
# Output:
src/auth/login.py: 95.2% coverage
src/auth/validators.py: 100% coverage
Average for <REQ-ID>: 97.6% ✅
Coverage by requirement:
<REQ-ID>: 97.6% ✅ (2 files, high coverage)
<REQ-ID>: 72.1% ⚠️ (1 file, below threshold)
REQ-F-CART-001: 0% ❌ (1 file, no tests)
Step 3: Find Requirements Without Tests
Cross-reference requirements with test tags:
# Find all requirements
grep -rho "REQ-[A-Z-]*-[0-9]*" docs/requirements/ | sort -u
# For each, check if tests exist
for req in $(cat requirements.txt); do
if ! grep -q "# Validates: $req" tests/ features/; then
echo "$req: NO TESTS"
fi
done
Output:
Requirements Without Tests:
- <REQ-ID> (has code, no tests) ❌
- REQ-F-CART-001 (has code, no tests) ❌
- REQ-F-PROFILE-001 (no code, no tests) ⚠️
Step 4: Detect Critical Path Coverage
Identify critical paths (from requirements priority):
Critical Requirements (P0):
- <REQ-ID>: 97.6% ✅ (Pass)
- <REQ-ID>: 72.1% ❌ (Fail - critical path needs 100%)
- REQ-NFR-SEC-001: 100% ✅ (Pass)
Critical path rule: P0 requirements must have 100% coverage
Step 5: Calculate Coverage Gaps
Gap analysis:
Overall Coverage: 87.5%
✅ Above 80% threshold
Coverage by Priority:
P0 (Critical): 89.7% ❌ (3 requirements, 1 below 100%)
P1 (High): 92.3% ✅
P2 (Medium): 78.5% ⚠️ (below threshold)
Coverage by Requirement Type:
REQ-F-* (Functional): 85.2% ✅
REQ-NFR-* (Non-Functional): 92.8% ✅
REQ-DATA-* (Data): 65.0% ❌ (below threshold)
Gap: P0 critical path and REQ-DATA-* need improvement
Output Format
When validation finds deviations:
[VALIDATE TEST COVERAGE - DEVIATION DETECTED]
Overall Coverage: 87.5% ✅ (threshold: 80%)
Coverage by Requirement:
✅ <REQ-ID>: 97.6% (2 files)
⚠️ <REQ-ID>: 72.1% (below 80%)
❌ REQ-F-CART-001: 0% (no tests)
Critical Path Coverage (P0):
✅ <REQ-ID>: 97.6%
❌ <REQ-ID>: 72.1% (Critical! Needs 100%)
✅ REQ-NFR-SEC-001: 100%
Requirements Without Tests (2):
1. <REQ-ID>
Code: src/payments/payment.py (72.1% coverage)
Missing: Unit tests for edge cases
2. REQ-F-CART-001
Code: src/cart/cart.py
Missing: All tests
Homeostasis Deviation:
- Critical path <REQ-ID> below 100%
- 2 requirements without sufficient tests
- Data requirements (REQ-DATA-*) at 65%
Recommended Actions:
1. Invoke 'generate-missing-tests' for <REQ-ID>, REQ-F-CART-001
2. Focus on critical path (P0) requirements
3. Improve REQ-DATA-* coverage (65% → 80%)
Homeostasis Status: ⚠️ DEVIATION DETECTED
Target: coverage >= 80%, critical >= 100%
Current: overall 87.5% ✅, critical 89.7% ❌
When homeostasis achieved:
[VALIDATE TEST COVERAGE - HOMEOSTASIS ACHIEVED]
Overall Coverage: 94.2% ✅
Coverage by Requirement:
✅ All requirements >= 80%
✅ All P0 requirements = 100%
Critical Path: 100% ✅
Data Requirements: 91.3% ✅
Homeostasis Status: ✅ STABLE
All quality gates: PASS
Homeostasis Behavior
When deviation detected:
- Report: Coverage below threshold, requirements without tests
- Signal: "Need tests for {REQ-KEYS}"
- Recommend: Invoke
generate-missing-testsactuator - Wait: User confirmation or auto-invoke if configured
Prerequisites Check
Before invoking:
- Tests exist (can be zero, but test infrastructure present)
- Coverage tool available (pytest-cov, jest, jacoco)
Configuration
plugins:
- name: "@aisdlc/testing-skills"
config:
coverage:
minimum_percentage: 80
require_per_requirement: true
critical_paths_coverage: 100
exclude_patterns: ["**/migrations/**"]
Notes
Why validate coverage?
- Quality gate: Don't deploy without adequate tests
- Homeostasis: Continuous monitoring detects when coverage drops
- Requirement focus: Coverage per REQ-* ensures all features tested
Homeostasis Goal:
desired_state:
overall_coverage: >= 80%
critical_path_coverage: 100%
all_requirements_have_tests: true
"Excellence or nothing" 🔥