design-it-twice
Design It Twice
Based on "Design It Twice" from A Philosophy of Software Design: your first idea is unlikely to be your best. Generate multiple radically different designs in parallel, then compare and synthesize.
Workflow
1. Gather requirements
Before designing, understand:
- What problem does this module solve?
- Who are the callers? (other modules, external users, tests)
- What are the key operations?
- Any constraints? (performance, compatibility, existing patterns)
- What should be hidden inside vs exposed at the interface?
2. Explore the codebase (if applicable)
If the module is part of an existing codebase, use a subagent to explore it first. Look for:
More from yldgio/vibe-grimoire
pre-mortem
>-
13create-prd
Create a PRD through user interview, codebase exploration, and module design, then submit as a GitHub issue, Azure DevOps work item, or local file. Use when the user wants to create or write a PRD, create a product requirements document, design a new feature, or capture requirements.
11setup-repo
>-
11prd-slice
Break a PRD into independently-deliverable work items (vertical slices / tracer bullets) and create them in Azure DevOps, GitHub Issues, or Jira. Use when a user wants to convert a PRD into implementation tickets, decompose a product spec into trackable slices, create work items from requirements, or break down a PRD for any issue tracker — even if they don't say "vertical slice" or "tracer bullet".
11plan-from-prd
Turn a PRD into a multi-phase, local Markdown implementation plan using tracer-bullet vertical slices, saved to ./plans/. Use when the user wants to create an implementation plan from a PRD, plan phases from a PRD, break a PRD into development phases, or mentions "tracer bullets" or "implementation phases". For creating tracker work items (GitHub Issues, Azure DevOps, Jira) use the prd-slice skill instead.
11tdd
>-
9