Agent skill · software engineering · metabase
mutation-testing
Run mutation testing on a Clojure namespace, generate tests to kill surviving mutations, and open draft PRs with Linear issue tracking.
Why this skill is useful
Adds an end-to-end mutation testing workflow with executable scripts that integrate with Linear and GitHub, which the AI cannot generate on its own.
What it needs
Requires claude, gh installed locally. Requires linear account access. About 2k tokens when loaded. Last updated 2026-08-07. 48,568 stars on the source repository.
What this skill does
Mutation Testing Skill This skill runs mutation testing end-to-end: generates a coverage report, groups functions, shells out to claude -p to write tests, verifies mutations are killed, and creates draft PRs with Linear issues. Prerequisites A running nREPL connected to the Metabase dev environment LINEARAPIKEY environment variable set with a valid Linear personal API key gh CLI authenticated with GitHub claude CLI available on PATH Reference Files dev/src/dev/coverage.clj — mutation testing engine (generates reports, runs mutations) dev/src/dev/mutationtesting.clj — orchestration, Linear API, PR helpers Invocation The argument is a Clojure namespace, optionally followed by a base branch: --base-branch: defaults to the value in config (set via set-config!), or "master" if not configured. --project-id: if provided, issues are added to this existing Linear project instead of creating a new one. Steps 1. Parse arguments Parse $ARGUMENTS to extract: namespace (required) — the first positional argument --base-branch (optional) — if present, the next argument is the base branch name --project-id (optional) — if present, the next argument is an existing Linear project ID 2. Load and configure If this is the first invocation (or the REPL was restarted), set up the Linear team: 3. Run Pass the opts map with :base-branch and/or :project-id if those flags were provided in the arguments. This will: 1. Generate a baseline mutation testing report 2. Create a Linear project for the namespace 3. Group functions by coverage relationships 4. For each group: create branch → invoke Claude to write tests → verify → retry if needed → commit & push → create Linear issue → create draft PR 5. Print a summary with PR links 4. Handle failures If a group fails mid-processing, run! catches the error and continues to the next group. To retry a single group manually: 5. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills metabase/mutation-testing