openclaw/workspace/skills/fleet/SKILL.md
Use when the user says fleet, /skill:fleet, /fleet, codex fleet, agent fleet, or wants OpenClaw to spin up, supervise, babysit, monitor, or follow up on multiple parallel coding-agent sessions using Codex, Claude Code, or OpenCode; create one worktree/branch/PR per task; manage Workboard cards; run coding-agent workers; process GitHub issues into PRs; or keep an agent fleet moving with minimal user prompting.
npx skillsauth add Apostolos-Delis/Dotfiles fleetInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Turn short user requests into a supervised fleet of coding-agent lanes.
Treat these as enough to start:
/path/repo, harness codex, 6 lanes: ..."/path/repo for these tasks: ..."Infer missing details from repo state when reasonable. Ask only when the repo, task list, target branch, or destructive decision cannot be inferred safely.
openclaw/<task-slug>.<repo>/.worktrees/openclaw/<task-slug>.~/Documents/repos.codex.codex, claude, opencode.Respect a user-provided harness/engine:
Harness: codex, use Codex, or "Codexes" -> use codex.Harness: claude, use Claude Code, or "Claude lanes" -> use claude.Harness: opencode, use OpenCode -> use opencode.codex.coding-agent supports it before using it. If support is unclear, ask instead of guessing.Use one harness for the whole fleet unless the user explicitly asks to mix them. Record the selected harness on each Workboard card and in each worker prompt.
Launch rules from coding-agent:
pty:true, background:true, command codex exec - < "$PROMPT".background:true, no PTY, command claude --permission-mode bypassPermissions --print < "$PROMPT".pty:true, background:true, command opencode run < "$PROMPT".gh-issues skill and mirror the lanes on Workboard.Before launching workers:
owner/repo, a repo name, or a GitHub URL, search local checkouts under ~/Documents/repos and match git remotes before asking for a path.codex if unspecified.Useful checks:
git -C "$REPO" status --short
git -C "$REPO" remote get-url origin
command -v "$HARNESS"
gh auth status
openclaw workboard list
openclaw tasks list --status running
openclaw sessions --active 240 --all-agents
Repo lookup shape:
ROOT="$HOME/Documents/repos"
REF="owner/repo"
find "$ROOT" -type d -name .git -prune | while read -r gitdir; do
repo="${gitdir%/.git}"
url="$(git -C "$repo" remote get-url origin 2>/dev/null || true)"
name="$(basename "$repo")"
case "$url $name" in
*"$REF"*|*"${REF##*/}"*) printf '%s\t%s\n' "$repo" "$url" ;;
esac
done
Prefer exact remote matches over name-only matches. If multiple local checkouts match, ask which one to use.
One task equals one Workboard card, one branch, one worktree, one coding-agent worker session, and one PR.
The Workboard is the source of truth. Do not leave fleet cards in todo after
creating worktrees. A lane is not considered launched until the card has either:
Prefer Workboard-dispatched sessions for visibility. Create cards in ready
when the lane is prepared to run, then dispatch them:
openclaw workboard create \
--status ready \
--agent main \
--labels "fleet,<repo-name>,<harness>,<task-slug>" \
--notes "$CARD_NOTES" \
"$CARD_TITLE"
openclaw workboard dispatch --json
Only launch the harness directly from the terminal if Workboard dispatch is unavailable or insufficient for the requested workflow. When using that fallback, immediately report reduced UI visibility and keep monitoring with process, worktree, git, and session checks until the lane is blocked or PR-ready.
For each lane:
git -C "$REPO" fetch origin --prune
git -C "$REPO" worktree add -b "$BRANCH" "$WORKTREE" "origin/$BASE_BRANCH"
Record on the Workboard card:
Write a prompt file and launch a background worker with the coding-agent rules for the selected harness.
For normal fleet work, put the prompt into the Workboard card notes or linked
worker session and let openclaw workboard dispatch start the visible worker.
If direct launch is required, keep the card notes updated with the fallback
worker PID, command, worktree, branch, and latest observed status.
Every worker prompt must include:
You are one coding-agent worker lane managed by OpenClaw.
Harness: <codex|claude|opencode>
Repo: <repo>
Worktree/workspace: <path>
Branch: <branch>
Base branch: <base>
Workboard card: <card-id or title>
Task: <task>
Work autonomously in the assigned workspace only.
Do not mutate the source checkout, OpenClaw state, or unrelated worktrees.
Do not ask for input unless blocked by missing requirements, credentials,
destructive approval, merge-conflict preference, or ambiguous product decision.
Implement the task with the smallest coherent diff.
Run relevant checks and report exact commands.
Inspect the final diff.
Run an adversarial self-review and fix accepted findings.
Commit with an imperative message.
Push the branch.
Open a PR unless explicitly told to stop at a prepared branch.
PR body must include:
- Summary
- Verification
- Risks/Notes
- Linked issue/card when available
Send exactly one blocked, failed, or PR-ready notification through the provided
OpenClaw notification route.
Append the real notification route from coding-agent when a chat channel or
reply target exists. If no route exists, say auto-notify is unavailable and rely
on Workboard plus local OpenClaw chat.
Launch examples:
# codex
codex exec - < "$PROMPT"
# claude
claude --permission-mode bypassPermissions --print < "$PROMPT"
# opencode
opencode run < "$PROMPT"
Actively monitor while lanes are running. Do not wait for the user to ask for every update.
For each pass:
todo with an existing worktree as stale visibility; either dispatch/link it or report why it cannot be linked.lsof -a -p <pid> -d cwd and inspect git status.Useful commands:
openclaw workboard list
openclaw workboard show <card-id>
openclaw workboard dispatch
openclaw tasks list --status running
openclaw tasks show <task-id-or-session-key>
openclaw sessions --active 240 --all-agents
git -C "$REPO" worktree list --porcelain
Use a supervisor cron only when the user asks for active unattended monitoring or when a fleet has 5+ lanes and the user expects OpenClaw to keep watching:
openclaw cron add \
--name codex-fleet-supervisor \
--every 10m \
--agent main \
--session-key agent:main:codex-fleet-supervisor \
--timeout-seconds 900 \
--no-deliver \
--message "Audit the Codex fleet. Check Workboard cards, active tasks, and active sessions. Update lane status, detect stale workers, nudge stuck workers with concise follow-up prompts, move PR-ready work to review, and mark genuinely blocked work with a concrete blocker. Do not start unrelated new work. Notify the user only for blockers or PR-ready status."
If Telegram or another channel is configured, use delivery flags instead of
--no-deliver so blockers and PR-ready status reach the user.
Interrupt the user only for:
For review comments on PRs created by this workflow:
Report compactly:
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.