Use this for medium/high-complexity creative work - creating features, building components, adding functionality, or modifying behavior. For simple tasks, use ask-questions-if-underspecified first. Prefer request_user_input for requirement clarification and confirmation.
Help turn ideas into fully formed designs and specs through structured collaborative dialogue using the question tool for deeper exploration.
Start by understanding the current project context, then systematically clarify requirements and design intent. Use the question tool to gather batches of related questions, deepening understanding before moving to design phases. Once you understand what you're building, present the design in small sections (120-250 words), checking after each section whether it looks right so far.
If the current runtime supports interactive tools, pick any available tool suitable for collecting user input — common examples include AskUserQuestion, ask_user, request_user_input, question, and similar. Choose whichever one works; there is no required order. If none are available, ask the same questions directly in chat (plain text).
When using AskUserQuestion, the call must follow this exact structure (missing questions array is the most common failure):
{
"questions": [
{
"question": "Full question text ending with a question mark?",
"header": "Short label",
"multiSelect": false,
"options": [
{ "label": "Option A", "description": "What this means" },
{ "label": "Option B", "description": "What this means" }
]
}
]
}
Rules: questions is a required array (wrap even a single question); header ≤ 12 chars; options needs 2–4 items each with label + description; multiSelect must be a boolean. If the tool call fails with a parameter error, fall back to asking the same questions in plain text — do not abort the skill.
Understanding the idea:
⛔ Gate: Confirm understanding before proceeding
Do not move to design or implementation until you can answer all three:
"Confirmed" means you can write a 2-sentence summary that the user would agree is correct — not just that they answered your questions. If their answers are vague ("make it better", "just make it work"), that counts as unclear — ask a follow-up that rephrases the question more concretely. Do not guess or assume.
If two rounds of questions haven't resolved one of these three, surface the ambiguity explicitly: "I'm still unclear on [X]. Without knowing this, the design could go in very different directions. Can you give me a concrete example?"
Check for contradictions before exploring approaches: Before proposing anything, scan the answers for internal conflicts — e.g., "minimal scope" but a constraint that forces large changes, or "fast delivery" but a quality bar that requires extensive testing. Surface any conflict explicitly: "Your answers point in two directions on [X] — which takes priority?" Resolve contradictions before moving on; don't paper over them in the design.
Exploring approaches:
Presenting the design:
Documentation (if user requests):
docs/plans/YYYY-MM-DD-<topic>-design.mdImplementation (if continuing):
When using the question tool, structure questions like this:
1) What is the primary user goal?
a) [goal A] (default)
b) [goal B]
c) [goal C]
2) Should this integrate with [existing system]?
a) Yes, tight integration (default)
b) Yes, loose integration
c) No, standalone
d) Not sure - use default
3) Performance priority?
a) Speed is critical
b) Balanced (default)
c) Not a concern
Reply: defaults (or 1a 2b 3c)
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer