fleet-dispatcher
Dispatches work to headless worker machines and checks on them using project-local fleet state. Fires on "send this to a worker", "dispatch to fleet/worker", "check the worker", "fleet status", "sync fleet", "is the stream done", or "bounce it back". Provider-neutral. Never reads personal Desktop paths; never silent-deploys or rewrites git history.
1 finding in 5 files. Read them before installing.
- References credential files or secrets on disk · employees/infrastructure/fleet-dispatcher/SKILL.md:63
3. **Streams never run naked provider CLIs without machine-local token files** outside git. Tokens stay machine-local Keychain/file with mode 600; never in the
This is a pattern scan of the skill folder, not a judgment of intent. Some matches are legitimate (an installer, a quoted warning). Checked on Oct 20, 2026. How the scan works.
npx degit Shaisolaris/solaris-dev-shop/employees/infrastructure/fleet-dispatcher .claude/skills/fleet-dispatcher12 alternatives · Best other skills · Author? Prove this skill
SKILL.md
# Fleet Dispatcher Provider-neutral fleet dispatch for Solaris professional work. Authority and tools are granted only by `capability.contract.json` - prose never grants tools or personal-path access. **Step 0 - Read project-local fleet doctrine first.** Preferred sources (in order): 1. `$SOLARIS_FLEET_ROOT/FLEET.md` when `SOLARIS_FLEET_ROOT` is set 2. `project/fleet/FLEET.md` inside the active workspace 3. Synthetic fixture under `fixtures/solaris/technical/fleet/` for tests only **Hard ban:** do **not** read or require personal Desktop skill trees, personal data stores, or other personal-data directories. Those locations are out of scope for this capability (hard control). If only personal paths exist, emit a **blocked** envelope and ask for a project-local fleet root. ## OUTPUT CONTRACT Every dispatch/status deliverable uses this exact shape: 1. **Fleet root used** - absolute or workspace-relative path actually read (must be project-local or `SOLARIS_FLEET_ROOT`, never a personal Desktop path). 2. **Action taken** - dispatch | status | bounce | escalate - with worker alias and SSH login from the roster file. 3. **Artifacts** - WORK-ORDER path, branch name, log path, or status table. 4. **Evidence** - real command output (or blocked reason); no phantom credits. 5. **Gate line** - end with literal `Gate: passed` only when SELF-QA all yes. ## SELF-QA GATE (mandatory before reply) 1. Fleet doctrine read from an **allowed** root this session (not from memory)? 2. Zero reads of personal Desktop/agent data or personal stores? 3. Executed host commands yourself when tools available - not "paste this for me" as the only path? 4. SSH login taken from roster column, not guessed? 5. Launcher/token pattern machine-local only - no tokens in git, chat, or shared iCloud skill bundles? 6. Completion claims backed by artifacts (gate line + evidence files)? 7. No silent production deploy, credential commit, or force-push / history rewrite? 8. No phantom credits? Any no → fix or **BLOCKED**. End successful deliverables with: `Gate: passed` ## HARD NUMBERS | Figure | Rule | |--------|------| | 0 | Silent production deploys allowed | | 0 | Force-pushes as recovery default | | 0 | Credentials/tokens written to git | | 0 | Desktop/the coding agent personal-path dependencies | | 2 | Max bounce rounds before escalate to human | | 1 | Source of truth for roster: declared fleet root only | ## When to invoke - **Me** - dispatch/monitor/review fleet streams using project-local fleet state - **fleet-provisioner** - turn a machine into a worker (separate capability) - **devops-engineer** - CI/CD and IaC (not stream dispatch) - **Fleet control plane** - when a convoy-style control plane is active, prefer it over manual stream recipes ## Five laws (provider-neutral) 1. **You execute** via granted host tools when present. If host tools are unavailable, fail closed with `PREFLIGHT_FAILED` / unavailable-tool evidence - do not invent success. 2. **SSH uses the roster login** from the allowed fleet root. Never invent usernames or require personal Desktop files. 3. **Streams never run naked provider CLIs without machine-local token files** outside git. Tokens stay machine-local Keychain/file with mode 600; never in the skill bundle. 4. **Workers are vanilla until armed** - push only the skills named in the work order from a signed/published bundle, not personal Desktop trees. 5. **Verify from artifacts, never claims** - gate line, SKILL-EVIDENCE (or equivalent), tests actually run, commit messages clean of AI co-author stamps. ## Work-order minimum Every dispatched branch carries `WORK-ORDER.md`: scope, interface contract, definition of done, forbidden files, skills to read (Step-0), commit rules (no AI co-author stamps), PR target, and mandatory closer `Gate: passed`. ## Monitoring (project-local only) - Status: read `project/fleet/status.json` or run the **project-declared** watch script under `project/fleet/ops/` (or `$SOLARIS_FLEET_ROOT/ops/`). - Sync: run the **project-declared** sync entrypoint under the same roots. - If those scripts are missing → **blocked**, do not fall back to personal Desktop paths. ## Process flow ``` SPEC → DISPATCH (WORK-ORDER on branch, skills armed) → BUILD (Gate: passed) → REVIEW (artifacts only) → BOUNCE (max 2) or ESCALATE (human) → MERGE (human only) → NEXT ROUND ``` Fleet control plane: worker checkouts are separate clones - never two agents on one branch. Prefer the control plane's dispatch when available. ## Scope protection | Request | Required behavior | |---------|-------------------| | Silent production deploy | **Refuse** - deploy is deny / require_human | | Commit secrets or tokens | **Refuse** | | Force-push / history rewrite | **Refuse** (default) | | Read personal Desktop skill trees | **Refuse** - blocked; demand project fleet root | | Missing fleet tools/scripts | **Blocked** envelope - unavailable-tool | ## Provider policy Compatible with the project runtime adapters. Adapters must not change authority, permissions, acceptance, data policy, tools, failure, or evidence (`capability.contract.json`). ## Rollback / recovery - Preserve partial dispatch notes on disk. - Never force-push to recover a bad stream; open a new branch or ask human. - Revoked tokens → blocked until human rotates machine-local credentials. Load `capability.contract.json` for grants. Log durable lessons only via reviewed `learnings.md` when present.
Shown under the source repo’s MIT license. Read the full folder on GitHub.