Orkestia
Blog
Staff & Agents

Wire a repository for coding agents

Prepare a GitHub repository for Staff coding agents — platform registration, manifest files, and preflight before hosted ticket-to-PR delivery

Coding agents never receive GitHub credentials. A trusted broker (DevKit on your machine, or a hosted agent runner group) is the only component that talks to git remotes. This page is about getting the repository and Orkestia configuration ready before you open a delivery.

Two ways to work. Local development with DevKit is documented in Coding agents. Hosted ticket-to-PR delivery needs the checklist below andRun a ticket end to end.

What "ready" means

Hosted delivery needs both:

  1. Orkestia platform — the repository is registered in your org, bound to GitHub through your org's app connection, and has an active delivery policy and execution profile.
  2. Repository manifest — the branch the runner will prepare (usually your default branch) contains the files your stack expects. For Python projects using python-uv, that includes a committed uv.lock and orkestia.runner.json.

If either layer is incomplete, the coding session may fail before any edit happens, often with an environment or dependency preparation error. Fix the manifest on the branch the runner uses, then re-run your org's coding preflight.

Who does what

RoleTypical tasks
EngineerOpen a bootstrap pull request: lockfile, orkestia.runner.json, tests or lint commands that match CI
Org administratorRegister the repo in Staff, connect the GitHub App, create delivery policy and execution profile, assign the coding runner group
OperatorRun Run a ticket end to end after preflight reports ready

Until the in-product setup wizard is available, platform steps are completed in Staff → Admin → Repositories (or by your administrator). Developers should not paste git credentials into agent prompts.

Repository manifest (your GitHub repo)

Python (python-uv)

  1. Add orkestia.runner.json at the repository root. It declares how the runner installs dependencies and which commands validate a change (for example test or lint invocations). Commands you list must exist on the prepared branch.
  2. Commit a uv.lock on the same branch the runner will use (typically main or master). The coding agent is not the right tool to produce the first lockfile on a greenfield repository. Use a normal pull request first.
  3. Align CI job names with what your org's delivery policy expects for required checks. A mismatch blocks the approval gate even when local tests pass.

Verify locally before asking for a hosted run: install from the lockfile, then run the same commands declared in orkestia.runner.json.

Other stacks

Multi-stack support varies by org configuration. If Staff shows your repository as an unsupported stack, use DevKit on a laptop for attended coding or contact your administrator. Do not assume Python-only files apply.

Orkestia platform (org administrator)

Your administrator ensures:

  • The repository appears under Staff → Admin → Repositories with a stable repository_uuid (Orkestia's id, not the GitHub numeric id).
  • A GitHub connection (GitHub App) is selected for this repository, not a personal access token on the agent.
  • A delivery policy defines allowed target branches, diff thresholds, and required CI checks.
  • An execution profile is active and matches the manifest (dependency_kind, commands).
  • The coding runner group is an agent-eligible group (Runner groups), not a CI pool meant only for GitHub Actions jobs.

When setup completes, run your org's coding preflight for that repository (from Staff or an org-member workflow your assistant can call). Proceed to delivery only when preflight reports ready with no blockers.

DevKit-only shortcut

If you only need a local coding loop:

  1. Register the repository in Staff.
  2. Map repository_uuid to a local path with ltinteg-devkit runner repositories add.
  3. Start ltinteg-devkit runner serve with an agent runner group.

See Coding agents and DevKit local runner. This path does not replace platform setup for unattended ticket-to-PR delivery.

Common blockers (plain language)

SymptomLikely cause
Session stops before editsLockfile or runner manifest missing on the prepared branch
Preflight mentions commandsPolicy requires a command not defined in orkestia.runner.json
Gate never approvesRequired CI check names in policy do not match GitHub
Lane busyAnother delivery still holds the same target branch. Close or complete prior work (Run a ticket)

Next steps