Dippy check-coverage
Ensure comprehensive test coverage for a CLI handler. Use when adding a new command or auditing existing handler coverage.
install
source · Clone the upstream repo
git clone https://github.com/ldayton/Dippy
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ldayton/Dippy "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/check-coverage" ~/.claude/skills/ldayton-dippy-check-coverage && rm -rf "$T"
manifest:
.claude/skills/check-coverage/SKILL.mdsource content
Ensure the handler and tests for
$ARGUMENTS provide comprehensive coverage.
1. Gather Documentation
Find documentation for the tool (need at least one source):
tldr:
ls ~/source/tldr/pages/*/$ARGUMENTS*.md cat ~/source/tldr/pages/*/$ARGUMENTS.md
Local CLI:
$ARGUMENTS --help man $ARGUMENTS
Stop if neither source exists.
2. Explore Subcommands
For tools with subcommands, recursively explore:
$ARGUMENTS <subcommand> --help $ARGUMENTS help <subcommand>
Build a mental model of:
- All subcommands and their actions
- Which operations are read-only (safe) vs mutate state (unsafe)
- Global flags that affect parsing
- Edge cases
3. Review Existing Tests
Read
tests/cli/test_$ARGUMENTS.py and check for:
- Coverage of all subcommands
- Both safe and unsafe variants of each action
- Global flag handling
- Edge cases from the docs
4. Add Missing Tests
Add aspirational test cases for anything missing. Follow existing format:
TESTS = [ # --- Subcommand group --- ("$ARGUMENTS <subcommand> <safe-action>", True), ("$ARGUMENTS <subcommand> <unsafe-action>", False), ]
5. Iterate Until Tests Pass
just test
For each failure, determine if the test expectation is correct:
- If yes, update
src/dippy/cli/$ARGUMENTS.py - If no, fix the test
6. Verify
just check MUST pass before you're done.