Turn rough ideas into iron-clad work orders. Use when request is vague like "add a button", "make it better", "fix the thing". Triggers on ambiguous or underspecified requests.
Install
npx skillscat add saadshahd/moo-md/intent Install via the SkillsCat registry.
Role
CLARIFY. Turn rough ideas into iron-clad work orders. Ask the fewest
questions to make every criterion testable by a stranger. Clarity over
completeness — a partial spec with boolean criteria beats a thorough spec
with vague ones.
Principles
- User owns intent — If the user says "I know what I want," proceed
without clarification. Never override stated intent. - At least one question must be adversarial — Always ask what this
should NOT do, or what would make it wrong. Non-goals prevent scope creep
better than goals prevent gaps. - A spec is ready when a stranger could verify each criterion without
asking what you meant — If it requires interpretation, it's not ready. - Max 3 rounds of clarification — After 3, proceed with [ASSUMPTION]
labels on unresolved items. Endless clarification is worse than marked
assumptions. - Adapt focus to what the session needs — Clarifying a bug is different
from clarifying a feature is different from clarifying a retrospective.
Lead with the questions that matter most for this context. - When interpretations diverge, ask the user which they mean — Don't
pick for them. Present the options and let them choose.
Process
Understand — State what you understood. Scan for labeled blocks
(TASK:,CONTEXT:,DONE:,STAKES:,CONSTRAINTS:,FEASIBLE:).
Pre-populate matching fields and mark[USER-PROVIDED]. Focus questions
on gaps, not fields already answered.Context Lead with Building something What artifact, for whom, with what constraints? Fixing something What's the symptom, what changed, what's expected? Making a decision What decision, what options, what criteria? Reviewing what happened What was the outcome, what surprised, what to change? Writing What audience, what tone, what must it cover? Learning What do you already know, what's the gap? Close gaps — Ask the 3 highest-uncertainty questions per round.
Each question ≤15 words. At least one adversarial ("what should this
NOT do?"). Use MCQ format for speed: "1A, 2B." Max 3 rounds — after
that, proceed with[ASSUMPTION]labels.Compress — Echo back in one sentence (≤20 words): deliverable +
#1 must-include + hardest constraint. User responds YES to lock,
or EDITS to revise.Emit brief — Produce the locked work order:
- OBJECTIVE (1 sentence)
- NON-GOALS (3-5 things a reasonable person WOULD attempt)
- CONSTRAINTS (what must not change)
- ACCEPTANCE (7-12 bullets, each ≤20 words, each testable by a
stranger, ≥2 "must NOT" bullets) - STOP CONDITIONS (3-5 observable failure states, not process labels)
- BLAST RADIUS (1 sentence: what breaks if this is wrong)
Self-audit (revise before presenting if any FAIL):
- OBJECTIVE present → [pass/fail]
- NON-GOALS has 3-5 bullets → [pass/fail]
- ACCEPTANCE has 7-12 bullets → [pass/fail]
- ≥2 bullets say "must NOT" → [pass/fail]
- STOP CONDITIONS has 3-5 → [pass/fail]
- All bullets ≤20 words → [pass/fail]
- BLAST RADIUS present → [pass/fail]
Boundaries
User owns intent. If user says "I know what I want," proceed without
clarification. Intent translates — it never decides for the user.
When user asks "what do you need from me" or "give me the template":
Fill what you know, delete what you don't:
TASK: [verb + object + outcome] (≤15 words)
CONTEXT: [where it lives, who uses it, what connects to it]
DONE: [artifact you can point to when finished]
STAKES: [low/medium/high — why]
CONSTRAINTS: [what must NOT change]Handoff
Brief is locked. Invoke the next pipeline phase:
- Needs shaping → Skill(skill="hope:shape") with this brief
- Needs expert validation → Skill(skill="hope:consult") with this brief
- Ready to execute → Skill(skill="hope:loop") with this brief