agentleFS
MicrosoftKnown publishermicrosoft/devsquad-copilot/.github/plugins/devsquad/skills/deep-clarification/SKILL.md

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
  1. Distinctive:

    Before asking the first question, map the branches:

    line 26
  2. Distinctive:

    Wait for the user's response: before proceeding to the next question

    line 37
  3. Distinctive:

    Challenge vague answers: if the response is ambiguous, probe deeper ("What do you mean by 'flexible'?

    line 38
  4. Distinctive:

    Cross-reference with code: if the user states how something works, verify against the codebase.

    line 39
  5. Distinctive:

    Before asking the user a question, check if the answer is already in the codebase:

    line 43
  6. Distinctive:

    Every branch of the decision tree has been explored and the user confirms shared understanding

    line 57
  7. Very specific:

    If a term is resolved: update the glossary (via domain-glossary skill if available)

    line 66
  8. Distinctive:

    If an architectural decision emerges: note it for later ADR creation (do not create during the session)

    line 67
  9. Distinctive:

    If a requirement is clarified: note it for spec update

    line 68
  10. Distinctive:

    Use these patterns to probe deeper:

    line 93
  11. Distinctive:

    When the user explicitly asks to stop or move on

    line 110
  12. Distinctive:

    Do not probe trivial decisions (formatting, naming conventions already established)

    line 116
  13. Distinctive:

    Do not ask questions that can be answered by reading the codebase

    line 117
  14. Distinctive:

    Do not batch questions: one at a time, wait for response

    line 118
  15. Distinctive:

    Do not skip the summary: decisions made during the session must be captured

    line 119
  16. Distinctive:

    Do not create ADRs or update specs during the session: capture notes and create afterward

    line 120
  17. Distinctive:

    Do not continue probing after the user signals convergence ("that covers it", "let's move on")

    line 121

≈ “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.

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

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

CallerTrigger
devsquad.specifySpec touches multiple bounded contexts, has high complexity rating, or user requests deep exploration
devsquad.planHigh-impact design decisions with 2+ viable options and no clear winner
devsquad.envisionBusiness context has competing objectives or unclear pain points
debugging-recoveryBug report is incomplete or ambiguous; need to build a complete reproduction
Any agentUser 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:

  1. State the question clearly: one question at a time
  2. Provide a recommended answer: based on codebase exploration, existing ADRs, or domain knowledge
  3. Wait for the user's response before proceeding to the next question
  4. Challenge vague answers: if the response is ambiguous, probe deeper ("What do you mean by 'flexible'? Can you give a concrete example?")
  5. 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 user

This 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-glossary skill 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:

TechniqueWhen to useExample
Concrete scenarioVague requirement"Give me a specific example of when this would happen"
Edge case probeHappy path only discussed"What happens if [unusual input]? What about [concurrent access]?"
Contradiction surfacingUser states conflict with code/docs"Your code does X, but you just said Y. Which is correct?"
Terminology sharpeningOverloaded or vague terms"You said 'account'. Do you mean the billing entity or the login identity?"
Scale probeNo volume context"How many of these do you expect? 10? 10,000? 10 million?"
Failure modeOnly success path discussed"What should happen when this fails? Is partial failure acceptable?"
Boundary probeScope 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")

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.