strengthen

Evaluates per-criterion mutation testing heatmaps and routes surviving mutants to killing tests or sharper spec criteria.

1|Updated Jul 9, 2026
One-click install
npx skills add https://github.com/matthewalton/speccle --skill strengthen-matthewalton
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: strengthen
Source: https://github.com/matthewalton/speccle/tree/main/packages/plugin/skills/strengthen
Command: npx skills add https://github.com/matthewalton/speccle --skill strengthen-matthewalton

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? A test suite can be fully green while asserting almost nothing — code paths no criterion covers and tests that run without checking behaviour go undetected by ordinary CI gates. This Skill audits how well a feature's tests actually defend its code using coverage and mutation reports, then acts on every gap found. ## Core Features & Use Cases - Freshness-gated evaluation: Checks whether coverage and mutation reports are fresh, stale, or missing before reading anything, and hands the human the exact commands to regenerate them rather than running expensive mutation analysis itself. - Per-criterion oracle-strength heatmap: Reads a heatmap showing killed/covered mutants per spec criterion (e.g. [CHECKOUT-3]), with each surviving mutant listed by file, line, and mutator. - Survivor routing: Routes every surviving mutant to one of three outcomes — a killing test derived from the criterion's statement, a sharper or new spec criterion drafted in SPEC.md, or an annotated equivalent mutant — while explicitly avoiding test-fitting that games the score. - Use Case: After implementing a checkout feature, ask whether the tests would actually catch bugs. The Skill checks report freshness, reads the heatmap, writes killing tests for genuine gaps, drafts missing spec criteria, and marks the heatmap evaluated. ## Quick Start Ask the assistant to strengthen the tests for the checkout feature and evaluate how well they defend the code.

Frequently Asked Questions about strengthen

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I check if my tests would actually catch bugs?▼

Run mutation testing with StrykerJS and evaluate the surviving mutants — code changes no test noticed. This Skill reads a per-criterion heatmap of killed versus surviving mutants and routes each survivor to a killing test or a sharper spec criterion.

How to interpret a mutation testing report per spec criterion?▼

The heatmap shows a killed/covered bar per criterion id, with each survivor listed by file, line, column, and mutator. Route each survivor individually: write a killing test if the criterion's statement entails the behaviour, or draft a sharper criterion if the spec is silent.

What stack is required for per-criterion mutation testing?▼

The target project needs TypeScript, vitest, and StrykerJS with coverageAnalysis set to perTest, the json reporter configured, and the istanbul coverage provider with json-summary. The command speccle strength init provisions all of it, but only with explicit user approval.

Why does the mutation report show stale or missing status?▼

A report is stale when a slice source file was modified after the report was generated, and missing when no report exists at the expected path. Re-run the project's coverage and mutation commands, scoped to the feature's source files, then re-check freshness.

What is test-fitting in mutation testing and why avoid it?▼

Test-fitting means asserting incidental details like an error message string just to kill a mutant, when the criterion never promised that detail. It inflates the score without strengthening the spec; the correct move is drafting a new criterion that states the missing behaviour.