browser-validator
Automatically validate implementations in real browsers after code is written or when user says "test this", "test what you built…
Automatically analyze test coverage when user asks which code is tested, mentions coverage gaps, or shows code asking about testing. Identifies untested code paths and suggests test additions. Invoke when user asks "what's not tested?", "coverage", "untested code", or "which
Claude Code
$ npx -y skills add kanopi/cms-cultivator --skill coverage-analyzer --agent claude-code
Codex
$ npx skills add kanopi/cms-cultivator --skill coverage-analyzer -a codex -y
Cursor
$ npx skills add kanopi/cms-cultivator --skill coverage-analyzer -a cursor -y
Gemini CLI
$ npx skills add kanopi/cms-cultivator --skill coverage-analyzer -a gemini-cli -y
GitHub Copilot
$ npx skills add kanopi/cms-cultivator --skill coverage-analyzer -a github-copilot -y
OpenCode
$ npx skills add kanopi/cms-cultivator --skill coverage-analyzer -a opencode -y
Windsurf
$ npx skills add kanopi/cms-cultivator --skill coverage-analyzer -a windsurf -y
name: coverage-analyzer description: Automatically analyze test coverage when user asks which code is tested, mentions coverage gaps, or shows code asking about testing. Identifies untested code paths and suggests test additions. Invoke when user asks "what's not tested?", "coverage", "untested code", or "which tests are missing?".
Automatically analyze test coverage and identify untested code.
Knowing what's tested gives confidence to refactor and prevents regressions.
1. **Visibility Drives Action**: Can't improve what you can't measure 2. **Not All Code Needs 100% Coverage**: Prioritize critical paths over getters/setters 3. **Coverage ≠ Quality**: 100% coverage doesn't guarantee bug-free code 4. **Gap Analysis Guides Testing**: Knowing what's untested helps prioritize test writing
Activate this skill when the user:
Before analyzing coverage, consider:
1. **Find coverage gaps** → Identify untested code 2. **Measure current coverage** → Run coverage tools and report percentages 3. **Prioritize testing** → Focus on critical paths first 4. **Improve coverage** → Recommend specific tests to write
**Check for**:
**Primary metrics**:
**Priority order**: 1. Critical paths (auth, payments, data writes) 2. Public APIs 3. Security-sensitive code 4. Business logic 5. Getters/setters (lowest priority)
User asks about coverage
↓
Determine scope (file/component/project)
↓
Check for existing test files
↓
Run coverage tool (PHPUnit/Jest/Cypress)
↓
Analyze gaps (prioritize critical paths)
↓
Report coverage with recommendations
↓
Suggest specific tests for gaps**PHP (PHPUnit):**
# Check for test files find tests/ -name "*Test.php" # Check specific class test -f "tests/src/Unit/DataProcessorTest.php" && echo "Tests exist"
**JavaScript (Jest):**
# Check for test files find . -name "*.test.js" -o -name "*.spec.js"
**PHP:**
# Generate coverage report vendor/bin/phpunit --coverage-text # For Kanopi projects ddev exec vendor/bin/phpunit --coverage-text
**JavaScript:**
# Jest coverage npm run test -- --coverage # Or directly npx jest --coverage
**Common untested areas:**
## Test Coverage Analysis ### Summary - **Overall Coverage**: 72% - **Files Analyzed**: 45 - **Tested**: 32 files - **Untested**: 13 files ### Coverage by Type - Classes: 85% (34/40) - Methods: 68% (156/230) - Lines: 72% (2,340/3,250) - Branches: 58% (89/153) ### 🔴 Critical Gaps (No Tests) **1. PaymentProcessor.php** - 0% coverage - **Risk**: High - handles money - **Methods untested**: processPayment(), refund(), validate() - **Recommendation**: Add unit tests immediately **2. AuthenticationService.php** - 0% coverage - **Risk**: Critical - security component - **Methods untested**: authenticate(), validateToken() - **Recommendation**: Add security tests ASAP ### 🟡 Partial Coverage **3. UserManager.php** - 45% coverage - ✅ Tested: getUser(), createUser() - ❌ Untested: deleteUser(), updatePermissions() - **Recommendation**: Add tests for delete and permission methods ### ✅ Well Tested - DataProcessor.php - 95% - EmailService.php - 88% - ValidationHelper.php - 100% ### Suggested Actions 1. **Immediate** (Critical): - Add tests for PaymentProcessor - Add tests for AuthenticationService 2. **This Sprint**: - Complete UserManager tests - Add integration tests for checkout flow 3. **Next Sprint**: - Increase overall coverage to 80% - Add E2E tests for critical paths
## DataProcessor.php Coverage
| Method | Tested? | Coverage | Priority |
|--------|---------|----------|----------|
| processData() | ✅ Yes | 100% | - |
| validateInput() | ✅ Yes | 90% | Low |
| handleError() | ❌ No | 0% | High |
| formatOutput() | ⚠️ Partial | 60% | Medium |
### Untested Code Paths
**handleError() method:**
```php
public function handleError($error) {
// Line 45: No test coverage
if ($error instanceof ValidationException) {
return $this->formatValiSpecialist agents and auto-invoked skills for Drupal/WordPress development. Works in Claude Code, Claude Desktop, and OpenAI Codex. Full documentation: What changed in 2.0? CMS Cultivator now focuses on CMS development workflows.
Automatically validate implementations in real browsers after code is written or when user says "test this", "test what you built…
Run the right linting, formatting, and static-analysis commands after changing code, and check it against PHPCS, ESLint,…
Automatically generate conventional commit messages when user has staged changes and mentions committing. Analyzes git diff and…
Generate and maintain patches for Composer-installed packages (Drupal contrib modules, WordPress packages, PHP libraries) using…
Deterministic cleanup of DDEV and Docker disk usage on OrbStack, Docker Desktop, or any Docker provider. Safely reclaims space by…
Operate a Kanopi DDEV site day to day — get a fresh clone or worktree actually serving pages, pull a database from the hosting…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.