Skip to content

fix: split Init Mode into two phases with ask_user gate (#66) - #72

Merged
bradygaster merged 1 commit into
devfrom
squad/66-init-skips-confirmation
Feb 15, 2026
Merged

bradygaster merged 1 commit into
devfrom
squad/66-init-skips-confirmation

Conversation

@bradygaster

Copy link
Copy Markdown
Collaborator

Summary

Fixes #66 — Squad init consistently skips user confirmation before creating the team.

Root Cause

Five reinforcing factors cause the LLM to skip the confirmation step:

  1. List completion impulse — numbered lists trigger sequential completion behavior
  2. Ambiguous conditional — On confirmation, create files reads as a soft gate
  3. Eager Execution Philosophy — the prompt explicitly encourages launching aggressively
  4. Parenthetical escape hatches — phrases like (or skip) allow implicit-yes interpretation
  5. No structural turn boundary — nothing in the prompt structure forces a pause

Fix

Two-phase Init Mode split

  • Phase 1: Propose the Team — ends with ask_user tool call and explicit STOP instruction
  • Phase 2: Create the Team — only triggered when the user confirms

ask_user with selectable choices

  • Step 5 now uses the ask_user tool with a choices array: ["Yes, hire this team", "Add someone", "Change a role"]
  • This renders as a selectable menu in the CLI, matching what other Squad users see

Eager Execution exception

  • Added explicit carve-out: "Eager Execution does NOT apply during Init Mode Phase 1"

Changes

  • .github/agents/squad.agent.md — split Init Mode, added STOP gate, added Eager Execution exception
  • test/init-flow.test.js — 8 new regression tests verifying prompt structure

Testing

All 53 tests pass (8 new + 45 existing):

  • STOP gate present between phases
  • ask_user referenced in Phase 1
  • Step ordering (propose before create)
  • Phase 2 gated on user confirmation
  • No file creation in Phase 1
  • Eager Execution exception present

Root cause: Init Mode numbered list triggers LLM completion impulse — model executes all steps in one turn, skipping confirmation at step 5.

- Split Init Mode into Phase 1 (propose) and Phase 2 (create)

- Step 5 now uses ask_user tool with choices for selectable menu

- Added explicit STOP gate between Phase 1 and Phase 2

- Added Init Mode exception to Eager Execution Philosophy

- New test file: test/init-flow.test.js (8 tests)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bradygaster bradygaster added release:v0.4.1 Targeted for v0.4.1 type:bug Something broken labels Feb 15, 2026
@bradygaster
bradygaster merged commit a236686 into dev Feb 15, 2026
1 check passed
@bradygaster
bradygaster deleted the squad/66-init-skips-confirmation branch February 15, 2026 09:35
bradygaster added a commit that referenced this pull request Feb 27, 2026
…ed to squad-pr

Session: 2026-02-21-spike-research
Requested by: Scribe

Changes:
- Logged Kujan spikes #66 (model selection), #67 (compaction), #70 (rate limiting), #71 (telemetry)
- Logged Fenster spike #72 (config schema expressiveness validation)
- Logged Strausz spike #68 (platform surface compatibility)
- Merged 6 decision inbox files into decisions.md
- Deleted 6 inbox files post-merge

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release:v0.4.1 Targeted for v0.4.1 type:bug Something broken

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant