Problem
The orchestrator terminal sits idle after launching agents, only polling is_builder_done() every 15 seconds in a silent loop. There's no visibility into what's happening across the system unless you manually tail individual log files.
Proposal
Turn the orchestrator's wait loop into a live status feed that surfaces interesting events as they happen. The orchestrator already has access to logs/ — it can watch for changes and report them.
Events to surface
- Story claimed — builder N claimed story "XYZ" from BACKLOG.md
- Story completed — builder N finished story "XYZ", marked
[x]
- Milestone completed — milestone-NN merged to main
- Milestone review done — milestone reviewer finished reviewing milestone-NN
- Tests run — tester completed milestone-NN (N passed, N failed)
- Validation results — validator finished milestone-NN (pass/fail summary)
- Bugs filed — new bug issue opened by tester/validator
- Merge conflict detected — builder N hit a merge conflict (and whether it resolved or is stuck)
- Builder stuck — builder N hasn't committed in X minutes
- Agent idle/exited — reviewer/tester/validator went idle or shut down
Events to skip
- Individual commits (too noisy)
- Per-commit review results (already filed as issues)
Implementation approach
The orchestrator's _wait_for_builders() loop (currently just time.sleep(15) + is_builder_done()) would be extended to:
- Watch
logs/milestones.log for new milestone entries
- Watch
logs/builder-N.log for claim/completion patterns
- Watch
logs/validation-*.txt for new validation results
- Watch
logs/tester.log and logs/milestone-reviewer.log for activity
- Parse BACKLOG.md periodically for story state changes
- Check for stale builder logs (no activity for 5+ min)
Output would be timestamped single-line updates to stdout, e.g.:
[14:32:05] Builder-1 claimed story 3: "Member management API"
[14:35:12] Builder-2 completed milestone-02, merged to main
[14:35:18] Tester started testing milestone-02
[14:36:01] Validator started validating milestone-02
[14:38:44] Tester finished milestone-02: 12 passed, 0 failed
[14:40:02] Validator finished milestone-02: 8/8 PASS
[14:41:30] Builder-1 hit merge conflict on builder-1/milestone-03 (retrying...)
[14:42:15] Milestone reviewer completed review of milestone-02: 1 finding filed
Considerations
- Keep it lightweight — file polling, no new dependencies
- Don't duplicate logging that already goes to log files — this is a curated summary for the human watching
- Could optionally support
--quiet to suppress (for CI or background runs)
Migrated from markgar/multi-agent-dev#8
Problem
The orchestrator terminal sits idle after launching agents, only polling
is_builder_done()every 15 seconds in a silent loop. There's no visibility into what's happening across the system unless you manually tail individual log files.Proposal
Turn the orchestrator's wait loop into a live status feed that surfaces interesting events as they happen. The orchestrator already has access to
logs/— it can watch for changes and report them.Events to surface
[x]Events to skip
Implementation approach
The orchestrator's
_wait_for_builders()loop (currently justtime.sleep(15)+is_builder_done()) would be extended to:logs/milestones.logfor new milestone entrieslogs/builder-N.logfor claim/completion patternslogs/validation-*.txtfor new validation resultslogs/tester.logandlogs/milestone-reviewer.logfor activityOutput would be timestamped single-line updates to stdout, e.g.:
Considerations
--quietto suppress (for CI or background runs)Migrated from markgar/multi-agent-dev#8