propose-alternatives
Propose Alternatives
Evaluate the current approach and propose genuinely different alternatives with concrete trade-offs.
When to use
- Evaluating design choices before implementation
- Challenging whether the current approach is optimal
- Exploring options for a non-trivial technical decision
- Comparing frameworks, patterns, or architectures
Instructions
1 — Understand the problem
Gather context:
- What problem is being solved?
- What is the current approach (if any)?
- What files or code are relevant?
If any of these are unclear, use the AskUserQuestion tool to clarify before proceeding. Present what you understand and what's missing.
2 — Analyze and propose
- Evaluate the current approach honestly — including when it's already the right call
- Propose 2-3 genuinely different approaches (not minor variations)
- Be concrete: name files, functions, patterns
- For each alternative, assess pros, cons, and when it's the better choice
3 — Return output
Return an AlternativesOutput conforming to the Output Schema below.
Rules
- No trivial variations. Don't propose minor differences (e.g., different variable names, library A vs library B for the same pattern).
- Implementably different. Each alternative must be a genuinely different approach.
- Cite evidence. Read relevant code before claiming an alternative is feasible. Be concrete — name files, functions, patterns.
- Don't validate. Propose options with trade-offs; the sanity-check skill handles validation of a chosen approach.
- Honest confidence. Include honest confidence scores — speculative ideas get low confidence.
- Current may be best. If the current approach is already optimal, say so in the recommendation.
Output Schema
AlternativesOutput
AlternativesOutput {
current_approach_assessment: 1-2 sentence evaluation of what exists,
alternatives: Alternative[],
recommendation: which approach (including current) you'd pick and why
}
Alternative
Alternative {
id: sequential number starting from 1,
name: short name,
summary: 1 sentence,
implementation: concrete description with file paths and function names,
trade_offs: {
pros: string[],
cons: string[]
},
when_to_use: scenario where this alternative is better than the others,
confidence: 0.0-1.0
}
Field notes
implementation— be concrete. Name files, functions, patterns. "Use a queue" is too vague; "Add a BullMQ job inworkers/ingest.tsthat processes batches of 100" is concrete.confidence— how confident you are that this alternative would work well. 1.0 = proven pattern, below 0.5 = speculative.trade_offs— every alternative has both pros AND cons. If you can't name a con, you haven't thought hard enough.when_to_use— the scenario where this specific alternative is the best choice. Helps the user match alternatives to their actual constraints.- Propose 2-3 genuinely different approaches, not minor variations. "Use library A vs library B" is a variation, not an alternative.
More from preetamnath/agent-skills
shopify-dev-mcp
Routes Shopify Dev MCP calls for surfaces NOT covered by the bundled Shopify skills: `storefront-graphql`, `customer`, `partner`, `payments-apps`, `functions`, `hydrogen`, `liquid`, `custom-data`. SKIP for Admin GraphQL or App Home markup — the bundled `shopify-admin` and `shopify-polaris-app-home` skills cover those. SKIP entirely for `@shopify/post-purchase-ui-extensions-react` — the MCP doesn't index that legacy SDK; use `post-purchase-ui-extension` instead.
15plan-runner
Executes wave-grouped markdown plans via parallel subagents. Orchestrates implementation, per-wave review, fix cycles, and final two-pass-review. Resumable across conversations.
13interview-me
Move from ambiguity to clarity before building. Use when user says 'interview me', asks to be interviewed, or the task has ambiguous scope.
13sentry-analysis
Analyze Sentry error logs, breadcrumbs, and codebase context to diagnose and explain the root cause of issues.
13code-review
Structured code review with P0-P3 findings, confidence scores, and criteria-based analysis. Use for reviewing code changes, PRs, or specific files.
12plan-builder
Creates dependency-ordered, wave-grouped executable plans from a goal + context. Produces markdown plans with parallel execution waves compatible with plan-runner. Use when you need to break a goal into sequenced, atomic work items before execution.
10