agentsclimarketplace

Clarify

Skill otar/clarify-skill/skills/clarify

Interrogate the request with structured clarifying questions (via the AskUserQuestion tool) in rounds until the task is unambiguous, before producing any code, research, or other output. Leans toward asking. Manually invoked only via slash command. Useful when the cost of getting the work wrong is higher than the cost of a few extra messages. Applies to coding, research, design, writing, refactoring, and analysis.From its SKILL.md

Install
npx -y skills add otar/clarify-skill --skill clarify

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.1 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

Clarify

The user invoked this skill on purpose: they want to be questioned. So push. Ask structured questions, in rounds, until you can describe the task end-to-end without hedging. Then do the work.

Read the full request first

Before asking anything, sort what's in front of you:

  1. Already stated (constraints, names, files, versions, formats). Never ask about these — re-asking something in the request tells the user you didn't read it. That's carelessness, not thoroughness.
  2. Inferable from prior conversation, the codebase, attached files, project conventions, or the user's stack. Don't silently assume these. Surface the inference as a question with your best guess as the recommended default — let the user confirm or override in one click.
  3. Genuinely ambiguous: choices that change the output materially and that you can't derive from anything available. Always ask.

The shift from a normal request: you ask about category 2 as well as category 3. When in doubt, ask.

Default to asking

Bias toward asking. A borderline ambiguity is worth a question — the user opted into this skill precisely so you'd surface it rather than guess. Err toward one more round. The only things you skip are category 1 (already stated) and anything genuinely obvious from context. Don't proceed on an unconfirmed assumption that would change the output.

Ask with the AskUserQuestion tool

Make AskUserQuestion your primary mechanism. It renders clickable options, so the user answers in one tap instead of typing.

  • 1–4 questions per round, each with 2–4 options. Pick questions whose answers would actually change the work. "CLI or long-running service?" qualifies. "Tabs or spaces?" doesn't.
  • Lead with your inferred/sensible default as the first option, labeled "(Recommended)". "Redis (Recommended)" beats an open-ended "Which store?". This is how you confirm category-2 inferences without leaving them open.
  • Give each option a short description naming the tradeoff, so the user can pick with context instead of guessing what the label means.
  • Use multiSelect: true when the choices aren't mutually exclusive (e.g. "Which routes — auth, public API, admin?").
  • Keep headers short (the tool caps them at ~12 chars).
  • The tool adds an "Other" option automatically — that's the escape hatch for open-ended answers, which is what lets you keep the tool primary even for fuzzy questions.

After the user answers, look at what's still unclear and ask the next round.

Fallback to plain text only when a question genuinely can't be framed as 2–4 options (e.g. "what exact numeric limits?"). Even then, prefer offering "Propose defaults" vs "I'll specify" as options first.

Worth asking about

Scope (what's in, what's out, what's a non-goal). Inputs and outputs (format, source, destination, edge cases). Constraints (performance, compatibility, dependencies, deployment target). Edge case behavior (empty input, failures, concurrency, idempotency). Integration (where this lives, what it calls, what calls it). Definition of done (how the user verifies it works).

Skip

Only skip what's truly settled: anything stated in the request, and style or formatting that's already obvious from the existing code (naming, tabs vs spaces). Everything else is fair game.

When to stop

Stop when you can describe what you'd produce end-to-end without an internal "...depending on X, I'd do Y or Z." If you'd still hedge, ask about X. When any hedge remains, err toward another round rather than proceeding.

One round may be enough for a fairly specific request; vague ones often take three or four. Match depth to actual ambiguity, but when unsure, ask.

Tone

Keep questions short. Lead with the recommended default so answering is fast. Don't manufacture rounds once the task is genuinely unambiguous — pushing means resolving real ambiguity, not padding.

Example

User: "Use the clarify skill. I want to add rate limiting to my Laravel API."

Round 1 — call AskUserQuestion with:

  • Scope (multiSelect: true): which routes get limited? Options: All routes (Recommended), Auth endpoints only, Public API only, Specific controllers.
  • Key: what is a request counted against? Options: Per-IP (Recommended), Per-user (Sanctum), Per-API-key, Mix of IP + user.
  • Storage: where does the counter live? Options: Redis (Recommended) — you already use it for cache, Database, In-memory (single server only).
  • Limits: do you have numbers in mind? Options: Propose sensible defaults (Recommended), I'll specify exact limits.

If anything's still unclear after the answers, ask another round; otherwise proceed.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,537. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.