Skip to main content

intent-discovery

Auto-load

Attaches itself automatically when a prompt matches.

Clarify user intent before writing code on vague or ambiguous prompts. Use when the user's request is broad, abstract, contradictory, or names multiple disconnected features. Trigger words include "build me an app", "make something", "platform", "idea", "not sure what I want", "anything cool", or a one-liner request with no concrete deliverable. NOT for prompts that clearly describe one concrete website or feature.

Scaffolds

next
react
vanilla

Source

Adapted from obra/superpowers (adapted — spec-doc + writing-plans handoff stripped)

Instructions

The full instruction set the agent receives when this skill is active.

Intent Discovery

Some requests are clear: "build a landing page for a coffee shop with hours and menu" — start building. Others are vague, contradictory, or describe an entire SaaS in one sentence. For those, ask one targeted question before writing code.

When this fires

  • Request is < 10 words and abstract ("build an app", "make a site")
  • Request names multiple independent products in one breath ("a platform with chat, billing, file storage, and analytics")
  • Request contradicts itself ("minimal landing page with carousel, video hero, animated features, and pricing tiers")
  • Constraints are missing for a choice that matters (target audience, scaffold, brand, page count)

When this does NOT fire

  • Prompt is concrete ("build a personal portfolio site for a graphic designer with about, work, contact")
  • User has already answered in the prompt ("here's our brand kit and three pages of content")
  • It's a follow-up modification to an existing build
  • The work would take <30 lines either way — just build both options and let the user steer

The Process

Step 1 — Scope check (silently, in your head)

If this request names more than one independent subsystem, flag it.

Example: "Build a marketplace with vendor accounts, product listings, search, checkout, reviews, and an admin dashboard."

That's 5 products. Don't try to ship all of them. Instead, surface the decomposition:

"This is large — five sub-systems. Want me to start with the vendor account flow, or the product browse experience? We can build them one at a time."

Step 2 — One question, multiple choice when possible

If the scope is right but the design is ambiguous, ask one question. Multiple choice beats open-ended.

"For the dashboard tone, which fits better?

  1. Clinical — dense data, low chrome (think Linear, Datadog)
  2. Friendly — soft colors, generous spacing (think Notion, Stripe)
  3. Bold — strong accents, opinionated typography (think Vercel, Sentry)"

Don't:

  • Ask 5 questions in one message
  • Ask open-ended when you can offer choices
  • Stall on details that the user will obviously refine on iteration

Step 3 — Lead with your recommendation, then options

If you have a clear default, say so:

"I'd recommend Option 2 (friendly) — it matches the audience you described. Want me to go that direction, or one of the others?"

This lets the user nod once instead of deliberating.

Step 4 — Anti-pattern: "this is too simple to need a design"

Don't over-apply. A todo app does NOT need a design phase. The bar for this skill firing is multiple disconnected sub-systems OR a contradiction that cannot be silently resolved. Not "the prompt is short."

Examples

PromptFire?Why
"Build me an app"YESVague enough that any answer is a wild guess
"Build a SaaS with auth, billing, dashboard, and a chat"YES4 independent products — decompose
"Make a portfolio for a graphic designer"NOConcrete enough; design choices can be inferred or iterated
"Coffee shop landing page"NOTrivial scope, just build it
"Build it like Stripe but for dogs"YESOne concrete reference but no target product — clarify what "it" is
"Add a contact form to my landing page"NOConcrete modification, just build

Output

After resolving the ambiguity, restate the plan in 1-2 sentences before writing code:

"Got it — I'll build a friendly dashboard with the user list as the focal panel and stat cards above. Sound right?"

Then build. Don't loop forever in clarification mode — one round of questions is the cap.

See also: [[frontend-design]], [[evidence-before-claim]].

intent-discovery skill — Codebase