fleet
Drive an org's flywheel fleet from its manifest — flywheel up starts the server that runs the loops, flywheel dispatch starts the org's standing dispatch…
Skill by agentplot
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/agentplot-fleet
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/fleet
What's inside
- Skill name
fleet- Description
- Drive an org's flywheel fleet from its manifest — flywheel up starts the server that runs the loops, flywheel dispatch starts the org's standing dispatch agent with its Discord channel, flywheel server is that daemon, flywheel status reports dispatch and every milestone with a job. Use when the operator asks to bring the fleet up, check on the fleet, start or place dispatch, join a host to the fleet, or set up a new org's fleet.yaml.
- License
- MIT
- Instructions
- 151 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- template-fleet.yaml
SKILL.md (first lines)
# Fleet — the org's server, its loops, and dispatch
One fleet per GitHub org, in its own named herdr session. The manifest is
`fleet.yaml` at the **org folder root** — the directory above the org's
repos — and it is not checked into git: placement is machine-local, and
`cwd:` entries are relative to that folder.
The manifest is **server config plus dispatch**. The work itself is not
in it and never was: the tracker says which milestones have jobs, and the
server starts one loop process per milestone that does.
## The command
The plugin's `bin/` is not reliably on `PATH` (measured: a
directory-marketplace install leaves it off), so invoke by the plugin
root — `${CLAUDE_PLUGIN_ROOT}` is substituted into this skill at load:
```bash
"${CLAUDE_PLUGIN_ROOT}"/bin/flywheel status # dispatch vs the roster, and the tracker's jobs
"${CLAUDE_PLUGIN_ROOT}"/bin/flywheel up # the server, detached
"${CLAUDE_PLUGIN_ROOT}"/bin/flywheel dispatch # the standing dispatch agent
"${CLAUDE_PLUGIN_ROOT}"/bin/flywheel server # the daemon itself, in the foreground
```
`server` takes `--interval SECONDS` (default 60), `--once` for a single
pass, and `--dry-run` to read and plan without starting, stopping or
writing anything. All three take `--fleet <path>` when invoked outside the org tree, and
`--host <name>` to override host detection. The command walks up from the
working directory to find `fleet.yaml`, so from any repo in the org the
bare command does the right thing.
## The session
The fleet runs in the herdr session named by the manifest's `session:`
field (default: the org folder's name, `github_` stripped). The command
targets that session's socket and never starts agents anywhere else.
When the session is not running the command stops and says:
```
herdr --session <org>
```
Starting the session is the operator's — attach it once and it persists.
## Setting up a new org
Copy `template-fleet.yaml` (beside this skill) to the org folder root as
`fleet.yaml`, then fill in `tracker:`, `loops_cwd:`, the hosts'
hostnames, and the `dispatch:` block.
`loops_cwd:` is the checkout the loop processes run in, relative to the
org folder — the repo holding `openspec/changes/`. Without it the server
has nowhere to start a loop and says so rather than starting nothing
quietly.
The dispatch block's `prompt:` is delivered as its own message rather
than folded into a longer one, which is what makes a slash command in it
load. Its `host:` is optional — set, it pins dispatch to one host and
the command run anywhere else refuses, naming the owner (reachable via
herdr remote); absent, dispatch runs wherever `flywheel dispatch` is
invoked. `channels:` and `env:` are what connect the Discord bridge: the
channel plugin lands on claude as `--channels`, and `DISCORD_STATE_DIR`
resolves to `<org folder>/.flywheel/discord` — the org's own bot token
and allowlist, seeded by the operator, never shared with a personal
machine-level bot.
### Grant each built repo's hook approvals
Once per built repo, before bringing the fleet up, the operator runs — in
a terminal, with the working directory inside that repo:
```
wt config approvals add
```
`wt` runs a project hook only against a standing grant, so a repo whose
`.config/wt.toml` hooks are ungranted is a repo whose merge gate its
agents cannot run. The server checks it before starting a loop process
and **refuses to start work into a repo that fails it**, naming the
ungranted templates and this command; `flywheel status` reports it as a
row for the loops' checkout. Ungranted, the stoppage would otherwise
land mid-merge, on an agent with no way to fix it. Dispatch is exempt by
shape — it holds no checkout and never merges — so `flywheel dispatch`
runs on a host with no grants at all.
It is deliberately the operator's step and deliberately interactive.
Read the templates it lists before approving them — approving is saying
these commands may run on your machine, and the fleet cannot say that on
your behalf. The grant is keyed on the template text, so one approval
covers every branch's expansion of a template, and moving a check
between hook events without changing its text keeps the grant (measured).
Adding or editing a template needs a fresh grant.
The fleet never writes the approvals store and never approves on your
behalf. If a repo's hooks change and no one has re-granted them, the
right outcome is the refusal you get — not a way around it.
## What these commands never do
They never decide ownership (the tracker items' assignee does) and never
stop an agent — teardown is the operator's, deliberate, never a sync
step. `flywheel dispatch` is idempotent: a dispatch already alive is
reported and left exactly as it is, so restarting it to pick up a new
channel or env is the operator ending the pane first, then running the
command again. A dispatch pinned to another host is reported, not
driven.
## Talking to dispatch
The plugin ships a `dispatch` MCP server (`.mcp.json` →
`bin/flywheel-dispatch-mcp`), so every plugin-bearing session holds the
same three tools: `relay(items)` for needs-operator escalations,
`triage(items)` for unmilestoned open items, `status()` for presence.
That surface is the ONE way anything talks to dispatch — the fleet
daemon consumes it too, one session per reconcile pass. Today the server
proxies to the dispatch claude session in its herdr pane; when dispatch
becomes a hosted service, the proxy's internals are what change, and
consumers keep the tools. Undeliverability is always a tool result —
`delivered: false` with the reason — never an error: an absent or busyFrom agentplot/flywheel, MIT.
More from agentplot/flywheel
- 0.524score
interactive
agentplot
Build the lavish page a flywheel interactive-design session works — one artifact carrying every decision the batch aims to close, with options, trade-offs…
SkillBFreshness: BClaude Code +9 - 0.524score
bolt-planning
agentplot
Run a bolt planning session — read a system's design book, the built repo's implemented specs, and the changes in flight; carve the remaining gap into one or…
SkillBFreshness: BClaude Code +9 - 0.524score
construction
agentplot
Run the flywheel construction loop — the bolt loop drives an approved plan's work items through spec, build, verify, merge and landing across built-repo bolt…
SkillBFreshness: BClaude Code +9 - 0.524score
findings-routing
agentplot
Author the dispatch-plan payload a flywheel findings-routing session builds over a bolt's queued findings — the whole findings inbox seeded for one operator…
SkillBFreshness: BClaude Code +9 - 0.524score
import
agentplot
Run the messy-repo import a flywheel import-charged design session works — inventory a corpus of planning docs, cut it against the destination books, convert…
SkillBFreshness: BClaude Code +9 - 0.524score
inception
agentplot
Run the flywheel design loop — dispatch raw ideas into intent changes and tracker items, run design sessions that close decisions and write the books and the…
SkillBFreshness: BClaude Code +9 - 0.521score
build
agentplot
Apply a specced work item the way a flywheel build construction session does — /opsx:apply on a nested construction worktree, several items per session…
SkillBFreshness: BClaude Code +9 - 0.521score
code-review
agentplot
Run the read a flywheel code-review construction session takes over built work — adversarial against the spec and its cited decisions, or through a persona…
SkillBFreshness: BClaude Code +9 - 0.521score
human-code-review
agentplot
Run the operator's review round a flywheel human-code-review construction session prepares — built diffs put in front of the operator through plannotator, the…
SkillBFreshness: BClaude Code +9 - 0.316score
openspec-propose
openspec
Propose a new change with all artifacts generated in one step.
SkillBFreshness: BClaude Code +9 - 0.316score
openspec-explore
openspec
Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements.
SkillBFreshness: BClaude Code +9 - 0.316score
openspec-archive-change
openspec
Archive a completed change in the experimental workflow.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 38
- Last commit (this folder)
- Sep 1, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/agentplot/flywheel
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from agentplot
- 0.524score
interactive
agentplot
Build the lavish page a flywheel interactive-design session works — one artifact carrying every decision the batch aims to close, with options, trade-offs…
SkillBFreshness: BClaude Code +9 - 0.524score
import
agentplot
Run the messy-repo import a flywheel import-charged design session works — inventory a corpus of planning docs, cut it against the destination books, convert…
SkillBFreshness: BClaude Code +9 - 0.524score
inception
agentplot
Run the flywheel design loop — dispatch raw ideas into intent changes and tracker items, run design sessions that close decisions and write the books and the…
SkillBFreshness: BClaude Code +9 - 0.524score
bolt-planning
agentplot
Run a bolt planning session — read a system's design book, the built repo's implemented specs, and the changes in flight; carve the remaining gap into one or…
SkillBFreshness: BClaude Code +9 - 0.524score
construction
agentplot
Run the flywheel construction loop — the bolt loop drives an approved plan's work items through spec, build, verify, merge and landing across built-repo bolt…
SkillBFreshness: BClaude Code +9 - 0.524score
findings-routing
agentplot
Author the dispatch-plan payload a flywheel findings-routing session builds over a bolt's queued findings — the whole findings inbox seeded for one operator…
SkillBFreshness: BClaude Code +9
Cite this page
fleet skill. Agent Mart. https://agentmart.dev/skills/agentplot-fleet (last updated 2026-10-24)