Concepts
The model behind Software Factory in one page. It covers scope and autonomy, workflows and runs, the four kinds of step, hosts and crews, and how people stay in the loop.
This page names the parts of the factory and how they connect. Each section links to the page that covers its part in full.
Scope: what the factory may touch
The factory acts only inside managed orgs: GitHub App installations that an owner or admin has switched on. A repository inside a managed org can have its own settings row, with an autonomy level, a board mode and a monthly token cap. A repository with no row runs at the tenant’s autonomy.default. See Managed orgs and repositories.
Autonomy: how far it may go
Autonomy is a ladder of four levels:
| Level | The factory may |
|---|---|
observe |
Read and record. It writes nothing to GitHub. |
suggest |
Comment and post reviews. |
draft_pr |
Open draft pull requests. |
auto_merge_low_risk |
Approve a pull request once it is ready. A person still merges. |
autonomy.max caps every repository, and each workflow default states the level it needs. See Autonomy levels.
Workflows and runs
A workflow is a graph you draw in the builder or start from a template. It has nodes, edges between them, limits (tokens, concurrency, GitHub calls) and a scope (the repositories it applies to). You edit a draft and publish a version. Publishing runs the full validator, and only a published version runs.
A run is one execution of a published version. It is made of steps, one for each node it reaches. Runs and steps have statuses you can filter on: a run is queued, running, waiting_approval, paused, held, succeeded, failed or cancelled. See Runs and steps.
The kinds of step
| Node | Decides with | Typical use |
|---|---|---|
| Trigger | The event it matches | Starts the run. |
| Scan | Vulnetix scanners | Find vulnerable packages, secrets, malware. |
| Decision | A System One classifier with a confidence threshold | Triage: fix now, schedule, ignore. |
| Gate | Deterministic checks, with no model | Tests pass, release jail clean, quality gate. |
| Crew | Agents on a host | Write the fix, the test, the review. |
| Human | A person | Approve a plan, a merge-ready change, a budget increase. |
| Output | The result of the run | Draft PR, review, comment, VEX, TEA release. |
| State | Values carried between steps | Pass a finding or a branch name along. |
Hosts, crews and agents
An agent is a Belai profile: a model, a system prompt, tools and limits. A crew is a set of agents dispatched together, up to 8 replicas, to one host for one step. A host is a machine running Belai: a Pix Sandbox that Vulnetix runs, or your own machine connected with belai rc. The factory picks a host for each crew step from its runOn rule. If no host can take it, the step waits and the card says why. See Hosts and placement.
The board
Work items are cards on a kanban board. A card is the same record as its GitHub issue when mirroring is on. Agents claim cards, move them between lists, and leave notes. Cards that need a person carry a checkpoint: label.
People in the loop
Anything that waits on a person is a checkpoint: an approval, an agent’s question, a card held or blocked, a draft pull request ready for review. The Checkpoints page lists them most urgent kind first and newest first within a kind, and the cockpit’s Needs you panel shows the head of that queue. You can answer most of them by voice on a Pix call.
Limits and money
Budgets nest from the month down to a single step, and the tightest one applies. A separate GitHub quota share keeps the factory from using up your installation’s API rate limit. Buttons that call GitHub show their price before you press them.
Evidence
The event stream is the live feed of everything that happens, kept 30 days. The audit ledger is a permanent hash chain of every change. Trust shows the SLSA level each repository reaches and exports the attestations. Delivery measures what the factory shipped, and marks each figure as measured, derived or assumed.