interview-framework
Use when curdx-flow needs user decisions after codebase facts are discovered.
- License 许可
- MIT
- 最近更新
- 2026-08-19
- Stars
- ★ 4
- Forks
- 0
01 前言 Front Matter
- name
- interview-framework
- version
- 0.2.0
- description
- Use when curdx-flow needs user decisions after codebase facts are discovered.
- when_to_use
- Use before research, requirements, design, tasks, or triage when user decisions are needed and codebase facts must be discovered before asking.
- user-invocable
- false
02 资源文件 2
- 参考文档references/algorithm.md4.3 KB
- 参考文档references/examples.md1.8 KB
03 SKILL.md 正文
Interview Framework
Adaptive brainstorming dialogue algorithm for all spec phases. Each phase command provides its own exploration territory (phase-specific areas to probe).
Option Limit Rule
Each question must have 2-4 options (max 4). Keep the most relevant options, combine similar ones.
Recommendation Format
Every question asked via AskUserQuestion in Phase 1 leads with the recommended option (except when options are symmetric, in which case [Recommended] may be omitted):
AskUserQuestion:
question: "[Context-aware question referencing prior answers]. [One sentence rationale for the recommendation.]"
options:
- "[Recommended] [Option text -- the AI's suggested answer]"
- "[Alternative 1]"
- "[Alternative 2 if needed]"
- "Other"
Rules:
[Recommended]is a label prefix on the first option only.- The rationale sits in the question text, not the option label.
- Option count still 2-4 max (Option Limit Rule preserved).
- If there is no meaningful recommendation (truly symmetric choice), omit the
[Recommended]label rather than placing it arbitrarily.
Example:
AskUserQuestion:
question: "Where should the spec live? You only have one specs directory configured, so the default is fine unless you want to reorganize."
options:
- "[Recommended] ./specs/ (default)"
- "Let me configure a different path"
- "Other"
Parallel Codebase-First Discovery
Before asking ANY question, determine whether the answer is a codebase fact, a prior-memory fact, a current-docs fact, or a user decision:
- Codebase fact: discoverable by reading code, config, or existing specs (e.g., which framework is used, whether an interface already exists, what a file currently does). Delegate to an
Exploresubagent. Never ask the user. - Prior-memory fact: discoverable by querying the user's claude-mem history (e.g., "did we already decide on Postgres for this product?", "what stack did we pick last quarter?"). Delegate to a
general-purposesubagent invokingmcp__plugin_claude-mem_mcp-search__*tools. Never ask the user. - Current-docs fact: discoverable from official docs of a named library/framework/SDK/API (e.g., "does node-pty support Windows?", "is OAuth-PKCE required for this provider?"). Delegate to a
research-analystsubagent (preferring Context7 MCP via its tool surface). Never ask the user. - User decision: a preference, priority, trade-off, or constraint that only the user can answer (e.g., which of two viable approaches, what the success criteria are, what's in scope). Ask via
AskUserQuestion.
Discover in parallel BEFORE the first question
<mandatory> Before asking the FIRST interview question, the coordinator MUST fan out all discoverable facts in ONE message:
- One
Exploreagent per orthogonal codebase concern - One
general-purposeagent (claude-mem search) if the project has prior history - One
research-analystagent per named candidate library/framework </mandatory>
Asking the user before exhausting parallel discovery is the Question-before-discovery anti-pattern (see ${CLAUDE_PLUGIN_ROOT}/references/bounded-parallel-dispatch.md Discovery domain, anti-pattern #14). The interview becomes lower-leverage when its [Recommended] options aren't grounded in evidence.
Synthesis → interview
After parallel discovery returns:
- Mark each pre-identified question as answered by discovery (drop from interview) or still needs user decision (keep).
- For kept questions, derive
[Recommended]from synthesis findings; never fabricate a recommendation without evidence. - Run the interview in a single tight pass. Re-discover only if a user answer materially changes the search space.
Only ask what you cannot discover yourself.
Completion Signal Detection
After each response, check for early completion signals using token-based matching:
completionSignals = ["done", "proceed", "skip", "enough", "that's all", "continue", "next"]
tokens = tokenize(userResponse.lower()) # split on whitespace/punctuation
for signal in completionSignals:
if signal in tokens: # exact token match, not substring
-> SKIP remaining questions, move to PROPOSE APPROACHES
3-Phase Overview
Phase 1: UNDERSTAND (Decision-Tree)
Read all available context (.progress.md, prior artifacts, goal text). Build a question tree from the exploration territory with dependency ordering. Traverse the tree: auto-resolve codebase facts via exploration, ask user only about decisions. Each question leads with [Recommended] answer. No fixed question caps. Exit when all nodes resolved or user signals completion.
See references/algorithm.md for full pseudocode.
Phase 2: PROPOSE APPROACHES
Synthesize dialogue into 2-3 distinct approaches. Each includes: name, description, trade-offs. Lead with recommendation. Present via AskUserQuestion. Maximum 3 approaches (more causes decision fatigue). Trade-offs must be honest. No straw-man alternatives.
See references/algorithm.md for full pseudocode.
Phase 3: CONFIRM & STORE
Brief recap to user of key decisions and chosen approach. If user corrects something, update before storing. Store in .progress.md under Context Accumulator pattern.
See references/algorithm.md for full pseudocode.
Adaptive Depth (Other Responses)
When user selects "Other": ask a context-specific follow-up (never generic "elaborate"). Reference what the user typed. Continue until clarity or 5 rounds. Do not increment askedCount for follow-ups.
See references/examples.md for example follow-up patterns.
Context Accumulator Pattern
After each interview, update .progress.md: read existing content, append new section under "## Interview Responses" with descriptive keys reflecting what was discussed. Include the chosen approach.
See references/examples.md for storage format.
References
references/algorithm.md-- Full 3-phase pseudocode (UNDERSTAND decision-tree, PROPOSE APPROACHES, CONFIRM & STORE)references/examples.md-- Example interview questions, "Other" response handling, context storage format
04 同仓库更多 Skills
help
Fixture help skill
verification-before-completion
Use when checking fixes, phase exits, completion evidence, or mock-heavy tests before claiming success.
triage
Use when a large feature should be decomposed into dependency-aware specs.
tasks
Use when a spec has design.md and needs implementation tasks.
switch
Use when changing the active spec by name or path.
status
Use when inspecting curdx-flow specs, active state, progress, or index status.