Skip to content

Repo orchestrator: one coordinating session per repository when several lanes work in it #20

Closed

Description

@woksin

When several lanes work in the same repository, nobody owns that repository as a whole. The global coordinator (L0) spans every repository and cannot track one repository's builds, specs, branches and decisions closely. The repo owner (for example R-AI) only assembles candidate PRs. Gaps seen in the 2026-10-22/23 orchestration:

  • Deliveries are missed. L24 did not see a redelivery for four hours and started other work while the candidate waited.
  • Several lanes run gates on overlapping code states, which wastes build slots and CI minutes.
  • Review findings on one lane's branch reach that lane late, routed through the candidate owner and the coordinator.
  • Design and scope decisions that touch several lanes in the same repository go up to L0, which lacks repository context.

Rule

When two or more lanes or workers are active in one repository, that repository gets a repo orchestrator: one session specialised on that repository, sitting between L0 and those lanes. It owns:

  • Work split: which lane takes which issue, file ownership between lanes, and the merge and dependency order of branches.
  • Builds and tests: one gate per candidate code state, a schedule for the heavy phases (build slots, integration lanes), and an attribution of each failure to the delivery that caused it.
  • PRs and releases: it absorbs today's repo-owner role. It batches candidates, labels them, writes the release note, merges, and watches Publish.
  • Decisions: repository-local design and scope decisions are made here. It escalates to L0 or woksin only what crosses repositories or needs a product decision.
  • Inbox SLA: it acknowledges a delivery or redelivery within one wake cycle and replies with the candidate SHA or a rejection.

Lanes in that repository report to their repo orchestrator, not to L0. L0 talks to repo orchestrators. With one lane in a repository, that lane is its own orchestrator, as today.

Done when

  • ~/.pi/agent/AGENTS.md "Repo-owner mode" is replaced by the repo-orchestrator rule, and the L0 rules file (ALL-RULES-current.md) matches it.
  • The lanes tooling (lanes add and lanes status, see Modern, interactive, detect-first installer and shareable multi-lane orchestration #9) creates or names the repo orchestrator automatically when a second lane is added to a repository, and shows it in the status table.
  • Message routing (lanes send, the inbox-watch patterns) routes lane→repo-orchestrator→L0. Watch patterns also match timestamp-prefixed message names.
  • A template brief for a repo orchestrator covers the work split, the gate schedule, the candidate process, the decision log, and the inbox SLA.

Status

State: Done — Part A v.15, part B v.24.
Branch: -
Scope: Part A (main): AGENTS.md repo-orchestrator rule, repo-orchestrator brief template, inbox-watch timestamp-prefixed names. Part B (lanes stack, after #9 slice 7): lanes add/status/send repo-orchestrator routing.
Delivered: Nothing yet.
Remaining: To be confirmed.
Follow-ups: None.

Activity

  1. self-assigned this
    on Oct 23, 2026
  2. woksin commented on Oct 23, 2026

    @woksin
    OwnerAuthor

    Part A released in v2026.10.23.15: the repo-orchestrator rule in AGENTS.md, templates/repo-orchestrator-brief.md, and the inbox-watch timestamp-name docs and tests. L0 adopted the rule in ALL-RULES-current.md rev 4. Remaining: part B, lanes add/status/send support, which ships with the lanes slices of #9.

  3. woksin commented on Oct 23, 2026

    @woksin
    OwnerAuthor

    Part B delivered in v2026.10.23.24. lanes creates or promotes the repo orchestrator (R-), status shows roles and parents, and send routes through the repo orchestrator unless --direct is given. Part A (the AGENTS.md rule and templates/repo-orchestrator-brief.md) shipped in v2026.10.23.15.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions