From mission-spec
Automatically generates a mission.yaml draft from a natural language goal. Use when the user wants to start a mission or create a mission.yaml. Triggered by requests like "create a mission", "generate mission.yaml", "new task contract".
How this skill is triggered — by the user, by Claude, or both
Slash command
/mission-spec:ms-initThis 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)
package.json and README.md, and reads project name and description from package.json.package.json has a scripts.test command, scaffolds an evals[] automated npm_test entry and a matching done_when_refs[] eval-ref binding for the generated test criterion.mission.yaml draft and performs schema validation.mission:
title: string # Required — Mission title
goal: string # Required — Mission goal (natural language)
done_when: # Required — Completion criteria (at least 1)
- "Criterion 1"
- "Criterion 2"
constraints: Constraint listapprovals: Approval gates (gate, approver: human|ai|codex|ci)evals: Evaluation items (automated → command+pass_criteria required, manual → description required)budget_hint: Resource hints (advisory)execution_hints: Execution hints (advisory only — runtime may ignore)skills_needed, artifacts, version, authorlineage: Change history reference (initial_version, history required) — v1.5.0+generateMissionDraft() automatically includes:
version: "1.0.0"lineage.initial_version: "1.0.0"lineage.initial_date: Current datelineage.history: "mission-history.yaml"Schema validation is always performed after generation:
node -e "
import { readFileSync } from 'node:fs';
import { parse } from 'yaml';
import { validateMission } from '${CLAUDE_PLUGIN_ROOT}/dist/schema/validator.js';
const doc = parse(readFileSync('mission.yaml', 'utf-8'));
const r = validateMission(doc);
if (r.valid) console.log('mission.yaml: VALID');
else { console.error('INVALID:', r.errors.join(', ')); process.exit(1); }
"
After ms-init produces mission.yaml, install the schema-validation hook so subsequent edits cannot introduce schema drift:
npm install --save-dev mission-spec
cp node_modules/mission-spec/templates/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
The hook calls npx mission-spec validate which exits non-zero on any schema failure in mission.yaml or (if present) mission-history.yaml. It does NOT run the evaluator — it is fast enough for every commit.
execution_hints are suggestions, not directives. Runtime may ignore them.generateMissionDraft() returns a YAML string without writing to disk.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