Help us improve
Share bugs, ideas, or general feedback.
From lore-development
This skill makes technical decisions for complex problems. Use when the "how" IS the problem - algorithms, data structures, system boundaries, performance, security. Triggers include "design this", "what's the algorithm for", "how should this work technically", "technical approach for", "architecture for".
npx claudepluginhub rjroy/vibe-garden --plugin lore-developmentHow this skill is triggered — by the user, by Claude, or both
Slash command
/lore-development:designThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Make technical decisions when the "how" is the problem.
Collaboratively brainstorms architecture, patterns, and trade-offs to produce a design document. Activates on 'design this', 'create a design', 'brainstorm approaches', or 'write a design doc'.
Writes lightweight architecture design docs for ambiguous or consequential decisions. Grounds in existing code, explores tradeoffs and alternatives, and stops for human review before implementation.
Guides design exploration before implementation, using parallel investigation agents to explore user intent, requirements, and impact. Invoked automatically for creative work.
Share bugs, ideas, or general feedback.
Make technical decisions when the "how" is the problem.
Design is overhead when the implementation is obvious:
If you ran /prep-plan 100 times with current context:
lore-researcher agent with the technical problem description. Do not run in background. Wait for the result before continuing. Include findings in the Context section..lore/research/, .lore/brainstorm/, or .lore/specs/ context.lore/design/Save to .lore/design/[topic].md
Use kebab-case for filenames. Match spec naming where a spec exists (e.g., if spec is history-sync.md, design is history-sync.md or history-sync-dedup-algorithm.md).
Before writing: Load ${CLAUDE_PLUGIN_ROOT}/shared/frontmatter-schema.md to get frontmatter field definitions and status values for design documents.
---
[frontmatter per schema]
---
# Design: [Topic]
## Problem
What technical problem are we solving? Link to spec if one exists.
## Constraints
- Technical constraints
- Performance requirements
- Integration points
- Security considerations
## Approaches Considered
### Option 1: [Name]
Description of the approach.
**Pros:**
- Pro 1
- Pro 2
**Cons:**
- Con 1
- Con 2
### Option 2: [Name]
Description of the approach.
**Pros:**
- Pro 1
- Pro 2
**Cons:**
- Con 1
- Con 2
## Decision
Which approach and why. **This section is required.** A design without a decision is just research.
## Interface/Contract
How other code will interact with this:
- Function signatures
- Data structures
- Protocols
- APIs
## Edge Cases
Known edge cases and how they're handled:
- Edge case 1: Handled by...
- Edge case 2: Handled by...
## Open Questions
(Optional) Things still TBD that don't block implementation.
Design sits between spec and plan:
| Document | Answers | Example |
|---|---|---|
| Spec | What are we building? | "Deduplicate history entries" |
| Design | How does it work? | "Use content hashing with LRU eviction" |
| Plan | How do we build it? | "Add HashIndex class in src/index.ts" |
Design is "how it works" in the abstract. Algorithms, data structures, protocols. Implementation-agnostic where possible.
Plan is "how to build it" in the concrete. Files, functions, dependencies. Implementation-specific.
Both explore options. The difference is commitment:
| Document | Output | Decision Required? |
|---|---|---|
| Research | "Here are the options" | No |
| Design | "Here's what we're doing and why" | Yes |
If you're documenting options without picking one, that's research. Design requires the Decision section.
After the design is saved, run a fresh-eyes review. Designs written in conversation accumulate assumptions. A reviewer with fresh context reads only what's on the page, catching what the author can't see.
Invoke the design-reviewer agent on the saved design using the Task tool. The agent evaluates designs through four lenses: decision quality, trade-off clarity, interface implementability, and edge case coverage. Present the findings and offer to address critical issues before moving on.
If .lore/lore-agents.md exists, consult it for specialized agents that can help with domain-specific concerns. Security, performance, or architecture experts can identify trade-offs you might miss. Invoke relevant agents via Task tool and incorporate their insights.
Design documents should reference their parent spec when one exists:
related: [.lore/specs/history-sync.md]Design documents can also stand alone for technical problems that don't have user-facing requirements.