Design Exploration
Gather codebase context and explore design approaches before implementation. This skill bridges the gap between "we have an idea" and "we have a concrete direction" by grounding proposals in what actually exists in the codebase.
When this supports a task, use ../setup/references/task-context.md
to resolve the repository, linked task and applicable local instructions. Return findings to the
caller; the caller records them once in the task context instead of creating a parallel artifact.
When This Skill Runs
Typically invoked by /brainstorm or /nf, but can also run standalone when someone needs to understand how a feature fits into the existing architecture. The caller provides:
- Feature name and initial description
- Known constraints or requirements
- Specific areas to focus on (if known)
- The current goal: feature framing, design choice, or pre-implementation fit check
Process
Step 1: Parallel Context Gathering
Use references/exploration-checklist.md as a menu, selecting only the feature-type checklist
items that affect the caller's decision. Use one focused scan by default; fan out independent
angles only when broad coverage materially changes the decision and the host provides the worker.
Do not fan out to satisfy a fixed count. Use a faster model unless the task clearly needs deeper
reasoning.
Common scan angles:
- Closest prior art: similar features, modules, screens, services, or flows
- Core data or state model: entities, schemas, stores, contracts, or domain concepts
- Integration boundaries: APIs, shared utilities, routing, permissions, jobs, or external dependencies
- User-facing surface: routes, screens, components, or interactions, if the feature has UX implications
- Constraints and conventions: architecture rules, test patterns, shared abstractions, docs, and known limitations
Only go as deep as needed for the caller's goal. When invoked from /nf, prefer fit, viable options, constraints, and risks over implementation decomposition.
Step 2: Synthesize Findings
After agents return, compile a structured findings report:
## Codebase Findings
### Existing Patterns
- [Pattern name]: [Where it's used, how it works]
### Current Fit
- [Where this feature would likely belong or extend]
### Integration Points
- [Where new code connects to existing code]
### Constraints Discovered
- [Things the codebase enforces that the design must respect]
### Relevant Prior Art
- [Existing flow, screen, module, or service worth reusing or extending]
Step 3: Propose Approaches
Present 2-3 design approaches with trade-offs. Lead with your recommendation and explain why.
For each approach:
- What: Brief description (2-3 sentences)
- How it fits: Which existing patterns it follows
- Trade-offs: Pros and cons grounded in codebase evidence
- Effort signal: Relative complexity (low / medium / high)
- Risk signal: Key uncertainty, dependency, or downside to watch
Step 4: Incremental Design Summary
Once the user picks an approach (or you have a clear winner):
Present one compact, clearly labeled summary covering only the areas that materially affect the
caller's decision:
- Where the feature fits in the current product or architecture
- How the user flow or system flow would likely work
- Which data, state, or contracts are affected
- What constraints or dependencies shape the design
- What risks, open questions, or irreversible choices remain
- Implementation-heavy details only if they materially affect discovery or planning
Ask for revision only when a specific unresolved choice blocks the caller; otherwise return the
summary without an artificial continue loop.
When invoked from /nf, stop short of full tech decomposition. The goal is to clarify direction, not to write the implementation plan.
Output Contract
When this skill completes, it returns to the caller:
- Key codebase findings — existing patterns, current fit, integration points, and constraints discovered
- Design approaches — viable options, with a recommendation if one stands out
- Open questions — anything that still needs user judgment or further exploration
- Risk flags — issues, dependencies, or scope cautions that could affect direction
Key Principles
- Evidence-based: Every design recommendation references actual codebase patterns
- YAGNI: Each proposed approach should cover only what the caller's goal requires. If an approach adds abstraction beyond the stated goal, either drop it or label the extra clearly as "optional — not required by the brief."
- Follow existing conventions: New code should look like it belongs in the codebase
- Caller-sensitive depth: Tune depth to the caller's goal instead of always pushing into implementation detail
- Multiple choice preferred: Use
AskUserQuestion with options when clarifying
- Parallel exploration: Launch independent Explore scans simultaneously when fan-out is justified; keep narrow questions focused
1---2name: design-exploration3description: Explore codebase and design approaches before implementation. Use when asked 'explore the design', 'how would this fit', 'design exploration', 'what patterns exist for', 'how is X implemented', or when another skill (brainstorm, nf) needs codebase context to ground a design proposal. NOT for code review (use /sr), NOT for static analysis (use /code-analysis).4---56# Design Exploration78Gather codebase context and explore design approaches before implementation. This skill bridges the gap between "we have an idea" and "we have a concrete direction" by grounding proposals in what actually exists in the codebase.910When this supports a task, use [`../setup/references/task-context.md`](../setup/references/task-context.md)11to resolve the repository, linked task and applicable local instructions. Return findings to the12caller; the caller records them once in the task context instead of creating a parallel artifact.1314## When This Skill Runs1516Typically invoked by `/brainstorm` or `/nf`, but can also run standalone when someone needs to understand how a feature fits into the existing architecture. The caller provides:17- Feature name and initial description18- Known constraints or requirements19- Specific areas to focus on (if known)20- The current goal: feature framing, design choice, or pre-implementation fit check2122## Process2324### Step 1: Parallel Context Gathering2526Use `references/exploration-checklist.md` as a menu, selecting only the feature-type checklist27items that affect the caller's decision. Use one focused scan by default; fan out independent28angles only when broad coverage materially changes the decision and the host provides the worker.29Do not fan out to satisfy a fixed count. Use a faster model unless the task clearly needs deeper30reasoning.3132Common scan angles:331. **Closest prior art**: similar features, modules, screens, services, or flows342. **Core data or state model**: entities, schemas, stores, contracts, or domain concepts353. **Integration boundaries**: APIs, shared utilities, routing, permissions, jobs, or external dependencies364. **User-facing surface**: routes, screens, components, or interactions, if the feature has UX implications375. **Constraints and conventions**: architecture rules, test patterns, shared abstractions, docs, and known limitations3839Only go as deep as needed for the caller's goal. When invoked from `/nf`, prefer fit, viable options, constraints, and risks over implementation decomposition.4041### Step 2: Synthesize Findings4243After agents return, compile a structured findings report:4445```46## Codebase Findings4748### Existing Patterns49- [Pattern name]: [Where it's used, how it works]5051### Current Fit52- [Where this feature would likely belong or extend]5354### Integration Points55- [Where new code connects to existing code]5657### Constraints Discovered58- [Things the codebase enforces that the design must respect]5960### Relevant Prior Art61- [Existing flow, screen, module, or service worth reusing or extending]62```6364### Step 3: Propose Approaches6566Present **2-3 design approaches** with trade-offs. Lead with your recommendation and explain why.6768For each approach:69- **What**: Brief description (2-3 sentences)70- **How it fits**: Which existing patterns it follows71- **Trade-offs**: Pros and cons grounded in codebase evidence72- **Effort signal**: Relative complexity (low / medium / high)73- **Risk signal**: Key uncertainty, dependency, or downside to watch7475### Step 4: Incremental Design Summary7677Once the user picks an approach (or you have a clear winner):7879Present one compact, clearly labeled summary covering only the areas that materially affect the80caller's decision:81 - Where the feature fits in the current product or architecture82 - How the user flow or system flow would likely work83 - Which data, state, or contracts are affected84 - What constraints or dependencies shape the design85 - What risks, open questions, or irreversible choices remain86 - Implementation-heavy details only if they materially affect discovery or planning8788Ask for revision only when a specific unresolved choice blocks the caller; otherwise return the89summary without an artificial continue loop.9091When invoked from `/nf`, stop short of full tech decomposition. The goal is to clarify direction, not to write the implementation plan.9293## Output Contract9495When this skill completes, it returns to the caller:96971. **Key codebase findings** — existing patterns, current fit, integration points, and constraints discovered982. **Design approaches** — viable options, with a recommendation if one stands out993. **Open questions** — anything that still needs user judgment or further exploration1004. **Risk flags** — issues, dependencies, or scope cautions that could affect direction101102## Key Principles103104- **Evidence-based**: Every design recommendation references actual codebase patterns105- **YAGNI**: Each proposed approach should cover only what the caller's goal requires. If an approach adds abstraction beyond the stated goal, either drop it or label the extra clearly as "optional — not required by the brief."106- **Follow existing conventions**: New code should look like it belongs in the codebase107- **Caller-sensitive depth**: Tune depth to the caller's goal instead of always pushing into implementation detail108- **Multiple choice preferred**: Use `AskUserQuestion` with options when clarifying109- **Parallel exploration**: Launch independent Explore scans simultaneously when fan-out is justified; keep narrow questions focused