deep-clarification
Skill50 starsChanged 16 days agoMITView on GitHub
Ask hard clarifying questions, stress-test assumptions, and challenge a plan or design until ambiguity is resolved. Exhaustively walks each branch of a decision tree. Use when deep clarification is needed during spec creation, planning, triage, or any phase with significant uncertainty. Also use when the user says 'challenge this', 'stress-test this', 'probe this plan', or 'deep dive on requirements'. Do not use for simple yes/no confirmations, for architecture decisions (use ADRs after clarification), or when the user explicitly asks for brevity.
We split this skill into the rules it gives an agent
17 rules. About 0 are common, 16 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈16
Distinctive · estimate
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
- Distinctive: line 26
Before asking the first question, map the branches:
- Distinctive: line 37
Wait for the user's response: before proceeding to the next question
- Distinctive: line 38
Challenge vague answers: if the response is ambiguous, probe deeper ("What do you mean by 'flexible'?
- Distinctive: line 39
Cross-reference with code: if the user states how something works, verify against the codebase.
- Distinctive: line 43
Before asking the user a question, check if the answer is already in the codebase:
- Distinctive: line 57
Every branch of the decision tree has been explored and the user confirms shared understanding
- Very specific: line 66
If a term is resolved: update the glossary (via domain-glossary skill if available)
- Distinctive: line 67
If an architectural decision emerges: note it for later ADR creation (do not create during the session)
- Distinctive: line 68
If a requirement is clarified: note it for spec update
- Distinctive: line 93
Use these patterns to probe deeper:
- Distinctive: line 110
When the user explicitly asks to stop or move on
- Distinctive: line 116
Do not probe trivial decisions (formatting, naming conventions already established)
- Distinctive: line 117
Do not ask questions that can be answered by reading the codebase
- Distinctive: line 118
Do not batch questions: one at a time, wait for response
- Distinctive: line 119
Do not skip the summary: decisions made during the session must be captured
- Distinctive: line 120
Do not create ADRs or update specs during the session: capture notes and create afterward
- Distinctive: line 121
Do not continue probing after the user signals convergence ("that covers it", "let's move on")
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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
Deep Clarification
Principle
Premature convergence is the root cause of underspecified features. When uncertainty is high, exhaustive exploration of the decision space produces better artifacts than bounded clarification rounds.
When to Use
| Caller | Trigger |
devsquad.specify | Spec touches multiple bounded contexts, has high complexity rating, or user requests deep exploration |
devsquad.plan | High-impact design decisions with 2+ viable options and no clear winner |
devsquad.envision | Business context has competing objectives or unclear pain points |
debugging-recovery | Bug report is incomplete or ambiguous; need to build a complete reproduction |
| Any agent | User explicitly says "challenge this", "stress-test this", or "deep dive on requirements" |
Interview Protocol
1. Identify the decision tree
Before asking the first question, map the branches:
- What are the top-level decisions that need to be made?
- Which decisions depend on others? (resolve dependencies first)
- Which decisions can be answered by exploring the codebase instead of asking the user?
2. Walk each branch
For each decision point:
- State the question clearly: one question at a time
- Provide a recommended answer: based on codebase exploration, existing ADRs, or domain knowledge
- Wait for the user's response before proceeding to the next question
- Challenge vague answers: if the response is ambiguous, probe deeper ("What do you mean by 'flexible'? Can you give a concrete example?")
- Cross-reference with code: if the user states how something works, verify against the codebase. If there is a contradiction, surface it immediately.
3. Codebase-first resolution
Before asking the user a question, check if the answer is already in the codebase:
Can the codebase answer this question?
YES → State the finding: "I found that [X]. Is this still current?"
NO → Ask the userThis reduces unnecessary questions and grounds the conversation in reality.
4. Convergence criteria
The clarification session ends when ANY of the following are true:
- Every branch of the decision tree has been explored and the user confirms shared understanding
- The user explicitly asks to stop or move on ("that covers it", "let's move on")
- Three consecutive questions yield no new information (diminishing returns)
- The session exceeds 15 questions without convergence (suggest parking unresolved items and continuing later)
5. Document decisions inline
As decisions are made during the session, capture them immediately:
- If a term is resolved: update the glossary (via
domain-glossaryskill if available) - If an architectural decision emerges: note it for later ADR creation (do not create during the session)
- If a requirement is clarified: note it for spec update
Present a summary at the end using the reasoning skill format:
## Clarification Summary
### Decisions Made
| # | Decision | Justification | Confidence |
|---|----------|---------------|------------|
| 1 | [what was decided] | [why] | [High/Medium/Low] |
### Assumptions
- [assumption made during the session]
### Open Items
- [anything that could not be resolved and needs follow-up]
### Suggested Next Steps
- [ADR needed for X]
- [Spec update needed for Y]Challenging Techniques
Use these patterns to probe deeper:
| Technique | When to use | Example |
| Concrete scenario | Vague requirement | "Give me a specific example of when this would happen" |
| Edge case probe | Happy path only discussed | "What happens if [unusual input]? What about [concurrent access]?" |
| Contradiction surfacing | User states conflict with code/docs | "Your code does X, but you just said Y. Which is correct?" |
| Terminology sharpening | Overloaded or vague terms | "You said 'account'. Do you mean the billing entity or the login identity?" |
| Scale probe | No volume context | "How many of these do you expect? 10? 10,000? 10 million?" |
| Failure mode | Only success path discussed | "What should happen when this fails? Is partial failure acceptable?" |
| Boundary probe | Scope unclear | "Is [X] in scope or out of scope for this feature?" |
Auto-Clarity Exception
Temporarily pause the clarification session for:
- Security warnings that need immediate attention
- Irreversible action confirmations
- When the user explicitly asks to stop or move on
Resume after the exception is handled.
Anti-patterns
- Do not probe trivial decisions (formatting, naming conventions already established)
- Do not ask questions that can be answered by reading the codebase
- Do not batch questions: one at a time, wait for response
- Do not skip the summary: decisions made during the session must be captured
- Do not create ADRs or update specs during the session: capture notes and create afterward
- Do not continue probing after the user signals convergence ("that covers it", "let's move on")
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository26 other files it gives its agents.
- .github/copilot-instructions.mdCopilot instructions
- .github/plugins/devsquad/hooks/templates/.github/copilot-instructions.mdCopilot instructions
- adr-workflowSkill
- board-configSkill
- complexity-analysisSkill
- debugging-recoverySkill
- diagram-designSkill
- documentation-styleSkill
- domain-glossarySkill
- engineering-practicesSkill
- git-branchSkill
- git-commitSkill
- harness-learningsSkill
- init-configSkill
- init-docsSkill
- init-scaffoldSkill
- lsp-setupSkill
- next-taskSkill
- pull-requestSkill
- quality-gateSkill
- reasoningSkill
- security-reviewSkill
- test-disciplineSkill
- triage-workflowSkill
- work-item-creationSkill
- work-item-workflowSkill
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.

