cocov
v4.0.1
Published
Code coverage intelligence engine & regression guard. Visualizes velocity, trends, and enforces quality gates.
Maintainers
Readme
Cocov is a Compliance Engine. It enforces strict coverage baselines, prevents merge regressions via husky hooks, and generates audit-ready artifacts in Markdown and HTML.
🚀 Quick Start (Zero Config)
Run the interactive initializer. This handles Husky, CI, and Config for you.
npx cocov initWhat this does:
- Creates
.cocov/config.json.- installs
huskyand adds apre-commithook.- Creates a
.github/workflows/ci.ymlfor automated checking.
📚 The Complete Setup Guide
1. Installation
Install as a dev dependency:
npm install -D cocov2. The "Golden Rule" (Baseline)
Cocov works by comparing your current coverage against a baseline (master branch). Run it once to establish your first baseline:
# Runs tests, checks coverage, and saves the baseline if compliant
npm run cocov3. Pre-Commit Guard (Husky)
Stop bad code before it gets committed. Add this to your .husky/pre-commit:
# .husky/pre-commit
npm run cocov
git add .cocov/history.jsonl # Auto-save the history log!4. CI/CD Integration (GitHub Actions)
We recommend using OIDC (Trusted Publishers) for secure, keyless publishing.
.github/workflows/ci.yml:
permissions:
contents: read
id-token: write # Required for Trusted Publishers
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm run cocov # fails if coverage drops5. Displaying Badges
Want those cool badges in your README?
npx cocov inject-readmeThis command:
- Generates SVG badges in
assets/badges/. - Injects them into your
README.mdwith absolute GitHub URLs. - Updates automatically when you run
npm run cocov.
🛠️ Configuration
Stored in .cocov/config.json.
{
"thresholds": {
"lines": 90,
"functions": 90,
"branches": 90
},
"git": {
"enforceClean": true
}
}📐 Architecture
Cocov operates as a strict middleware between your test runner (Vitest/Jest) and your git history.
graph TD
A["Test Runner (Vitest)"] -->|Coverage JSON| B("Cocov Engine")
B -->|Compare| C{"Baseline Check"}
D["Baseline (.cocov/config.json)"] --> C
C -->|Regression| E["FAIL 🛑"]
C -->|Improvement| F["UPDATE ✅"]
C -->|Stable| G["PASS ✅"]
subgraph Outputs
B --> H["HTML Dashboard"]
B --> I["Markdown Summary"]
B --> J["Console Report"]
B --> K["SVG Badges"]
end🤝 Contributing
We welcome contributions! Please read CONTRIBUTING.md for details.
📄 License
MIT © 2026
