design-it-twice

Generate and compare fundamentally different software design alternatives before implementation.

11|Updated Feb 25, 2026
One-click install
npx skills add https://github.com/codybrom/clairvoyance --skill design-it-twice
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: design-it-twice
Source: https://github.com/codybrom/clairvoyance/tree/main/skills/design-it-twice
Command: npx skills add https://github.com/codybrom/clairvoyance --skill design-it-twice

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill prevents premature commitment to the first plausible design by forcing a structured comparison of genuinely different alternatives before implementation.

Core Features & Use Cases

  • Independent Alternatives: Generate at least two fundamentally different approaches to a class, module, API, architecture, or other significant design problem.
  • Concrete Evaluation: Compare options by caller ease-of-use, interface simplicity, generality, implementation complexity, and performance.
  • Clean-Room Exploration: Use an isolated alternative-design agent when an existing design is already present, or apply a pre-mortem fallback when agent support is unavailable.
  • Use Case: Before designing a new data-access API, explore both a repository abstraction and an event-driven approach, then select or synthesize the option that best reduces caller complexity.

Quick Start

Ask the design-it-twice skill to compare at least two fundamentally different approaches for the proposed feature and recommend the strongest option.

Frequently Asked Questions about design-it-twice

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I compare software design alternatives before committing to implementation?

To compare software design alternatives, generate at least two fundamentally different approaches for your class, module, or API, then evaluate them by caller ease-of-use, interface simplicity, generality, implementation complexity, and performance before implementation.

Why does comparing divergent API design options prevent premature commitment?

Comparing divergent API design options prevents premature commitment by forcing a structured evaluation of clean-room alternatives, ensuring you select or synthesize the option that best reduces caller complexity rather than accepting the first plausible design.

What is trade-off analysis for software architecture and when do I need it?

Trade-off analysis for software architecture is the structured comparison of fundamentally different design approaches by concrete metrics like performance and interface simplicity, needed before implementing significant system decisions, RFCs, or new data-access layers.

How to generate independent design alternatives when an existing design is already present?

To generate independent design alternatives when an existing design is present, use an isolated alternative-design agent for clean-room exploration, or apply a pre-mortem fallback analysis if isolated agent support is unavailable.

Can I use this approach for both high-level system architecture and low-level API design?

Yes, you can use this structured comparison approach for both high-level system architecture and low-level API design, as it applies to classes, modules, design documents, and other significant interface or system decisions.

What are the limitations of clean-room alternative generation without isolated agent support?

Without isolated agent support, clean-room alternative generation cannot independently explore divergent designs, requiring a pre-mortem fallback to anticipate potential failures and evaluate trade-offs within the existing design context instead.