From mission-spec
Evaluates the current project state against done_when criteria in mission.yaml. Triggered by requests like "evaluate mission", "check done_when", "verify completion criteria".
How this skill is triggered — by the user, by Claude, or both
Slash command
/mission-spec:ms-evalThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
[English](SKILL.md) | [한국어](SKILL.ko.md) | [中文](SKILL.zh.md)
mission.yaml from the current directory and validates the schema.done_when list:
mission.done_when_refs[] binds the criterion's index, that ref wins over every heuristic. Supported ref kinds are command, file-exists, file-contains, and eval-ref.
command: run the shell command and pass on exit code 0.file-exists: pass when the path exists.file-contains: pass when path::substring is present in the file.eval-ref: delegate to mission.evals[].name.evals[].name matches the criterion and type: manual, llm-eval, or llm-judge, looks up the override file at .mission/evals/<name>.result.yaml. Uses that verdict if present, otherwise marks as awaiting a recorded verdict.evals[].name exactly matches the criterion and type: automated, runs the command.node -e "
import { evaluateMission } from '${CLAUDE_PLUGIN_ROOT}/dist/commands/eval.js';
const r = evaluateMission('.');
console.log(r.summary);
r.criteria.forEach(c => {
const icon = c.passed ? '[x]' : '[ ]';
console.log(icon + ' ' + c.criterion);
if (!c.passed) console.log(' → ' + c.reason);
});
"
3/5 criteria passed
[x] package.json exists
[x] README.md file exists
[ ] All tests passing
→ Manual verification required: check npm test results
[x] src/index.ts exists
[ ] Deployment complete
→ Cannot auto-evaluate — manual verification required
For manual, llm-eval, or llm-judge type evals that cannot be mechanically evaluated, record external verdicts in .mission/evals/<eval-name>.result.yaml:
# .mission/evals/subjective_quality.result.yaml
passed: true
reason: "Reviewed by 3 reviewers, all agreed"
evaluated_by: "human" # or "llm-claude", "llm-gpt5", etc.
evaluated_at: "2026-04-13"
passed: true → PASSpassed: false → FAIL (shows verdict reason)passed field → "format error"mission.yaml is missing.done_when_refs[].kind: eval-ref for durable criteria: keep done_when prose readable, and place the concrete command or external verdict contract in evals[].eval, status, and report can execute shell commands declared in trusted mission.yaml files. Use mission-spec validate for schema-only checks on untrusted repositories.evals[].name does not match a done_when entry.manual / llm-eval / llm-judge type criteria remain pending until an override file is recorded.architecture_doc_freshness eval (v1.7.0+) can verify freshness of design documents referenced by design_refs.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub chquandogong/mission-spec --plugin mission-spec