Coding agents
Staff can run coding workers that never hold GitHub or GitLab credentials. The actor plans and edits in a leased worktree. A trusted broker (DevKit on your machine, or a hosted DevKit runner group) is the only process allowed to talk to git remotes, and only for exact objects you already acknowledged.
This is the same lifecycle as Tickets & software delivery. This page is the Staff/DevKit checklist so a customer can actually turn it on.
Register repositories
In Staff: Admin → Repositories. repository_uuid is Orkestia's provider-neutral id — not owner/name. Map that UUID to a local path only inside DevKit, never in the actor prompt.
Delivery policy (what remotes, which refs) is composed in Staff. The coding child does not see provider URLs.
Before hosted ticket-to-PR delivery
Local DevKit setup below is enough for attended work at your keyboard. For unattended delivery (agent implements a ticket, broker opens a pull request, controller merges when gates pass), the repository must also pass platform and manifest checks. Follow Wire a repository for coding agents, then Run a ticket end to end.
Local DevKit runner
On the laptop:
ltinteg-devkit configure # API token from Settings → API tokens
ltinteg-devkit runner repositories add <repository-uuid> /absolute/path/to/repo \
--allowed-root /absolute/root/containing/repos
ltinteg-devkit runner serve --group <runner-group-uuid>
The group must be an agent / cloudless DevKit group, not a GitHub Actions pool. Allowed roots are mandatory. The child runtime gets a run-scoped agent token and Orkestia API URLs. It does not get PATs, SSH agents, or home-directory credential helpers.
Full command reference: DevKit local runner.
Tickets and acknowledgement
- A ticket exists (from Lumen, a human, or an agent).
- The actor claims it and investigates in the worktree.
- A plan is written; a human acknowledges it in Staff/tickets.
- Implementation proceeds against the acknowledged head.
- Publication (when enabled) is parent-only: exact
OID:refafter the control plane froze those objects.
ltinteg-devkit ticket keeps local HEAD/OID in sync with the ticket. Do not "just push" from the coding process.
Hosted vs laptop
| Mode | Broker | When |
|---|---|---|
| Laptop | ltinteg-devkit runner serve | You are at the keyboard; plan acknowledgement is local |
| Hosted | Agent runner group with the DevKit/agent image | Unattended, still provider-blind |
Both stay agent-eligible. Mixing a GitHub-Actions group here will fail the eligibility gate or hang.
