Assesses task complexity upfront (quick/standard/full) and brainstorms with adaptive depth: ~2 exchanges for bugs, full PRD for complex features. Use for unclear requirements or new ideas.
npx claudepluginhub tmchow/tmc-marketplace --plugin iterative-engineeringThis skill uses the workspace's default tool permissions.
Explore the problem space, scope the goal, and make directional choices through collaborative dialogue. Assess scope early and match ceremony to complexity — a bug fix exits in two exchanges, a new subsystem gets a full PRD.
Verifies tests pass on completed feature branch, presents options to merge locally, create GitHub PR, keep as-is or discard; executes choice and cleans up worktree.
Guides root cause investigation for bugs, test failures, unexpected behavior, performance issues, and build failures before proposing fixes.
Writes implementation plans from specs for multi-step tasks, mapping files and breaking into TDD bite-sized steps before coding.
Explore the problem space, scope the goal, and make directional choices through collaborative dialogue. Assess scope early and match ceremony to complexity — a bug fix exits in two exchanges, a new subsystem gets a full PRD.
When to skip: Requirements are explicit, detailed, and the user knows exactly what they want. Offer to go straight to iterative:tech-planning.
If user references an existing PRD or brainstorming topic: load the document (check both docs/prd/ and docs/brainstorms/ — treat PRDs and brainstorm documents synonymously), summarize current state, and let the user direct what happens next. Build on existing content, update in place.
docs/design-directions/ for design direction docs. If found, acknowledge the exploration upfront and fold the chosen direction into the conversation. A design direction narrows the exploration space but isn't a final spec. Build on what it establishes; explore what it doesn't answer. Reference the direction doc in the PRD when written; don't duplicate it.iterative:tech-planning skill.Before asking any questions, assess the scope of work from the initial message and a light codebase scan. This determines which path to follow.
| Scope | Description | Signals |
|---|---|---|
| Quick | Bug fix, config change, single-behavior tweak | 1-3 files, no architectural decisions, clear root cause or change |
| Standard | Small feature, bounded refactor, UI addition | Several files, a few decisions, clear scope |
| Full | Large feature, cross-cutting change, new subsystem | Many files, architectural choices, multiple stakeholders or flows |
AskUserQuestion (Claude Code) or request_user_input (Codex) — marking the assessed scope as (Recommended):
If the user overrides to a different scope, proceed with that scope's path.
For bug fixes, config changes, and single-behavior tweaks. Gets out of the way fast.
Question focus: Inherently technical — questions about root cause, affected behavior, and edge cases are natural for bug fixes and tweaks.
Use your judgment. If the initial message plus codebase context gives you enough to understand the fix, ask zero questions. If something is ambiguous, ask one or two — no more.
State your understanding concisely:
Ask the user to confirm. If they correct something significant, update and re-confirm.
If the fix involves multiple discrete steps, briefly enumerate them at a high level (what to do, not how). These are deliverables, not implementation instructions — no file paths or code specifics.
The skill is done. The user proceeds to implement based on the conversation. No documents, no formal review, no transition menu.
If complexity emerges: If at any point the problem turns out to be more complex than expected, suggest upgrading to Standard or Full scope. Carry forward everything discussed — don't repeat questions.
For small features, bounded refactors, and UI additions. Enough structure to align on what to build without document ceremony.
Question focus: Product decisions + light technical direction. "Should pagination be client-side or server-side?" is fine. "Should we use offset or cursor pagination in the SQL query?" is tech-planning territory.
Only if the path forward is genuinely ambiguous — present 2-3 lightweight directions (1-2 sentences each with a brief trade-off) and ask the user to pick. Skip this if there's an obvious approach.
Capture the key outcomes of the conversation:
Present this inline in the conversation. Do not create a document or commit anything.
Present an interactive choice:
The skill exits after this choice. If the user chooses tech-planning, invoke iterative:tech-planning skill.
If complexity emerges: If Q&A reveals the work is larger than expected, suggest upgrading to Full scope. Carry forward all decisions and context.
For large features, cross-cutting changes, and new subsystems. Full ceremony — deep exploration, PRD, review, and structured handoff.
Question focus: Product-focused. High-level technical direction ("build vs buy", "real-time vs polling") is the limit. Implementation specifics belong in tech-planning.
For design and interaction-heavy tasks (visual redesigns, marketing pages, UI overhauls, workflow/onboarding redesigns): frame questions around constraints and goals — what should be preserved, what specifically feels stale, who's the audience, what impression or experience they should walk away with. Gather parameters for exploration rather than pushing toward verbal style or interaction choices ("what energy do you want?" forces a text answer for a question the user needs to see or experience to answer well).
For design and interaction-heavy tasks: When the task involves visual design, interaction patterns, or user experience (redesigns, marketing pages, onboarding flows, workflow changes), offer the user a choice before presenting text-based directions:
iterative:design-exploration to produce directions the user can see and react to. Use Map the Space answers as constraints and goals to guide the exploration.Present this as an interactive choice. The signal to offer this is any task where the user needs to see or experience options to meaningfully choose — visual concepts, interaction patterns, flows, or a combination. This choice comes after Map the Space, so the exploration is grounded in the initial scoping, not untethered. If the user picks exploration, the chosen direction feeds into Deep Exploration for remaining requirements and scope decisions. If they pick text-based directions, proceed as normal — design-exploration remains available later in Review and Handoff.
main/master). If so, offer: A) Create a feature branch (recommended), B) Continue on default branch. One-time check.references/prd-template.md. Include sections when their inclusion criteria apply — skip the rest.docs/prd/YYYY-MM-DD-<topic>-prd.md (ensure directory exists).Classify open questions. If the PRD has an Open Questions section, assess which resolution method fits each:
| Resolution method | When | The answer... |
|---|---|---|
| Research | Facts, patterns, prior art, external constraints | ...exists somewhere and needs to be found |
| Design exploration | Visual design, UX feel, interaction models | ...needs to be seen and experienced across multiple approaches |
| User decision | Priorities, preferences, business judgment | ...is a human call, not something research or exploration will reveal |
| Tech planning | Implementation details, architecture, codebase mechanics | ...requires deep codebase context that tech planning will explore |
Surface user decisions. If any questions were classified as "user decision needed," present them before the main options — the brainstorming context is fresh. For each: if natural options exist, present as multiple choice; if truly open-ended, ask free-form. Include a "Decide later" option. Answered questions: update the PRD. Deferred: leave in Open Questions. One question at a time.
Present options. Interactive choice. Both AskUserQuestion (Claude Code) and request_user_input (Codex) provide an automatic "Other" option — use that as the exit path. Show up to 4 explicit options, selected from this priority order:
When all are shown, all 4 slots are used. When neither Design Exploration nor Research applies, only 2 options + Other.
If review: invoke plan-review skill. Brainstorming owns the fix loop.
Fix issues identified by plan-review. Commit the updated PRD.
After fixing, present an interactive choice — same options as step 3, re-assessed with updated PRD context. Do not mark any option as recommended. Do not end the turn without presenting this choice.
Repeat steps 4-6 if user chooses another round.
If design exploration: invoke iterative:design-exploration skill. After exploration concludes, commit the updated PRD and return to step 6.
If research: invoke iterative:research skill. After completion, commit updated PRD and return to step 6.
If tech-planning: invoke iterative:tech-planning skill.
Scope can be upgraded mid-conversation if hidden complexity emerges. When upgrading:
Prefer multiple choice when natural options exist:
Topics to explore (choose what's relevant, not all):
| Topic | Example Questions |
|---|---|
| Goals | What does success look like? What's the happy path? |
| Scope | What's in v1 vs later? What are the deliberate boundaries? |
| User experience | Who uses this? What's the workflow? What do they see? |
| Feasibility | Is this technically viable? Build vs buy? Any hard constraints? |
| Prior art | How do others solve this? What can we learn from? |
| Constraints | Timeline? Must integrate with existing things? |
| Risks | What could go wrong? What's the riskiest assumption? |
Be a thinking partner, not just an interviewer:
Validate assumptions explicitly:
Keep these lightweight — 1-2 sentences each with a brief trade-off. These steer the conversation, not finalize the approach.
Here are 2-3 broad directions:
**A) [Name]** — [1-2 sentence description]. Trade-off: [brief].
**B) [Name]** — [1-2 sentence description]. Trade-off: [brief].
**C) [Name]** — [1-2 sentence description]. Trade-off: [brief].
I'd lean toward **A** because [one sentence]. Which direction feels right?
See references/prd-template.md for the full template with section descriptions and inclusion criteria.
Key structural points:
The PRD should give enough context for someone to create a detailed technical plan from it.
| Anti-Pattern | Better Approach |
|---|---|
| Asking questions before assessing scope | Assess scope from initial message + codebase scan first |
| Same ceremony for every task | Quick exits fast; Standard aligns without docs; Full gets full PRD |
| Rigid question counts ("exactly 2-3") | Use judgment — ask as many as needed, as few as possible |
| Asking implementation questions during brainstorming | "Which database?" is tech-planning. "Real-time vs polling?" is fine |
| Writing documents for Standard scope | An inline summary suffices. Users wanting docs upgrade to Full |
| Multiple questions in one message | One question per message |
| Just extracting requirements passively | Be a thinking partner — bring ideas, challenge assumptions |
| Proposing overly complex solutions | Start simple, add complexity only when it reduces maintenance burden |
| Skipping scope assessment | Always assess scope before questions — it determines the entire path |
| Making assumptions without validating | State assumptions explicitly and confirm |
| Everything is Must priority | Use priority honestly — if everything is Core, nothing is |
| Repeating work after scope upgrade | Carry forward everything; resume the new path where it makes sense |
| Describing HOW instead of WHAT in Standard summary | Deliverables are "add pagination", not "modify api/list.ts to accept page params" |
Always present options to the user at transition points using the platform's interactive question tool — AskUserQuestion (Claude Code) or request_user_input (Codex). Never print options as text or end the turn without presenting a choice.
After the first review round (Full), do not mark any option as recommended — just present the choices.
Never skip this step. Do not proceed to tech-planning, announce "the PRD is ready," or let the conversation drift without presenting these options first.
For templates and detailed guidelines, consult:
references/prd-template.md — PRD document template with section descriptions, priority definitions, and inclusion criteria