- coord/prdy subcommands now accept --claude/--codex runtime flags - New `mosaic coord run` generates continuation context and launches selected runtime, replacing manual copy/paste workflow - Next-task capsule (.mosaic/orchestrator/next-task.json) provides machine-readable execution context for deterministic session launches - Codex strict orchestrator profile added to runtime/codex/RUNTIME.md - Orchestrator protocol updated with between-session run flow - New smoke-test.sh for orchestration behavior verification Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
269 lines
9.2 KiB
Markdown
269 lines
9.2 KiB
Markdown
# Orchestrator Protocol — Mission Lifecycle Guide
|
|
|
|
> **Operational guide for agent sessions.** Distilled from the full specification at
|
|
> `jarvis-brain/docs/protocols/ORCHESTRATOR-PROTOCOL.md` (1,066 lines).
|
|
>
|
|
> Load this guide when: active mission detected, multi-milestone orchestration, mission continuation.
|
|
> Load `ORCHESTRATOR.md` for per-session execution protocol (planning, coding, review, commit cycle).
|
|
|
|
---
|
|
|
|
## 1. Relationship to ORCHESTRATOR.md
|
|
|
|
| Concern | Guide |
|
|
|---------|-------|
|
|
| How to execute within a session (plan, code, test, review, commit) | `ORCHESTRATOR.md` |
|
|
| How to manage a mission across sessions (resume, continue, handoff) | **This guide** |
|
|
| Both guides are active simultaneously during orchestration missions. |
|
|
|
|
---
|
|
|
|
## 2. Mission Manifest
|
|
|
|
**Location:** `docs/MISSION-MANIFEST.md`
|
|
**Owner:** Orchestrator (sole writer)
|
|
**Template:** `~/.config/mosaic/templates/docs/MISSION-MANIFEST.md.template`
|
|
|
|
The manifest is the persistent document tracking full mission scope, status, milestones, and session history. It survives session death.
|
|
|
|
### Update Rules
|
|
|
|
- Update **Phase** when transitioning (Intake → Planning → Execution → Continuation → Completion)
|
|
- Update **Current Milestone** when starting a new milestone
|
|
- Update **Progress** after each milestone completion
|
|
- Append to **Session History** at session start and end
|
|
- Update **Status** to `completed` only when ALL success criteria are verified
|
|
|
|
### Hard Rule
|
|
|
|
The manifest is the source of truth for mission scope. If the manifest says a milestone is done, it is done. If it says remaining, it remains.
|
|
|
|
---
|
|
|
|
## 3. Scratchpad Protocol
|
|
|
|
**Location:** `docs/scratchpads/{mission-id}.md`
|
|
**Template:** `~/.config/mosaic/templates/docs/mission-scratchpad.md.template`
|
|
|
|
### Rules
|
|
|
|
1. **First action** — Before ANY planning or coding, write the mission prompt to the scratchpad
|
|
2. **Append-only** — NEVER delete or overwrite previous entries
|
|
3. **Session log** — Record session start, tasks done, and outcome at session end
|
|
4. **Decisions** — Record all planning decisions with rationale
|
|
5. **Corrections** — Record course corrections from human or coordinator
|
|
6. **Never deleted** — Scratchpads survive mission completion (archival reference)
|
|
|
|
---
|
|
|
|
## 4. TASKS.md as Control Plane
|
|
|
|
**Location:** `docs/TASKS.md`
|
|
**Owner:** Orchestrator (sole writer). Workers read but NEVER modify.
|
|
|
|
### Table Schema
|
|
|
|
```markdown
|
|
| id | status | milestone | description | pr | notes |
|
|
```
|
|
|
|
### Status Values
|
|
|
|
`not-started` → `in-progress` → `done` (or `blocked` / `failed`)
|
|
|
|
### Planning Tasks Are First-Class
|
|
|
|
Include explicit planning tasks (e.g., `PLAN-001: Break down milestone into tasks`). These count toward progress.
|
|
|
|
### Post-Merge Tasks Are Explicit
|
|
|
|
Include verification tasks after merge: CI check, deployment verification, Playwright test. Don't assume they happen automatically.
|
|
|
|
---
|
|
|
|
## 5. Session Resume Protocol
|
|
|
|
When starting a session and an active mission is detected, follow this checklist:
|
|
|
|
### Detection (5-point check)
|
|
|
|
1. `docs/MISSION-MANIFEST.md` exists → read Phase, Current Milestone, Progress
|
|
2. `docs/scratchpads/*.md` exists → read latest scratchpad for decisions and corrections
|
|
3. `docs/TASKS.md` exists → read task state (what's done, what's next)
|
|
4. Git state → current branch, open PRs, recent commits
|
|
5. Provider state → open issues, milestone status (if accessible)
|
|
|
|
### Resume Procedure
|
|
|
|
1. Read the mission manifest FIRST
|
|
2. Read the scratchpad for session history and corrections
|
|
3. Read TASKS.md for current task state
|
|
4. Identify the next `not-started` or `in-progress` task
|
|
5. Continue execution from that task
|
|
6. Update Session History in the manifest
|
|
|
|
### Dirty State Recovery
|
|
|
|
| State | Recovery |
|
|
|-------|----------|
|
|
| Dirty git working tree | Stash changes, log stash ref in scratchpad, resume clean |
|
|
| Open PR in bad state | Check PR status, close if broken, re-create if needed |
|
|
| Half-created issues | Audit issues against TASKS.md, reconcile |
|
|
| Tasks marked in-progress | Check if work was committed; if so, mark done; if not, restart task |
|
|
|
|
### Hard Rule
|
|
|
|
Session state is NEVER automatically deleted. The coordinator (human or automated) must explicitly request cleanup.
|
|
|
|
---
|
|
|
|
## 6. Mission Continuation
|
|
|
|
When a milestone completes and more milestones remain:
|
|
|
|
### Agent Handoff (at ~55-60% context)
|
|
|
|
If context usage is high, produce a handoff message:
|
|
|
|
1. Update TASKS.md with final task statuses
|
|
2. Update mission manifest with session results
|
|
3. Append session summary to scratchpad
|
|
4. Commit all state files
|
|
5. The coordinator will generate a continuation prompt for the next session
|
|
|
|
### Continuation Prompt and Capsule Format
|
|
|
|
The coordinator generates this (via `mosaic coord continue`) and writes a machine-readable capsule at `.mosaic/orchestrator/next-task.json`:
|
|
|
|
```
|
|
## Continuation Mission
|
|
Continue **{mission}** from existing state.
|
|
- Read docs/MISSION-MANIFEST.md for scope and status
|
|
- Read docs/scratchpads/{id}.md for decisions
|
|
- Read docs/TASKS.md for current state
|
|
- Continue from task {next-task-id}
|
|
```
|
|
|
|
### Between Sessions (r0 manual)
|
|
|
|
1. Agent stops (expected — this is the confirmed stamina limitation)
|
|
2. Human runs `mosaic coord mission` to check status
|
|
3. Human runs `mosaic coord continue` to generate continuation prompt
|
|
4. Human launches new session and pastes the prompt
|
|
5. New agent reads manifest, scratchpad, TASKS.md and continues
|
|
|
|
### Between Sessions (r0 assisted)
|
|
|
|
Use `mosaic coord run` to remove copy/paste steps:
|
|
|
|
1. Agent stops
|
|
2. Human runs `mosaic coord run [--claude|--codex]`
|
|
3. Coordinator regenerates continuation prompt + `next-task.json`
|
|
4. Coordinator launches selected runtime with scoped kickoff context
|
|
5. New session resumes from next task
|
|
|
|
---
|
|
|
|
## 7. Failure Taxonomy Quick Reference
|
|
|
|
| Code | Type | Recovery |
|
|
|------|------|----------|
|
|
| F1 | Premature Stop | Continuation prompt → new session (most common) |
|
|
| F2 | Context Exhaustion | Handoff message → new session |
|
|
| F3 | Session Crash | Check git state → `mosaic coord resume` → new session |
|
|
| F4 | Error Spiral | Kill session, mark task blocked, skip to next |
|
|
| F5 | Quality Gate Failure | Create QA remediation task |
|
|
| F6 | Infrastructure Failure | Pause, retry when service recovers |
|
|
| F7 | False Completion | Append correction to scratchpad, relaunch |
|
|
| F8 | Scope Drift | Kill session, relaunch with scratchpad ref |
|
|
| F9 | Subagent Failure | Orchestrator retries or creates remediation |
|
|
| F10 | Deadlock | Escalate to human |
|
|
|
|
### F1: Premature Stop — Detailed Recovery
|
|
|
|
This is the confirmed, most common failure. Every session will eventually trigger F1.
|
|
|
|
1. Session ends with tasks remaining in TASKS.md
|
|
2. Run `mosaic coord mission` — verify milestone status
|
|
3. If milestone complete: verify CI green, deployed, issues closed
|
|
4. Run `mosaic coord continue` — generates scoped continuation prompt
|
|
5. Launch new session, paste prompt
|
|
6. New session reads state and continues from next pending task
|
|
|
|
---
|
|
|
|
## 8. r0 Manual Coordinator Process
|
|
|
|
In r0, the Coordinator is Jason + shell scripts. No daemon. No automation.
|
|
|
|
### Commands
|
|
|
|
| Command | Purpose |
|
|
|---------|---------|
|
|
| `mosaic coord init --name "..." --milestones "..."` | Initialize a new mission |
|
|
| `mosaic coord mission` | Show mission progress dashboard |
|
|
| `mosaic coord status` | Check if agent session is still running |
|
|
| `mosaic coord continue` | Generate continuation prompt for next session |
|
|
| `mosaic coord run [--claude|--codex]` | Generate continuation context and launch runtime |
|
|
| `mosaic coord resume` | Crash recovery (detect dirty state, generate fix) |
|
|
| `mosaic coord resume --clean-lock` | Clear stale session lock after review |
|
|
|
|
### Typical Workflow
|
|
|
|
```
|
|
init → launch agent → [agent works] → agent stops →
|
|
status → mission → run → repeat
|
|
```
|
|
|
|
---
|
|
|
|
## 9. Operational Checklist
|
|
|
|
### Pre-Mission
|
|
|
|
- [ ] Mission initialized: `mosaic coord init`
|
|
- [ ] docs/MISSION-MANIFEST.md exists with scope and milestones
|
|
- [ ] docs/TASKS.md scaffolded
|
|
- [ ] docs/scratchpads/{id}.md scaffolded
|
|
- [ ] Success criteria defined in manifest
|
|
|
|
### Session Start
|
|
|
|
- [ ] Read manifest → know phase, milestone, progress
|
|
- [ ] Read scratchpad → know decisions, corrections, history
|
|
- [ ] Read TASKS.md → know what's done and what's next
|
|
- [ ] Write session start to scratchpad
|
|
- [ ] Update Session History in manifest
|
|
|
|
### Planning Gate (Hard Gate — No Coding Until Complete)
|
|
|
|
- [ ] Milestones created in provider (Gitea/GitHub)
|
|
- [ ] Issues created for all milestone tasks
|
|
- [ ] TASKS.md populated with all planned tasks (including planning + verification tasks)
|
|
- [ ] All planning artifacts committed and pushed
|
|
|
|
### Per-Task
|
|
|
|
- [ ] Update task status to `in-progress` in TASKS.md
|
|
- [ ] Execute task following ORCHESTRATOR.md cycle
|
|
- [ ] Update task status to `done` (or `blocked`/`failed`)
|
|
- [ ] Commit, push
|
|
|
|
### Milestone Completion
|
|
|
|
- [ ] All milestone tasks in TASKS.md are `done`
|
|
- [ ] CI/pipeline green
|
|
- [ ] PR merged to `main`
|
|
- [ ] Issues closed
|
|
- [ ] Update manifest: milestone status → completed
|
|
- [ ] Update scratchpad: session log entry
|
|
- [ ] If deployment target: verify accessible
|
|
|
|
### Mission Completion
|
|
|
|
- [ ] ALL milestones completed
|
|
- [ ] ALL success criteria verified with evidence
|
|
- [ ] manifest status → completed
|
|
- [ ] Final scratchpad entry with completion evidence
|
|
- [ ] Release tag created and pushed (if applicable)
|