-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Problem
Three execution systems that don't compose:
daemon.ts(488 lines) — dead code, never registeredautonomous.ts(796 lines) — cron-based daemon, no intelligence, no cognitionrunAutopilot()inrun.ts(~300 lines) — intelligent scoring, but foreground only
Solution
One command, two modes:
squads run— daemon mode (autonomous, intelligent scheduling, runs forever)squads run <target>— single execution (one squad/agent, then exit)
Daemon mode (squads run)
Composes cron routines (from autonomous) + intelligence scoring (from autopilot):
every 60s tick:
1. Evaluate cron routines from SQUAD.md → spawn matching
2. Every N minutes (--interval): score all squads → dispatch top-scoring
3. After each dispatch: grade outcomes, push cognition signals, check PR reviews
4. Budget/quota gate before any spawn → auto-pause if exceeded
Flags
squads run # daemon: runs forever
squads run --once # daemon: one cycle, exit
squads run --interval 15 --budget 50 # daemon: custom settings
squads run --stop # stop running daemon
squads run --status # show daemon status
squads run --pause # pause without stopping
squads run engineering # single: run squad, exit
squads run engineering/code-review # single: run agent, exit
What to keep from each system
From autonomous.ts: cron evaluation, persistent cooldowns (JSON), detached daemon + PID, pause/resume + auto-pause, agent timeout enforcement, logging
From runAutopilot(): scoreSquads() intelligence, full squad loop dispatch (scanner→lead→worker→verifier), cognition cycle, role-based agent classification, conversation mode, budget tracking, Slack notifications
From daemon.ts: outcome grading (A-F), phantom detection (<30s = skip), PR review feedback loop
File changes
| File | Action |
|---|---|
daemon.ts |
Delete (dead code) |
autonomous.ts |
Delete (absorbed into run.ts) |
run.ts |
Refactor: clean runAutopilot() + absorb cron/cooldowns/PID/pause |
cli.ts |
Remove autonomous + daemon registration |
cron.ts, squad-loop.ts, cognition.ts |
Keep as-is |
Net impact
~1,284 lines deleted (488 + 796), ~200 lines added to run.ts. Net ~1,000 lines cleaner. One system, one mental model. Dispatch always via squads run <target> subprocess — full conversation depth, context injection, cognition signals.