From nextc-core
Socratic requirements gathering with ambiguity scoring. Use when the user has a vague idea, wants help thinking through requirements, or when a task is too unclear to implement directly. Interviews the user to produce a clear spec.
How this skill is triggered — by the user, by Claude, or both
Slash command
/nextc-core:clarifyThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Socratic deep interview that turns vague ideas into crystal-clear specifications.
Socratic deep interview that turns vague ideas into crystal-clear specifications.
Asks one targeted question at a time, scores ambiguity mathematically, and refuses
to proceed until clarity meets threshold. Outputs a spec to docs/spec/.
Inspired by the Ouroboros principle: specification quality is the primary bottleneck in AI-assisted development.
{{ARGUMENTS}}Explore agent (model: haiku): check if cwd has existing source code, package files, or git history relevant to the ideacodebase_context — relevant files, patterns, tech stackinterview_type: greenfield | brownfield
initial_idea: <user input>
rounds: []
dimension_scores: { goal: 0, constraints: 0, criteria: 0, context: 0 }
current_ambiguity: 1.0
threshold: 0.2
Starting deep interview. I'll ask targeted questions one at a time to
understand your idea before building anything. After each answer, I'll
show your clarity score. We proceed once ambiguity drops below 20%.
Your idea: "{initial_idea}"
Project type: {greenfield | brownfield}
Current ambiguity: 100%
Repeat until ambiguity <= threshold OR user exits early:
Identify the dimension with the LOWEST clarity score. Generate ONE question that specifically improves that dimension.
Question targeting by dimension:
| Dimension | Style | Example |
|---|---|---|
| Goal Clarity | "What exactly happens when...?" | "When you say 'manage tasks', what specific action does a user take first?" |
| Constraint Clarity | "What are the boundaries?" | "Should this work offline, or is internet connectivity assumed?" |
| Success Criteria | "How do we know it works?" | "If I showed you the finished product, what would make you say 'yes, that's it'?" |
| Context Clarity (brownfield) | "How does this fit?" | "I found JWT auth in src/auth/. Should this feature extend that or diverge?" |
Critical rules:
Use AskUserQuestion with contextual options plus free-text:
Round {n} | Targeting: {weakest_dimension} | Ambiguity: {score}%
{question}
After receiving the answer, score clarity across all dimensions (0.0 to 1.0):
Calculate ambiguity:
ambiguity = 1 - (goal * 0.40 + constraints * 0.30 + criteria * 0.30)ambiguity = 1 - (goal * 0.35 + constraints * 0.25 + criteria * 0.25 + context * 0.15)Round {n} complete.
| Dimension | Score | Weight | Weighted | Gap |
|------------------|-------|--------|----------|------------------------|
| Goal | {s} | {w} | {s*w} | {gap or "Clear"} |
| Constraints | {s} | {w} | {s*w} | {gap or "Clear"} |
| Success Criteria | {s} | {w} | {s*w} | {gap or "Clear"} |
| Context (brownfield) | {s} | {w} | {s*w} | {gap or "Clear"} |
| **Ambiguity** | | | **{%}** | |
Next target: {weakest_dimension} — {why}
At specific round thresholds, shift questioning perspective. Each mode activates ONCE:
Challenge the user's core assumption. "What if the opposite were true?" or "What if this constraint doesn't actually exist?" Test whether the framing is correct or just habitual.
Probe whether complexity can be removed. "What's the simplest version that would still be valuable?" or "Which constraints are necessary vs assumed?"
The ambiguity is still high — address the core concept, not symptoms. "You've described this as X, Y, and Z. Which one IS it fundamentally, and which are supporting views?"
When ambiguity <= threshold (or hard cap / early exit):
docs/spec/{slug}.md using this structure:# {Title}
## Metadata
- Interview Rounds: {count}
- Final Ambiguity: {score}%
- Type: greenfield | brownfield
- Generated: {date}
- Status: {PASSED | EARLY_EXIT}
## Clarity Breakdown
| Dimension | Score | Weight | Weighted |
|-----------|-------|--------|----------|
| Goal Clarity | {s} | {w} | {s*w} |
| Constraint Clarity | {s} | {w} | {s*w} |
| Success Criteria | {s} | {w} | {s*w} |
| Context Clarity | {s} | {w} | {s*w} |
## Goal
{crystal-clear goal statement}
## Constraints
- {constraint 1}
- {constraint 2}
## Non-Goals
- {explicitly excluded scope 1}
- {explicitly excluded scope 2}
## Acceptance Criteria
- [ ] {testable criterion 1}
- [ ] {testable criterion 2}
- [ ] {testable criterion 3}
## Assumptions Exposed & Resolved
| Assumption | Challenge | Resolution |
|------------|-----------|------------|
| {assumption} | {how questioned} | {what decided} |
## Technical Context
{brownfield: relevant codebase findings}
{greenfield: technology choices and constraints}
## Data Model (if applicable)
| Entity | Type | Fields | Relationships |
|--------|------|--------|---------------|
| {name} | {type} | {fields} | {relationships} |
## Interview Transcript
<details>
<summary>Full Q&A ({n} rounds)</summary>
### Round 1
**Q:** {question}
**A:** {answer}
**Ambiguity:** {score}%
...
</details>
After writing the spec, present options via AskUserQuestion:
"Spec ready (ambiguity: {score}%). How would you like to proceed?"
Options:
If user chooses "Implement now":
docs/spec/ — this is the permanent artifact| Score | Meaning | Action |
|---|---|---|
| 0-10% | Crystal clear | Proceed immediately |
| 10-20% | Clear enough | Proceed (default threshold) |
| 20-40% | Some gaps | Continue interviewing |
| 40-60% | Significant gaps | Focus on weakest dimension |
| 60-80% | Very unclear | May need reframing (Ontologist) |
| 80-100% | Almost nothing known | Early stages, keep going |
Task: {{ARGUMENTS}}
npx claudepluginhub nextc/nextc-claude --plugin nextc-coreClarifies vague requests via Socratic questioning, focusing on one key uncertainty (goals, scope, constraints, completion criteria) at a time to produce actionable requirements. Activates on deep-interview requests or unclear specs.
Orchestrates structured Socratic interviews to clarify ambiguous requirements using a dedicated interviewer agent and Ambiguity Score. Useful for vague ideas; invoke via /deep-interview or keywords.
Clarifies vague user requests via iterative Q&A loop and parallel subagent codebase exploration. Outputs scoped context brief for precise planning. Triggers on 'I want to...' or ambiguous scopes.