clarifying-intent
Skill1 starsChanged 3 months agoMITView on GitHub
Settles ambiguous user intent or an unanswered decision before work proceeds. Use when a request has several plausible readings that change the work, or when a pending decision receives praise, constraints, silence, or a partial reply instead of an explicit choice or cancellation, even if nobody asks for clarification. Skip inputs another skill's own procedure asks for.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- working-from-a-ticketSkill
- writing-specsSkill
- dispatching-parallel-agentsSkill
- handoffSkill
- mapping-the-codebaseSkill
- prototypingSkill
- using-git-worktreesSkill
- using-sdlc-skillsSkill
- viewing-artifactsSkill
- writing-skillsSkill
- yagniSkill
- finishing-a-branchSkill
- release-readinessSkill
- architecture-decisionsSkill
- coding-standardsSkill
- data-modelSkill
- migration-strategySkill
- reviewing-plansSkill
- system-architectureSkill
- ui-ux-designSkill
- writing-plansSkill
- adding-observabilitySkill
- changing-a-live-schemaSkill
- executing-plansSkill
- rollout-controlsSkill
- subagent-driven-developmentSkill
- test-driven-developmentSkill
- complexity-auditSkill
- containing-an-incidentSkill
- debuggingSkill
- deprecating-an-apiSkill
- diagnosing-a-sessionSkill
- eliminating-correctionsSkill
- large-scale-changesSkill
- post-mortemSkill
- refactor-architectureSkill
- brainstormingSkill
- define-goalsSkill
- feasibility-checkSkill
- scopingSkill
- receiving-code-reviewSkill
- requesting-code-reviewSkill
- reviewing-a-prSkill
- security-auditsSkill
- verification-before-completionSkill
- verification-strategySkill
- visual-ui-verificationSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 13 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 18
Skip: when the current phase skill owns the uncertainty: new-initiative outcomes and measures belong to define-goals.
- Distinctive: line 23
Skip: when the task is trivial or already fully specified.
- Distinctive: line 24
Skip: when the task is clear and what blocks it is an obstacle, not a decision: a failing command, an error, a missing piece you can find …
- Distinctive: line 34
Read the request. Search the codebase and context for what is already decided: conventions, similar features, libraries in use, naming.
- Distinctive: line 36
Never ask what the code already answers.
- Distinctive: line 37
If a caller invoked this one to settle a decision it named, keep that decision and the step waiting on it.
- Distinctive: line 41
If the answer brings new intent that changes that scope, continue below.
- Distinctive: line 57
Wait for a direct answer before the next question.
- Distinctive: line 59
Use each answer to prune later questions.
- Distinctive: line 61
Stop when another question would not change the outcome and every live decision in a category named under *When to use* has a direct answer.
- Very specific: line 72
Write it to .sdlc-skills/briefs/{{YYYY-MM-DD}}-{{topic}}.md or the user-set path, preserving approved sections around it.
- Distinctive: line 92
Only approval moves the work past the precondition this brief satisfies.
- Distinctive: line 102
Only an explicit answer, a named option, or a standing default the user granted for this kind of decision closes it.
- Distinctive: line 118
Write supplied facts or constraints into it only when the authority you hold now covers changing it.
- Distinctive: line 126
When a successor is approved, list everything bound to its predecessor and mark each binding invalid until its owner validates it again.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Clarifying Intent
Close the gap between what was asked and what is actually wanted, before you build on it. When a skill already selected owns asking for the inputs still open, leave that to it.
When to use
- A request is vague ("add auth", "make it faster") or has more than one reasonable reading.
- Assumptions are piling up before a plan or feature.
- A named decision still pending received information but no answer that settles it.
- Skip when the current phase skill owns the uncertainty: new-initiative
outcomes and measures belong to
define-goals; open interface flow, state, hierarchy, accessibility, and visual direction belong toui-ux-design. A missing product requirement that blocks either procedure is still a genuine clarification or specification gap. - Skip when the task is trivial or already fully specified.
- Skip when the task is clear and what blocks it is an obstacle, not a decision: a failing command, an error, a missing piece you can find or build. Fix it and continue to completion.
- Skipping never permits a silent decision. State an assumption that falls in none of the categories that follow, with its reason, so the user can redirect. Product, scope, architecture, execution-mode, destructive, or external-state choices stay pending until the user decides them directly.
Step 1: Scan before you ask
- Read the request. Search the codebase and context for what is already decided: conventions, similar features, libraries in use, naming.
- Never ask what the code already answers.
- If a caller invoked this one to settle a decision it named, keep that decision and the step waiting on it. When a direct answer settles it without changing the approved scope, record the answer and return to that step; do not write another alignment brief or run another approval round. If the answer brings new intent that changes that scope, continue below.
Step 2: Ask one question at a time
For each open decision, send one short message and end the turn:
Found: {{what the code or context already settles}} Decision: {{the exact artifact or operation it controls}} Recommendation: {{default}} — {{one line of reasoning}} 1. {{option}} 2. {{option}} 3. Something else- Wait for a direct answer before the next question. See What closes a decision.
- Use each answer to prune later questions. Ask only what could change the outcome; a caller's decision, once settled, returns under Step 1.3.
- Stop when another question would not change the outcome and every live decision in a category named under When to use has a direct answer. A general "go" answers no choice it does not name.
Step 3: Write the brief and present it
- Fill
assets/brief-template.mdafter Step 2.4's stop condition holds: goal, decisions with their reasons, non-goals, open risks, the brief's identity (a hash of its own text; the template says how), and the fields that name its decision record (the ledger: add to it, never rewrite it, and keep it outside the brief). A brief, not a spec. - Write it to
.sdlc-skills/briefs/{{YYYY-MM-DD}}-{{topic}}.mdor the user-set path, preserving approved sections around it. If the brief is tiny, write it inline beside its decision record instead. Present and end the turn:
Brief {{path}} — version {{identity (per template)}} Goal: {{one line}} Decisions: {{n}} Non-goals: {{n}} Open risks: {{n}} 1. Approve 2. Request changes 3. Reject 4. Cancel Recommendation: {{option}} — {{one sentence}}.- Record its state (pending, changes requested, approved, rejected, cancelled, or superseded) in that record outside the brief. Never edit the proposed brief to show its state.
- Only approval moves the work past the precondition this brief satisfies. Return to the skill that invoked this one; do not assume planning follows.
What closes a decision
Information is not authorization. Praise, agreement with the reasoning, new constraints, a partial answer, silence, or discussion of a neighboring choice updates the context but leaves the question open. Incorporate it, say the decision is still pending, and re-ask.
Only an explicit answer, a named option, or a standing default the user granted for this kind of decision closes it. Approval covers only the version shown and the next step named with it; a revision to any decision, non-goal, or named next step reopens it. Changes requested, rejection, cancellation, or abandonment closes that exact decision without approving anything. Supersession requires an approved replacement.
The question offered three places to keep session data and recommended the second. The reply: "Nice, the recommendation makes sense. Also, it has to work offline." Nothing was chosen: that is agreement with the reasoning plus a new constraint. Fold "works offline" into Found, say the decision is still pending, and re-ask. "Sounds good" to a numbered question closes no more than this did.
When an artifact carries the pending decision
Write supplied facts or constraints into it only when the
authority you hold now covers changing it. While its identity is not yet
issued, update the draft. Never edit an artifact once its identity is issued,
whether its decision is pending or closed: every change to what downstream
work relies on from it creates a new proposed successor that names its
predecessor, with a per-ID list of what was added / changed / removed /
preserved, and removing an ID needs its owner's approval.
When a successor is approved, list everything bound to its predecessor and mark each binding invalid until its owner validates it again. Record its state (approved or accepted, rejected, cancelled, superseded) outside the artifact, with evidence of the exact version each state applies to. Without authority to change it, present the proposed update and keep both the artifact and the decision pending.
The user's answer in this conversation is the authority for the current
transition. An Approval: field saved in a document is only a process record:
in a fresh context it cannot prove itself. Require the live answer, or a record
the project or harness issued that ties the answer to the user and to the
exact version; otherwise put the decision to the user again.
Gotchas
- An
Approval:line copied forward into a successor draft looks like proof of approval, but it belongs to the predecessor's version; in a fresh context it approves nothing about the successor.
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
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.

