agentleFS
ronaknnathanironaknnathani/relay/skills/clarify/SKILL.md

clarify

Skill43 starsChanged 4 months agoMITView on GitHub

Turn a vague or underspecified task into a crisp requirements + testable acceptance-criteria document by closing the gap between what was asked and what is actually wanted. Use at the start of any non-trivial task before planning, whenever the goal is fuzzy ("make it faster", "make it more robust", "add validation"), or whenever you cannot predict how the user would judge "done". Its output feeds `plan`. (For tidying existing code, use `simplify`, not clarify.)

80 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use quieter, arrange and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • HK-hubSkill

    quieter

    Tones down visually aggressive or overstimulating designs, reducing intensity while preserving quality. Use when the user mentions too bold, too loud, overwhelming, aggressive, garish, or wants a calmer, more refined aesthetic.

    Also in 29 projects that use this

  • HK-hubSkill

    arrange

    Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.

    Also in 14 projects that use this

  • zwy123zwySkill

    normalize

    将用户随意输入的提示词规范化为结构清晰、便于大模型执行的标准化提示词。适用于需要整理、统一提示词格式时调用。

    Also in 19 projects that use this

  • owshq-mecSkill

    layout

    Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.

    Also in 8 projects that use this

  • +8 more from HK-hub

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 77 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Resolve from the codebase before asking: If a question's answer is discoverable in the code — how a thing currently works, what the …

    line 16
  2. Distinctive:

    Form an explicit hypothesis of the whole task: Write down, for yourself, the outcome you think they want and the success criteria you'd …

    line 20
  3. Distinctive:

    Apply the stop condition (~95% confidence): Stop interviewing when you can predict how the user would react to your next three questions — …

    line 45
  4. Distinctive:

    If the user truly defers, record it as a resolved assumption with your chosen default and the reason — so the artifact still reads as a …

    line 60
  5. Distinctive:

    Every Success criterion must be checkable by a test, a command, or an unambiguous observation — never "works well" or "is robust".

    line 77

“Common” is measured: kept by at least 6 in 10 of the 77 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Clarify

Produce a requirements + acceptance-criteria artifact that pins down what success looks like, so a planner never has to guess. The bar: every requirement is measurable and every acceptance criterion is checkable — you could hand the artifact to someone else and they'd build the right thing. This is a peer phase to plan, not its parent: it grounds itself in the code via explore, then hands its artifact to plan. It does not design the implementation and does not invoke plan.

Process

  1. Resolve from the codebase before asking. If a question's answer is discoverable in the code — how a thing currently works, what the existing convention is, where an integration point lives — call explore (dispatch a sub-agent when available; otherwise do it inline) and find it. Only ask the user what you genuinely cannot determine. Bothering them with a discoverable fact erodes trust.
  2. Form an explicit hypothesis of the whole task. Write down, for yourself, the outcome you think they want and the success criteria you'd accept. This is what you'll test against the stop condition — and it makes your questions sharper.
  3. Walk the coverage checklist to find the real gaps. Probe each dimension; skip the ones the code or the request already settle:
    • Edge cases — empty/missing/malformed input, boundaries, concurrency, large scale.
    • Error handling — what should fail loudly, what should degrade, what the user sees on failure.
    • Integration points — callers, callees, schemas, events, and contracts this touches.
    • Scope boundaries — what is explicitly in vs. out; where this task ends.
    • Design preferences — conventions, libraries, patterns the user wants honored or avoided.
    • Backward compatibility — existing data, APIs, configs, behavior that must keep working.
    • Performance needs — latency/throughput/memory targets, and on which path.
  4. Interview one question at a time. Asking several at once is bewildering — never dump a list. Each question carries your recommended default AND your current hypothesis, made visible:

    Q: Should the cache invalidate on write, or expire on a TTL? GUESS: TTL — the call site tolerates staleness and write-through adds lock contention here.

    Lead with the highest-leverage unknown (the one whose answer most changes the plan). Ask the recommended default as a yes/no when you can, so the user can confirm with a word.

  5. Reframe every vague requirement into a measurable one. A requirement you can't test isn't a requirement. Convert runtime words into numbers and conditions:
    • "make it faster" → "p95 < 200ms on the cold path under N concurrent requests"
    • "handle errors gracefully" → "on a 5xx from X, retry twice then surface a typed error to the caller"
    • "clean up the API" → "remove deprecated field Y; no caller in the repo references it"
  6. Apply the stop condition (~95% confidence). Stop interviewing when you can predict how the user would react to your next three questions — i.e. their answers wouldn't change the artifact. Don't pad with low-value questions once you're there; don't stop early while a checklist dimension is still genuinely open.
  7. Write the artifact in the schema below and hand it to plan. List anything still unresolved under Open assumptions with the default you're proceeding on — never silently pick.

Reject vague delegation

"Sounds good", "whatever you think", "you decide" is not a sign-off — it's an unanswered question. Do not bank it as confidence. Restate your concrete recommendation and get an explicit yes:

You said "whatever you think." To be explicit: I'll expire on a 60s TTL and not invalidate on write. Good to lock that in, or do you want write-through? (Y/n)

If the user truly defers, record it as a resolved assumption with your chosen default and the reason — so the artifact still reads as a decision, not a shrug.

Output schema (the artifact)

# Clarified: <task>
## Outcome            — the one-sentence result the user actually wants
## Primary user       — who consumes this and in what workflow
## Why now            — the trigger / pain motivating it (1–2 lines; omit if there's no clear one)
## Success criteria    — testable, checkable list; each item a verifiable assertion
  - [ ] <measurable criterion, e.g. "p95 < 200ms on cold path">
## Constraints        — must-honor conventions, libraries, compat, perf budgets
## Out of scope       — explicitly excluded, so plan doesn't wander
## Open assumptions   — unresolved items + the default each proceeds on, and why

Every Success criterion must be checkable by a test, a command, or an unambiguous observation — never "works well" or "is robust". If you can't state how you'd verify it, it isn't done. State each as an observable outcome (what must be true), never the mechanism that achieves it — "on a 5xx, the caller sees a typed error within 2 retries" is an outcome; how to implement the retry belongs to plan. When a measurable reframe starts naming structure or an algorithm, you've crossed into design; pull back to the outcome.

Red flags

  • Asking the user something explore could have answered from the codebase.
  • Dumping several questions at once instead of one at a time.
  • A question without a visible GUESS and a recommended default.
  • A success criterion that isn't measurable ("fast", "clean", "robust", "user-friendly").
  • Banking "sounds good" / "whatever you think" as confidence instead of restating and confirming.
  • Silently choosing when uncertain instead of recording an Open assumption with its default.
  • Designing the implementation, or invoking plan — both are out of scope for clarify.
  • Interviewing past the stop condition, or stopping while a checklist dimension is still open.

Verification checklist

  • Every discoverable fact was resolved via explore, not asked of the user.
  • Questions were asked one at a time, each with a visible GUESS and a recommended default.
  • The coverage checklist was walked; each dimension is settled or listed under Open assumptions.
  • Every Success criterion is testable/checkable — no vague adjectives.
  • No vague delegation was banked as confidence; deferrals are recorded as resolved assumptions.
  • The artifact follows the schema and is self-contained enough for plan to consume directly.
  • The skill stayed in scope: no implementation design, no plan invocation.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.