Skip to content

Factory operating model ​

This page shows who does what when a Albiex Synth City team works on a GitHub backlog. Use it with the Supervised factory playbook: this page explains the model, and the playbook gives the procedures.

Select a figure to open it at full size. Parts marked Planned (v3.1) come from proposal #506. They are not in Deck 3.0.0. In the figures, green boxes are planned.

Naming

This page calls the human role the Director. Agent Mail already uses that name. The Deck 3.0.0 UI and API still say operator for the same role, for example the operator token and the operator API. In code, operator remains the name of the Director's authority interface. A supervisor uses it only under delegation. A later release will call the token the Director key in the UI (#518).

Kinds of actor ​

Each actor is one of three kinds.

KindActorsJob
HumanThe DirectorOwns the outcome and the backlog. Makes the retained decisions.
AI agentSupervisor, Leader, implementers, verifiers, optional grooming helperWork that needs judgment: supervision, planning, implementation and review.
Non-agent systemSynth City controller, maintenance script, GitHubWork that a rule can do: dispatch, leases, Mail, attention signals, the maintenance operation and the record.

When a rule can do a job, the job belongs in the controller, not in an agent prompt.

Hierarchy of roles ​

Hierarchy of roles: the Director at the top; the supervisor and the grooming helper as optional staff roles; the Leader; implementers and verifiers; the Synth City controller and GitHub as non-agent systems, not ranks

  • The line of command is Director → Leader → implementers and verifiers.
  • The supervisor and the grooming helper are staff roles beside that line. Both are optional. Without a supervisor, the Leader reports directly to the Director.
  • The supervisor uses the Director's powers only within the recorded delegation. It does not take the Leader's authority over plans and backlog assessments.
  • Each team has one Leader, selected by leader_slot_id. The Director chooses the number of implementers and verifiers. Scope limits such as max_concurrent_dispatched limit concurrent work, not team size.
  • The Synth City controller and GitHub are not ranks. The controller enforces the hierarchy with tokens, leases, limits and Mail identity. GitHub holds the backlog and the record.
  • An external agent, such as OpenClaw, takes the supervisor role. It is not a second Director.

The factory ​

The factory: the supervisor, the Synth City controller and the team inside the factory boundary; the Director, the grooming helper and GitHub outside it

The factory is the supervisor, the Synth City controller and the team, working together on the Director's backlog.

Test: if the Director must start, stop, upgrade or repair a part, the part is in the factory.

PartIn the factory?Reason
Supervisor (AI agent)YesThe Director starts it and gives it delegation.
Synth City controller (non-agent)YesMaintenance upgrades and repairs it.
Team (AI agents)YesSynth City launches its sessions. The Director chooses the roster.
GitHub (non-agent)NoIt keeps running when the factory stops. It holds the backlog, and the result goes out there.
Director (human)NoThe Director owns the factory and the backlog and keeps the retained decisions.
Grooming helper (AI agent)NoIt is optional. It works for the Director, not for the factory.

The Director owns the backlog ​

The Director owns and grooms the GitHub backlog:

  • Write and order the issues.
  • Set the acceptance conditions.
  • Apply the dispatch label. The dispatch label is the Director's "ready" signal.

An optional AI agent can help. It drafts or splits issues for the Director, and the Director decides. The Leader assesses the groomed backlog and selects the next eligible work. The Leader does not own the backlog.

Two operating modes ​

Two operating modes: in normal running, Synth City flags a problem and the Leader or the Director acts; in factory maintenance, the supervisor prepares a fix, the owners hand off, the maintenance script upgrades the controller, and the supervisor checks the state and resumes

Normal running. Synth City code finds problems: stopped attempts, stalled owners, recovery decisions, review or merge requests and HOLD. The Leader acts on backlog work. The Director makes the retained decisions. A supervisor is optional.

Factory maintenance. Maintenance is a Synth City feature that the supervisor drives.

  • Synth City supplies scripts/factory-maintenance.py and its checks: owner checkpoints through Mail, pause, backup, proof of termination, deploy and retained-state checks.
  • The supervisor decides when to run it, prepares the reviewed fix and the request files, runs the operation and resumes the factory.
  • Team sessions keep running through the controller restart. The upgrade is refused if a session binding or generation changes.
  • A successful upgrade ends as deployed_paused. Resume enables autonomy again and releases the operation's holds. It does not start any agent again.
  • While the controller is down, the Synth City UI is not available. The parent GitHub issue is the only live status surface.

See the maintenance runbook and the playbook's maintenance section.

Why the supervisor runs outside the controller ​

The supervisor is part of the factory, but it does not run inside the controller process.

  • It cannot upgrade its own host. An upgrade stops the controller, proves termination and restarts it. An agent inside the controller stops when the controller stops.
  • A watchdog must not fail with the thing it watches. If the controller stalls or crashes, an internal supervisor stops too, and nobody sees the failure.
  • A controller that repairs itself is unsafe. An internal agent with permission to change and deploy Synth City makes the safety model much harder to understand.
DutyOwnerKind
Own and groom the backlogDirector, optionally helped by an agentHuman
Detect stalls, stopped attempts, holds and required decisionsSynth City controllerNon-agent
Assess the groomed backlog, approve plans, select the next eligible workTeam LeaderAI agent
Repair, upgrade and roll back the factorySupervisor, with the maintenance scriptAI agent and non-agent
Retained decisions: publication, budgets, models, security HOLDDirectorHuman

One campaign, start to finish ​

ActorGroomPrepareRunDecisionMaintenanceFinish
Director (human)Write and order issues; apply the dispatch labelWrite the outcome and delegation; authorize the startGroom at any time; read the summaryApprove or decide on GitHubOnly for a security HOLDApprove publication
Supervisor (AI agent, optional)Draft issues for the DirectorRun startup checksFix routine blockers within delegationPrepare the exact request and evidenceFix, hand off, run the reviewed upgradeReconcile records; disable dispatch
Synth City controller (non-agent)Poll labelled issuesStore scopes, leases and Mail identityDispatch; bound attempts; show signalsList the human actionRecord the operation; preserve authority and leasesShow the result
Leader and team (AI agents)Optional readiness assessmentMail canaryAssess, plan, implement, verifyIndependent work continuesOwner checkpoint, then holdClose issues
GitHub (non-agent)The Director's backlogParent issue and backlogPRs and required CIExact instructions in the issueOnly live status surfaceFinal record

Supervisor heartbeat — Planned (v3.1) ​

Supervisor tick: read, act if delegated, publish if changed, check inThe controller derives Healthy, Late or Absent from the last check-in and the clock

The supervisor keeps no state between ticks. It reads Synth City and GitHub again on each tick, so a harness exit or reboot loses nothing. Replay safety comes from the controller's existing replay_key and operation_id records.

At the end of each tick, the supervisor promises its next check (next_check_at). The controller compares that promise with the clock. The supervisor never reports its own health.

StatusMeaning
NoneNo supervisor is registered. This is not an error.
HealthyThe promised check has not passed.
LateThe check is overdue. Work can still run.
AbsentNo check-in, or the check is overdue past the threshold.

Director's summary — Planned (v3.1) ​

One summary at the top of the Overview answers three questions: Do I need to act? Is anyone watching? What work remains? Most lines collect data that Deck 3.0.0 already has. The supervisor line and the team total for remaining work are new. See #506 and #508.

text
Publish the next release                      Parent issue: #NNN
Outcome:     Release tagged, website live, final record posted
Supervisor:  Healthy. Checked 2 minutes ago. Next check in 8 minutes.
Attention:   None open
Remaining:   Publish the release and the website. Estimate: under 1 active hour.
Next actor:  You
Your action: Review the previews and approve publication on #NNN at SHA <sha>.

Released under the MIT License.