test-coverage
SkillDev toolsEvaluate unit test coverage for a makeup-js module and identify gaps
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the test-coverage skill
What this skill tells your AI
The instructions your AI receives, as published by makeup/makeup-js in .claude/skills/test-coverage/SKILL.md and read by ahel’s review.
You are auditing unit test coverage for a makeup-js module. Your goal is to identify untested or undertested code paths and produce a prioritized list of gaps — not to write tests.
Input
The user will provide a module name (e.g., "makeup-next-id" or full path like "packages/core/makeup-next-id").
Process
1. Locate the module
- Find the module in
packages/core/orpackages/ui/ - Read the README.md first — it describes intended behavior from the consumer's perspective and is the authoritative source for what the module should do. Use it to inform gap analysis, especially around edge cases and event behavior that may not be obvious from the source alone.
- Read
src/index.js(or all files insrc/) - Read
test/index.js(or all files intest/)
2. Run coverage
Run coverage scoped to the module:
npm run test:coverage -- --coverage.include="packages/core/<module-name>/src/**" packages/core/<module-name>
(Adjust path for packages/ui/ if needed.)
Parse the coverage output to extract per-file statement, branch, function, and line percentages.
3. Analyze gaps manually
Read the source and tests side by side. For each uncovered or partially covered area, identify:
- Uncovered branches:
if/else, ternaries,switchcases,?.and??short-circuits that have no test exercising the falsy/nullish path - Uncovered functions: exported or internal functions with zero test invocations
- Untested edge cases: boundary values, empty inputs, error conditions that are handled in code but not exercised in tests
- Missing negative cases: code that guards against invalid input but has no test verifying the guard
4. Produce the gap report
Output a prioritized gap report in this format:
Coverage: <module-name>
| Metric | % |
|---|---|
| Statements | X% |
| Branches | X% |
| Functions | X% |
| Lines | X% |
Gaps (priority order)
functionOrArea— what is untested and why it matters- ...
Not worth testing
- List any uncovered lines that are intentionally untestable (e.g., defensive
elsethat can't be reached given the API, browser-only guards in jsdom)
Priority order: exported API paths > internal branches with observable side effects > pure defensive guards.
Constraints
- Do not write or suggest test code — report gaps only
- Do not suggest changes to source code
- Do not flag lines excluded by the vitest config (
dist/,node_modules/, etc.) - Keep the report concise; one line per gap is enough unless the gap needs explanation
Signals
- GitHub stars
- 47
- Forks
- 14
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
test-coverage-makeup- Source
- github.com/makeup/makeup-js