skills/alternatives-analysis/SKILL.md
Generic framework for comparing alternatives and making structured decisions. Use when: evaluating competing options for architecture, strategy, tools, vendors, dependencies, pricing models, or process changes; auditing an existing decision for gaps; choosing between build vs buy approaches; or presenting a recommendation with explicit trade-offs and evidence.
npx skillsauth add michaelsvanbeek/personal-agent-skills alternatives-analysisInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This is a generic framework for structured comparison. Domain-specific skills (competitive analysis, dependency management, database selection, and similar) can apply this process within their own context.
Before comparing options, define what is being decided and why.
## Decision
**What**: [One sentence: what choice must be made]
**Why now**: [Trigger or deadline forcing this decision]
**Constraints**: [Budget, timeline, team size, compatibility, regulation, etc.]
**Success criteria**: [What a good outcome looks like - measurable when possible]
For each option, add a one-sentence concrete description.
Select criteria relevant to this decision and weight them.
| Criterion | What it measures | When it matters | |-----------|------------------|-----------------| | Cost | Upfront and ongoing financial impact | Budget-constrained decisions | | Time to value | How fast value appears | Time-sensitive situations | | Risk | Probability and severity of downside | High-stakes decisions | | Reversibility | How easy it is to undo | One-way-door decisions | | Quality/fit | How well it meets requirements | Specific requirement sets | | Scalability | Performance under growth | Growth-stage decisions | | Maintainability | Long-term operation effort | Multi-year impact | | Team capability | Ability to execute with current team | Skill-constrained situations | | Ecosystem compatibility | Integration with current systems | Platform/toolchain decisions | | Vendor/dependency risk | Exposure to external control | Build vs buy/vendor choice | | Opportunity cost | What is not done if this is chosen | Resource-constrained planning | | Stakeholder alignment | How well it balances competing interests | Cross-functional decisions | | Regulatory/compliance | Legal and policy obligations | Regulated contexts |
Use High/Medium/Low weights or numeric weights summing to 1.0.
Evaluate each option against each selected criterion with evidence.
### Option: [Name]
**Description**: [One sentence]
| Criterion | Assessment | Notes |
|-----------|------------|-------|
| Cost | $X upfront, $Y/mo ongoing | [Source or assumption] |
| Time to value | ~N weeks | [Prerequisites] |
| Risk | Medium - [specific risk] | [Mitigation] |
| ... | ... | ... |
**Strengths**: [Where this option is strongest]
**Weaknesses**: [Where it falls short]
**Assumptions**: [What must be true]
**Unknowns**: [What is uncertain]
Put criteria on rows and options on columns for quick comparison.
## Summary Comparison
| Criterion | Weight | Option A | Option B | Option C | Status Quo |
|-----------|--------|----------|----------|----------|------------|
| Cost | High | $$ | $ | $$$ | $0 |
| Time to value | High | 2 weeks | 6 weeks | 1 week | - |
| Risk | Med | Low | Med | High | Med (drift) |
| Reversibility | Med | Easy | Hard | Easy | - |
| Team capability | Low | Ready | Needs hire | Ready | - |
Guidelines:
Deliver the analysis in this order:
Recommendation template:
## Recommendation
**Choose**: [Option name]
**Why**: [2-4 sentences tied to weighted criteria and success criteria]
**What you give up**: [Best argument for the runner-up]
**Conditions**: [What must remain true; fallback if assumptions fail]
The recommendation should be falsifiable: it should be clear what evidence would change the decision.
| Anti-pattern | Problem | Fix | |-------------|---------|-----| | Straw-man options | Weak options make one option look best | Compare strongest realistic versions | | Anchoring on first option | Relative comparison instead of criteria-based evaluation | Score independently against criteria | | Missing status quo | Implies change is always required | Include do-nothing explicitly | | Single-dimension comparison | Over-optimizes one factor | Use multiple weighted criteria | | Analysis paralysis | Analysis cost exceeds decision value | Match depth to stakes | | Hidden recommendation | Decision-maker cannot act | State clear recommendation early | | Ignoring unknowns | Assumptions treated as facts | Label assumptions and unknowns |
| Decision type | Depth | What to include | |---------------|-------|-----------------| | Low stakes, reversible | Light (10 min) | 2-3 options, 2-3 criteria, concise recommendation | | Medium stakes | Standard (30-60 min) | 3-5 options, 4-6 weighted criteria, full table and rationale | | High stakes, irreversible | Deep (hours-days) | 5-7 options, 6+ criteria, scenario analysis, risk register |
A fast structured comparison is usually better than an unstructured gut call.
Record significant decisions so teams can trace why a path was chosen.
Use a lightweight template in your repo docs (for example,
docs/decisions/YYYY-MM-DD-<slug>.md):
# Decision: <title>
- Date: YYYY-MM-DD
- Context: [what triggered this decision]
- Options considered: [A, B, C, status quo]
- Recommendation: [chosen option]
- Why: [short rationale]
- Revisit when: [condition or date]
For repeated decision-making in the same project, maintain an index file that links all decision records.
development
TypeScript coding standards and type safety conventions. Use when: creating TypeScript files, defining interfaces and types, writing type-safe code, reviewing TypeScript for type correctness, auditing a codebase for type safety gaps, eliminating any or ts-ignore usage, or improving strict-mode compliance. Covers strict typing, avoiding any and ts-ignore, discriminated unions, Zod runtime validation, immutability patterns, and proper type definitions.
testing
Writing clear, actionable tickets in any issue tracker (Jira, Linear, GitHub Issues, ServiceNow, etc.). Use when: creating epics, stories, tasks, bugs, or spikes; writing acceptance criteria; decomposing work for a sprint; linking dependencies between tickets; auditing backlog items for clarity; or coaching a team on ticket quality. Covers title conventions, description templates, acceptance criteria, decomposition rules, dependency linking, and org-specific pluggable configuration.
development
Testing strategy, patterns, and evaluation for software and LLM/AI systems. Use when: writing tests, choosing test boundaries, designing test data, structuring test suites, evaluating LLM outputs, building evaluation pipelines, setting coverage thresholds, auditing test coverage gaps in existing projects, or improving test quality and structure.
development
Writing effective status updates for different audiences and cadences. Use when: writing a weekly status update, preparing a monthly summary, drafting a quarterly review, sending updates to leadership, sharing progress with stakeholders, or improving the clarity and impact of team communications. Covers weekly, monthly, and quarterly formats tailored for upward, lateral, and downward communication.