Help us improve
Share bugs, ideas, or general feedback.
From deep-work
Runs mutation testing on changed files to verify AI-generated test quality, computes kill score, and optionally auto-fixes surviving mutants.
npx claudepluginhub sungmin-cho/claude-deep-suite --plugin deep-workHow this skill is triggered — by the user, by Claude, or both
Slash command
/deep-work:deep-mutation-testThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
이 스킬은 두 가지 경로로 호출됩니다 — 어느 쪽이든 본 SKILL 본문의 절차를 그대로 실행합니다:
Performs mutation testing using Claude as the mutation engine: generates code mutants, runs tests, tracks kill/survive rates, identifies test gaps, and recommends test improvements. No external mutation tools required.
Runs mutation testing workflow: mutates source code module-by-module, executes tests per mutation, writes tests for survivors, verifies, commits. Tracks multi-session progress.
Runs mutation testing to validate test suite quality across multiple stacks (Stryker, Infection, go-mutesting, mutmut, Vitest). Use when verifying test effectiveness or after generating tests.
Share bugs, ideas, or general feedback.
이 스킬은 두 가지 경로로 호출됩니다 — 어느 쪽이든 본 SKILL 본문의 절차를 그대로 실행합니다:
/deep-mutation-test [args...] 입력 (skill 의 user-invocable: true 가 슬래시 진입을 허용).Skill({ skill: "deep-work:deep-mutation-test", args: "..." }) 형태로 명시 invoke (cross-platform 표준 경로).두 경로 모두 args 는 동일한 토큰 문자열로 전달되며, 본문 ($ARGUMENTS 자리) 의 파서가 동일하게 처리합니다.
| 인자 | 의미 |
|---|---|
| (없음) | git diff 기반 changed files (세션 baseline 또는 HEAD~5..HEAD fallback) |
--full | 전체 프로젝트 (expensive) |
--files <path> | 특정 파일/디렉터리 명시 |
빈 args / 매칭되지 않는 토큰 → 본문의 default 분기로 진입.
이 entry skill 은 deep-work-orchestrator (Phase dispatch) 및 deep-work-workflow (reference skill — Phase 규약/Exit Gate/M3 envelope) 와 함께 동작합니다. 활성 deep-work 세션이 있을 때는 세션 state file (.claude/deep-work.<SESSION_ID>.md) 의 변수 (work_dir, current_phase, active_slice 등) 를 읽어 동작하며, 세션 외부에서도 standalone 실행이 가능한 경우 본문의 분기를 따릅니다.
Cross-platform self-containment: Claude Code 에서는 sibling skill 이 description 매칭으로 자동 로드됩니다. Codex / Copilot CLI / Gemini CLI / Agent SDK 에서 Skill() 로 호출 시 sibling auto-load 보장이 약할 수 있으므로, 본문은 self-contained 으로 보존되어 있습니다 — state file 해석, $ARGUMENTS 파싱, AskUserQuestion 분기, 출력 포맷이 인라인.
Mutation testing for AI-generated test quality verification. Primarily used in Phase 4 (Test) but can be run manually.
/deep-mutation-test # Test changed files (git diff based)
/deep-mutation-test --full # Test entire project (expensive)
/deep-mutation-test --files src/auth # Test specific files/directories
Primary source: git diff --name-only <baseline>..HEAD where baseline is the session's starting commit.
Fallback: If no session, use git diff --name-only HEAD~5..HEAD (last 5 commits).
Override: --files flag specifies exact scope.
Filter files by detected ecosystem's file_extensions.
Read sensor detection cache. If mutation tool is not_installed:
Run mutation tool with budget constraints from registry.json:
timeout: max seconds per round (default 300)max_mutants: cap mutant count (default 200)node "$PLUGIN_DIR/sensors/run-sensors.js" "<mutation_cmd>" "<parser>" "mutation" "advisory" <timeout>
Parse mutation report:
IMPORTANT: Follow existing deep-test pattern — Test phase does NOT allow code modifications.
For each round (max 3):
current_phase: implement in session state[MUTATION_SURVIVED] N mutants survived (Score: X%)
Transitioning to Implement phase for test improvement.
MUTANT 1: file:line
Mutation: MutatorName — changed `original` to `replacement`
Impact: What this means for behavior
ACTION: Specific test to add
current_phase: testAfter 3 rounds or all killable mutants eliminated:
Add to session receipt:
{
"mutation_testing": {
"tool": "<tool>",
"status": "completed",
"total_mutants": 45,
"killed": 39,
"survived": 4,
"equivalent": 2,
"score": 90.7,
"auto_fix_rounds": 2,
"auto_fixed_mutants": 3,
"remaining_survived": []
}
}
If mutation tool is not installed, record in receipt:
{ "mutation_testing": { "status": "not_applicable", "reason": "tool not installed" } }
Quality Score treats this as excluded from denominator (no penalty).