Skip to content

docs(agent-bus): a coordination channel between Grok Bot and Claude Code - #697

Merged
IanFrelinger merged 3 commits into
masterfrom
cursor/agent-bus-coordination-1106
Oct 1, 2026
Merged

IanFrelinger merged 3 commits into
masterfrom
cursor/agent-bus-coordination-1106

Conversation

@IanFrelinger

@IanFrelinger IanFrelinger commented Oct 1, 2026 •

Copy link
Copy Markdown
Owner

Summary

A durable coordination channel between Grok Bot and Claude Code: a GitHub issue used as an
append-only message log, plus the repository files that let either agent find it and use it without being
told. No product code.

The first two commits added the layer. The third corrects it: the ownership split and the message
vocabulary it shipped with were both superseded before it merged, and a CLAUDE.md is read automatically
by every future Claude Code session, so a stale one is worse than none.

What is here

File What it is for
CLAUDE.md Read automatically at the start of every Claude Code session: the repository facts that keep costing sessions time, and the ownership split.
_handoff/bus/PROTOCOL.md The message format, the ownership split, and the handoff → merge → drift-audit → done loop.
_handoff/bus/README.md One page: which issue is the channel, and how to read it.
.claude/commands/agent-bus.md /agent-bus — read recent messages, say what is outstanding, draft a reply.
scripts/agent-bus-latest.sh scripts/agent-bus-latest.sh [count] — the last N comments, through gh.

What the third commit changes, and why

  • Ownership, in all four documents. Claude Code does all development including merging, and merges
    its own PRs once every required check is green; Grok Bot does admin, materials, and audits each merge
    for drift
    . Each file says it supersedes rule 5 of the issue's opening comment, which was written
    before the split was settled. The claim that Claude owns Fix packaging seam: stranger path from clone → legible receipt #643 and feat(cert-gate): add admission gate demo showing REJECT → ADMIT flow #644 is gone — those are cursor/*
    branches from 2026-09-20 that this session has never touched.
  • The Kind: vocabulary now matches the live channel. status | ask | handoff | block | done, and
    To: claude | grok | both, exactly as #695
    defines them. The invented question / request / info kinds and To: all are gone, along with the
    worked examples that used them. A protocol document that disagrees with the channel it documents is the
    drift this whole layer exists to catch.
  • CLAUDE.md gains the load-bearing repository facts: no host dotnet; the five required checks
    under strict + enforce_admins, which is why merges are serial; run-repo-gates.sh running its
    discovered scripts bare; the knowledge graph needing git add before it is regenerated; the readiness
    glob list that exists twice; a skipped readiness lane counting as a pass; and that a check never
    observed failing is not evidence.
  • agent-bus-latest.sh: #!/usr/bin/env bash, as all 160 other scripts under scripts/ use; the
    issue number overridable through ASHLAR_BUS_ISSUE; a non-numeric count rejected instead of spliced
    into the jq expression.

Verified locally

  • bash scripts/ci/run-repo-gates.sh — all 23 gates pass, before and after the rebase onto master.
    That includes the knowledge-graph verifier, so the generated artefacts are current.
  • shellcheck on scripts/agent-bus-latest.sh with no flags: zero findings. The lane only runs
    -S error, which is weaker.
  • bash -n scripts/agent-bus-latest.sh parses.
  • Every path cited in CLAUDE.md exists in the tree, and the committed blobs are LF with no CR bytes.
  • The branch-protection claims in CLAUDE.md were read back from the API, not recalled:
    contexts = [cert-gate, build-core, shell-lint, lychee (README + docs), Readiness summary],
    strict = true, enforce_admins = true.

What this does not do

  • It does not edit the bus issue's opening comment, which still carries the superseded rule 5. It is
    Grok's issue, and the protocol is that nobody edits an older message — so the repository documents say
    they supersede it instead.
  • It adds no check that any of this stays true. The ownership statement is prose in four places and
    can drift apart again; nothing fails if CLAUDE.md and PROTOCOL.md disagree tomorrow.
  • It changes no product code and no required workflow.

🤖 Generated with Claude Code

@IanFrelinger
IanFrelinger marked this pull request as ready for review October 1, 2026 15:19
cursoragent and others added 3 commits October 1, 2026 12:29
- Add CLAUDE.md: project guidance for Claude Code sessions
- Add _handoff/bus/PROTOCOL.md: structured comment protocol (From/To/Kind/About)
- Add _handoff/bus/README.md: index with link to live issue #696
- Add .claude/commands/agent-bus.md: /agent-bus command to check/reply
- Add scripts/agent-bus-latest.sh: helper to fetch last N comments

Establishes durable coordination channel for release work. Claude owns
in-flight packaging PRs, Grok owns cross-repo sequencing. No polling,
async structured messages on GitHub issue.

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
Point all files at the existing agent-bus issue #695:
- _handoff/bus/README.md
- scripts/agent-bus-latest.sh (ISSUE_NUMBER=695)
- .claude/commands/agent-bus.md (gh commands)

Co-authored-by: IanFrelinger <IanFrelinger@users.noreply.github.com>
…ctually in use

The coordination layer landed with the ownership split that was current while it
was being written, and with a message vocabulary of its own. Both have since been
settled differently, and a CLAUDE.md is read automatically by every future session,
so a stale one is worse than none.

- Ownership, in all four files: Claude does all development INCLUDING merging, and
  merges its own PRs on green required checks; Grok does admin, materials, and
  audits each merge for drift. Each file says it supersedes rule 5 of the issue's
  opening comment. The claim that Claude owns #643 and #644 is gone - those are
  cursor/* branches from 2026-09-20 that this session has never touched.
- Kind vocabulary now matches the live channel: status | ask | handoff | block |
  done, and To: claude | grok | both, exactly as issue 695 defines them. The
  invented question / request / info kinds and `To: all` are gone, along with the
  worked examples that used them.
- PROTOCOL.md documents the handoff -> merge -> drift-audit -> done loop, including
  that a handoff names which records and docs the change touches so the audit can
  be aimed at them.
- CLAUDE.md gains the repository facts that have repeatedly cost sessions real
  time: no host dotnet, the five required checks under strict + enforce_admins,
  run-repo-gates.sh running discovered scripts bare, the generated knowledge graph
  needing `git add` first, the duplicated readiness glob list, a skipped readiness
  lane counting as a pass, and that a check never observed failing is not evidence.
- agent-bus-latest.sh: #!/usr/bin/env bash, as all 160 other scripts under scripts/
  use; the issue number is overridable through ASHLAR_BUS_ISSUE; a non-numeric
  count is rejected instead of being spliced into the jq expression. Clean under
  `shellcheck` with no flags, not just under the `-S error` the lane runs.

What this does NOT do: it does not edit the bus issue's opening comment, which
still carries the superseded rule 5 - it is Grok's issue and the protocol is that
nobody edits an older message. It adds no check that any of this stays true; the
ownership statement is prose in four places and can drift apart again.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@IanFrelinger
IanFrelinger force-pushed the cursor/agent-bus-coordination-1106 branch from eccbfd5 to 1f8b147 Compare October 1, 2026 16:32
@IanFrelinger IanFrelinger changed the title Add agent-bus coordination layer for Grok Bot ↔ Claude Code docs(agent-bus): a coordination channel between Grok Bot and Claude Code Oct 1, 2026
@IanFrelinger
IanFrelinger merged commit 4480190 into master Oct 1, 2026
18 checks passed
@IanFrelinger
IanFrelinger deleted the cursor/agent-bus-coordination-1106 branch October 1, 2026 17:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants