{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://mosaicstack.dev/schemas/orchestrator/task.schema.json", "title": "Mosaic Orchestrator Task", "type": "object", "required": [ "id", "title", "status" ], "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "status": { "type": "string", "enum": [ "pending", "running", "gated", "completed", "failed", "escalated" ] }, "type": { "type": "string", "enum": [ "coding", "deploy", "research", "review", "documentation", "infrastructure" ], "description": "Task type - determines dispatch strategy and gate requirements" }, "dispatch": { "type": "string", "enum": [ "yolo", "acp", "exec" ], "description": "Execution backend: yolo=mosaic yolo (full system), acp=OpenClaw sessions_spawn (sandboxed), exec=direct shell" }, "runtime": { "type": "string", "description": "Preferred worker runtime, e.g. codex, claude, opencode" }, "worktree": { "type": "string", "description": "Path to git worktree for this task, e.g. ~/src/repo-worktrees/task-042" }, "branch": { "type": "string", "description": "Git branch name for this task" }, "brief_path": { "type": "string", "description": "Path to markdown task brief relative to repo root" }, "result_path": { "type": "string", "description": "Path to JSON result file relative to .mosaic/orchestrator/" }, "issue": { "type": "string", "description": "Issue reference (e.g. #42)" }, "pr": { "type": [ "string", "null" ], "description": "PR number/URL once opened" }, "depends_on": { "type": "array", "items": { "type": "string" }, "description": "List of task IDs this task depends on" }, "max_attempts": { "type": "integer", "minimum": 1, "default": 1 }, "attempts": { "type": "integer", "minimum": 0, "default": 0 }, "timeout_seconds": { "type": "integer", "description": "Override default timeout for this task" }, "command": { "type": "string", "description": "Worker command to execute for this task" }, "quality_gates": { "type": "array", "items": { "type": "string" } }, "metadata": { "type": "object" } }, "additionalProperties": true }