| name | coordinate |
| description | Resume multi-agent coordination session. Reads memory, RooSync inbox, GitHub issues, and produces a situational briefing with recommended actions. Arguments: [--dispatch] [--focus <topic>] [--reply-all] |
Skill: Coordinate - Multi-Agent Coordination Hub
Resume or start a coordination session across all agents working on the CoursIA repository.
Target: $ARGUMENTS
Arguments
- (no args): Full situational briefing (memory + RooSync + issues)
--dispatch: After briefing, propose and send task assignments to idle agents via RooSync
--focus <topic>: Focus on a specific area: qc, slides, smartcontracts, sudoku, genai, epita
--reply-all: Read all unread RooSync messages and draft replies
Process
Phase 1 - Load Context from Memory
Read the following memory files to restore full situational awareness:
~/.claude/projects/d--CoursIA/memory/MEMORY.md - Index + quick reference
~/.claude/projects/d--CoursIA/memory/agent_map.md - Agent statuses + RooSync IDs
~/.claude/projects/d--CoursIA/memory/teaching_schedule_2026.md - Deadlines + priorities
~/.claude/projects/d--CoursIA/memory/jared_qc_partnership.md - QC sponsorship context (if --focus qc)
Phase 2 - Gather Live State
- Dashboards (PRIMARY channel) — read BOTH, independently:
roosync_dashboard(action:"read", type:"workspace", section:"all") for workspace-CoursIA and for workspace-CoursIA-2. These are two co-equal lanes; neither is "the coordinator's dashboard". Each carries its own worker lanes (a lane = machine × workspace: every machine with a CoursIA-2 lane also has a CoursIA lane). Read each separately so ASKs/blockers on one lane are not missed.
- RooSync inbox:
roosync_read(mode: "inbox", status: "unread") - Check for new messages from agents
- GitHub issues:
gh issue list --state open --limit 30 --json number,title,labels - Current open issues
- Git status:
git log --oneline -5 - Recent commits on main
- PRs:
gh pr list --state open - Any pending PRs to review
Phase 3 - Produce Situational Briefing
Output a structured briefing:
# Coordination Briefing - [DATE]
## Deadlines
- [Next 3 deadlines with countdown]
## Agent Status
| Agent | Status | Last Activity | Pending Questions |
|-------|--------|---------------|-------------------|
## Unread Messages
- [Summary of unread RooSync messages, if any]
## Open Issues (relevant)
- [Top issues by priority, filtered by --focus if provided]
## Recommended Actions
1. [Prioritized list of what to do next]
Phase 4 - Dispatch (if --dispatch)
For each idle agent with a clear next task:
- Compose a directive message with:
- Clear task description
- Issue number reference
- Expected deliverables (branch name, PR)
- Quality criteria
- Send via
roosync_send to the agent's RooSync ID
- Log the dispatch in the briefing output
Phase 5 - Reply All (if --reply-all)
For each unread message:
- Read full message content
- Draft appropriate reply (answer questions, acknowledge status, assign next task)
- Present replies to user for approval before sending
- Mark messages as read after processing
RooSync Communication Patterns
Sending directives
roosync_send(
to: "<machine>:<workspace>",
subject: "[DIRECTIVE] <short description>",
body: "## Mission\n...\n## Deliverables\n...\n## Quality Criteria\n...",
priority: "MEDIUM",
tags: ["directive", "<topic>"]
)
Acknowledging status reports
roosync_send(
action: "reply",
message_id: "<original-msg-id>",
body: "Recu. [feedback/next steps]",
priority: "MEDIUM"
)
Focus Areas
qc (QuantConnect)
- Agent: po-2024
- Issues: #106-113, #81
- Context: Partner course deadline fin mars, Sprint 1 done, Sprint 2 pending
- Memory: jared_qc_partnership.md, qc_strategies_catalog.md
slides
- Agent: po-2025
- Deadline: 24 mars CM ECE
- Context: PPTX migration, Marp attempt failed previously
smartcontracts
- Agents: po-2023:CoursIA, po-2026
- Issues: #119, #129
- Deadline: 20 mai EPITA
- Context: Plan complet existe (26 notebooks, execution reelle)
sudoku / search
- Agents: po-2023:CoursIA, po-2026
- Deadline: mi-avril EPITA
- Context: Search/CSP done (PR #127), Sudoku a reviser
genai
- Agent: po-2023:GenAI_Series
- Issues: #49, #60, #78, #79, #80, #84
- Context: 14/20 SemanticKernel OK, 6 echecs diagnostiques
epita
- Issues: #55 (IA Symbolique), Search/Sudoku
- Deadlines: mi-avril (contraintes), 20 mai (symbolique)
- Context: Tweety/Planners/SC enrichis, Lean-9/SW-13 done
Important Rules
- Never force push - See CLAUDE.md rules
- Coordination via RooSync only - No coordination files in git
- Two workspace dashboards, coordinated independently -
workspace-CoursIA and workspace-CoursIA-2 are co-equal lanes; a lane = machine × workspace. Every machine with a CoursIA-2 lane ALSO has a CoursIA lane (e.g. po-2026:CoursIA = Lean Conway/Knot vs po-2026:CoursIA-2 = Grothendieck; po-2024:CoursIA = QC vs po-2024:CoursIA-2 = MGS/.NET; po-2025:CoursIA = Python/ML vs po-2025:CoursIA-2 = .NET/Argumentum). READ and POST a lane-specific coordination on EACH dashboard every cycle — never mirror-broadcast identical content, never treat one as "mine vs the workers'".
- Issues + PRs - Each task = issue, each delivery = PR with review
- Prioritize by deadline - QC/slides > SmartContracts > Sudoku > GenAI