Releases: libraz/claude-coverwise
v0.2.1 — dev infrastructure
Maintenance release: no API changes, no behavior changes. Adds the development infrastructure that should have shipped with the initial release.
What's new
LICENSE
Apache-2.0 (matches upstream coverwise).
End-to-end tests
9 vitest tests in tests/server.test.mjs that spawn mcp/server.mjs and drive it via the official @modelcontextprotocol/sdk Client over stdio — exactly the way Claude Code does. Coverage:
tools/listdiscovery (asserts the four expected tool names)generatehappy pathgeneratehonouring constraints (no violating combinations in the output)analyze_coveragegap detection on an incomplete suiteanalyze_coveragewith constraints (verifies the constraint-impossible tuples are removed from the universe — the 1.1.0 semantic)extend_testspreserving every existing testestimate_modelreturning correct parameter statistics- Warning surfacing for syntactically malformed constraints
scripts/install-deps.mjsno-op smoke test (exits 0 when no env vars set)
CI
GitHub Actions workflow (.github/workflows/ci.yml):
- Matrix job running on
ubuntu-latestandmacos-latest:yarn install --immutable,yarn lint,yarn test, plus a launcher-based MCP smoke test that pipes a realtools/listJSON-RPC request throughmcp/launch.mjsand asserts every tool name is present. - Manifest validation job: shape-checks
plugin.json(required fields,mcpServers.coverwise) andmarketplace.json(name + non-empty plugins array).
A CI status badge has been added to both READMEs.
Compatibility
No changes to the MCP tool surface, the Skill, the slash commands, the install hook, the launcher, or any external behavior. Drop-in upgrade from 0.2.0.
Full changelog: v0.2.0...v0.2.1
v0.2.0 — initial release
First public release of claude-coverwise, a Claude Code plugin that wraps the coverwise WASM combinatorial test engine as an MCP server, skill, and slash commands. Helps Claude write tests that actually cover every parameter interaction instead of picking "a few reasonable cases" and missing the rest.
What's included
MCP server (mcp/server.mjs)
Four tools backed by @libraz/coverwise@^1.1.0:
| Tool | Purpose |
|---|---|
generate |
Build a minimal t-wise test suite from parameters + constraints |
analyze_coverage |
Report missing parameter interactions in an existing suite (now constraint-aware) |
extend_tests |
Add the minimum extra tests to reach 100% coverage, preserving existing ones |
estimate_model |
Sanity-check a model (tuple count, estimated tests) before generating |
All tools expose weights, seeds, subModels, and maxTests where applicable, so Claude can reach every feature of the engine.
Skill (skills/coverwise/SKILL.md)
Teaches Claude:
- The constraint DSL grammar (
IF/THEN/ELSE,AND/OR/NOT, relational operators,IN,LIKE) - Recipes for common patterns (exclusion, dependency, forbidden triples, numeric bucketing)
- Anti-patterns (over-constraining, type mismatch, raw continuous ranges, strength inflation)
- The "use the same constraints across generate / analyze_coverage / extend_tests" rule of thumb
Slash commands
| Command | When to use |
|---|---|
/cover-check [path] |
Audit an existing test file's combinatorial coverage |
/cover-gen [target] |
Build a fresh minimum test matrix for a function or endpoint |
/cover-extend [path] |
Append the minimum new tests to reach full coverage without touching existing ones |
Robust startup
- SessionStart hook (
scripts/install-deps.mjs) installs runtime dependencies into `${CLAUDE_PLUGIN_DATA}` (which survives plugin updates) and symlinks them into the plugin root for ESM resolution. - Launcher wrapper (
mcp/launch.mjs) re-runs the install-deps check synchronously before starting the MCP server, closing a race window where the server could spawn before the hook had finished after a plugin version bump.
Constraint-aware coverage analysis
This release ships against coverwise 1.1.0, whose `analyzeCoverage` accepts an optional `constraints` argument. Pass the same constraint array you used for `generate` and constraint-impossible tuples are removed from the coverage universe — so AI agents can reliably distinguish real coverage gaps from physically impossible combinations and stop chasing the latter.
Install
```
/plugin marketplace add libraz/claude-coverwise
/plugin install claude-coverwise
```
Requires Node 22+ and npm on `PATH`. The SessionStart hook handles dependency installation automatically.
See the README for the full workflow and examples.