/clarify — Ambiguity Resolution Interview
clarify is a pre-spec interview loop. It is closer to grill-me than
specify: ask one precise question at a time, recommend an answer, record the
answer, and keep going until material ambiguity is gone.
Do not implement, plan execution, or generate final requirements. The output is
traceable context for the next workflow.
Runtime Surface
Claude Code
- Use
AskUserQuestion for mode selection and branching decisions.
- Use
Task(subagent_type="clarity-auditor") at audit boundaries.
- Use
Task(subagent_type="code-explorer") when a question can be answered
from the codebase instead of asking the user.
Codex
- Use Codex-native structured input when available; otherwise ask one concise
plain-text question at a time.
- Use
hoyeon-clarity-auditor when native adapters are loaded.
- Use
hoyeon-code-explorer when codebase exploration can answer the question.
- If native adapters are unavailable, perform the smallest direct read-only
pass and record that fallback in
qa-log.md.
Artifacts
Create a topic directory:
.hoyeon/clarify/<topic-slug>/
├── qa-log.md
└── clarity-summary.md
Read templates when writing artifacts:
templates/qa-log.md
templates/clarity-summary.md
Use a short kebab-case topic slug. If the current repo already has a Hoyeon
spec directory for the same work, mention it in frontmatter as related_spec.
Modes
Infer the mode from the user's request. If uncertain, ask first.
| Mode |
Use For |
Main Question Lens |
Clear Enough When |
requirements |
Product/feature intent before /specify |
users, goal, non-goals, success, scope, flows, edge cases, constraints |
$hoyeon-specify --context clarity-summary.md can start without guessing |
design |
Architecture or implementation direction before planning |
alternatives, boundaries, interfaces, data flow, trade-offs, risks, reversibility, verification |
chosen direction, rejected alternatives, risks, and validation are explicit |
domain |
Terms, concepts, and domain model |
canonical terms, definitions, relationships, edge cases, conflicts with docs/code |
key terms have stable definitions and unresolved terms are listed |
plan |
Work sequencing before blueprint/execution |
dependencies, acceptance criteria, blocking decisions, validation, rollback, ownership |
no blocking execution decision remains |
Frontmatter fields:
mode: requirements | design | domain | plan
status: active | complete | paused
target_handoff: hoyeon-specify | hoyeon-blueprint | docs | none
Default mode is requirements.
Core Loop
- Mirror — State the current understanding in 2-4 bullets.
- Map ambiguity branches — List the active ambiguity branches in memory:
vague terms, hidden assumptions, unresolved forks, missing criteria,
external facts/code facts to verify.
- Ask one question — Ask exactly one question. Include:
- why this question matters
- your recommended answer
- the trade-off behind the recommendation
- Explore instead of asking — If the answer is discoverable from the
codebase or existing docs, explore first and ask only if evidence conflicts.
- Record immediately — Append to
qa-log.md after every exchange.
- Classify — Mark the branch as
resolved, ambiguous, assumption, or
deferred.
- Audit — After 3-5 Q&A turns, after each major branch, and before
summary, call the clarity auditor with the full
qa-log.md.
- Continue or summarize — If auditor returns
CONTINUE, ask the next
suggested question. If SUFFICIENT, write clarity-summary.md.
Question Rules
- Ask one question at a time.
- Always provide a recommended answer unless the question is purely factual and
must be discovered.
- Prefer concrete options over open-ended prompts, but allow "Other".
- Do not ask the user for facts that code/docs can answer.
- Do not repeat a question. If the user does not know, choose a tentative
default, mark it
assumption or deferred, and move on.
- Keep pressure on vague words: "fast", "simple", "good", "production-ready",
"secure", "later", "nice UX", "admin", "sync", "done".
Mode-Specific Checks
requirements
Required branches:
- primary user or actor
- problem and desired outcome
- explicit non-goals
- success criteria
- core happy path
- important edge/failure states
- constraints and risk modifiers
design
Required branches:
- candidate approaches
- chosen direction and why
- rejected alternatives and why
- boundaries and interfaces
- state/data flow
- failure modes
- reversibility and migration
- verification strategy
domain
Required branches:
- canonical terms
- term definitions
- relationships between terms
- overloaded or conflicting terms
- boundary scenarios
- code/doc contradictions, if a repo exists
- doc target:
CONTEXT.md, ADR, glossary, or no docs
Do not update CONTEXT.md or ADRs unless the user explicitly asks for
docs-mode updates. By default, write candidates into clarity-summary.md.
plan
Required branches:
- acceptance criteria
- task dependencies
- blocking decisions
- validation evidence
- rollback/recovery
- ownership or handoff
- out-of-scope work
Q&A Log Format
Append entries under ## Q&A:
### Q<N>: <short branch title>
- mode: <mode>
- branch: <branch id or name>
- status: resolved | ambiguous | assumption | deferred
- asked: <question>
- recommended: <recommended answer>
- answer: <user answer or discovered evidence>
- rationale: <why this resolves or does not resolve ambiguity>
Maintain ## Open Ambiguities as the current queue. Remove resolved items.
Auditor Contract
Send the auditor:
- full
qa-log.md
- mode
- current branch, if any
- question count since last audit
Auditor returns:
CONTINUE with material ambiguities and suggested next question, or
SUFFICIENT with remaining non-blocking assumptions.
Only stop as complete when the auditor says SUFFICIENT or the user explicitly
stops. If the user stops early, set status to paused.
Handoff
After SUFFICIENT, write clarity-summary.md and present one next action:
| Mode |
Default Handoff |
requirements |
$hoyeon-specify --context .hoyeon/clarify/<topic>/clarity-summary.md "<topic>" |
design |
$hoyeon-blueprint --context .hoyeon/clarify/<topic>/clarity-summary.md or ADR candidate |
domain |
docs/glossary update, if requested |
plan |
$hoyeon-blueprint or direct execution planning |
Do not run the handoff workflow unless the user asks.
Hard Rules
- No implementation.
- No final
requirements.md, plan.json, or ADR unless explicitly requested.
- One question at a time.
- Recommended answer required for each user-facing question.
- Record each exchange before asking the next question.
- Continue until
SUFFICIENT, paused, or explicit user stop.
1---2name: clarify3description: "/clarify", "clarify this", "keep asking until clear", "remove ambiguity", "clarify requirements", "clarify design", "clarify the plan", "질문 계속해", "모호한 게 없게", "명확해질 때까지", "계속 물어봐", "Q&A로 정리", "질문답변 기록", "요구사항 명확화", "설계 명확화". Relentless ambiguity-resolution interview that records Q&A under .hoyeon/clarify/<topic>/ and hands off to specify/blueprint/docs when clear.4---56# /clarify — Ambiguity Resolution Interview78`clarify` is a pre-spec interview loop. It is closer to `grill-me` than9`specify`: ask one precise question at a time, recommend an answer, record the10answer, and keep going until material ambiguity is gone.1112Do not implement, plan execution, or generate final requirements. The output is13traceable context for the next workflow.1415## Runtime Surface1617### Claude Code1819- Use `AskUserQuestion` for mode selection and branching decisions.20- Use `Task(subagent_type="clarity-auditor")` at audit boundaries.21- Use `Task(subagent_type="code-explorer")` when a question can be answered22 from the codebase instead of asking the user.2324### Codex2526- Use Codex-native structured input when available; otherwise ask one concise27 plain-text question at a time.28- Use `hoyeon-clarity-auditor` when native adapters are loaded.29- Use `hoyeon-code-explorer` when codebase exploration can answer the question.30- If native adapters are unavailable, perform the smallest direct read-only31 pass and record that fallback in `qa-log.md`.3233## Artifacts3435Create a topic directory:3637```text38.hoyeon/clarify/<topic-slug>/39├── qa-log.md40└── clarity-summary.md41```4243Read templates when writing artifacts:44- `templates/qa-log.md`45- `templates/clarity-summary.md`4647Use a short kebab-case topic slug. If the current repo already has a Hoyeon48spec directory for the same work, mention it in frontmatter as `related_spec`.4950## Modes5152Infer the mode from the user's request. If uncertain, ask first.5354| Mode | Use For | Main Question Lens | Clear Enough When |55|------|---------|--------------------|-------------------|56| `requirements` | Product/feature intent before `/specify` | users, goal, non-goals, success, scope, flows, edge cases, constraints | `$hoyeon-specify --context clarity-summary.md` can start without guessing |57| `design` | Architecture or implementation direction before planning | alternatives, boundaries, interfaces, data flow, trade-offs, risks, reversibility, verification | chosen direction, rejected alternatives, risks, and validation are explicit |58| `domain` | Terms, concepts, and domain model | canonical terms, definitions, relationships, edge cases, conflicts with docs/code | key terms have stable definitions and unresolved terms are listed |59| `plan` | Work sequencing before blueprint/execution | dependencies, acceptance criteria, blocking decisions, validation, rollback, ownership | no blocking execution decision remains |6061Frontmatter fields:6263```yaml64mode: requirements | design | domain | plan65status: active | complete | paused66target_handoff: hoyeon-specify | hoyeon-blueprint | docs | none67```6869Default mode is `requirements`.7071## Core Loop72731. **Mirror** — State the current understanding in 2-4 bullets.742. **Map ambiguity branches** — List the active ambiguity branches in memory:75 vague terms, hidden assumptions, unresolved forks, missing criteria,76 external facts/code facts to verify.773. **Ask one question** — Ask exactly one question. Include:78 - why this question matters79 - your recommended answer80 - the trade-off behind the recommendation814. **Explore instead of asking** — If the answer is discoverable from the82 codebase or existing docs, explore first and ask only if evidence conflicts.835. **Record immediately** — Append to `qa-log.md` after every exchange.846. **Classify** — Mark the branch as `resolved`, `ambiguous`, `assumption`, or85 `deferred`.867. **Audit** — After 3-5 Q&A turns, after each major branch, and before87 summary, call the clarity auditor with the full `qa-log.md`.888. **Continue or summarize** — If auditor returns `CONTINUE`, ask the next89 suggested question. If `SUFFICIENT`, write `clarity-summary.md`.9091## Question Rules9293- Ask one question at a time.94- Always provide a recommended answer unless the question is purely factual and95 must be discovered.96- Prefer concrete options over open-ended prompts, but allow "Other".97- Do not ask the user for facts that code/docs can answer.98- Do not repeat a question. If the user does not know, choose a tentative99 default, mark it `assumption` or `deferred`, and move on.100- Keep pressure on vague words: "fast", "simple", "good", "production-ready",101 "secure", "later", "nice UX", "admin", "sync", "done".102103## Mode-Specific Checks104105### requirements106107Required branches:108- primary user or actor109- problem and desired outcome110- explicit non-goals111- success criteria112- core happy path113- important edge/failure states114- constraints and risk modifiers115116### design117118Required branches:119- candidate approaches120- chosen direction and why121- rejected alternatives and why122- boundaries and interfaces123- state/data flow124- failure modes125- reversibility and migration126- verification strategy127128### domain129130Required branches:131- canonical terms132- term definitions133- relationships between terms134- overloaded or conflicting terms135- boundary scenarios136- code/doc contradictions, if a repo exists137- doc target: `CONTEXT.md`, ADR, glossary, or no docs138139Do not update `CONTEXT.md` or ADRs unless the user explicitly asks for140docs-mode updates. By default, write candidates into `clarity-summary.md`.141142### plan143144Required branches:145- acceptance criteria146- task dependencies147- blocking decisions148- validation evidence149- rollback/recovery150- ownership or handoff151- out-of-scope work152153## Q&A Log Format154155Append entries under `## Q&A`:156157```markdown158### Q<N>: <short branch title>159- mode: <mode>160- branch: <branch id or name>161- status: resolved | ambiguous | assumption | deferred162- asked: <question>163- recommended: <recommended answer>164- answer: <user answer or discovered evidence>165- rationale: <why this resolves or does not resolve ambiguity>166```167168Maintain `## Open Ambiguities` as the current queue. Remove resolved items.169170## Auditor Contract171172Send the auditor:173- full `qa-log.md`174- mode175- current branch, if any176- question count since last audit177178Auditor returns:179- `CONTINUE` with material ambiguities and suggested next question, or180- `SUFFICIENT` with remaining non-blocking assumptions.181182Only stop as complete when the auditor says `SUFFICIENT` or the user explicitly183stops. If the user stops early, set status to `paused`.184185## Handoff186187After `SUFFICIENT`, write `clarity-summary.md` and present one next action:188189| Mode | Default Handoff |190|------|-----------------|191| `requirements` | `$hoyeon-specify --context .hoyeon/clarify/<topic>/clarity-summary.md "<topic>"` |192| `design` | `$hoyeon-blueprint --context .hoyeon/clarify/<topic>/clarity-summary.md` or ADR candidate |193| `domain` | docs/glossary update, if requested |194| `plan` | `$hoyeon-blueprint` or direct execution planning |195196Do not run the handoff workflow unless the user asks.197198## Hard Rules1992001. No implementation.2012. No final `requirements.md`, `plan.json`, or ADR unless explicitly requested.2023. One question at a time.2034. Recommended answer required for each user-facing question.2045. Record each exchange before asking the next question.2056. Continue until `SUFFICIENT`, `paused`, or explicit user stop.