Repository navigation
Closed
Labels
go:needs-researchNeeds investigationNeeds investigationpriority:p1This sprintThis sprintsquadSquad triage inbox — Lead will assign to a memberSquad triage inbox — Lead will assign to a membertype:featureNew capabilityNew capability
Description
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 pullat 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
- fix(cli): squad watch silently ignores quoted message #703 (watch ignores messages — UX fix)
- feat: organize agent work output into task-scoped folders (.squad/work/{issue}-{slug}/) #707 (work output folders)
- Current watch implementation:
packages/squad-cli/src/cli/commands/watch.ts
Metadata
Metadata
Assignees
Labels
go:needs-researchNeeds investigationNeeds investigationpriority:p1This sprintThis sprintsquadSquad triage inbox — Lead will assign to a memberSquad triage inbox — Lead will assign to a membertype:featureNew capabilityNew capability
Activity
github-actions commentedon Mar 30, 2026
📋 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.
github-actions commentedon Mar 30, 2026
🏗️ 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:
squad:flightsquad:proceduressquad:eecomsquad:fidosquad:paosquad:capcomsquad:controlsquad:surgeonsquad:boostersquad:gncsquad:networksquad:retrosquad:incosquad:guidosquad:telemetrysquad:voxsquad:dskysquad:simssquad:handbooksquad:ralphsquad:copilotgithub-actions commentedon Mar 30, 2026
📋 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.
feat(cli): upgrade squad watch to full work monitor with --execute mo…
feat(cli): add opt-in watch features — board, monitoring, two-pass, w…
docs+tests: complete PR deliverables for watch work monitor (#708)
fix: resolve CI failures — TypeScript .killed type + cspell vulns (#708)
fix: address Squad review findings — execFile shell bug + twoPassScan…
fix(test): bump help output line threshold for new watch flags (#708)
fix(test): use source path imports for watch-execute tests (#708)
feat(watch): add PlatformAdapter abstraction for multi-platform suppo…
refactor(watch): plugin-based capability system (#708)
fix(test): update import path for watch capability refactor (#708)
fix: update package.json export path for watch directory (#708)
fix(test): update remaining watch import paths in ralph tests (#708)
diberry commentedon Mar 31, 2026
🔄 Ralph status: PR #709 addresses this. Clean mergeable state, large scope (33 files, 3,825 adds). Ready for review.
diberry commentedon Mar 31, 2026
@tamirdresher LGTM - love that it includes doc changes.
feat(watch): plugin-based work monitor with ADO support (#709)