Speccle

/skills

The skills.

The plugin half of Speccle: three Claude Code skills that hold the judgement and drive the loop. Everything deterministic is shelled out to speccle-oracle — a skill that can't find the oracle stops rather than guessing: a spec that hasn't been linted hasn't been linted.

implement-feature

[skill]

any input → linted spec → you ratify → tagged tests + green code

Takes a spec in any form — prose, a ticket, a file — and drafts the conventioned SPEC.md + CONTEXT.mdin the feature folder. Lints them clean, then pauses for you to ratify the criteria before writing a single test or line of code. It then builds one criterion at a time, taking a tracer criterion end-to-end first so the slice's plumbing is proven before the rest is filled in.

Done means: the spec lints clean, every criterion has at least one tagged test, and all tests are green.

strengthen

[skill]

mutation + coverage → per-criterion heatmap → every survivor routed

Runs mutation testing and coverage, renders the oracle-strength heatmap, then routes every surviving mutant on the survivor — never on the score:

The survivor breaks…RouteWhat happens
a behaviour a criterion promisesmachine pathwrite the killing test, re-run
something no criterion promiseshuman pathdraft a sharper criterion — you ratify it
nothing any test could detectequivalent (rare)annotate it in the source

Never a test fitted to a mutant: killing a survivor no criterion promises defends nothing.

carve-feature

[skill]

existing code → derived spec → you ratify → tests tagged, behaviour unchanged

Brings an existing, ungoverned region of code under the convention — without changing it. It derives SPEC.md + CONTEXT.mdfrom what the code observably does and pauses for you to ratify the derived criteria — anything that looks like a bug is a finding for you to rule on, never a silent fix. Then it tags the tests that already defend each criterion and writes tests for what nothing claims. The code's behaviour is unchanged throughout.

Install

Speccle is used from a clone, not a registry — the skills shell out to the speccle-oracle binary, so it needs to be on your PATH first. Requires Node ≥ 24; targets TypeScript projects using vitest and StrykerJS.

shell

git clone https://github.com/matthewalton/speccle.git
cd speccle
pnpm install
pnpm --filter speccle-oracle build
cd packages/oracle && npm link       # puts speccle-oracle on your PATH

# then, in Claude Code:
/plugin marketplace add /path/to/speccle
/plugin install speccle@speccle-marketplace