Skip to content

Structured Decision Prompts

Structured Decision Prompts (SDPs) are the mechanism agents use to surface questions, ambiguities, and decision points during any protocol phase. Instead of silently assuming an answer or dumping free-form text, agents present numbered options with a recommendation — similar to Claude Code's plan mode.

How It Works

When an agent encounters a fork where your intent is unclear and the decision materially affects the outcome, it presents a prompt like this:

15 lines
Decision needed: Authentication strategy

The PRD requires user authentication but doesn't specify the mechanism.
The codebase currently has no auth.

1. JWT with refresh tokens — Stateless, scales well, but requires token
   rotation logic and secure storage on the client.
2. Session-based auth — Simpler to implement and revoke, but requires
   server-side session state and doesn't scale horizontally without Redis.
3. OAuth2 with external provider — Delegates complexity to a third party,
   but adds a vendor dependency and may not fit all deployment environments.
★ Recommended: Option 1 — JWT fits the existing API-first architecture
  and avoids server-side session state.

4. Custom response / discuss further

You respond by selecting a number (1-4) or typing a custom response if you chose the last option.

When SDPs Appear

SDPs can arise at any point during agent execution, not just at interactive review gates:

PhaseAgentExample
discoverAnalyst"Should I focus competitive analysis on direct competitors only, or include adjacent markets?"
defineProduct Manager"This user story has two valid interpretations — which do you mean?"
designArchitect"Two viable patterns exist for this — which trade-off do you prefer?"
solveProduct Manager"This feature could be one story or split into 3 — how granular?"
implementFullstack Dev"The existing API doesn't support X. Extend it or create a new endpoint?"
reviewCode Reviewer"This code works but violates convention Y. Block or allow with a note?"

Decision Records

Every resolved SDP is logged to .sniper/artifacts/{protocol_id}/decisions.yaml:

13 lines
yaml
decisions:
  - id: D-design-001
    phase: design
    agent: architect
    context: "Authentication strategy for the API"
    selected_option: 0
    selected_label: "JWT with refresh tokens"
    options_snapshot:
      - "JWT with refresh tokens"
      - "Session-based auth"
      - "OAuth2 with external provider"
    custom_response: null
    timestamp: 2026-03-11T14:30:00Z

This log serves two purposes:

  1. Audit trail — Reviewers can see what decisions were made and why during interactive review
  2. Agent context — Downstream agents read the decisions file to avoid re-asking settled questions

Relationship to Interactive Review

SDPs complement interactive review gates — they don't replace them. Interactive review gates (Approve / Request changes / Edit directly) remain the control points between phases. SDPs handle mid-phase questions that arise during agent execution.

During interactive review, the orchestrator includes a summary of all decisions made during the phase, giving you full visibility into what was decided and why.

Learning from Decisions

When you pick a non-recommended option or use the escape hatch, the system checks whether your choice reveals a preference pattern. If it does, a learning is created and scoped to relevant agents and phases so that future SDPs factor in your preferences.

The retro-analyst also analyzes decision patterns after protocol completion — tracking recommendation acceptance rates and whether overrides led to better or worse outcomes.

When Agents Should NOT Use SDPs

Agents are instructed to skip SDPs for:

  • Trivial decisions with obvious answers
  • Questions already answered by project conventions, CLAUDE.md, or prior decisions
  • Implementation details that don't affect the user-facing outcome
  • Style preferences already codified in linter config or conventions

Next Steps