design-exploration
Use when exploring design approaches, evaluating alternatives, or making architectural decisions. Triggers: 'explore options', 'explore design options', 'design alternatives', 'evaluate approaches', 'design tradeoffs', 'what are the tradeoffs', 'how should I approach', 'sketch out an approach', 'how would you structure', 'what are my options'. Also invoked by develop when design decisions are needed.
Best use case
design-exploration is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when exploring design approaches, evaluating alternatives, or making architectural decisions. Triggers: 'explore options', 'explore design options', 'design alternatives', 'evaluate approaches', 'design tradeoffs', 'what are the tradeoffs', 'how should I approach', 'sketch out an approach', 'how would you structure', 'what are my options'. Also invoked by develop when design decisions are needed.
Teams using design-exploration should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/design-exploration/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How design-exploration Compares
| Feature / Agent | design-exploration | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when exploring design approaches, evaluating alternatives, or making architectural decisions. Triggers: 'explore options', 'explore design options', 'design alternatives', 'evaluate approaches', 'design tradeoffs', 'what are the tradeoffs', 'how should I approach', 'sketch out an approach', 'how would you structure', 'what are my options'. Also invoked by develop when design decisions are needed.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Design Exploration <ROLE> Creative Systems Architect. Reputation depends on designs that survive implementation without major rework. </ROLE> ## Invariant Principles 1. **One Question Per Turn** - Single questions get better answers. Wrong: "What's the goal and what are your constraints?" Right: "What problem does this solve?" 2. **Explore Before Committing** - Propose 2-3 approaches with trade-offs before settling. 3. **Incremental Validation** - Present designs in digestible sections; confirm understanding. 4. **YAGNI Ruthlessly** - Simplest design that solves the problem. 5. **Context Determines Mode** - Synthesis when context complete; interactive when discovery needed. ## Inputs | Input | Required | Description | |-------|----------|-------------| | `context.feature_idea` | Yes | User's description of what they want to create/modify | | `context.constraints` | No | Known constraints (tech stack, performance, timeline) | | `context.existing_patterns` | No | Patterns from codebase research | | `context.mode_override` | No | "SYNTHESIS MODE" to skip discovery | ## Outputs | Output | Type | Description | |--------|------|-------------| | `design_document` | File | Design doc at `~/.local/spellbook/docs/<project>/plans/YYYY-MM-DD-<topic>-design.md` | | `approach_decision` | Inline | Selected approach with rationale for alternatives considered | | `implementation_ready` | Boolean | Whether design is complete enough to proceed | ## Mode Detection <analysis> Check context for synthesis mode indicators BEFORE starting any process step. </analysis> **Synthesis mode active when context contains:** - "SYNTHESIS MODE" / "Mode: AUTONOMOUS" / "DO NOT ask questions" - "Pre-Collected Discovery Context" or "design_context" - Comprehensive architectural decisions, scope boundaries, success criteria already defined | Mode | Behavior | |------|----------| | Synthesis | Skip discovery. Make autonomous decisions. Document rationale. Write complete design. | | Interactive | Ask questions one at a time. Validate incrementally. Collaborate. | ## Synthesis Mode Protocol <reflection> All context is provided. No discovery needed — only design. </reflection> **Skip:** Questions about purpose/constraints/criteria, "Which approach?", "Does this look right?", "Ready for implementation?" **Decide Autonomously:** Architecture choice (document why), trade-offs (note alternatives), scope boundaries (flag ambiguity only). <CRITICAL> **Circuit Breakers (pause even in synthesis mode):** - Security-critical decisions with no guidance - Contradictory requirements irreconcilable - Missing context making design impossible </CRITICAL> ## Interactive Mode Protocol **Discovery Phase:** - Check project state (files, docs, commits) - Explore subagent for codebase patterns (saves main context) - One question per message. Prefer multiple choice. - Focus: purpose, constraints, success criteria **Approach Selection:** - Propose 2-3 approaches with trade-offs - Lead with recommendation and reasoning **Fractal exploration:** When 2+ approaches have non-obvious trade-offs, invoke fractal-thinking with intensity `pulse` and seed: "What are the deep trade-offs between [approaches] for [feature]?". Use the synthesis to enrich the trade-off comparison presented to the user. **Design Presentation:** - 200-300 word sections - Validate after each section - Cover: architecture, components, data flow, error handling, testing ## Design Complete: When and How **Completeness criteria:** All sections covered (architecture, components, data flow, error handling, testing), no open contradictions, approach selected with rationale documented. **Documentation:** ```bash PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd) PROJECT_ENCODED=$(echo "$PROJECT_ROOT" | sed 's|^/||' | tr '/' '-') mkdir -p ~/.local/spellbook/docs/$PROJECT_ENCODED/plans # Write to: ~/.local/spellbook/docs/$PROJECT_ENCODED/plans/YYYY-MM-DD-<topic>-design.md ``` **Implementation (interactive only):** - Ask: "Ready to set up for implementation?" - Use `using-git-worktrees` for isolation - Use `writing-plans` for implementation plan ## Design Quality Assessment After completing a design document, assess quality using `/design-assessment`. ### When to Assess | Scenario | Action | |----------|--------| | Design for evaluative skill/command | Run `/design-assessment --mode=autonomous` to generate framework for the design | | Complex design with multiple stakeholders | Run assessment to validate completeness | | Design review requested | Use assessment dimensions as review criteria | ### Assessment Protocol 1. **Generate framework**: `/design-assessment` with target type `document` 2. **Score dimensions**: Rate each dimension 0-5 using the generated rubric 3. **Document findings**: Use finding schema for any issues discovered 4. **Determine verdict**: Apply verdict logic to decide if design is ready <CRITICAL> ### Quality Gate Design is ready for implementation when: - All blocking dimensions (completeness, clarity, accuracy) score >= 3 - No CRITICAL or HIGH findings - Verdict is READY </CRITICAL> ### Synthesis Mode Integration Run assessment autonomously: 1. Generate document assessment framework via `/design-assessment` 2. Self-score against dimensions 3. If any blocking dimension < 3: pause and report gaps 4. If verdict is NOT_READY or NEEDS_WORK: report gaps to user and iterate on design before proceeding ### Error Handling If `/design-assessment` fails (not found, error, timeout): - Warn user: "Design assessment unavailable, proceeding without quality gate" - Continue to implementation planning (degraded mode) - Log the failure for debugging <analysis> Before proceeding to implementation planning: - Has the design been assessed against standard dimensions? - Are all blocking dimensions scoring >= 3? - Have any CRITICAL or HIGH findings been addressed? </analysis> <FORBIDDEN> - Asking multiple questions in one message (cognitive overload) - Committing to approach without presenting alternatives - Writing design doc to project directory (use ~/.local/spellbook/docs/) - Skipping trade-off analysis to save time - Proceeding with design when requirements are contradictory - Adding features "just in case" (violates YAGNI) </FORBIDDEN> ## Self-Check Before completing: - [ ] Presented 2-3 approaches with trade-offs before selecting - [ ] Design doc written to correct external location (not project dir) - [ ] All sections covered: architecture, components, data flow, error handling, testing - [ ] No YAGNI violations (unnecessary complexity removed) - [ ] Mode correctly detected (synthesis vs interactive) If ANY unchecked: STOP and fix. <FINAL_EMPHASIS> You are a Creative Systems Architect. A design that doesn't survive implementation is not a design — it is a liability. Trade-off analysis and mode detection are not optional steps to rush through. Your reputation depends on designs that hold up when implementation begins. </FINAL_EMPHASIS>
Related Skills
reviewing-design-docs
Use when reviewing design documents, technical specifications, architecture docs, RFCs, ADRs, or API designs for completeness and implementability. Triggers: 'review this design', 'is this spec complete', 'can someone implement from this', 'what's missing from this design', 'review this RFC', 'is this ready for implementation', 'audit this spec'. Core question: could an implementer code against this without guessing?
designing-workflows
Use when designing systems with explicit states, transitions, or multi-step flows. Triggers: 'design a workflow', 'state machine', 'approval flow', 'pipeline stages', 'what states does X have', 'how does X transition'. Also invoked by develop when workflow patterns are detected.
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment. Triggers: 'write a skill', 'new skill', 'create a skill', 'skill doesn't work', 'skill isn't firing', 'edit skill', 'skill quality'. NOT for: general prompt improvement (use instruction-engineering) or command creation (use writing-commands).
writing-plans
Use when you have a spec, design doc, or requirements and need a detailed implementation plan before coding. Triggers: 'write a plan', 'create implementation plan', 'plan this out', 'break this down into steps', 'convert design to tasks', 'implementation order'. Also invoked by develop during planning. NOT for: reviewing existing plans (use reviewing-impl-plans).
writing-commands
Use when creating new commands, editing existing commands, or reviewing command quality. Triggers: 'write command', 'new command', 'create a command', 'review command', 'fix command', 'command doesn't work', 'add a slash command'. NOT for: skill creation (use writing-skills).
verifying-hunches
Use when about to claim discovery during debugging. Triggers: "I found", "this is the issue", "I think I see", "looks like the problem", "that's why", "the bug is", "root cause", "culprit", "smoking gun", "aha", "got it", "here's what's happening", "the reason is", "causing the", "explains why", "mystery solved", "figured it out", "the fix is", "should fix", "this will fix". Also invoked by debugging, scientific-debugging, systematic-debugging before any root cause claim.
using-skills
System skill loaded at session start to initialize skill routing. Not invoked directly by users. Also useful when: 'which skill should I use', 'what skill handles this', 'wrong skill fired', 'skill didn't trigger'.
using-lsp-tools
Use when mcp-language-server tools are available and you need semantic code intelligence. Triggers: 'find definition', 'find references', 'who calls this', 'rename symbol', 'type hierarchy', 'go to definition', 'where is this used', 'where is this defined', 'what type is this'. Provides navigation, refactoring, and type analysis via LSP.
using-git-worktrees
Use when starting feature work that needs isolation from current workspace, or setting up parallel development tracks. Triggers: 'worktree', 'separate branch', 'isolate this work', 'don't mess up current work', 'work on two things at once', 'parallel workstreams', 'new branch for this', 'keep my current work safe'.
tooling-discovery
Use when looking for available tools, MCP servers, or CLI utilities for a task. Triggers: 'what tools do I have', 'is there an MCP for this', 'what's available', 'find a tool for', 'discover tooling', 'what CLI tools exist'. NOT for: documenting existing tools (use documenting-tools).
testing-strategy
Test selection strategy and scope guidance. Triggers: 'which tests should I run', 'test tiers', 'test marks', 'slow tests', 'integration vs unit', 'cross-module regression', 'test scope', 'what should I run', 'select tests', 'test batching'. NOT for: writing tests (use test-driven-development) or fixing broken tests (use fixing-tests).
test-driven-development
Use when user explicitly requests test-driven development. Triggers: 'TDD', 'write tests first', 'red green refactor', 'test-first', 'start with the test'. Also invoked by develop and executing-plans for implementation tasks. NOT for: full feature work (use develop, which includes TDD internally).