Help us improve
Share bugs, ideas, or general feedback.
From pulse
Use before feature work only when the design is still unclear — for shaping vague product intent, comparing possible feature shapes, and turning fuzzy requests into a documented, approved spec before exploring or planning begins. Do not use this when the feature intent is already clear and the remaining work is to lock implementation decisions; that belongs to pulse:exploring. Trigger phrases: design, brainstorm, think through, what should we build, help me think, explore options, compare directions, unclear feature shape, vague product request.
npx claudepluginhub quanpersie2001/pulse --plugin pulseHow this skill is triggered — by the user, by Claude, or both
Slash command
/pulse:brainstormingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turns vague intent into a documented, approved design spec through structured dialogue —
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Guides systematic root-cause debugging via triage checklist for test failures, build breaks, unexpected behavior, logs, and errors.
Share bugs, ideas, or general feedback.
Turns vague intent into a documented, approved design spec through structured dialogue — before any codebase research or implementation planning begins.
Research shows that validated designs reduce planning rework by stopping assumption drift before it compounds.
This skill should behave like a disciplined design grilling session:
Every new feature with unclear design goes through this process. A new config capability, a new function that expands behavior, a new UI path — if the shape is still fuzzy, this is where you turn it into an approved spec. "Simple" feature work is where unexamined assumptions cause the most wasted planning work. The spec can be a paragraph. But you MUST present it and get approval.
This is not the path for trivial non-feature corrections already covered by small_change or Micro Mode. If the request is only a wording fix, local correction, or similarly bounded non-feature adjustment, follow the lighter route defined by pulse:using-pulse instead of forcing a brainstorming spec.
| Step | What you do | What you produce |
|---|---|---|
| Explore context | Read just enough project material to understand what already exists | Internal context snapshot |
| Assess scope | Decide whether this is one feature or multiple independent systems | Scoped brainstorming target |
| Visual decision point | Decide whether upcoming questions are easier to answer by seeing options | User consent for visual support, or text-only path |
| Clarifying questions | Ask one question at a time to uncover purpose, constraints, and success criteria | Validated requirements |
| Approaches | Present 2–3 viable directions with trade-offs | Chosen direction |
| Design | Present the solution in sections and validate incrementally | Approved design |
| Spec | Write the approved design to history/<feature>/spec.md | Stable spec for exploring |
| Self-review | Run the spec reviewer subagent and fix serious issues | Planning-ready spec |
| User review gate | Wait for explicit approval on the written spec | Approved handoff artifact |
| Handoff | Update .pulse/STATE.md and recommend pulse:exploring as the next manual step | Clean pipeline transition |
Create a task for each item and complete them in order:
history/<feature>/spec.md and note the pathpulse:exploring as the next manual step to lock implementation decisionsdigraph brainstorming {
"Explore project context" [shape=box];
"Multi-system?" [shape=diamond];
"Decompose first" [shape=box];
"Visual questions ahead?" [shape=diamond];
"Offer visual support\n(own message only)" [shape=box];
"Ask clarifying questions" [shape=box];
"Propose 2-3 approaches" [shape=box];
"Present design sections" [shape=box];
"User approves design?" [shape=diamond];
"Write spec doc" [shape=box];
"Spec self-review (subagent)" [shape=box];
"User reviews spec?" [shape=diamond];
"Recommend pulse:exploring handoff" [shape=doublecircle];
"Explore project context" -> "Multi-system?";
"Multi-system?" -> "Decompose first" [label="yes"];
"Multi-system?" -> "Visual questions ahead?" [label="no"];
"Decompose first" -> "Visual questions ahead?";
"Visual questions ahead?" -> "Offer visual support\n(own message only)" [label="yes"];
"Visual questions ahead?" -> "Ask clarifying questions" [label="no"];
"Offer visual support\n(own message only)" -> "Ask clarifying questions";
"Ask clarifying questions" -> "Propose 2-3 approaches";
"Propose 2-3 approaches" -> "Present design sections";
"Present design sections" -> "User approves design?";
"User approves design?" -> "Present design sections" [label="no, revise"];
"User approves design?" -> "Write spec doc" [label="yes"];
"Write spec doc" -> "Spec self-review (subagent)";
"Spec self-review (subagent)" -> "User reviews spec?";
"User reviews spec?" -> "Write spec doc" [label="changes requested"];
"User reviews spec?" -> "Recommend pulse:exploring handoff" [label="approved"];
}
The terminal state is an approved spec.md plus .pulse/STATE.md update, with a recommendation to run pulse:exploring next. Do NOT invoke planning, validating,
or any execution skill by default. After brainstorming, the ONLY valid next step is pulse:exploring.
Before asking any question, understand what already exists:
.pulse/project-docs.json first when present, then read the listed project docs before relying on feature history alone.pulse/project-docs.json is absent, detect likely project docs (README, architecture, ADR, domain docs) and read the smallest relevant setBuild an internal picture first — it makes your clarifying questions concrete instead of generic.
Before asking detailed questions, assess whether the request is one feature or several:
One feature — scoped work with a clear boundary. Continue normally.
Multiple independent systems — e.g., "build a platform with auth, billing, and analytics." Flag this immediately:
"This covers [A], [B], and [C] — three independent systems. Each needs its own brainstorming session. Let's start with [most foundational]. I'll note the others for later."
Then brainstorm the first sub-system through the full flow. Each sub-system gets its own spec → exploring → planning → execution cycle.
Before detailed questioning, decide whether the request needs one brief step-back pass. This is not a new phase and not a replacement for sequential questioning. It is a short framing move to help you ask better questions.
Use it only when one of these is true:
If you use the move, do it once, briefly, before Phase 3:
Keep the output internal unless a short external framing statement will help the user align. Do not turn the step-back move into a mini-plan, a multi-question bundle, or an excuse to skip the structured question flow.
Example internal frame:
When upcoming questions involve layout, visual hierarchy, diagrams, flows, or side-by-side interface choices, offer visual support once before continuing.
Use this offer as its own message:
This offer MUST be its own message. Do NOT combine it with a clarifying question, a context summary, or a recommendation. Ask, wait, then continue."Some of this may be easier to evaluate if I show concrete options instead of only describing them in text. I can use inline previews or small mockups for the visual decision points. Want me to do that when it helps?"
How to decide:
How to present visual choices:
AskUserQuestion with preview for side-by-side concrete artifacts.AskUserQuestion, use that tool rather than asking a plain-text visual question.scripts/start-visual-server.sh --project-dir <repo-root>.url, tell the user the visual runtime is active, share the exact URL, tell them to open it in a browser, make their selection there, and return to the terminal after interacting.error or Node is unavailable, briefly tell the user the runtime could not be used, surface any useful retry hint, and continue with structured question-tool previews or text-only fallback if no question tool exists. Do NOT block the session on the runtime.state_dir/events on the next turn to pick up browser selections.Accepting visual support does NOT turn the whole session visual. Decide per question whether text or visuals are the better fit.
Rules:
AskUserQuestion → AskMeTool → another equivalent harness-native question toolQuestion patterns:
Examples:
Scope creep — when the user suggests something out of scope:
"[Feature X] is a new capability — that's its own work item. I'll note it as a deferred idea. Back to [current topic]: [return to question]"
Present 2–3 different approaches before committing to one:
Do NOT start designing until the user picks a direction.
Once the direction is clear, present the design:
Design for isolation:
Working in existing codebases:
After the user approves the design, write the spec:
Path: history/<feature-slug>/spec.md
The spec must include:
After writing the spec, spawn a subagent to review it:
You are a spec document reviewer. Verify this spec is complete and ready for planning.
Spec to review: history/<feature>/spec.md
What to check:
| Category | What to Look For |
|--------------|-----------------|
| Completeness | TODOs, placeholders, "TBD", incomplete sections |
| Consistency | Internal contradictions, conflicting requirements |
| Clarity | Requirements ambiguous enough to cause building the wrong thing |
| Scope | Focused enough for a single feature cycle |
| YAGNI | Unrequested features, over-engineering |
Calibration: Only flag issues that would cause real problems during planning.
Approve unless there are serious gaps.
Output:
Status: Approved | Issues Found
Issues (if any): [Section] — [specific issue] — [why it matters for planning]
Recommendations (advisory, do not block): [suggestions]
After the spec self-review passes:
"Spec written to
history/<feature>/spec.md. Please review it and let me know if you want any changes before we start locking implementation decisions."
Wait for the user's response. If they request changes: make them, re-run the self-review loop. Only proceed once the user approves.
After user spec approval:
Update .pulse/STATE.md:
Current: brainstorming complete for <feature>
Spec: history/<feature>/spec.md
Next: invoke pulse:exploring to lock implementation decisions
Present to user:
"Spec approved. Next step: run
pulse:exploringto extract implementation decisions (gray areas, scope boundaries, and locked choices) before planning begins."
Optional continue-now path:
pulse:exploring in the same session..pulse/STATE.md update + recommendation above.These are pulse:exploring's responsibilities — not yours:
CONTEXT.md (exploring does this)Brainstorming delivers a design spec. Exploring delivers locked decisions. Planning consumes both.
Stop immediately if you catch yourself doing any of these:
AskUserQuestion, AskMeTool, or another structured question tool is available"The user wants to move fast" Speed comes from clarity. A 10-minute design session prevents hours of planning rework caused by wrong assumptions baked into beads.
"I already know what to build" Your assumptions are hypotheses until the user validates them. Run Phase 3 and let the user confirm the direction.
"This is too small to document" The spec can be three sentences. But it MUST exist so exploring has a stable target.
"This is a visual topic, so every question should be a mockup" No. Use visuals only when seeing options will remove ambiguity. Goals, priorities, and constraints still belong in plain text.
references/spec-reviewer-prompt.md — subagent prompt for spec document reviewreferences/visual-support-guidance.md — when to use previews vs the advanced visual runtime during brainstorming