From shazam
Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".
npx claudepluginhub qhuang20/shazam --plugin shazamThis skill uses the workspace's default tool permissions.
Based on "Design It Twice" from "A Philosophy of Software Design": your first idea is unlikely to be the best. Generate multiple radically different designs, then compare.
Generates multiple radically different interface designs for modules or APIs using parallel sub-agents. Use when designing APIs, exploring options, comparing module shapes, or 'design it twice'.
Designs module interfaces using parallel sub-agents to generate radically different options, compares on depth, simplicity, efficiency, and grills the synthesis. For new APIs, refactors, interface exploration.
Generates 3-4 radically different module or API contract designs in parallel under divergent constraints, presents sequentially with examples, and compares on depth, simplicity, ease-of-correct-use. For new interface shaping or 'design it twice'.
Share bugs, ideas, or general feedback.
Based on "Design It Twice" from "A Philosophy of Software Design": your first idea is unlikely to be the best. Generate multiple radically different designs, then compare.
Before designing, understand:
Ask: "What does this module need to do? Who will use it?"
Spawn 3+ sub-agents simultaneously using Task tool. Each must produce a radically different approach.
Prompt template for each sub-agent:
Design an interface for: [module description]
Requirements: [gathered requirements]
Constraints for this design: [assign a different constraint to each agent]
- Agent 1: "Minimize method count - aim for 1-3 methods max"
- Agent 2: "Maximize flexibility - support many use cases"
- Agent 3: "Optimize for the most common case"
- Agent 4: "Take inspiration from [specific paradigm/library]"
Output format:
1. Interface signature (types/methods)
2. Usage example (how caller uses it)
3. What this design hides internally
4. Trade-offs of this approach
Show each design with:
Present designs sequentially so user can absorb each approach before comparison.
After showing all designs, compare them on:
Discuss trade-offs in prose, not tables. Highlight where designs diverge most.
Often the best design combines insights from multiple options. Ask:
From "A Philosophy of Software Design":
Interface simplicity: Fewer methods, simpler params = easier to learn and use correctly.
General-purpose: Can handle future use cases without changes. But beware over-generalization.
Implementation efficiency: Does interface shape allow efficient implementation? Or force awkward internals?
Depth: Small interface hiding significant complexity = deep module (good). Large interface with thin implementation = shallow module (avoid).
After an interface is chosen, suggest: "Interface chosen! Start coding, or /grill-me to stress-test the design."