- Get Started

Architecture

OpenFlows is built on a simple thesis: architecture is the product. AI can generate code against a spec, but it cannot write the spec. OpenFlows encodes the engineering - the architecture, the contracts, the review gates, and the recovery patterns - so that agents produce software, not just code.

Runtime Contract: Coder is the Only Runtime

Coder is the only runtime. OpenFlows is a thin orchestration brain that runs on top of a self-hosted Coder deployment. It does not provision its own VMs, manage its own SSH keys, or host AI agents directly. Instead, it delegates every execution concern to Coder:

Worker workspaces have zero AI software, zero LLM keys, and zero GitHub tokens. The only software they receive is a small openflows-harness binary that talks to Redis with typed, validated schemas. This is a deliberate security boundary: if a workspace is compromised, it contains no long-lived credentials and no model access.

OpenFlows Core

At the center of OpenFlows are three primitives:

OpenFlows uses the Coder Chats API (control plane) for orchestration, not the in-workspace AgentAPI. This means NEXUS asks Coder to run a chat session with a control-plane agent, which then connects to the worker workspace over a secure tunnel. The worker itself never initiates LLM calls or outbound GitHub requests.

Role Topology

Five roles cooperate through the SharedStore:

Extension Point

The primary extension surface is orchestration/agent/registry.json (v2). It declares skills, MCP servers, model assignments, and instance counts per role. Adding a skill, MCP, or model typically requires no Rust code change - only a registry entry and a ./update-binaries.sh run.

Authentication

GitHub authentication is Coder external auth only. There are no personal access tokens stored in OpenFlows or inside workspaces. Each tenant authenticates through Coder's OAuth flow, and every Git operation is performed under that tenant's Coder identity. See the Token Guide for the exact scope requirements.

The flow in brief

GitHub issue → NEXUS assigns ticket → Coder workspace provisioned → FORGE writes PLAN.md → SENTINEL reviews plan → FORGE implements segment by segment → SENTINEL evaluates each segment → FORGE opens PR → VESSEL polls CI and squash-merges → LORE writes ADR and CHANGELOG → Coder workspace torn down. No human intervention.