53 lines
1.5 KiB
Markdown
53 lines
1.5 KiB
Markdown
|
|
---
|
||
|
|
kind: epic
|
||
|
|
slug: convoy-lifecycle-mcp
|
||
|
|
title: Convoy lifecycle MCP — state machine and convoy_events
|
||
|
|
plan_slug: automation-foundation
|
||
|
|
status: draft
|
||
|
|
priority: P1
|
||
|
|
tenant_id: global
|
||
|
|
cursor_epic_id: null
|
||
|
|
updated_at: "2026-07-03"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Epic objective
|
||
|
|
|
||
|
|
Implement agent-pipeline **Phase 2a** convoy lifecycle in Echodo MCP: `create_convoy`, `create_brief`, `transition_convoy_status`, `log_convoy_event`, `query_manifest_status`, `reconcile_from_files`.
|
||
|
|
|
||
|
|
Server-enforced state machine (draft → convoy_review → ready → in_progress → pr_review → merged → released). Human gate actors (`human-gate-1/2/3`) only for their transitions.
|
||
|
|
|
||
|
|
Reference: agent-pipeline v0.4 plan §7; local-first `.convoys/` with `.pending-mcp-sync.jsonl` outbox.
|
||
|
|
|
||
|
|
## In scope / out of scope
|
||
|
|
|
||
|
|
**In scope**
|
||
|
|
|
||
|
|
- MCP tools in `apps/mcp-server`.
|
||
|
|
- `convoy_events` table (or extend `agent_runs` pattern).
|
||
|
|
- Map convoy → Echodo `project` object; brief → `task` child (per v0.4 object mapping).
|
||
|
|
- Extended status enum documented; UI filters updated in Epic 5.
|
||
|
|
|
||
|
|
**Out of scope**
|
||
|
|
|
||
|
|
- Orchestrator auto-dispatch (Epic 6).
|
||
|
|
- Deliverable templates (agent-pipeline Phase 2b).
|
||
|
|
|
||
|
|
## Dependencies
|
||
|
|
|
||
|
|
- Epic 2 (convoy file conventions).
|
||
|
|
- Epic 3 (workspace `convoys-<repo>` convention).
|
||
|
|
|
||
|
|
## Blocks
|
||
|
|
|
||
|
|
- Epic 5, 6, 9.
|
||
|
|
|
||
|
|
## Acceptance criteria
|
||
|
|
|
||
|
|
- [ ] Invalid transition `draft → released` rejected with structured error.
|
||
|
|
- [ ] `role-architect` cannot call `human-gate-1` transition.
|
||
|
|
- [ ] Offline convoy edit reconciles via `reconcile_from_files`.
|
||
|
|
|
||
|
|
## Tasks
|
||
|
|
|
||
|
|
_To be decomposed when epic graduates to `ready`._
|