plugins/ideation/skills/ideation/SKILL.md
You MUST use this before building any new feature, planning a migration, designing a system, or turning scattered ideas into a plan. Triggers on: feature requests, project ideas, brain dumps, 'help me plan,' 'spec this out,' 'think through this,' 'interview me,' 'I want to build,' 'let's design,' or any unstructured idea that needs structure before code. Covers small single-spec projects through multi-phase initiatives. Runs a conversational interview, writes an interactive HTML contract, then generates implementation-ready Markdown specs. Skip ONLY for well-defined implementation tasks (writing code to a known spec, fixing bugs, refactoring, explaining code).
npx skillsauth add nicknisi/claude-plugins ideationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Transform unstructured brain dumps into implementation artifacts through a conversational interview that builds shared understanding before writing anything. HTML is used for interactive decision-making (visualizations, comparisons, Mission Brief contract); Markdown is used for reference documents (specs, PRDs).
INTAKE → INTERVIEW LOOP → CONTRACT.HTML → PHASING → SPEC.MD GENERATION → HANDOFF
↓ ↓ ↓ ↓ ↓
Accept the mess One question Mission Repeatable? Phase track
at a time, Brief with ↓ + copy buttons
explore code confidence Template + in contract
+ show HTML + scope per-phase
examples tiers deltas
Read and follow ${CLAUDE_PLUGIN_ROOT}/references/interview-engine.md for the complete intake and interview loop process. Execute all phases described there before proceeding to Phase 3.
Read ${CLAUDE_PLUGIN_ROOT}/references/confidence-rubric.md for the detailed scoring criteria.
When confidence ≥ 95%, generate the Mission Brief contract as an HTML document. Not before.
Use AskUserQuestion to confirm project name if not obvious from context
Convert to kebab-case for directory name (this becomes the slug)
Create output directory ./docs/ideation/{slug}/
Write contract-data.json in the output directory. This is a JSON file conforming to the ContractData schema — the CLI generates the HTML from it. The JSON captures all interview findings:
{
"projectName": "Human-Readable Name",
"slug": "kebab-case-name",
"date": "YYYY-MM-DD",
"status": "Draft",
"supersedes": null,
"confidence": {
"score": 96,
"dimensions": [
{ "key": "scope", "score": 100, "label": "Scope", "reason": "One sentence explaining the score" },
{ "key": "risk", "score": 92, "label": "Risk", "reason": "One sentence" },
{ "key": "effort", "score": 95, "label": "Effort", "reason": "One sentence" },
{ "key": "clarity", "score": 98, "label": "Clarity", "reason": "One sentence" },
{ "key": "tests", "score": 95, "label": "Tests", "reason": "One sentence" }
]
},
"problem": ["paragraph 1", "paragraph 2"],
"goals": ["Measurable goal 1", "Measurable goal 2"],
"successCriteria": ["Pass/fail criterion 1", "Pass/fail criterion 2"],
"scope": {
"mvp": [{"item": "Core feature", "reason": "Why it's MVP"}],
"full": [{"item": "Full feature", "reason": "Optional rationale"}],
"stretch": [{"item": "Stretch feature"}],
"outOfScope": [{"item": "Excluded item", "reason": "Why excluded"}],
"future": ["Deferred idea 1"]
},
"execution": {
"strategy": "Sequential",
"phases": [
{
"title": "Phase name",
"risk": "low",
"blocking": true,
"specPath": "docs/ideation/slug/spec-phase-1.md",
"notes": "Brief description of what this phase covers"
}
],
"agentTeamPrompt": "only if 2+ phases parallelizable"
}
}
Confidence dimensions: Each dimension gets a numeric score (0-100) and a one-sentence reason. The overall score is what the hero displays; dimensions show the breakdown.
Phase fields: risk (high/medium/low), blocking (boolean), specPath (path to spec), notes (brief description). Optional: kind ("gate" for human checkpoints), prereqs (array of phase titles this depends on).
Run the contract generator:
npx tsx ${CLAUDE_PLUGIN_ROOT}/scripts/contract-gen.ts \
--input ./docs/ideation/{slug}/contract-data.json \
--output ./docs/ideation/{slug}/contract.html
The CLI handles lineage automatically — if contract.html already exists, it renames it to contract-{date}.html and sets the supersedes link.
Open in browser: run open ./docs/ideation/{slug}/contract.html (macOS) or xdg-open (Linux)
Use AskUserQuestion to get approval — include the scope tier question:
Question: "Does this contract capture your intent? Which scope tier should we target?"
Options:
- "Approved — Full scope (Recommended)" - Build MVP + Full tiers
- "Approved — MVP scope" - Ship the minimum viable version first
- "Approved — Stretch scope" - Include MVP + Full + Stretch tiers
- "Needs changes" - Some parts need revision before approving
- "Start over" - Fundamentally off track, re-interview
The approved scope tier determines what goes into specs. Items outside the chosen tier move to "Future Considerations."
If not approved: Revise based on feedback. If feedback reveals a fundamental misunderstanding, return to the interview loop. Otherwise re-write the HTML file and re-open in browser. Iterate until approved.
Do not proceed until contract is explicitly approved.
</what-to-do> <supporting-info>After contract is approved, determine phases and generate Markdown specs. PRDs are optional.
Use AskUserQuestion to ask:
Question: "How should we proceed from the contract?"
Options:
- "Straight to specs (Recommended)" — Contract defines what, specs define how. Faster.
- "PRDs then specs" — Adds a requirements layer for stakeholder alignment.
Analyze the contract and break scope into logical implementation phases.
Small-project shortcut: If the scope is small enough to implement in a single phase (1-3 components, touches fewer than ~10 files), skip phasing entirely. Generate a single spec.md (no phase number needed) and proceed directly to handoff. Don't force structure where simplicity suffices.
Phasing criteria (for multi-phase projects):
Typical phasing:
Detect repeatable patterns: If 3+ phases follow the same structure with different inputs (e.g., "add SDK support for {language}"), note this — it affects how specs are generated (see 4.4).
For each phase, use the Read tool to read references/prd-template.md, then generate prd-phase-{n}.md.
Include:
Present all PRDs for review via AskUserQuestion:
Question: "Do these PRD phases look correct?"
Options:
- "Approved" - Phases and requirements look good, proceed to specs
- "Adjust phases" - Need to move features between phases
- "Missing requirements" - Some requirements are missing or unclear
- "Start over" - Need to revisit the contract
Iterate until user explicitly approves.
Use the Read tool to read references/spec-template.md, then generate spec-phase-{n}.md. Create spec files lazily — only when a phase's details are resolved.
For each phase, generate a full spec-phase-{n}.md with:
Reference existing code: When the interview's codebase exploration identified relevant patterns, include "Pattern to follow: path/to/similar/file.ts" in the spec's implementation details.
Designing feedback loops: For each iterative component, define a playground (environment to interact with), experiment (parameterized check), and check command (fastest single validation). Match the feedback mechanism to the component type — data layers use tests, UI uses dev server, APIs use curl scripts, config/types skip loops entirely. See ${CLAUDE_PLUGIN_ROOT}/references/feedback-loop-guide.md for the full component-type mapping and design criteria.
Naming failure modes: For each non-trivial component, ask: "How would this fail?" Fill in the spec's Failure Modes table with named failures, data shadow paths (nil, empty, stale data), and edge cases (concurrent access, oversized input, missing permissions). Trivial components (config, types, constants) skip failure mode enumeration.
When multiple phases share the same structure (e.g., "add support for {SDK}"), avoid generating N nearly-identical full specs. Instead:
Generate one full template spec — spec-template-{pattern-name}.md — with detailed implementation steps, using placeholders for the variable parts.
Generate lightweight per-phase delta files — spec-phase-{n}.md — containing only:
spec-template-{pattern-name}.md with the inputs below"Present the phase breakdown and specs for user approval before proceeding to handoff.
Before presenting specs, evaluate feedback loop quality using the Spec Feedback Quality checklist from ${CLAUDE_PLUGIN_ROOT}/references/confidence-rubric.md. Self-review each spec:
If Weak, fix the gaps first. Don't present a spec without feedback loops for its iterative components.
Use AskUserQuestion:
Question: "Do these specs look correct? (Review them in your browser)"
Options:
- "Approved" - Specs look good, proceed to execution handoff
- "Adjust approach" - Implementation strategy needs changes
- "Missing components" - Some files or steps are missing
- "Revisit phases" - Phase breakdown needs restructuring
If not approved, revise the relevant specs based on feedback and re-present. Iterate until approved.
After specs are approved, update the contract HTML with the execution plan and auto-generate Markdown specs for /ideation:execute-spec.
Do not create tasks during ideation handoff — they are ephemeral and will be lost when the user starts a fresh session. Each /ideation:execute-spec session creates its own granular implementation tasks.
Analyze the phase dependency graph to determine the best execution strategy.
Detect parallelizable phases:
Determine recommended strategy:
| Pattern | Recommendation | | ----------------------------- | ----------------------------------------------------------------------------- | | All phases sequential (chain) | Sequential execution — one session at a time | | 2+ independent phases | Agent team — lead orchestrates teammates in parallel | | Mixed dependencies | Hybrid — sequential for dependent chain, agent team for independent group |
Update contract-data.json with the final execution plan, then re-run contract-gen.ts. This makes the contract fully self-contained — someone can pick it up cold and know exactly how to execute.
Phase Track — populate execution.phases with phase titles, risk, blockers, spec paths, notes, and human gates. The CLI renders the horizontal phase track with risk coloring.
Execution Commands — the CLI renders copy buttons for /ideation:autopilot and each /ideation:execute-spec command.
Agent Team Prompt — only if 2+ phases are parallelizable. Set execution.agentTeamPrompt so the CLI renders it in a collapsible section with a copy button. Omit this field entirely for fully sequential projects.
Shared file detection: Before writing the agent team prompt, scan spec files' "Modified Files" sections. If multiple specs modify the same files, include a coordination note:
Coordinate on shared files ({list}) to avoid merge conflicts —
only one teammate should modify a shared file at a time.
Batching: If more than 5 parallelizable phases, note in the execution steps to start with the highest-priority batch first.
Re-open the regenerated contract in the browser after updating.
Generate contract.md from references/contract-template.md with the same content as contract.html — needed for execute-spec lineage detection. Include the Execution Plan section.
Specs and PRDs are already Markdown from Phase 4 — no conversion needed.
After updating the contract and generating MD specs, present a brief conversational summary.
Always include:
Ideation complete. Artifacts written to `./docs/ideation/{project-name}/`.
Open contract.html in your browser to review the full plan — phase track,
execution commands, and scope are all in the Mission Brief.
Specs (spec-phase-*.md) are ready. To execute all phases:
/ideation:autopilot
Or run individual phases manually:
/ideation:execute-spec docs/ideation/{project-name}/spec-phase-1.md
Recommend /ideation:autopilot as the default. It reads the contract, walks the dependency graph, dispatches subagents per phase (parallel when possible), and only stops on failures. Manual /ideation:execute-spec is available for finer control.
All artifacts written to ./docs/ideation/{project-name}/:
_comparison.html # Ephemeral decision aid (deleted after choice is made)
contract.html # Mission Brief contract (for review)
contract.md # Plain contract (for execute-spec lineage)
prd-phase-1.md # Phase 1 requirements (only if PRDs chosen)
...
spec-phase-1.md # Implementation spec (for execute-spec)
spec-template-{pattern}.md # Shared template for repeatable phases (if applicable)
spec-phase-{n}.md # Per-phase delta or full spec
...
${CLAUDE_PLUGIN_ROOT}/references/interview-engine.md - Interview engine (Phases 1-2)${CLAUDE_PLUGIN_ROOT}/references/confidence-rubric.md - Scoring criteria for confidence assessment and spec feedback quality${CLAUDE_PLUGIN_ROOT}/references/feedback-loop-guide.md - Component-type mapping and design criteria for spec feedback loops${CLAUDE_PLUGIN_ROOT}/references/workflow-example.md - End-to-end workflow walkthroughHTML (interactive artifacts — contract, exploration, interview visualizations):
references/html-guide.md - HTML component library, design tokens, and constraintsreferences/contract-template.html - Interactive HTML contract templateMarkdown (specs, PRDs, contract copy for execute-spec):
references/contract-template.md - Plain contract templatereferences/prd-template.md - Plain PRD templatereferences/spec-template.md - Plain spec templateCompleted artifact examples for reference when generating output:
examples/contract-example.md - A filled-in MD contract for a bookmark featureexamples/prd-example.md - A filled-in MD PRD for the same feature (Phase 1)examples/spec-example.md - A filled-in MD spec for the same featureWhen generating artifacts, reference these examples for tone, structure, and level of detail.
During the interview and phasing stages, generate ephemeral HTML pages when visual context helps the user make better decisions. These are disposable aids — created, reviewed, then deleted.
When to use this:
How it works:
_comparison.html (or _examples.html, _mockup.html — prefix with _ to mark as ephemeral) to the project's ideation directory using references/html-guide.md componentsopen ./docs/ideation/{project-name}/_comparison.htmlAskUserQuestion: reference the browser view in the question textWhen NOT to use this: Simple yes/no decisions, choices where the recommended option is clearly best, or any decision that's faster to explain in text. Don't slow down the flow with unnecessary visual aids.
Read tool to load templates before writing. You MUST read references/html-guide.md before Phase 3 and read references/contract-template.html before generating the contract. Read references/spec-template.md before generating specs.AskUserQuestion for all questions and approvals. One question at a time, with your recommended answer.open (macOS) or xdg-open (Linux).tools
Generate a /goal command to execute an ideation project's specs autonomously. Reads the contract, builds a goal prompt with phase ordering and spec paths, copies it to clipboard, and prints it. The user pastes the /goal command to start autonomous execution. Use when the user says 'goal', 'run as goal', 'get goal prompt', 'goal prompt', or wants to execute specs via /goal instead of /ideation:autopilot.
development
Go up a layer of abstraction and map the surrounding architecture. Use when the user is unfamiliar with an area of code, asks "how does this fit in", "what calls this", "give me the big picture", "where am I", "map this out", "I'm lost", "explain this area", or needs to understand how a file, module, or function connects to the rest of the system. Also use when the user says /zoom-out or "zoom out" mid-conversation — even without a specific file reference, orient them based on whatever code is currently in context.
development
Build a throwaway prototype to answer a design question before committing to real implementation. Generates either a runnable terminal app (for state machines, data models, business logic) or several radically different UI variations on one route (for visual/layout decisions). Use when the user wants to prototype, spike, POC, sanity-check a data model, mock up a UI, explore design options, or says "prototype this", "spike this out", "let me play with it", "try a few designs", "sketch this in code", "I want to try something before building it for real", "quick and dirty version", or "validate this approach" — even if they don't use the word "prototype."
development
Comprehensive, codebase-wide quality sweep that dispatches parallel subagents to find and fix structural issues. Covers deduplication, type consolidation, dead code removal, circular dependencies, weak types, defensive try/catch, deprecated paths, and AI slop. Primary support for JS/TS projects (knip, madge, TypeScript types); other languages get grep-based analysis. Use when the user asks to "deep clean the whole repo", "run a full codebase audit", "nuclear cleanup", "deslop everything", or "sweep the entire codebase for quality issues". Do NOT use for single-file fixes, branch-scoped diffs (use de-slopify instead), or targeted refactors.