Skip to content
Back to skills

Fleet Orchestrate

ASecurity

Use when a controller must coordinate two or more agent sessions for parallel review, issue discovery, implementation, verification, dependency conflicts, or unattended progress that must survive context loss or session replacement.

  • 36 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentsgobashrailsgitsecurity

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 20, 2026

npx -y skills add fagemx/edda --skill fleet-orchestrate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fleet Orchestrate?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Fleet Orchestrate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fagemx-fleet-orchestrate/badge)](https://www.skillsdirectory.com/skills/fagemx-fleet-orchestrate)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: fleet-orchestrate
description: Use when a controller must coordinate two or more agent sessions for parallel review, issue discovery, implementation, verification, dependency conflicts, or unattended progress that must survive context loss or session replacement.
---

# Fleet Orchestrate

## Overview

Run a fleet as a durable control system, not a group chat. Divide context and
ownership only where work is genuinely independent; keep decisions, evidence,
and state recoverable when any session disappears.

This policy applies when `fleet-orchestrate` or its coord review/orchestration
companions are invoked. It guides those sessions; it is not an Edda runtime
rule imposed on every project.

**REQUIRED REFERENCE:** Read [references/playbook.md](references/playbook.md)
completely before assigning work. Every target session starts with zero
conversation context.

**REQUIRED PRESSURE TESTS:** Use
[references/review-scope-pressure-tests.md](references/review-scope-pressure-tests.md)
when changing or validating review policy.

## Controller sequence

1. Fix the goal, exclusions, evidence bar, issue-filing authority, merge
   authority, and stop conditions. “Keep going” does not expand scope.
2. Inspect repository instructions, current revision, dirty state, active
   peers, claims, decisions, issue/PR state, and available durable carriers.
3. Select this batch before any dispatch: run the ready-batch selection
   procedure below and hand its table to `/parallel-wave`. `fleet:ready` is
   the operator's authorization — the controller picks the batch itself and
   never stops to ask the operator for issue numbers.
4. Maintain two logical rails: read-only review/discovery and write-enabled
   delivery. A verified finding may cross rails; a suspicion may not.
5. Build a dependency and file-overlap graph. Parallelize only independent
   ready bundles; serialize the same code chain. Set worker WIP no higher than
   verifier capacity.
6. Keep one controller, independent workers, and a read-only verifier. From
   two concurrent workers onward, reserve a verifier seat.
7. Record tasks, claims, rulings, and acceptance criteria in the durable truth
   layer before ringing host messaging as a doorbell.
8. Gate every cross-machine dispatch mechanically (GH-782): before a lane
   starts an issue, use one claim command —
   `scripts/fleet-claim-issue.sh <issue> <machine>/<role>` (e.g.
   `4090/worker-1`, `docs/reviewer`) or `edda dispatch --issue <N> --machine
   <machine>/<role>`. Each checks PRs and full `taking:` identities, then
   writes the `taking:` comment, adds `fleet:claimed`, removes `fleet:ready`,
   and assigns `@me` before the lane starts. `lane:*` labels are routing only,
   never ownership. The token is an explicit `<machine>/<role>` value from the
   brief, never a hostname guess.
9. Give self-contained briefs (including assigned build lane, verification
   budget, and cleanup authority), monitor compressed state, adjudicate
   conflicts, and close only against immutable full SHAs with proportional
   evidence.

## Ready-batch selection (select this batch)

`fleet:ready` is the operator's signature: promoting an issue to ready already
authorized it. When the operator says "run ready work today"(「今天開始跑」), the
controller runs this procedure and produces the batch itself — it never stops
to ask for issue numbers. This step **selects**; the actual claim write uses
one command from sequence step 8 (the claim script or issue-aware dispatch) —
selection does not claim.

Run it verbatim:

1. **Query candidates** — the machine check is the filter of record (GH-665);
   never a raw label listing as the only filter. The second query adds
   routing fields; the third reads each candidate in full — the body and
   comments carry the predicted write surface, `blocked-by` edges, and other
   machines' `taking:` claims, so the rules below are applied from fetched
   data, never from titles alone:

   ```bash
   sh scripts/fleet/ready-queue-lint.sh    # pickable ready issues, oldest first
   gh issue list --label fleet:ready --state open --json number,title,createdAt,labels
   gh issue view <n> --json body,comments,labels,title,createdAt   # per candidate <n>
   ```

2. **Exclude**, recording each issue's reason for the output table:
   - (a) another lane already holds it: a `taking:` comment with a different
     full `<machine>/<role>` identity. `lane:*` labels are routing only and do
     not exclude an issue; a different role on the same machine is still a
     different claimant.
   - (b) already in flight: an open PR — list open `headRefName`s
     (`gh pr list --state open --json headRefName`) and treat any branch
     name containing `gh<n>` as in flight (the repo's convention is
     `<type>/gh<n>-…`; a `head:gh<n>` search misses it) — **or** a remote
     branch (`git ls-remote --heads origin "*gh<n>*"`) — pushed-but-unopened
     branches are invisible to `gh pr list`.
   - (c) labeled `needs-operator`.

3. **Route** by predicted write surface: anything touching `crates/**`,
   `.github/workflows/**`, `scripts/**`, or `Cargo.*` needs a build lane →
   the 4090-shaped machine. Pure `docs/**`, `*.md`, or `.claude/skills/**`
   work stays on this docs machine.

4. **Sort** oldest `createdAt` first, unless an issue is blocked-by another
   selected issue — blocked items keep their dependency order and stay
   unassigned until their blocker dispatches.

5. **Output** one table — selected / excluded with reason — and hand it to
   `/parallel-wave` as its Layer-1 input. Do not restate REVIEW.md tables
   here; review routing lives in the review charter.

## Non-negotiable invariants

- Ledger/issue first; message second.
- Never mark overlapping write bundles active together; keep every later
  bundle blocked and unassigned until ownership is released.
- Highest durable `d-NNN` ruling wins; changes say `SUPERSEDES d-NNN`.
- Reviewer/verifier does not fix the artifact it judges.
- Review verdicts bind one full SHA; any push voids the verdict.
- Every handoff freezes `IN SCOPE`: changed behavior/paths, direct
  callers/consumers, issue/spec acceptance, introduced or exposed
  security/data-loss regressions, and current-base integration. Everything
  adjacent, pre-existing, or speculative is an evidenced `FOLLOW-UP ISSUE`
  unless it invalidates that frozen surface.
- This is a bounded complete review, never a minimal review. Audit the entire
  frozen surface; every failure there is mandatory, and only findings
  genuinely outside it qualify for follow-up.
- Finish the whole scoped audit and batch all blocking P0/P1 before requesting
  changes. A later blocker must be fix-caused or previously unobservable.
- The issue/spec is the acceptance ceiling. Require extra evidence only when
  needed to prove a required fact or safety boundary.
- Gates follow code/product-blob, base, and toolchain changes. Docs/evidence-
  only heads reuse still-applicable code gates as `READ` and run relevant
  delta checks plus exact-head CI as `RAN`.
- Record available elapsed/token/tool cost. After two consecutive
  non-product/harness-only cycles without useful progress, or at diminishing
  returns, stop and route follow-up or request operator scope expansion.
- Verify once per frozen artifact: the full gate set runs once per frozen
  full SHA in an assigned build lane and leaves a gate receipt (SHA, gate set,
  toolchain, lane, result); reviewers READ that receipt and exact-head CI and
  RAN only what they do not cover, stating the reason for any full rerun. A
  status, label, or draft flip is not a push.
- Know what the project's CI actually covers before citing it as independent
  evidence; a real coverage gap is a legitimate reason to RAN. Deterministically
  red CI already blocks the artifact — audit and request changes instead of
  spending a full run; re-run only the failed job when the red is environmental.
- Build environments are bounded: one assigned lane per session for its
  lifetime from a fixed pool named in the brief, never per round, SHA, or
  timestamp; lane build cache is disposable, worktrees and sources are not;
  over the pool ceiling the fleet stops and reports instead of building.
- A GitHub PR carries its visible review-fix loop: numbered SHA-pinned review,
  implementer response to every requested change, and final current-head LGTM.
  An internal verifier report does not replace these PR comments.
- Worker receipts prove execution, not acceptance or merge authority.
- Session death is recoverable from the board, task rail, claims, and Git.

## Related skills

When present, use repository `coord-sync` before editing, `coord-request` when
crossing ownership, `coord-review` before integration, and `coord-handoff` when
releasing work. They refine peer behavior; this skill remains the fleet-level
controller contract.

## Minimum controller output

Publish and keep current:

1. authority contract;
2. review charter and finding queue;
3. dependency graph and bundle ownership;
4. fleet board with task, owner, branch, full SHA, state, review, build lane,
   and next step;
5. acceptance matrix, review handoff (`IN SCOPE`, `FOLLOW-UP ISSUE`, blocking
   P0/P1, `RAN`/`READ`, lane, gate receipt, exact SHA, cost), PR review-loop
   state, and final merge recommendation with current-head P0=0/P1=0.

Files in this skill

  • SKILL.md5.8 KB
  • agents/openai.yaml218 B
  • references/playbook.md23.7 KB
  • references/review-scope-pressure-tests.md4.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.