From autodev
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/autodev:brainstormingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Condensed format: load `autodev:condensed-pipeline-writing` to expand shorthand.
Condensed format: load
autodev:condensed-pipeline-writingto expand shorthand.
Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
Start by understanding the current project context, then ask questions using adaptive batching to refine the idea. Once you understand what you're building, present the design and get user approval.
Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity.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 (a few sentences for truly simple projects), but you MUST present it and get approval.
You MUST create a task for each of these items and complete them in order:
autodev:project-design-guidance; read existing guidance or run its Q&A if no durable guidance existsdocs/plans/YYYY-MM-DD-<topic>-design.md and commit. Use autodev:condensed-pipeline-writing for internal density. The doc MUST include ## Global Design Guidance, ## Security Review, ## Infrastructure Impact, ## Multi-Component Validation, ## Assumptions, and a ## Rollback section for change classes that affect runtime (build, deployment, version pins, startup config, migrations, plugin loading paths) — same trigger list as runtime-launch-validation.adversarial-design-review --phase=design. On FAIL, revise per tangible Critical/Important findings and re-run until the review converges to no tangible issues (remaining nitpicks become Minor PASS items). On PASS, proceed.digraph brainstorming {
"Explore project context" [shape=box];
"Apply project guidance" [shape=box];
"Offer visual companion if useful" [shape=box];
"Ask clarifying questions" [shape=box];
"Propose 2-3 approaches" [shape=box];
"List assumptions" [shape=box];
"Self-challenge round" [shape=box];
"Present design sections" [shape=box];
"User approves design?" [shape=diamond];
"Write design doc" [shape=box];
"Adversarial design review" [shape=diamond];
"Invoke writing-plans skill" [shape=doublecircle];
"Explore project context" -> "Apply project guidance";
"Apply project guidance" -> "Offer visual companion if useful";
"Offer visual companion if useful" -> "Ask clarifying questions";
"Ask clarifying questions" -> "Propose 2-3 approaches";
"Propose 2-3 approaches" -> "List assumptions";
"List assumptions" -> "Self-challenge round";
"Self-challenge round" -> "Present design sections";
"Present design sections" -> "User approves design?";
"User approves design?" -> "Present design sections" [label="no, revise"];
"User approves design?" -> "Write design doc" [label="yes"];
"Write design doc" -> "Adversarial design review";
"Adversarial design review" -> "Write design doc" [label="FAIL: revise"];
"Adversarial design review" -> "Invoke writing-plans skill" [label="PASS"];
}
The terminal state is invoking writing-plans (after adversarial review passes). Do NOT invoke frontend-design, mcp-builder, or any other implementation skill. The ONLY skill you invoke after brainstorming is adversarial-design-review and then writing-plans.
Understanding the idea:
Check out the current project state first (files, docs, recent commits)
Invoke autodev:project-design-guidance before finalizing questions or approaches. If no durable guidance exists, ask the guidance Q&A first so the feature-specific brainstorm is not designed in isolation.
Offer the visual companion just-in-time, not upfront. Only offer when the next question would genuinely be clearer shown than described, and send only the offer in that message; the offer counts as one question batch. If the user declines, continue text-only and do not re-offer unless the user raises visuals.
Decide per-question whether visuals help. Use visuals for mockups, Mermaid diagrams, flows, state diagrams, architecture maps, or side-by-side layout comparisons. Stay text-only for requirements, conceptual choices, tradeoff tables, and scope decisions.
If the user accepts, lazy-load skills/brainstorming/visual-companion.md only while composing visual artifacts. Text remains the source of truth; every visual needs a concise text fallback.
Ask questions using adaptive batching — group related questions to reduce round-trips:
<host: claude-code>
<host: codex, opencode, cursor, zed-agent>
<host: hermes-agent>
clarify tool for multiple-choice questions (up to 4 options)Focus on understanding: purpose, constraints, success criteria
Exploring approaches:
Presenting the design:
Before presenting the design to the user, role-play a skeptic against your own design for one short pass. The goal is to clean up the obvious issues before the user sees them and before the heavyweight adversarial-design-review runs.
Ask yourself, in order, and keep notes:
path/file.md.If any answer surfaces a real issue, revise the design before presenting it. Otherwise, surface the top 3 doubts to the user when you present (so they can decide whether the trade-offs are acceptable). This is a 30-second exercise, not a debate.
This is intentionally lightweight; the heavyweight pass is adversarial-design-review, which runs after the design is committed.
Visuals are a tool, not a mode. Use them only when seeing the option, flow, relationship, or layout would help the user decide better than prose.
Offer rule: The first visual-companion offer is just-in-time and never upfront. The offer must be its own message, counts as one question batch, and asks whether the user wants a visual aid. Do not bundle another clarifying question into the same message.
Use visuals for: mockups, wireframes, Mermaid diagrams, state flows, entity relationships, architecture maps, spatial comparisons, and side-by-side visual design options.
Stay text-only for: requirements questions, conceptual choices, tradeoff lists, scope decisions, implementation approaches, or any question where the answer is words rather than a visual preference.
Fallback and correctness: text remains the source of truth. Every visual must include a concise text equivalent. If Mermaid is invalid or unsupported, continue in plain text and do not claim rendered proof. If a visual becomes stale or contradicts a later text decision, retire or update it before proceeding. Do not include secrets or PII in diagrams or mockups.
Guide loading: lazy-load skills/brainstorming/visual-companion.md only after the user accepts the companion or when composing a visual artifact. SKILL.md remains authoritative; the guide provides examples, accessibility rules, and fallback details.
A brainstorming session has a soft cap of 5 question-batches before the agent must converge. A "batch" is one round-trip — one outgoing message that contains questions (whether one targeted follow-up or four AskUserQuestion-style options). The cap exists so a session cannot spiral indefinitely while the user keeps answering; convergence is a feature, not an accident.
Counting rule: every outgoing message that asks the user a question counts as one batch, regardless of how many sub-questions it bundles. Re-asking a question to clarify the user's prior answer also counts. Pure status messages ("I'm exploring the codebase…") do not count.
On reaching the cap:
The "extend the budget" option exists because some genuinely complex designs need more conversation; the cap is soft, not a hard refusal. But the user must explicitly opt in — the agent cannot extend on its own.
Why a cap at all: brainstorming is the most user-facing skill in the plugin. Question fatigue is a real failure mode. Capping at 5 batches forces the agent to commit to an approximation rather than stalling — and the user can always explicitly extend.
When the user wants design exploration without execution, they pass --design-only to brainstorming.
Behavior under --design-only:
adversarial-design-review --phase=design. On FAIL, revise the design and re-run while tangible Critical/Important findings remain. When only nitpicks remain, record them as Minor and proceed on PASS. Escalate only for unresolved tangible findings that require user input — no plan dispatched.--design-only flag.docs/plans/ plus the adversarial review reports.Default (no flag): brainstorming → adversarial-design-review (design) → writing-plans → adversarial-design-review (plan) → alignment-check → subagent-driven-development → … (autonomous handoff to execution).
Documentation:
<placeholder> segments (e.g. /Users/<name>/…); never a literal operator-home path. Enforced by tests/no-machine-paths.sh.docs/plans/YYYY-MM-DD-<topic>-design.md## Global Design Guidance, ## Security Review, ## Infrastructure Impact, ## Multi-Component Validation, ## Assumptions, and ## Rollback sections (rollback only required for change classes that affect runtime — see the trigger list in runtime-launch-validation / finishing-a-development-branch Step 1b)skills/recording-decisions/SKILL.md (divergence from precedent, non-trivial trade-off between ≥2 plausible approaches, adversarial-review override, cross-skill structural change), invoke recording-decisions to add an ADR in decisions/, then cite it from this design docAdversarial review (mandatory):
adversarial-design-review --phase=design against the committed designAutonomous handoff:
adversarial-design-review runs first; on PASS, writing-plans is the next step. It handles the rest of the autonomous pipeline.npx claudepluginhub gocodealone/autonomous-dev-kit --plugin autodevCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.