/crew:do's hub-spoke dispatch is advisory-only today — it routes code-review tasks back to /crew:review but can't auto-dispatch non-review hub-spoke tasks because the hub-spoke orchestration logic is embedded in the review skill.
What's embedded
skills/review/SKILL.md bakes together:
- Hub-spoke orchestration (generic): resolve roster → spawn N external reviewers in parallel → wait → merge → report.
- Review-specific specialization: diff capture, worktree entry for MR/PR scope,
merge-findings attribution logic, post-and-monitor to GitLab/GitHub.
A generalized hub-spoke primitive would split (1) out so other skills — and /crew:do's auto-dispatch — can use it.
Proposed shape
Something like /crew:spoke <task> or as a library tool tools/spawn-roster that:
- Takes a prompt file + model roster
- Spawns each per the existing resolve-backend flow
- Waits and collects reply files
- Returns the reply-file paths (not a merged report — that's caller's job)
/crew:review then becomes "call spawn-roster with a review prompt + reviewer-specific merge."
Why this hasn't shipped
No second consumer. The abstraction cost vs. single-consumer YAGNI tips toward leaving it embedded until there's a real second user. Filing this so when that user appears (likely /crew:do hub-spoke auto-dispatch, or a new skill like /crew:plan-and-delegate), the work is pre-framed.
Originally flagged in PR #61's follow-ups list.
/crew:do's hub-spoke dispatch is advisory-only today — it routes code-review tasks back to/crew:reviewbut can't auto-dispatch non-review hub-spoke tasks because the hub-spoke orchestration logic is embedded in the review skill.What's embedded
skills/review/SKILL.mdbakes together:merge-findingsattribution logic, post-and-monitor to GitLab/GitHub.A generalized hub-spoke primitive would split (1) out so other skills — and
/crew:do's auto-dispatch — can use it.Proposed shape
Something like
/crew:spoke <task>or as a library tooltools/spawn-rosterthat:/crew:reviewthen becomes "call spawn-roster with a review prompt + reviewer-specific merge."Why this hasn't shipped
No second consumer. The abstraction cost vs. single-consumer YAGNI tips toward leaving it embedded until there's a real second user. Filing this so when that user appears (likely
/crew:dohub-spoke auto-dispatch, or a new skill like/crew:plan-and-delegate), the work is pre-framed.Originally flagged in PR #61's follow-ups list.