From cairn
Create a new milestone directory with initialized requirements.md (Goal filled from the provided description) and empty TASKS files.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cairn:define-milestone-goalThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Creates a new milestone directory under `milestones/` with a `requirements.md` pre-filled with the goal, plus empty `TASKS_TODO.md` and `TASKS_DONE.md`. Does not populate the remaining sections — those are filled by subsequent skills (`/specify-milestone-starting-implementation-state`, `/highlight-milestone-requirements-open-questions`, etc.).
Creates a new milestone directory under milestones/ with a requirements.md pre-filled with the goal, plus empty TASKS_TODO.md and TASKS_DONE.md. Does not populate the remaining sections — those are filled by subsequent skills (/specify-milestone-starting-implementation-state, /highlight-milestone-requirements-open-questions, etc.).
/define-milestone-goal <overall_goal_description>
<overall_goal_description>: a clear description of what the milestone should accomplish. Use /discuss-milestone-goal first if the goal is still vague.Example:
/define-milestone-goal add a shooting mechanic where the player fires a single projectile at enemies on the same spline segment
Scan the milestones/ directory for subdirectories whose names match the pattern milestone_<NN>_* (e.g. milestone_01_public-release-prep). For each matching directory, extract the numeric prefix and parse it as an integer, stripping any leading zeros (01 → 1, 09 → 9). Take the maximum integer found and add 1 to get the next milestone number. Format the result zero-padded to two digits (e.g. 1 → 01, 9 → 09, 10 → 10).
If milestones/ contains no matching directories (cold start), treat the maximum as 0, so the first milestone number is 1, formatted 01.
Do not read the milestone number from CLAUDE.md or from milestones/README.md's pointer — the scan is the sole source.
Convert <overall_goal_description> to a short kebab-case slug (3–5 words max) that captures the essence of the goal. The full directory name is milestone_<NN>_<slug> where <NN> is the zero-padded two-digit number from step 1.
Example: "add a shooting mechanic where the player fires a single projectile" → milestone_12_player-shooting (if the next number happens to be 12)
Verify that milestones/milestone_<NN>_<slug>/ does not already exist. If a milestone with that number exists under any slug, stop and report the conflict.
Create milestones/milestone_<NN>_<slug>/ with three files. Use the zero-padded <NN> in the directory name and the integer (leading zeros stripped) <N> in the requirements.md heading.
requirements.md:
# Milestone <N>: <title>
## Goal
<overall_goal_description>
## Relevant implementation state
## Implementation decisions
## Out of Scope
TASKS_TODO.md:
# TASKS TODO
TASKS_DONE.md:
# TASKS DONE
Report:
milestones/milestone_<NN>_<slug>/requirements.md/specify-milestone-starting-implementation-state milestone_<NN>_<slug> to fill in the implementation state section.CLAUDE.md or milestones/README.md — those are only updated when the milestone becomes the current active milestone via /goto-next-milestone.## Relevant implementation state, ## Implementation decisions, or ## Out of Scope — leave them empty for later skills.npx claudepluginhub uhappylogic/cairn --plugin cairnGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.