Skip to content

feat(cli): upgrade squad watch to full work monitor — triage + execute + board lifecycle #708

Closed

Description

@tamirdresher

Problem

squad watch today is just a lightweight triage bot — it labels issues and reports PR status. It does NOT:

  • Spawn Copilot sessions to actually DO work
  • Update the project board (In Progress / Done)
  • Claim issues before working on them
  • Reconcile board state vs issue state
  • Run multi-pass scanning (lightweight scan → hydrate actionable only)
  • Self-heal (orphan process cleanup, config repair)

Users expect squad watch to be a full work monitor that triages AND executes work autonomously — like having Ralph actively running.

Proposed Enhancement — Full Work Monitor

Upgrade squad watch to a proper Ralph work loop:

Phase 1: Work Execution (high impact)

  • After triaging an issue, spawn a Copilot CLI session to work on it
  • Claim the issue first (gh issue edit --add-assignee @me) before spawning
  • Move issue to In Progress on the project board when work starts
  • Move issue to Done when agent completes + PR merged
  • Two-pass scanning: Pass 1 lightweight list → Pass 2 hydrate only actionable issues

Phase 2: Board Lifecycle (medium impact)

  • Board reconciliation every round: verify Done items are actually closed, In Progress items are still open
  • Archive stale Done items (closed > 3 days, still on board)
  • Detect issues that fell off the board and re-add them

Phase 3: Operational Health (medium impact)

  • Self-pull: git fetch && git pull at start of each round to pick up latest changes
  • Orphan process cleanup: kill stale agent/node processes from previous rounds
  • Rate-limit budget gating: track cumulative API usage per round, pause if budget exceeded
  • Round timeout: kill stuck rounds after configurable max duration

Phase 4: Multi-Machine Coordination (stretch)

  • Machine heartbeat: write last-active timestamp per machine
  • Stale issue reclaim: if a machine hasn't heartbeated in 30 min, reclaim its issues
  • Issue-level heartbeat: periodically comment on claimed issues to show they are being worked

What This Does NOT Include

  • No Teams/email/WhatsApp monitoring (those are environment-specific, not core SDK)
  • No birthday checks or personal workflows
  • No podcaster or content generation
  • No cross-repo scanning (single repo per watch instance)

Architecture

squad watch --interval 5
  │
  ├── Round N
  │   ├── Self-pull (git fetch/pull)
  │   ├── Health check (orphan cleanup, config validate)
  │   ├── Pass 1: gh issue list --label squad (lightweight)
  │   ├── Filter: capabilities, already-claimed, blocked labels
  │   ├── Pass 2: Hydrate actionable issues (read body, labels, assignees)
  │   ├── For each actionable issue:
  │   │   ├── Claim issue (add assignee)
  │   │   ├── Move to In Progress on board
  │   │   ├── Spawn Copilot session with issue context
  │   │   ├── Wait for completion (with timeout)
  │   │   ├── Move to Done on board (if completed)
  │   │   └── Comment with results
  │   ├── Board reconciliation
  │   ├── PR status check
  │   └── Report round summary
  │
  └── Wait interval, repeat

Related

Activity

  1. github-actions commented on Mar 30, 2026

    @github-actions
    Contributor

    📋 Assigned to Flight (Lead)

    Issue: #708 — feat(cli): upgrade squad watch to full work monitor — triage + execute + board lifecycle

    Flight will pick this up in the next Copilot session.

    For Copilot coding agent: If enabled, this issue will be worked automatically.
    Otherwise, start a Copilot session and say:
    Flight, work on issue #708

  2. github-actions commented on Mar 30, 2026

    @github-actions
    Contributor

    🏗️ Squad Triage — Flight (Lead)

    Issue: #708 — feat(cli): upgrade squad watch to full work monitor — triage + execute + board lifecycle
    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.

  3. github-actions commented on Mar 30, 2026

    @github-actions
    Contributor

    📋 Assigned to EECOM (Core Dev)

    Issue: #708 — feat(cli): upgrade squad watch to full work monitor — triage + execute + board lifecycle

    EECOM will pick this up in the next Copilot session.

    For Copilot coding agent: If enabled, this issue will be worked automatically.
    Otherwise, start a Copilot session and say:
    EECOM, work on issue #708

  4. diberry commented on Mar 31, 2026

    @diberry
    Contributor

    🔄 Ralph status: PR #709 addresses this. Clean mergeable state, large scope (33 files, 3,825 adds). Ready for review.

  5. diberry commented on Mar 31, 2026

    @diberry
    Contributor

    @tamirdresher LGTM - love that it includes doc changes.

  6. added a commit that references this issue on Mar 31, 2026
    ab1333e
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

    go:needs-researchNeeds investigationpriority:p1This sprintsquadSquad triage inbox — Lead will assign to a membertype:featureNew capability

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions