coverage-guard

v2026.09.24

Use when you want to prevent coverage regressions during development. Activate with /coverage-guard to warn when coverage drops below threshold after code changes.

GitHub
安装命令
npx skhub add proffesor-for-testing/coverage-guard
Markdown
SKILL.md

Coverage Guard Mode

When activated, checks coverage after test runs and warns if it drops below the configured threshold.

What It Does

After any test execution (via Bash tool), compares coverage to the threshold in config.json. Warns (doesn't block) if coverage decreased.

Activation

/coverage-guard

Configuration

Edit config.json in this skill directory to set thresholds:

{
  "thresholds": {
    "statements": 80,
    "branches": 70,
    "functions": 75,
    "lines": 80
  },
  "coverageCommand": "npx jest --coverage --coverageReporters=json-summary",
  "coverageFile": "coverage/coverage-summary.json"
}

Hook Configuration

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Bash",
        "hook": ".claude/skills/coverage-guard/scripts/check-coverage.sh",
        "condition": "command contains 'jest' OR command contains 'vitest' OR command contains 'npm test'"
      }
    ]
  }
}

Enforcement Logic

#!/bin/bash
# check-coverage.sh
COVERAGE_FILE="coverage/coverage-summary.json"
THRESHOLD=80

if [ -f "$COVERAGE_FILE" ]; then
  STATEMENTS=$(jq '.total.statements.pct' "$COVERAGE_FILE")
  BRANCHES=$(jq '.total.branches.pct' "$COVERAGE_FILE")

  if (( $(echo "$STATEMENTS < $THRESHOLD" | bc -l) )); then
    echo "WARNING: Statement coverage ($STATEMENTS%) below threshold ($THRESHOLD%)"
    echo "Coverage dropped — check which files lost coverage."
  fi

  if (( $(echo "$BRANCHES < 70" | bc -l) )); then
    echo "WARNING: Branch coverage ($BRANCHES%) below 70%"
  fi
fi

Gotchas

  • Coverage check runs AFTER the test command — if tests crash, no coverage report is generated
  • Coverage-summary.json must be configured as a reporter — default Jest config may not include it
  • Threshold comparisons use floating point — 79.999% will trigger below 80% threshold
  • Branch coverage is typically 10-15% lower than line coverage — set thresholds accordingly
发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

2026年9月24日

分类

未分类

许可证

MIT

源路径

.claude/skills/coverage-guard

默认分支

main

最新提交

ffc0c6a

Tree SHA

ffab1a1