Files
bootstrap/rails/orchestrator-matrix/README.md
2026-02-17 13:56:59 -06:00

1.6 KiB

Mosaic Matrix Orchestrator Rail

Runtime-agnostic orchestration rail for delegating work to worker agents and enforcing mechanical quality gates.

Purpose

  • Decouple orchestration from any single agent runtime feature set
  • Persist state in repo-local .mosaic/orchestrator/ files
  • Emit structured events for Matrix transport and audit trails
  • Enforce rails before marking tasks complete

Components

  • protocol/ - JSON schemas for task/event payloads
  • controller/mosaic_orchestrator.py - deterministic controller loop
  • adapters/ - runtime adapter guidance

Repo Contract

The controller expects this layout in each bootstrapped repo:

.mosaic/orchestrator/
  config.json
  tasks.json
  state.json
  events.ndjson
  logs/
  results/

Quick Start

From a bootstrapped repo:

~/.mosaic/bin/mosaic-orchestrator-matrix-cycle
~/.mosaic/bin/mosaic-orchestrator-run --once

Continuous loop:

~/.mosaic/bin/mosaic-orchestrator-run --poll-sec 10

Publish new orchestrator events to Matrix:

~/.mosaic/bin/mosaic-orchestrator-matrix-publish

Consume Matrix task messages into tasks.json:

~/.mosaic/bin/mosaic-orchestrator-matrix-consume

Matrix Note

This rail writes canonical events to .mosaic/orchestrator/events.ndjson. The Matrix transport bridge publishes those events into the configured control room and can consume task commands from that room.

Task injection message format (room text):

!mosaic-task {"id":"TASK-123","title":"Fix bug","command":"echo run","quality_gates":["pnpm lint"]}