Files
elizaos--eliza/.github/FLEET.md
T
wehub-resource-sync 426e9eeabd
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Waiting to run
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Waiting to run
Build Agent Image / build-and-push (push) Waiting to run
Chat shell gestures / Chat shell gesture + parity e2e (push) Waiting to run
ci / test (push) Waiting to run
ci / lint-and-format (push) Waiting to run
ci / build (push) Waiting to run
ci / dev-startup (push) Waiting to run
Cloud Gateway Discord / Test (push) Waiting to run
Cloud Gateway Webhook / Test (push) Waiting to run
Cloud Tests / lint-and-types (push) Waiting to run
Cloud Tests / unit-tests (push) Waiting to run
Cloud Tests / integration-tests (push) Waiting to run
Cloud Tests / e2e-tests (push) Blocked by required conditions
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Deploy Apps Worker (Product 2) / Determine environment (push) Waiting to run
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Blocked by required conditions
Deploy Eliza Provisioning Worker / Determine environment (push) Waiting to run
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Blocked by required conditions
Dev Smoke / Classify changed paths (push) Waiting to run
Dev Smoke / bun run dev onboarding chat (push) Blocked by required conditions
Dev Smoke / Vite HMR dependency-level smoke (push) Blocked by required conditions
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Waiting to run
gitleaks / gitleaks (push) Waiting to run
Markdown Links / Relative Markdown Links (push) Waiting to run
Publish @elizaos/example-code / check_npm (push) Waiting to run
Publish @elizaos/example-code / publish_npm (push) Blocked by required conditions
Publish @elizaos/plugin-elizacloud / verify_version (push) Waiting to run
Publish @elizaos/plugin-elizacloud / publish_npm (push) Blocked by required conditions
Quality (Extended) / Homepage Build (PR smoke) (push) Waiting to run
Quality (Extended) / Comment-only diff guard (push) Waiting to run
Quality (Extended) / Format + Type Safety Ratchet (push) Waiting to run
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Waiting to run
Quality (Extended) / Develop Gate (lint) (push) Waiting to run
Sandbox Live Smoke / Sandbox live smoke (push) Waiting to run
Snap Build & Test / Build Snap (amd64) (push) Waiting to run
Snap Build & Test / Build Snap (arm64) (push) Waiting to run
supply-chain / sbom (push) Waiting to run
supply-chain / vulnerability-scan (push) Waiting to run
Build, Push & Deploy to Phala Cloud / build-and-push (push) Waiting to run
Test Packaging / Validate Packaging Configs (push) Waiting to run
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Waiting to run
Test Packaging / Pack & Test JS Tarballs (push) Waiting to run
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Waiting to run
UI Fixture E2E / ui-fixture-e2e (push) Waiting to run
UI Fixture E2E / fixture-e2e (push) Waiting to run
UI Story Gate / story-gate (push) Waiting to run
vault-ci / test (macos-latest) (push) Waiting to run
vault-ci / test (ubuntu-latest) (push) Waiting to run
vault-ci / test (windows-latest) (push) Waiting to run
vault-ci / app-core wiring tests (push) Waiting to run
verify-patches / verify patches/CHECKSUMS.sha256 (push) Waiting to run
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Waiting to run
Voice Benchmark Smoke / voice bench smoke summary (push) Blocked by required conditions
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Waiting to run
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Waiting to run
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Waiting to run
Test Packaging / Build & Test PyPI Package (push) Waiting to run
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:43:05 +08:00

5.6 KiB

Agent Fleet — coordination guide

Canonical rules for every AI agent (and human) working this repo as part of the fleet. Code conventions live in AGENTS.md/CLAUDE.md; the evidence bar lives in CONTRIBUTING.md. This file covers the third thing: how we coordinate — the board, the claims, the lanes, and where each kind of conversation goes.

Where things live

Surface Used for Not for
GitHub Project 12 (org board) Live work state: every card is an issue, columns below Chat, design debate
Issues Actionable cards only — one bug/feature/task each, launch-qa labels Status chatter (that's the Discussion)
Discussions → "Agent Fleet — Coordination HQ" (pinned, General) Standups, claims visibility, cross-lane questions, incident threads Anything needing a card (open an issue)
PRs The work itself + its evidence Coordination side-talk
.github/FLEET.md (this file) The rules — PR a change to propose a rule change

Long-running "tracking issues" with hundreds of linear comments are deprecated for coordination: threads in the Discussion replace them. Keep tracking issues only as durable logs of a specific push, closed by the owner.

Identity

  • Every agent has a lane tag[qa-agent], [maintainer], [cloud-agent], [core-brain], … — and signs every comment with it.
  • One lane tag = one running context. If you inherit a lane, say so in the Discussion before acting in it.

The loop

  1. Read first: the Discussion's latest posts + the board. Never start work someone has claimed.
  2. Claim: comment CLAIMING: <card> (Discussion thread or the card itself), move the card Todo → Claimed, then In progress when you start.
  3. Work to the evidence bar (CONTRIBUTING.md): real end-to-end proof, no mocks, no shortcuts.
  4. Deliver: post evidence (PR links, screenshots, logs) on the card, move it to Needs-human-verify. Only the owner (nubs) moves cards to Done or closes the push.
  5. Next card immediately. Blocked >30 min → say so where you claimed, move the card back, pick another.

Board columns: Todo → Claimed → In progress → Needs-agent-verify → needs-human-verify → Done(owner-only).

Shared levers — claim before you mutate

Some things exist once. Announce before touching, wait for objections when another lane is active on it, release when done:

  • Prod deploys (Workers, Pages) and the develop→main promote
  • Staging environment (deploys, env vars, secrets, seeded data)
  • The production database (any write — even additive grants get a transparency note with the ledger row id)
  • DNS / Cloudflare settings / repo settings & rulesets
  • Physical devices (the Seeker phone + its adb) — one installer at a time
  • Worker secrets, CI runner capacity

Case study: two agents built + installed on the Seeker in parallel (2026-07-05). Cost: a duplicated build and a mid-air de-conflict. The rule exists so the second agent finds the claim before spending the compute.

Merge & deploy etiquette

  • Never self-merge your own PR into a lane that has a reviewer (maintainer shepherds merges). Never solo-merge money, schema, or deploy changes — those need a second lane or the owner.
  • Sync before PR: git fetch origin && git rebase origin/develop; a branch that can't fast-forward is not ready. develop history gets rewritten by squash-merges — if rebase replays foreign commits, recover with git checkout -B tmp origin/develop && git cherry-pick <your-commits>.
  • Re-verify against current develop before filing or contesting — the tip moves fast; stale findings burn everyone's time.
  • Deploy lanes: develop → staging is the default flow; prod rides the main promote (maintainer lane) or an explicitly-claimed out-of-band deploy.
  • Live verification uses real flows — real sign-in, real devices, real money paths on staging. Auth injection / fabricated state proves nothing and is banned as evidence.

Using the Discussion HQ (features, not flat chat)

The HQ is #14308 — Agent Fleet Coordination HQ. Use the platform's features — a flat comment stream doesn't scale to a fleet:

  • One claim = one thread. Your standup/claim is a top-level comment; every update, question, and hand-off about it goes as a reply under it — not a new top-level post.
  • React to ack (👍 seen / 👀 looking / 🚀 shipped) instead of posting "ack"/"+1" comments.
  • Don't create new Discussions for coordination — that's how duplicate rooms happen (#14292, locked). Per-topic workstream discussions (e.g. the LifeOps MVP rooms) are for deep design/build threads; fleet-wide standups, claims, and cross-lane asks stay in the HQ, cross-linked.
  • Categories: 📣 Announcements = owner directives / GO signals only · 🙏 Q&A = cross-lane questions — mark the resolving reply as the Answer · 🗳️ Polls = fleet decisions · 🙌 Show and tell = shipped demos + evidence.
  • Link, don't paste — reference PRs/issues/cards by number so GitHub cross-links them.

Communication hygiene

  • Sign everything. Link evidence, not adjectives.
  • Read the last hour of the Discussion before posting — don't duplicate.
  • New bug found mid-task → new issue (card) + one Discussion line, then keep going. Don't bury findings in comment threads.
  • When two lanes collide, the one holding the physical/exclusive lever finishes; the other yields and takes the review. Escalate to the owner only on real deadlock.