Skip to content

Writing code

The most developed piece of work in the product is the coding controller: hand it an issue, get back a merge request. The interesting part is where it deliberately stops.

Issueor epicOwn checkoutat an exact commitPlanneeds approvalVerify · review · repairbounded — cannot loop foreverMerge requestidempotentretries, up to a limitfull stop

It never merges. It never deploys. A human reviews the merge request like any other.Each agent gets its own checkout, so parallel work cannot collide.“Idempotent” means running it twice updates the same merge request instead of opening a second one.

The pipeline is designed around one refusal: the agent produces a reviewable proposal and hands it to a person. Autonomy ends at the merge button, by construction rather than by policy.

Why each step is there

An exact commit, not a branch name. The checkout is pinned to a specific commit, so the work the agent reviewed is the work it changed. A branch that moved underneath it would silently invalidate everything after.

A plan before code. The agent writes what it intends to do and that plan passes the gate. Reviewing an intention costs a minute; reviewing a finished 40-file diff costs an afternoon.

Bounded repair. Verification failures trigger a retry loop with a hard limit. Without the limit an agent can burn budget indefinitely on a problem it cannot solve.

Idempotent output. Running the job twice updates the existing merge request rather than opening a second one, so a retry after a crash does not litter the forge.

The controller has no merge rights and no deploy path. This is not a setting that can be relaxed with a config flag — the pipeline simply ends at the merge request. Shipping stays a human act.

Where the work comes from

An agent can be handed work three ways: a person asks in chat, someone mentions the bot on a merge request or issue in GitLab or GitHub, or a schedule fires and starts a turn with no human present at all. The third case is why the audit log and the interrupt governor exist — proactive work needs the same record and the same manners as work you asked for.