apra-labs/apra-fleet/fleet-sprint-cli
Claude Code and agent skill by apra-labs/apra-fleet
- community
Checking that the SKILL.md file is still in the repository.
How to launch and supervise apra-fleet's autonomous sprint workflow from the CLI (`apra-fleet workflow fleet-sprint`) -- the --issue/--members/--branch/--base flag contract, the preconditions to check first, how to launch it as a detached process, and how to watch it via its dashboard. Trigger before running `apra-fleet workflow fleet-sprint`.
Install
npx vskill@latest install apra-labs/apra-fleet/fleet-sprint-cliSKILL.md
fleet-sprint
fleet-sprint is apra-fleet's autonomous sprint engine. It drives a full plan -> develop -> review -> deploy -> integ-test -> harvest cycle across one or more registered fleet members, working a set of beads issues on a branch and opening a PR at the end.
The command
--issue, --members, --branch, and --base are required. Verify the live flag set with apra-fleet workflow fleet-sprint --help before relying on this list -- flags evolve and this skill can drift.
Flag notes
--issuetakes comma-separated beads parent/epic IDs. Scope is
resolved internally by walking the parent-child tree down from each target id (every descendant at any depth, any status), so it only ever understands the parent-child hierarchy. A blocked-by-only manifest bead is invisible to the scope filter no matter what you pass -- only true children are picked up. See the epics/manifest-bead guidance in packages/apra-fleet-se/fleet-sprint/docs/README.md.
--branchmust differ from--base(mainvsorigin/mainor
refs/heads/main count as the same branch); an equal pair is rejected at launch.
--branchis created from--baseif it does not already exist. If it
does exist (e.g. you are resuming), it is reused as-is.
- `--base` is resolved against the remote, not your local checkout. A new
sprint branch is cut from origin/<base>, so any local commit on <base> that you have not pushed is invisible to the run. Push <base> first -- otherwise the sprint silently starts from an older tree, and work that depends on those commits (a .beads/config.yaml from bd init, a new package.json script) fails in ways that look unrelated.
--role-mapassigns specific members to specific roles, e.g.
--role-map '{"doer":["m1","m2"],"reviewer":["m3"]}'. Accepts inline JSON or @path/to/file.json. The backlog key names the member whose beads clone the engine runs its own bd/git commands against. orchestrator is its deprecated alias (works with a warning in 0.4.4, removed in v0.5) -- rename it to backlog. Without a backlog entry the engine picks a member and logs backlog: <member> (auto-selected: <reason>); check that line.
--skip-regressionskips the regression pass for this run. The skip is
logged and stated in the sprint analysis and the PR body.
--goalcontrols which bead priorities are in scope for the run.--budgetcaps total spend in USD; the run aborts when it is exhausted.--usage-limit-max-wait-s/--usage-limit-max-reprobesbound how long a
dispatch that hit a provider usage/rate limit is paused (and re-probed on a backoff ladder) before the run gives up with a typed abort. Both are optional; omitted, the engine uses its own defaults. A resumed member re-dispatches without consuming a retry attempt.
Preconditions to check first
- Every
--issuetarget exists and is open:bd show <id>, **and already has
children**: bd list --parent <id> must return at least one open bead. Pre-sprint validation runs BEFORE the planner, so a childless epic aborts the run ("No open/in-progress/blocked/deferred beads found for scope ...") rather than being decomposed. The planner refines an existing DAG; it does not create the first level of it.
- Every
--membersname is registered with the fleet (list_members/
mcp__apra-fleet__list_members). An unregistered member aborts the sprint unless --allow-missing-members is passed.
- Multi-member sprints align their members automatically: at launch every
member is fetched and checked out on the sprint branch (WIP preserved in a named fleet-sprint[<branch>] stash, one [Align] line per member), so do not align members by hand. The launch refuses, before moving any member, only for an unreachable member, differing origin URLs, a base missing on origin, a fetch auth failure or a diverged sprint branch -- fix what the message names and relaunch. See fleet-sprint-diagram.md in the package docs.
- If a member's LLM session is stale or unauthenticated (dispatch fails
with empty_response, or "member CLI likely died"), re-run provision_llm_auth for that member before retrying.
- Beads identity: before any
bdmutation, the sprint probes every
member's bd where/sync.remote/git origin and prints a Beads: banner plus one beads ok: <member> ... line per member. These abort with BeadsIdentityError naming the member, cause and fix, before anything is dispatched -- there is no bypass flag:
- MISMATCH: a field that resolved on both sides differs. Fix that
member's workFolder (wrong .beads) or its sync.remote.
bdmissing on a member (not installed or not on PATH). Fix: install
bd on that member or fix its PATH so bd --version works in its work folder (re-running the member fleet install places it in the member's fleet bin dir), then relaunch.
- BEADS_SETUP_FAILED: a member mapped to a beads-reading role had no beads
database (or no sync.remote), and setting it up from the expected beads remote failed. Matching members are left untouched. Any other probe failure (including no beads database on a member used only for deployer/ci-watcher) is only a [beads-identity] WARNING: line (naming the member, field, probe, error and the fix): that field is not compared and the sprint proceeds -- read the warning and fix the member.
Launching it
Run this on your own orchestrating machine, not on a --members target -- members are dispatch destinations, not where this command runs.
Use the installed apra-fleet binary. After npm install -g it is on PATH; the standalone installer does not add it to PATH, so call it as ~/.apra-fleet/bin/apra-fleet (Windows: $HOME\.apra-fleet\bin\apra-fleet.exe). Start it as a genuinely detached OS process. A harness-owned background task can be silently killed when its owning tool call's process group ends, which orphans the sprint mid-run.
Windows:
POSIX:
From a source checkout you can run the same engine directly with node packages/apra-fleet-se/bin/cli.mjs <same flags>. That form runs the working tree instead of the installed copy -- use it when developing the engine itself, and the packaged binary otherwise.
Watching it
On start, the run prints a dashboard URL (http://localhost:<viewer-port>, default port 8080). Watch progress there rather than tailing raw stdout -- the dashboard shows per-role activity, the bead DAG, live cost, and the final verdict and PR link.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingpackages/apra-fleet-se/fleet-sprint/skills/fleet-sprint-cli/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/apra-labs/apra-fleet/fleet-sprint-cli)