From autopilot
Structured brainstorming for managed agents — one question at a time via ask_user, explores approaches before implementation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/autopilot:brainstormingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn ideas into fully formed designs through structured collaborative dialogue using `ask_user`.
Turn ideas into fully formed designs through structured collaborative dialogue using ask_user.
NEVER ask multiple questions in a single ask_user call. Each call pauses the session and costs the user a round-trip. This makes it tempting to batch — resist this completely.
Bad (batched):
ask_user(question: "Three questions: 1) Where should this run? 2) What order? 3) Storage?")
Good (one at a time):
ask_user(question: "Where should the pipeline run?", options: ["A) Local", "B) Cloud", "C) Notebook"])
// wait for answer, then:
ask_user(question: "Given cloud hosting, what stage order?", options: ["A) Spec order", "B) Detect-first"])
// wait for answer, then:
ask_user(question: "Given cloud + detect-first, how to handle failures?", options: ["A) Stateless", "B) Checkpoints"])
Each question builds on the previous answer. Later questions may become irrelevant based on earlier answers. This is why batching is wrong — you cannot know which questions matter until you have the prior answers.
Every project goes through this process. A todo list, a single-function utility, a config change — all of them. "Simple" projects are where unexamined assumptions cause the most wasted work. The design can be short, but you MUST present it and get approval.
Complete these steps in order:
ask_user to ask how to decompose before proceedingask_user call per question, understand purpose/constraints/success criteriaask_user with trade-offs and your recommendationask_user to confirm each major section.docs/autopilot/<slug>-spec.md and commitask_user summarizing key decisions, ask for approval before planningExplore codebase
|
v
Assess scope --- too large? ---> ask_user: how to decompose
| |
| (appropriately scoped) v
v Decompose, brainstorm first sub-project
Clarifying question 1 (ask_user, one question)
|
v
Clarifying question 2 (ask_user, builds on Q1 answer)
|
v
... (as many as needed, one at a time)
|
v
Propose 2-3 approaches (ask_user, multiple choice)
|
v
Present design sections (in messages)
|
v
ask_user: "Does this design look right? Any changes?"
|
+--- no ---> Revise and re-present
|
v (yes)
Write spec doc + commit
|
v
Spec self-review (fix inline)
|
v
ask_user: "Spec committed. Review and approve before I start planning."
|
v
Proceed to Phase 2 (Spec is done) / Phase 3 (Planning)
Each ask_user call should contain exactly one question. If you have 3 things to ask, that's 3 separate ask_user calls with 3 separate user responses.
Why: The user answers asynchronously. Compound questions get partial answers, force re-asking, and waste everyone's time. Also, later questions often depend on earlier answers — you literally cannot ask Q3 correctly until you know the answer to Q1.
When possible, present options the user can pick from rather than open-ended questions:
{
"question": "Which approach should we take for the data pipeline?",
"context": "Found existing ETL patterns in /src/pipelines/ using Python + pandas. The repo also has a Go service for real-time ingestion.",
"options": [
"A) Python batch pipeline — matches existing ETL patterns, simplest",
"B) Go streaming pipeline — matches real-time service, better for scale",
"C) Hybrid — Python for batch, Go for real-time, more complex"
]
}
Questions should flow naturally, each building on the previous answer:
Don't ask design detail questions before the approach is chosen — they may be irrelevant.
Understanding the idea:
ask_user. Don't spend questions refining details of a project that needs to be decomposed first.ask_userExploring approaches:
ask_userPresenting the design:
ask_user after presenting to confirm: "Does this design look right? Any changes before I write the spec?"Design for isolation and clarity:
Working in existing codebases:
Write the spec:
docs/autopilot/<slug>-spec.mdautopilot: spec for <slug>Spec Self-Review: After writing the spec, check with fresh eyes:
Fix any issues inline.
User Review Gate:
After self-review, call ask_user:
{
"question": "Spec written and committed. Key decisions: [summary]. Ready to proceed to planning?",
"context": "The spec covers [brief summary]. Review the spec at docs/autopilot/<slug>-spec.md",
"options": ["A) Approved — proceed to planning", "B) Changes needed (I'll describe what to change)"]
}
Wait for approval before proceeding to planning/implementation phases.
npx claudepluginhub clsandoval/claude-autopilotGuides a disciplined Socratic brainstorming loop before any creative or implementation work: clarifying questions, pushback, trade-off analysis, design doc, user approval, then handoff to implementation.
Guides structured brainstorming to explore user intent, requirements, and design before implementation. Prevents premature coding by enforcing design approval.
Guides collaborative brainstorming to explore intent, clarify requirements, propose designs, and secure approval before implementing features or changes.