agentsclimarketplace

Clarify

Skill OutlineDriven/odin-claude-plugin/skills/clarify

Scan a request, document, or conversation for ambiguities, undefined terms, implicit assumptions, and unstated boundaries, then surface them as a certainty-tiered findings report with recommended defaults. Use when the user says "clarify", "what is ambiguous here", "find the gaps in this spec", "what am I assuming", or when a prompt or spec reads as under-specified before planning.From its SKILL.md

Install
npx -y skills add OutlineDriven/odin-claude-plugin --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

  • skips confirmationTells the agent to proceed without asking first, 2 times: "locks unless the user overrides it" and 1 more.

SKILL.md

3.8 KB, 790 tokens by cl100k_base, as published. Nobody here has run it

Clarify

Detect ambiguity before anyone acts on it. clarify scans a target — the user's request, a pasted document, or the conversation so far — and returns a structured findings report of every ambiguity, undefined term, implicit assumption, and unstated boundary it finds, each tagged with a certainty tier and a recommended default. It detects first and asks second; it is not a question-batcher.

Target

The target is, in order of precedence: an explicit argument (/clarify <text-or-path>), the most recent user request if it reads as a spec or task, or the open conversation context if no single request is in scope. If no target is identifiable after one read, stop and ask one question naming what to scan; do not scan nothing.

Method

  1. Pre-scan facts. Before surfacing anything to the user, resolve every ambiguity that is actually an environmental or codebase fact by looking it up with a subagent or tool (grep, glob, read, lsp) — never ask the user for something the repo can answer. A resolved fact is recorded as tier auto, reported compactly with its basis, and never becomes a question.

  2. Classify the rest by certainty tier. Assign every finding exactly one tier:

    • auto — an unambiguous project convention resolves it; record the resolution and basis, then proceed.
    • gated — a reasonable default exists; surface it as a recommendation that locks unless the user overrides it.
    • manual — evidence cannot settle genuine intent; surface a non-locking recommendation based on the least irreversible standard choice, then ask.
    • fyi — worth noting, not worth blocking on; list it, do not ask.
  3. Emit the findings report. Output one block per finding with fields: id, quote (the exact ambiguous span), tier, recommendation (the proposed resolution, or for fyi), and basis (the fact or convention that supports it). Group findings by tier, manual last. The report is the deliverable; the user overrides only the gated/manual rows they disagree with.

  4. Ask only the manual tier. Fire the manual findings as questions using the ask tool, one single-select question per finding with its non-locking recommendation marked, at most four per fire. Follow the current AskUserQuestion contract in skills/askme/SKILL.md. If there are zero manual findings, ask nothing — the report alone is the result.

  5. Route resolved terms. Any gated/manual finding the user settles that introduces a project-specific term is recorded as a CONCEPTS.md candidate and handed to autolearn's concept-capture mode; clarify routes the candidate, it does not write CONCEPTS.md itself (autolearn writes that surface, shared with compound as a second legitimate writer).

Completion

clarify is done when both hold: (a) zero manual findings remain open — each is answered or discharged as a non-issue with a one-line reason, so every ambiguity is resolved or proven irrelevant; and (b) the finding set is MECE — no two findings ask the same thing and none overlaps another. Re-scan once after the user's overrides; stop when a re-scan adds no new manual finding.

Machine-readable output

On explicit request for structured output, emit the findings as a fenced clarify-findings/v1 block containing a YAML list of the per-finding fields above. In a plain interactive run, emit only the human-readable grouped report.

What ships with it

Read from the repository

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

Gives 0 of the 12 instructions most docs writing skills give in 790 tokens

Counted across 1,951 of the 3,904 authors here whose files we hold, read 2026-09-06

  • Use third-person for skill descriptionsin 54 of 1951, across 35 files
  • Start descriptions with Use whenin 43 of 1951, across 29 files
  • Run baseline scenarios before writing any skillin 40 of 1951, across 26 files
  • Use active voicein 40 of 1951, across 36 files
  • Map file responsibilities before defining tasksin 36 of 1951, across 29 files
  • Use checkbox syntax for tracking stepsin 35 of 1951, across 27 files
  • Ask one question at a timein 35 of 1951
  • Offer execution options after saving the planin 33 of 1951, across 24 files
  • Include complete code in every stepin 33 of 1951, across 27 files
  • Design units with clear boundaries and interfacesin 31 of 1951, across 23 files
  • Announce the skill usage at the startin 30 of 1951
  • Verify agent compliance after adding the skillin 29 of 1951, across 17 files

Said here and by no other author read

  • resolve environmental facts using tools
  • assign certainty tier to each finding
  • group findings by certainty tier
  • propose defaults for gated and manual findings
  • ask user only for manual tier findings
  • route settled terms to concept capture

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. 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.