/craft-planning
Feature roadmap and planning. Manage initiatives, concepts, open questions, and story creation from planning.
$ npx -y skills add drobins25/craft --agent claude-codeShips with craft. Installing the plugin gets this command.
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/craft-planning
Context preview
What this command does when you run it.
Feature roadmap and planning. Manage initiatives, concepts, open questions, and story creation from planning.
Command definition
craft-planning.mdname: planning
description: "Feature roadmap and planning. Manage initiatives, concepts, open questions, and story creation from planning."
aliases:
- planning
Craft Planning
You are managing the project's **feature roadmap** - the strategic planning layer that sits above cycles and stories. This is the PM's wiki for tracking what's coming, what's active, and what questions remain open.
Project Root
Set `PROJECT` to `${CRAFT_PROJECT_ROOT:-.}`. Set `PLANNING` to `$PROJECT/.craft/planning`.
Entry Flow
When `/craft:planning` is invoked, check state and route.
Step 1: Check if planning exists
Use **Glob** to check if `$PLANNING/active.md` exists.
**If NOT found** -> Go to **Setup Flow** (Step 2). **If found** -> Go to **Active Flow** (Step 3).
Step 2: Setup Flow (first time)
No planning folder exists yet. Help the user create one.
> "No planning folder found. Let's set up your roadmap."
Use **AskUserQuestion**:
question: "How would you like to start?"
header: "Setup"
options:
- label: "Generate from input (Recommended)"
description: "Feed me a transcript, doc, or spec and I'll extract concepts for your review"
- label: "Start from scratch"
description: "Describe what you're building and I'll structure it"
- label: "Import from existing backlog"
description: "Turn existing backlog stories into a planning roadmap"**If "Generate from input"** -> Go to **Add From Input** (Step 5). **If "Start from scratch"** -> Go to **Conversational Setup** (Step 6). **If "Import from existing backlog"** -> Go to **Import Flow** (Step 7).
After setup completes, create the folder structure:
mkdir -p "$PLANNING"
Write `README.md` and `active.md` using templates from `${CLAUDE_PLUGIN_ROOT}/templates/planning/`. Replace template variables with actual values.
Step 3: Active Flow (planning exists)
Read the current state and suggest the most useful next action.
Use **Read** to read `$PLANNING/active.md`. Extract `last_updated` from frontmatter. Extract the Focus section (content between `## Focus` and the next `---` divider).
Use **Read** to read `$PLANNING/README.md`. Parse the Roadmap table to get concept names, statuses, and files.
**Assess what's most useful:**
1. **Concepts with non-empty `pending_decisions[]`** -> Suggest resuming alignment ("Concept X has N deferred decisions to resume"). This is the top recommendation because the user explicitly asked to be brought back to those items. 2. **Stale active.md** (last_updated >7 days) -> Suggest reviewing and updating 3. **Open questions exist** -> Mention count, offer to review 4. **Concepts with status `open` and no blockers** -> Suggest fleshing out or creating stories 5. **Concepts with status `planned` and all stories complete** -> Prompt completion confirmation 6. **Nothing urgent** -> Show full roadmap and offer menu
Present the assessment and menu:
> "[Focus section content]" > > [Assessment: e.g., "4 open questions across 3 concepts. 'CDB Mapping' is ready for stories."]
Use **AskUserQuestion**:
question: "What would you like to do?"
header: "Planning"
options:
- label: "[Most useful action] (Recommended)"
description: "[context-specific description]"
- label: "Add concept or input"
description: "Add a new concept or feed new input to existing ones"
- label: "Review open questions"
description: "See all unanswered questions across concepts"
- label: "Create stories from a concept"
description: "Turn a mature concept into cycle stories"Route based on selection -> the flows below.
**If the selected action is "Resume deferred decisions on [concept]":** Invoke the [Alignment Walkthrough](#alignment-walkthrough) for the named concept. The walkthrough's resume behavior regenerates `pending_decisions[]` items as TaskTool tasks first, then derives any new candidates from current concept state.
Step 4: Update active.md
**Call this after any write to a planning file.** This keeps `last_updated` current automatically.
Read $PLANNING/active.md
Update `last_updated:` in frontmatter to today's date (YYYY-MM-DD)
Write $PLANNING/active.md
If the current focus has changed (e.g., a new concept was activated, a concept was completed), also update the `## Focus` section and `current_concept:` in frontmatter.
---
Flows
Step 5: Add From Input
The user provides a transcript, doc, spec, or other input. Craft extracts candidate concepts and confirms with the user before writing anything.
**5a. Gather input**
Use **AskUserQuestion**:
question: "What input should I work from?"
header: "Input"
options:
- label: "Paste or describe now"
description: "I'll type or paste the content in my next message"
- label: "Read a file"
description: "Point me to a file path to read"
- label: "Read from conversation"
description: "Use what we've discussed in this session"If file path provided, use **Read** to read it. If the file is a transcript, treat it as raw discovery material.
**5b. Extract candidate concepts**
Analyze the input and identify distinct features, initiatives, or work items. For each candidate, note:
- Suggested name (slug-friendly)
- One-line description
- Scope classification (core, stretch, deferred, external)
- Key open questions from the input
- Any dependencies on other candidates
**5c. Confirm with user (MANDATORY)**
Present the extracted candidates via **AskUserQuestion** with multiSelect:
question: "I found [N] potential concepts. Which ones are real work you intend to do?"
header: "Confirm"
options:
- label: "[Concept 1 name]"
description: "[one-line description] (scope: [classification])"
- label: "[Concept 2 name]"
description: "[one-line description] (scope: [classification])"
- label: "[Concept 3 name]"
description: "[one-line description] (scope: [classification])"
multiSelect: true**Only confirmed concepts get written.** Unselected candidates are dis
Read more
name: planning description: "Feature roadmap and planning. Manage initiatives, concepts, open questions, and story creation from planning." aliases: - planning
Craft Planning
You are managing the project's **feature roadmap** - the strategic planning layer that sits above cycles and stories. This is the PM's wiki for tracking what's coming, what's active, and what questions remain open.
Project Root
Set `PROJECT` to `${CRAFT_PROJECT_ROOT:-.}`. Set `PLANNING` to `$PROJECT/.craft/planning`.
Entry Flow
When `/craft:planning` is invoked, check state and route.
Step 1: Check if planning exists
Use **Glob** to check if `$PLANNING/active.md` exists.
**If NOT found** -> Go to **Setup Flow** (Step 2). **If found** -> Go to **Active Flow** (Step 3).
Step 2: Setup Flow (first time)
No planning folder exists yet. Help the user create one.
> "No planning folder found. Let's set up your roadmap."
Use **AskUserQuestion**:
question: "How would you like to start?"
header: "Setup"
options:
- label: "Generate from input (Recommended)"
description: "Feed me a transcript, doc, or spec and I'll extract concepts for your review"
- label: "Start from scratch"
description: "Describe what you're building and I'll structure it"
- label: "Import from existing backlog"
description: "Turn existing backlog stories into a planning roadmap"**If "Generate from input"** -> Go to **Add From Input** (Step 5). **If "Start from scratch"** -> Go to **Conversational Setup** (Step 6). **If "Import from existing backlog"** -> Go to **Import Flow** (Step 7).
After setup completes, create the folder structure:
mkdir -p "$PLANNING"
Write `README.md` and `active.md` using templates from `${CLAUDE_PLUGIN_ROOT}/templates/planning/`. Replace template variables with actual values.
Step 3: Active Flow (planning exists)
Read the current state and suggest the most useful next action.
Use **Read** to read `$PLANNING/active.md`. Extract `last_updated` from frontmatter. Extract the Focus section (content between `## Focus` and the next `---` divider).
Use **Read** to read `$PLANNING/README.md`. Parse the Roadmap table to get concept names, statuses, and files.
**Assess what's most useful:**
1. **Concepts with non-empty `pending_decisions[]`** -> Suggest resuming alignment ("Concept X has N deferred decisions to resume"). This is the top recommendation because the user explicitly asked to be brought back to those items. 2. **Stale active.md** (last_updated >7 days) -> Suggest reviewing and updating 3. **Open questions exist** -> Mention count, offer to review 4. **Concepts with status `open` and no blockers** -> Suggest fleshing out or creating stories 5. **Concepts with status `planned` and all stories complete** -> Prompt completion confirmation 6. **Nothing urgent** -> Show full roadmap and offer menu
Present the assessment and menu:
> "[Focus section content]" > > [Assessment: e.g., "4 open questions across 3 concepts. 'CDB Mapping' is ready for stories."]
Use **AskUserQuestion**:
question: "What would you like to do?"
header: "Planning"
options:
- label: "[Most useful action] (Recommended)"
description: "[context-specific description]"
- label: "Add concept or input"
description: "Add a new concept or feed new input to existing ones"
- label: "Review open questions"
description: "See all unanswered questions across concepts"
- label: "Create stories from a concept"
description: "Turn a mature concept into cycle stories"Route based on selection -> the flows below.
**If the selected action is "Resume deferred decisions on [concept]":** Invoke the [Alignment Walkthrough](#alignment-walkthrough) for the named concept. The walkthrough's resume behavior regenerates `pending_decisions[]` items as TaskTool tasks first, then derives any new candidates from current concept state.
Step 4: Update active.md
**Call this after any write to a planning file.** This keeps `last_updated` current automatically.
Read $PLANNING/active.md Update `last_updated:` in frontmatter to today's date (YYYY-MM-DD) Write $PLANNING/active.md
If the current focus has changed (e.g., a new concept was activated, a concept was completed), also update the `## Focus` section and `current_concept:` in frontmatter.
---
Flows
Step 5: Add From Input
The user provides a transcript, doc, spec, or other input. Craft extracts candidate concepts and confirms with the user before writing anything.
**5a. Gather input**
Use **AskUserQuestion**:
question: "What input should I work from?"
header: "Input"
options:
- label: "Paste or describe now"
description: "I'll type or paste the content in my next message"
- label: "Read a file"
description: "Point me to a file path to read"
- label: "Read from conversation"
description: "Use what we've discussed in this session"If file path provided, use **Read** to read it. If the file is a transcript, treat it as raw discovery material.
**5b. Extract candidate concepts**
Analyze the input and identify distinct features, initiatives, or work items. For each candidate, note:
- Suggested name (slug-friendly)
- One-line description
- Scope classification (core, stretch, deferred, external)
- Key open questions from the input
- Any dependencies on other candidates
**5c. Confirm with user (MANDATORY)**
Present the extracted candidates via **AskUserQuestion** with multiSelect:
question: "I found [N] potential concepts. Which ones are real work you intend to do?"
header: "Confirm"
options:
- label: "[Concept 1 name]"
description: "[one-line description] (scope: [classification])"
- label: "[Concept 2 name]"
description: "[one-line description] (scope: [classification])"
- label: "[Concept 3 name]"
description: "[one-line description] (scope: [classification])"
multiSelect: true**Only confirmed concepts get written.** Unselected candidates are dis
Showing the first part of this file.
Stop Vibing. Start Crafting. Claude Code plugin: guided + controlled development orchestration harness with built-in workflow + state management, for designing + building durable, production-ready software through the entire product lifecycle - new projects
Repo: drobins25/craft
Other commands on craft.
- /craft-analyze
Post-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools.
Open command - /craft-ask
Consult a craft agent. Routes your question to the best mind in the workshop - not a menu, a recommendation.
Open command - /craft-become
Agent crystallization command. Studies a tool, role, or person and produces a portable 9-section agent that inhabits the domain - with beliefs, scar tissue, and instincts.
Open command - /craft-cycle-assign
Move a story from backlog to a cycle.
Open command - /craft-cycle-complete
Complete a cycle. Triggers reflection if pending learnings, then archives.
Open command - /craft-cycle-design
Design a cycle — create new cycles with planned stories, detail existing planning cycles, or quick-sketch a roadmap. Detects planning docs in .craft/planning/ and sources the cycle from them when relevant.
Open command

