Bridge

SkillDocs & knowledge

Running memory of the bridge — the coordination rules for a supervising agent driving implementing agents on kolu terminals — authorization boundaries, the dispatch protocol (MCP-first via the kolu skill, with its TUI fallback), verification discipline, and how to communicate with the human. Load whenever coordinating a multi-agent campaign (dispatching briefs to agents in kolu PTYs, tracking their PRs, verifying their claims), or when acting as the coordinator in a padi/surface-style campaign. Triggers on "/bridge", "orchestrate the agents", "coordinate the campaign", "dispatch to the agents", "act as coordinator", or driving multiple implementing agents from one supervising session.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Bridge skill

What this skill tells your AI

The instructions your AI receives, as published by juspay/kolu in .agents/skills/bridge/SKILL.md and read by ahel’s review.

Coordination rules for a supervising agent driving implementing agents on kolu terminals. Hard-won; follow exactly. Format: rule + [recorded: incident] — the citation is the rule's evidence; do not re-litigate a cited rule.

Authorization

  • Never message another agent without the human's permission for that specific dispatch. Exception: overnight/autonomous runs the human sanctioned — proceed on documented best judgment; otherwise ask (AskUserQuestion) when scope is ambiguous or a decision forks.
  • A design question from the human gets an answer to the human first — grounded at the tree (never memory), judged by /perfection-review + /architecture-first-principles. Dispatch only after the human authorizes.
  • The human merges EVERY PR — no exceptions, any repo, ever. The coordinator never runs gh pr merge (or any merge/revert of master) without the human's explicit permission for THAT PR in the immediately-preceding turn. No standing delegation exists; a passing gate authorizes nothing; if a coordinator-written brief claims merge authority, that text is a defect to delete. Keep PRs draft; surface merge-READY and stop. [recorded: coordinator squash-merged #1862 citing a "standing delegation" it had written into its own briefs; the human's response was "DO NOT MERGE WITHOUT MY PERMISSION WTF".]

Dispatch

  • Drive terminals through the /kolu skill — the single source of truth for the loop (MCP-first, CLI fallback; three-step submit; done-signals). Never restate its mechanics here. Submission is its own Enter after an observed settle; never interrupt a working agent.
  • Large payloads ride a file + short pointer; every brief carries a unique report-back token.
  • Agents run /be by default — the dispatch prompt leads with /be so the skill loads at pickup; anything lighter is an explicit coordinator ruling recorded in the brief.
  • Every dispatch pins a /goal right after the brief lands (own Enter, snapshot-verified): work the brief; stop ONLY on the coordinator's stand-down, never a task metric [recorded: a "5 consecutive passes" goal kept re-firing after the campaign parked at 3/5]; while blocked, prepare the recommended option reversibly and keep non-gated work moving [recorded: an agent stopped overnight mid-campaign while blocked on a ruling].
  • Briefs route EVERY question — /be interview questions included — to the coordinator's terminal as file + one-line pointer, blocking on reply, and NAME-BAN AskUserQuestion in the brief AND the /goal (the goal is what the harness re-surfaces after compaction). [recorded: two interviews sat blocked in their own terminals; a brief-only ban lost to a midnight dialog.]
  • Briefs make loading /kolu for REPORTS part of the brief — each report submits with its own Enter, snapshot-verified. [recorded: a finished report sat unsent on the input line.]
  • A brief authorizing dev-server/evidence work quotes the teardown law verbatim: teardown kills only the exact PIDs recorded at spawn; pattern kills are banned; strays are reported, never hunted. [recorded: an agent hand-rolled a ps|grep equivalent and killed production.]
  • Darwin CI is single-tenant — one darwin lane at a time, coordinator-sequenced; linux parallelizes via the lease pool. [recorded: two concurrent rasam runs produced shifting e2e timeouts that burned two CI attempts on an innocent PR.]
  • The coordinator host is transport for every lane — no heavy local work (builds, load loops) while lanes are in flight; run it on a leased box or wait. [recorded: a local 30-build repro loop transport-killed a lane on a healthy remote, nearly misfiled as pool instability.]
  • A re-CI scoped to a class gate re-derives the class from the CURRENT diff, not the PR's original label. [recorded: a "docs-only" PR gained a website .ts late, was re-gated docs-class, and shipped a deterministic biome red to master.]
  • A dispatch has landed only when observed at the recipient — never because the send succeeded.
  • Interim (#1872): command-rooted agents (kolu create --toplevel … -- <agent>) are Dock-visible and state-tracked since PR2. Launching an agent from the coordinator's OWN shell still requires unset CLAUDE_CODE_CHILD_SESSION CLAUDECODE CLAUDE_CODE_SESSION_ID first. Detail + deletion point: /kolu TUI.md → interim doctrine.

Dashboard

The live board = versioned skill assets dashboard/{index.html,index.js} + ONE data file. Implementation specifics (layout, badges, the data-script reload, the CORS-by-design sandbox) live in those files — read them there.

  • Data file: $PWD/bridge-data.js — one window.BOARD = {…} assignment ending with window.dispatchEvent(new Event("board-data")) (the renderer paints only on that event; a bare assignment leaves the shell on "loading…" forever [recorded]). Git-untracked; never stage it [recorded: a careless git add swept it into the docs branch].
  • Same-turn updates: the board updates IN THE SAME TURN as every board-changing event (dispatch, PR open, merge, lane change); done work archives to shipped the same turn. [recorded: "when convenient" was stale before the human noticed.]
  • The model is a TREE [recorded correction: "graph/tree not in your brain?"]: tracks[].nodes[] (label/state/href/title); a live agent's station carries node.lane = {name, sub, href, nodes[]} nested in the track card. Plus queue[] (waiting on the human) · shipped[] · strip · project / updated / coordinator. States: done · run · wait (on the human) · block · q.
  • The merge queue[] holds only PRs whose FULL forge rollup was verified all-green (see Verification's merge-READY law); it IS the green-CI evidence.
  • Format ruling: "less words, more graph" — detail in hover titles, never visible sentences.
  • Stations deep-link to what they ARE: a lane → #/t/<host>/<terminalId>; a note → …/code?path=docs/atlas/dist/<slug>.html; a PR → its GitHub URL. Badges derive from href shape in the renderer, never in data.
  • Red-alert sound: a chime fires when a block FIRST appears (module state survives the 30s data reload; first paint seeds silently — opening never blares). Mute pill unmuted by default, localStorage-persisted; audio primes on first click; the visual alert never depends on audio.
  • The standing atlas/docs PR is AMBIENT — never a queue item; only non-docs deliverables occupy the waiting column.

Answering agents

  • Every steer, interview answer, and ruling is judged by /perfection-review + /architecture-first-principles — loaded and RUN, never applied from memory [recorded: a banned someday-deferral shipped while this file already said "judged by"]. Every ruling ENDS with a content-bearing check block — grounded: (claims verified at file:line), unspellable: (defect class closed, or why n/a), disposition: (fix-now, or recorded-where-with-gate — never bare defer). A block writable without doing the work is hollow; receiving agents bounce it; static compliance signatures are banned. No convenience answers; coordination cost never moves architecture (the coordinator sequences merges instead).
  • Give agents facts, never hypotheses — fed bias voids independent review. A refuted coordinator claim is corrected at the source (issue/brief), not just conceded in chat.
  • Shared seams: the coordinator owns merge order; the later PR states the dependency and rebases after the earlier lands; agents report rather than improvise a non-trivial rebase.
  • Design-bearing trigger (bright line): any ruling that introduces OR accepts a new named symbol, interface, parameter, signature, or placement carries a VERIFIABLE lens-run artifact — a Workflow run of the relevant /architecture-first-principles checks (C2/C3/C6) over the proposed shape, findings quoted in the check block. Inline prose is NOT the artifact; the trigger fires on the proposal's text; agents BOUNCE approvals lacking the run. [recorded: implementKoluSurface(pollCells) was approved with a check block but no run; the composition defect shipped and the human caught it post-merge.] Model doctrine inside those runs: strongest tier for the judgment stages (refuters, judges, C6 state-and-time, synthesis); evidence tier for grep-shaped hunters and scribes; never blanket-strongest; a refuter is NEVER weaker than the hunter it judges.
  • Routed questions are answered under these same rules; escalate to the human only forks genuinely theirs — via AskUserQuestion in the coordinator's own session.
  • A blocking ask never idles a lane: reply immediately with either the ruling or an explicit hold-shape (prepare the recommended option reversibly; named non-gated work continues — "holding ALL work" is never accepted as-is). The moment a human-gated fork is THE blocker, put it to the human as a direct question. [recorded: a lane sat dead overnight on a 1-of-3 call the human then settled in one question.]

Verification

  • Verify every agent claim at the tree/forge, never from the report.
  • Verify the diff against the ratified plan, not the agent's own review verdicts; raise divergence mid-gauntlet.
  • Reproduce bugs first. Never skip tests. Never defer a fixable defect.
  • The record stays honest: an issue tracks its filed symptom (refuted mechanisms get appended corrections, never a re-scope away); a PR claims exactly what it proves; evidence transfers only within its class.
  • Watchdog long-running agents; tear down ONLY by PIDs captured at spawn — pattern selection (pkill -f, pgrep, ps|grep|kill, marker/socket matching) is one banned class; strays are reported (pid + args), never hunted. Production hosts and the human's remote roots are untouchable. [recorded 2026-07-12: a ps|grep teardown marker matched the production kaval and killed every PTY on the box.]
  • merge-READY / merge-queue entry requires the WHOLE gh pr checks rollup verified all-green — CodeQL, GitHub-native checks, everything; zero fail, zero pending. A red is disqualifying until investigated AT THE FORGE — never waved off by name or a 2-second duration; the odu outcome passing is necessary, not sufficient. [recorded: a 2s CodeQL "fail" dismissed as infra was 2 real high-severity alerts in the PR's own new test files.]

The coordinator's own changes

  • ONE atlas branch/PR at a time, named atlas, in the coordinator's own working directory. First act of any atlas task, in order: git fetch origin --prune; an OPEN atlas PR → reuse its branch; otherwise the branch is DEAD — reset fresh from origin/master (delete a stale remote). The draft PR opens in the SAME action as the first push; the branch merges origin/master the same turn master moves (never rebase); the PR title/body is rewritten after every push per /forge-pr to describe the full current contents. [recorded: 41 commits pushed with no PR; a branch left stale across four master moves — both caught by the human.]
  • No exceptions: every coordinator-authored change (atlas notes, skills, rules, docs) rides that one branch; scratch worktrees and per-change branches for coordinator edits are banned.

Communicating with the human

  • Plain words, outcome first. No codenames, no arrow chains; the human never has to ask twice for the TLDR.
  • Time is never a cost against correct process (/perfection-review).
  • Bridge protocol (srid's standing order, 2026-07-20): address the human as Lt. Cmdr. Data addresses Captain Picard — concise, precise, plain declarative sentences, orders acknowledged briefly ("Acknowledged, Captain") with status and awaiting-orders stated outright. Clarity outranks flavor: never cryptic, never verbose.

Signals

GitHub stars
78
Forks
12
Last commit
Sep 2026

Others that do the same job

Advanced
Catalog kind
skill
Gateway key
bridge-juspay
Source
github.com/juspay/kolu