Coverage Loop
Iteratively write tests until a target coverage percentage is reached.
Philosophy: Meaningful coverage over hitting numbers. Test business logic first.
The Job
- •Receive target coverage percentage from user
- •Run coverage command to check current state
- •Identify most critical uncovered code paths
- •Write tests for ONE uncovered area per iteration
- •Verify coverage improved
- •Repeat until target reached
Iteration Flow
code
┌─────────────────────────────────────────────────┐ │ 1. Run coverage command │ │ 2. Check current percentage vs target │ │ 3. If target reached → COMPLETE │ │ 4. Identify highest-value uncovered code │ │ 5. Write test for ONE uncovered area │ │ 6. Run coverage again to verify │ │ 7. Append progress to progress.txt │ │ 8. Loop back to step 1 │ └─────────────────────────────────────────────────┘
Priority Order for Coverage
Focus on coverage in this order:
- •Business logic - Core application functionality
- •Error handling - Catch blocks, validation
- •Edge cases - Boundary conditions
- •Utilities - Helper functions
- •UI logic - Component behavior (not rendering)
Skip:
- •Generated code
- •Type definitions
- •Configuration files
- •Simple getters/setters
Progress Format
Append to progress.txt after each iteration:
code
## Coverage Loop - [Date/Time] - Before: 65% - After: 68% - Added: Test for `validateEmail()` in `src/utils/validation.ts` - Focus: Business logic validation ---
Stop Condition
When coverage reaches target percentage:
- •Output:
<promise>COMPLETE</promise>
If stuck after multiple iterations:
- •Note why in progress.txt
- •Output:
<promise>BLOCKED</promise>with explanation
Example Usage
User: "Run coverage loop to 80%"
The skill will:
- •Check current coverage (e.g., 65%)
- •Write tests until 80% is reached
- •Report progress after each iteration
Checklist Per Iteration
- • Ran coverage command
- • Identified most valuable uncovered code
- • Wrote test for ONE area (not multiple)
- • Verified test passes
- • Verified coverage increased
- • Updated progress.txt with before/after