Exploring Alternatives

Generate and compare 2-3 design alternatives with documented trade-offs.

41|27|Updated Oct 6, 2025
One-click install
npx skills add https://github.com/obra/clank --skill exploring-alternatives-obra
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Exploring Alternatives
Source: https://github.com/obra/clank/tree/main/skills/coding/exploring-alternatives
Command: npx skills add https://github.com/obra/clank --skill exploring-alternatives-obra

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill prevents costly implementation mistakes by ensuring you systematically explore and compare multiple design approaches before writing any code.

Core Features & Use Cases

  • Systematic Exploration: Generate and evaluate 2-3 alternative approaches for any non-trivial problem.
  • Trade-off Analysis: Compare alternatives against criteria like simplicity, performance, and maintainability.
  • Use Case: When designing a user validation system, use this Skill to compare manual validation, Pydantic models, and custom validator classes to choose the optimal approach for your specific needs.

Quick Start

Use the Exploring Alternatives skill to generate and compare three different approaches for implementing a user registration validation system.

Frequently Asked Questions about Exploring Alternatives

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

FAQPage Schema
How do I compare multiple design approaches before implementing a solution?

Comparing design approaches means generating 2-3 viable alternatives, documenting their trade-offs against criteria like simplicity and performance, then selecting the simplest approach that meets your requirements. This prevents costly implementation mistakes by exploring options systematically before writing code.

When should I explore design alternatives instead of building right away?

Explore alternatives for non-trivial features, complex algorithms, system design decisions, refactoring, architecture choices, and data-structure selections. For routine tasks, direct implementation is fine; for decisions with broad impact or uncertain tradeoffs, systematic exploration saves rework.

What trade-offs should I document when evaluating design options?

Document trade-offs across simplicity, performance, maintainability, and any domain-specific criteria relevant to your problem. Comparing alternatives side-by-side against these dimensions surfaces hidden costs and helps you choose the approach that best fits your actual constraints, not assumptions.

How do I know which design alternative is the best fit for my problem?

Best fit depends on your specific requirements and constraints. Compare candidates against criteria you define—simplicity often wins for long-term maintenance. Evaluate each alternative's tradeoffs, then select the simplest one that satisfies all your requirements rather than the theoretically optimal one.

Can I use this approach for refactoring or only for new features?

This approach applies equally to refactoring and new features. Explore alternative refactoring strategies—preserving existing behavior, incremental migration, or full replacement—and compare their tradeoffs before committing to one path.

What's the difference between exploring alternatives and overthinking design?

Exploring alternatives is systematic: generate 2-3 concrete options, document their tradeoffs, and decide. Overthinking lacks boundaries. Set a limit on alternatives upfront and commit to a decision once you've compared them against your criteria.