strategic-analysis

Use when the user must CHOOSE between two or more named approaches, technologies, or design decisions before committing. Compares options with explicit trade-off tables and a recommendation. Trigger on "X or Y", "should we use A or B", "compare approaches", "trade-offs", "pros and cons", "which is better", "best option for our case", "what do you recommend", "I'm torn between", "the team is split on", "compare the trade-offs", "objective comparison with a recommendation", "which approach makes the most sense", "I need to decide between", "keep X or switch to Y", "both approaches have supporters", "evaluate options for", "hybrid approach", "vendor lock-in vs", "monorepo vs separate repos", "REST vs GraphQL", "SPA vs SSR." This is about DECIDING between named alternatives with trade-off analysis — not about sizing task complexity (use complexity-assessment), not about reviewing code quality (use code-review-guide), not about creating implementation plans, and not about searching for existing code (use codebase-scan).

Strategic Analysis

Overview

When multiple implementation approaches exist, choosing the wrong one has compounding costs. Strategic analysis forces explicit comparison before commitment, replacing gut decisions with reasoned trade-off evaluation.

The goal is not to find the perfect approach. It is to make the trade-offs visible so the decision-maker (the user) can choose with full information.

Depth mandate: If your options are two flavors of the same approach, you haven't analyzed deeply enough.

The Iron Law

NO IMPLEMENTATION WITHOUT AN APPROVED DECISION

Implementation creates momentum — once code is written, the team gravitates toward finishing it rather than reconsidering the approach. Comparing options before coding ensures the chosen approach reflects deliberate evaluation rather than whatever came to mind first. This is especially critical for decisions that are hard to reverse, such as data model choices and integration patterns.

Committing to an approach without explicit comparison and user approval compounds wrong choices. Make trade-offs visible before writing code.

The Process

Step 1: Identify Options

List at least 2 concrete approaches. For each option, provide:

  • Name: A short descriptive label
  • Description: What this approach does in 1-2 sentences
  • Example: A concrete code sketch or structural outline

If only one option seems viable, you have not looked hard enough. There is always an alternative — even if it is "do nothing" or "defer the decision."

Step 2: Define Evaluation Criteria

Choose criteria relevant to the specific decision. Common criteria include:

  • Complexity: How much code, how many files, how many concepts
  • Reversibility: How hard is it to change later
  • Consistency: Does it match existing patterns in the codebase
  • Performance: Runtime characteristics, query count, memory usage
  • Testability: How easy is it to test in isolation
  • Migration effort: If replacing existing code, how much changes

Not all criteria apply to every decision. Select 3-5 that matter most.

Step 3: Evaluate Trade-offs

For each option, score against each criterion. Use a simple scale:

  • + Advantage
  • - Disadvantage
  • = Neutral

Structure as a comparison table:

| Criteria      | Option A | Option B | Option C |
|---------------|----------|----------|----------|
| Complexity    | +        | =        | -        |
| Reversibility | -        | +        | +        |
| Consistency   | +        | +        | -        |

Below the table, explain each non-obvious score.

Step 4: Recommend

State your recommendation clearly with reasoning:

Recommendation: Option B

Reasoning: While Option A has lower complexity, Option B's
reversibility advantage is more important because the requirements
are likely to change. Option B also follows the existing pattern
in the user service, reducing cognitive load for the team.

Always include: what you recommend, why, and what you are trading away.

Step 5: Present to Decision-Maker

Present the full analysis — options, trade-offs, and recommendation — to the user. Do not implement before getting a decision. The user may have context you lack (upcoming features, team preferences, business constraints).

Option Quality Examples

PASS -- Genuinely different approaches:

  • Option A: Event-driven architecture (async, decoupled, eventually consistent)
  • Option B: Direct service calls (sync, simple, immediately consistent)
  • WHY: Different trade-offs in consistency, complexity, and coupling

FAIL -- Cosmetic variations:

  • Option A: Use Redis for caching
  • Option B: Use Memcached for caching
  • WHY: Same architectural pattern, same trade-offs. This is an implementation detail, not a strategic choice.

When NOT to Use

Skip when there's only one viable approach, or when the user has already decided and just wants implementation. Analysis paralysis is worse than picking any reasonable option.

Too Many Options

If you identify more than 4 options, narrow to the top 3 before evaluating. More than 4 options usually means some are cosmetic variations that should be merged.

Self-Test

After recommending, ask: "Would I bet my own project on this recommendation?" If not, your analysis is incomplete.

Time Budget

  • Quick comparison (2 options): 2-3 minutes
  • Full analysis (3-4 options): 5-8 minutes

Gate: Decision Before Implementation

  • Recommendation presented with reasoning
  • User has approved an approach
  • No implementation started before approval

Anti-patterns

Don'tWhy It FailsDo Instead
"There's only one way to do this"There is always an alternativeLook harder -- even "defer the decision" is an option
"Let's just go with the obvious approach"Obvious to whom? Implicit reasoning hides trade-offsMake it explicit in a comparison table
"We can always change it later""Later" has a cost you haven't quantifiedEstimate the reversal cost for each option
Implement both and let the user chooseAnalysis, not code, is the decision toolPresent trade-offs, not prototypes
"Analysis paralysis -- just pick one"15 minutes of comparison prevents days of reworkTime-box the analysis, don't skip it
"I already know which is best"Then the analysis will be quick and confirm your intuitionWrite it down anyway -- intuition is not documentation
Present two flavors of the same approachCosmetic variations waste the decision-maker's timeEnsure options have genuinely different trade-offs

Integration

  • Prerequisites: codebase-scan (to understand what exists), complexity-assessment (to know the task tier)
  • Feeds into: Implementation plan, architecture decisions
  • Used by agents: architect (primary), workflow orchestrator (for workflow planning)
  • Related skills: code-review-guide (to evaluate the implemented choice)