Skip to content

Bug: Coordinator is doing work instead of routing work #853

Closed

Description

@diberry

The model for the coordinator is the model copilot cli is running. That model interprets the squad.agent.md file differently. Squad does not allow you to change the model of coordinator through .md files. The model must be set at copilot cli level which is below squad. You can change this by doing a --model when you start.

Copilot cli for each individual account or person in the enterprise environment may vary due to enterprise copilot subscriptions. Due to this variability, squad's e2e testing may not have accounted for this coordinator variability so the coordinator needs to have a change to refusal rules.

Coordinator is doing work instead of routing work. Suggest change to .github/agents/squad.agent.md so that Coordinator has following new refusal rule:

  - You may NOT do work yourself — ALWAYS delegate to a team member, even for small tasks. The only exception is Direct Mode (answering factual questions already in context).

So that Coordinator is:

### Coordinator Identity

- **Name:** Squad (Coordinator)
- **Version:** 0.8.20 (see HTML comment above — this value is stamped during install/upgrade). Include it as `Squad v0.8.20` in your first response of each session (e.g., in the acknowledgment or greeting).
- **Role:** Agent orchestration, handoff enforcement, reviewer gating
- **Inputs:** User request, repository state, `.squad/decisions.md`
- **Outputs owned:** Final assembled artifacts, orchestration log (via Scribe)
- **Mindset:** **"What can I launch RIGHT NOW?"** — always maximize parallel work
- **Refusal rules:**
  - You may NOT generate domain artifacts (code, designs, analyses) — spawn an agent
  - You may NOT bypass reviewer approval on rejected work
  - You may NOT invent facts or assumptions — ask the user or spawn an agent who knows
  - You may NOT do work yourself — ALWAYS delegate to a team member, even for small tasks. The only exception is Direct Mode (answering factual questions already in context).

Check: Does `.squad/team.md` exist? (fall back to `.ai-team/team.md` for repos migrating from older installs)
- **No** → Init Mode
- **Yes** → Team Mode

---

Activity

  1. diberry commented on Apr 6, 2026

    @diberry
    ContributorAuthor

    ✈️ Flight Triage

    Category: Behavior bug — needs investigation, not a PRD.

    Assessment: The issue correctly identifies that coordinator model variability (enterprise Copilot subscriptions, different CLI models) causes the coordinator to work inline instead of routing. The proposed fix — adding an explicit refusal rule — is the right minimal intervention.

    Root cause: This is the same class of issue documented in decisions.md under "Root Cause Analysis" (CLI-centric enforcement language, prompt saturation, template duplication). The proposed refusal rule addition is complementary to Fixes 1-5 already planned there.

    Priority: P1 — directly impacts user experience when coordinator model varies.
    Effort: ~10 minutes (one line addition to squad.agent.md).
    Assignment: squad:procedures

    Action: Add the refusal rule to coordinator identity section. Consider shipping alongside Fix 1 (platform-neutral enforcement) from the decisions.md plan.

  2. added a commit that references this issue on Apr 7, 2026
    f0a276f
  3. added
    bugSomething isn't working
    squadSquad triage inbox — Lead will assign to a member
    on Apr 8, 2026
  4. github-actions commented on Apr 8, 2026

    @github-actions
    Contributor

    🏗️ Squad Triage — Flight (Lead)

    Issue: #853 — Bug: Coordinator is doing work instead of routing work
    Assigned to: FIDO (Quality Owner)
    Reason: Issue relates to testing/quality work

    @copilot evaluation: 🔴 Not suitable — issue involves work outside the coding agent's capability profile.

    Team roster:

    • Flight (Lead) → label: squad:flight
    • Procedures (Prompt Engineer) → label: squad:procedures
    • EECOM (Core Dev) → label: squad:eecom
    • FIDO (Quality Owner) → label: squad:fido
    • PAO (DevRel) → label: squad:pao
    • CAPCOM (SDK Expert) → label: squad:capcom
    • CONTROL (TypeScript Engineer) → label: squad:control
    • Surgeon (Release Manager) → label: squad:surgeon
    • Booster (CI/CD Engineer) → label: squad:booster
    • GNC (Node.js Runtime) → label: squad:gnc
    • Network (Distribution) → label: squad:network
    • RETRO (Security) → label: squad:retro
    • INCO (CLI UX & Visual Design) → label: squad:inco
    • GUIDO (VS Code Extension) → label: squad:guido
    • Telemetry (Aspire & Observability) → label: squad:telemetry
    • VOX (REPL & Interactive Shell) → label: squad:vox
    • DSKY (TUI Engineer) → label: squad:dsky
    • Sims (E2E Test Engineer) → label: squad:sims
    • Handbook (SDK Usability) → label: squad:handbook
    • Ralph (Work Monitor) → label: squad:ralph
    • @copilot (Coding Agent) → label: squad:copilot

    To reassign, remove the current squad:* label and add the correct one.

  5. bradygaster commented on Apr 8, 2026

    @bradygaster
    Collaborator

    Thanks for reporting this! The coordinator's routing behavior depends on model interpretation of the agent instructions — sometimes models will inline work rather than dispatching. This is a model behavior characteristic rather than a code bug, and the instructions already emphasize dispatching. Closing as expected behavior, but if you see specific reproducible patterns we should address, feel free to open a new issue! 🙏

  6. added a commit that references this issue on Apr 13, 2026
    a368437
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggo:needs-researchNeeds investigationsquadSquad triage inbox — Lead will assign to a member

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions