design-exploration
Agent-mode pre-implementation design exploration. Invoked by other skills (brainstorm, nf) to gather codebase context and explore design approaches before implementation. Not user-invoked directly.
SKILL.md.claude/skills/design-exploration/SKILL.md
GitHubDesign 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
AskUserQuestionwith options when clarifying - Parallel exploration: Launch independent Explore scans simultaneously when fan-out is justified; keep narrow questions focused