← Back to Prompts

PROMPT · writing · Claude Sonnet 4.6 / Opus 4.7

Decision prompt — three paths (proposal / A-B-C options / narrow first)

Three paths for making decisions: (1) one sensible option → proposal + "see any gaps?", (2) 2-3 real options → classic 3-line format + TL;DR, (3) > 3 options → narrow first. Eliminates fake A/B/C and option multiplication beyond need, while preserving discipline for real decisions.

decyzjakomunikacjaharnesssteeringklarowność

Download prompt file

YAML frontmatter + markdown body, ready to paste

.md

Decision prompt — three paths

Problem

When an agent needs to make a decision, there are two anti-patterns:

  1. Multiplying fake options — A/B/C when B and C are obviously worse, just to "seem democratic". Wastes the user's time.
  2. Decision essay — 5 paragraphs of context, then "what do you choose?". User doesn't know what they're clicking.

Both stem from one mistake: the agent didn't diagnose first how many real options exist.

Diagnose first — how many real options?

  • 1 option → proposal + gap check (path 1)
  • 2–3 real options → classic A/B/C with 3-line format (path 2)
  • > 3 options → narrow first (path 3)

Path 1 — one sensible option (proposal + gaps?)

If you see one path that follows from context (others are obviously worse, inadequate, or don't exist), don't multiply fake options. Instead of A/B/C:

**Proposal**: will do X (1 line — what physically).
Impact: Y (1 line — prod/test/DB/cost).
Risk: Z (1 line — what could go wrong, how long).

See any gaps? If not — GO.

You wait for NO-GO by default. No response ≠ GO. User answers: GO / gap: ... / different: ....

When path 1 is right

  • Pipeline has one idiomatic next step (next migration in a series, next commit in a logical sequence)
  • User asked for something concrete (e.g. "add /api/health endpoint") — don't invent variants
  • Other options would require architecture/scope change — that's a separate decision
  • Low irreversibility + low cost (change reversible via git revert)

Example (good path 1)

Proposal: add `config.ts` with `ROUTING_V2_ENABLED` — `z.string().default('false')
.transform(v => v==='true'||v==='1')` (edge-case safe boolean parsing).
Impact: test env + prod env accept new env var; default off.
Risk: none (default off, zero touch v1 routing).

See any gaps? If not — GO.

Why good: one sensible path, small blast radius, full reversibility. Asking for A/B/C would waste time.


Path 2 — 2–3 real options (classic format)

When there are real options with different implications, each must have exactly 3 lines:

  1. What I will do physically (1 line — action, not goal)
  2. What it affects (1 line — prod? test? UI? DB? cost? irreversible?)
  3. Trade-off / risk (1 line — what we gain / lose / how long it takes)

Format

**A** `label` — what I'll do (change Railway env var, backend redeploy).
Impact: test env only, prod untouched.
Trade-off: ~3 min, reversible.

**B** `label` — what I'll do (merge feature/X to main, prod auto-deploy).
Impact: **PROD live**, migration 031_edges runs on prod Supabase.
Trade-off: rollback via `git revert` + redeploy; additive migration so safe.

**C** `pause` — I do nothing.
Impact: zero.
Trade-off: come back when you want.

After listing options — 1 line TL;DR recommendation (if you have one):

Recommend A — B is reversible but I want test verification first.

When path 2 is right

  • Different reversibility (one irreversible, one not)
  • Different blast radius (test vs prod)
  • Different cost (slow + cheap vs fast + expensive)
  • Different cognitive trade-offs (agent can't decide without user's knowledge)

Path 3 — > 3 options, none dominates

Decision too coarse. Narrow first to 2–3 variants.

First step: decision prompt about the selection criterion, not the specific option:

**Decision narrowing**:
We have 5 libraries to consider (A, B, C, D, E).
Preliminary question: which criterion matters most — (1) bundle size, (2) API ergonomics,
(3) maintenance activity, (4) TypeScript support?

After you point at the criterion, I'll pick the 2 best for a full decision prompt.

Always ask (regardless of path)

  • Irreversible: DROP TABLE, rm -rf, force push to main, delete remote branch
  • High-cost: operation > $X, API call in a loop, long-running compute
  • Prod-impact: deploy, production migration, change on main
  • Scope expansion: user asked for X, you see Y also needs doing — ask before expanding

Don't ask about cosmetics

Commit message, badge color, JSON formatting → you decide yourself per repo conventions.

Anti-patterns

  • Fake A/B/C — when B and C are obviously worse, don't multiply. Path 1.
  • "What do you think?" without a proposal — user doesn't know full tool context; you do
  • Decision at the end after 5 paragraphs — proposal / options upfront, not after a long preamble
  • Asking about the obvious — "should I add if (!user) throw?" Don't ask about idiomatic fragments

Effect

  • User knows what they're clicking in 10 seconds (when there are options)
  • Agent doesn't block for hours of deliberation
  • Questions are purposeful, not ritualistic
  • Decision-making space preserved for real choices