Validate code quality, test coverage, performance, and security. Use when verifying implemented features meet all standards and requirements before marking complete.
This skill provides systematic validation of implemented features, ensuring code quality, test coverage, performance, security, and requirement fulfillment before marking work complete.
Run Quality Checks:
# Format check (Black)
black --check src/ tests/
# Type checking (mypy)
mypy src/
# Linting (flake8, if configured)
flake8 src/ tests/
# All checks together
make lint # If Makefile configured
Quality Checklist:
Refer to quality-checklist.md for comprehensive review
Key Quality Metrics:
Automated Script:
# Use validation script
python scripts/run_checks.py --quality
Deliverable: Quality report with pass/fail
Run Tests with Coverage:
# Run all tests with coverage
pytest --cov=src --cov-report=html --cov-report=term-missing
# Check coverage threshold
pytest --cov=src --cov-fail-under=80
# View HTML coverage report
open htmlcov/index.html
Coverage Checklist:
Identify Coverage Gaps:
# Show untested lines
pytest --cov=src --cov-report=term-missing
# Generate detailed HTML report
pytest --cov=src --cov-report=html
Deliverable: Coverage report with gaps identified
Review Test Suite:
Run Tests Multiple Times:
# Run tests 10 times to check for flaky tests
for i in {1..10}; do pytest || break; done
# Run in random order
pytest --random-order
Test Markers:
# Verify no slow tests in unit tests
pytest tests/unit/ -m "not slow"
# Run integration tests separately
pytest tests/integration/
Deliverable: Test quality assessment
Performance Checklist:
Refer to performance-benchmarks.md for target metrics
Key Performance Metrics:
Performance Testing:
# Run performance tests
pytest tests/performance/ -v
# Profile code
python -m cProfile -o profile.stats script.py
python -m pstats profile.stats
# Memory profiling
python -m memory_profiler script.py
Benchmark Against Requirements:
# Example performance test
def test_performance_requirement():
"""Verify operation meets performance requirement."""
start = time.time()
result = expensive_operation()
duration = time.time() - start
assert duration < 1.0, f"Took {duration}s, required < 1.0s"
Deliverable: Performance report with metrics
Security Checklist Review:
Review security-checklist.md from analysis phase and verify:
Input Validation:
Authentication & Authorization:
Data Protection:
Dependency Security:
# Check for vulnerable dependencies
pip-audit
# Or use safety
safety check --json
# Check for outdated dependencies
pip list --outdated
Deliverable: Security validation report
Verify Acceptance Criteria: Review original requirements from analysis phase:
Manual Testing:
# Test CLI (if applicable)
python -m src.tools.feature.main --help
python -m src.tools.feature.main create --name test
# Test with sample data
python -m src.tools.feature.main --input samples/test.json
# Test error cases
python -m src.tools.feature.main --invalid-option
Regression Testing:
Deliverable: Requirements validation checklist
Code Documentation:
Technical Documentation:
User Documentation:
CHANGELOG Update:
Deliverable: Documentation review checklist
Integration Testing:
# Run integration tests
pytest tests/integration/ -v
# Test with real dependencies (in test environment)
pytest tests/integration/ --no-mock
Integration Checklist:
End-to-End Testing:
# Test complete workflows
pytest tests/e2e/ -v
# Manual E2E testing
./scripts/manual_test.sh
Deliverable: Integration test report
Run Complete Validation Suite:
# Use automated validation script
python scripts/run_checks.py --all
# Or run individual checks
python scripts/run_checks.py --quality
python scripts/run_checks.py --tests
python scripts/run_checks.py --coverage
python scripts/run_checks.py --security
Pre-PR Checklist:
Create Validation Report:
# Validation Report: [Feature Name]
## Quality ✅
- Black: PASS
- mypy: PASS
- flake8: PASS (0 errors, 0 warnings)
## Testing ✅
- Unit tests: 45 passed
- Integration tests: 12 passed
- Coverage: 87% (target: 80%)
## Performance ✅
- Response time (p95): 145ms (target: < 200ms)
- Throughput: 1200 req/s (target: 1000 req/s)
- Memory usage: 75MB (target: < 100MB)
## Security ✅
- No vulnerable dependencies
- Input validation: Complete
- Secrets management: Secure
## Requirements ✅
- All acceptance criteria met
- No regressions detected
## Documentation ✅
- Code documentation: Complete
- Technical docs: Complete
- CHANGELOG: Updated
## Status: READY FOR PR ✅
Deliverable: Final validation report
Complexity:
Maintainability:
Documentation:
Coverage:
Test Quality:
Refer to performance-benchmarks.md for detailed criteria
Response Time:
Resource Usage:
The scripts/run_checks.py script automates validation:
# Run all checks
python scripts/run_checks.py --all
# Run specific checks
python scripts/run_checks.py --quality
python scripts/run_checks.py --tests
python scripts/run_checks.py --coverage
python scripts/run_checks.py --security
python scripts/run_checks.py --performance
# Generate report
python scripts/run_checks.py --all --report validation-report.md
Input: Completed implementation with tests Process: Systematic validation against all criteria Output: Validation report + approval for PR Next Step: Create pull request or deploy
Feature: [Feature Name] Validated By: [Your Name] Date: [YYYY-MM-DD]
Status: ☐ Approved ☐ Needs Work
Notes: [Any additional notes or concerns]
Quality Issues:
black src/ tests/Coverage Issues:
pytest --cov-report=htmlPerformance Issues:
python -m cProfileSecurity Issues:
pip-auditRequirement Issues:
After Fixes: