roster-preflight
Skill0 starsChanged 3 months agoMITView on GitHub
Use as the first action of every run, before any dispatch. Verifies each agent's harness binary, model availability, AND skill-root resolution. A preflight that only checks binaries is not a preflight.
In this repository14 other files it gives its agents.
- capability-scanSkill
- conveneSkill
- decision-recordSkill
- deliverySkill
- escalateSkill
- flag-checkSkill
- haltSkill
- interface-contractSkill
- merge-guardSkill
- profile-bootstrapSkill
- setback-checkSkill
- setback-logSkill
- stability-checkpointSkill
- work-orderSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Run this first, every run, before planning or dispatching anything.
- Distinctive: line 12
Start with resolution, one call, not one per worker:
- Very specific: line 42
Windows-installed harnesses do not work under WSL: If a binary resolves to a /mnt/c/...
- Very specific: line 49
Call sys_list_models and confirm each agent's configured model is actually runnable on this deployment's credentials.
- Very specific: line 96
Verify by reading a SKILL.md through the path and parsing its name: and description: lines — not by counting files and not by ls.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Roster preflight
Run this first, every run, before planning or dispatching anything.
1. Harnesses — RESOLVE IS NOT ENOUGH, YOU MUST INVOKE
Start with resolution, one call, not one per worker:
command -v claude codex agy || trueThen actually run each one. A resolved path proves nothing:
for b in claude codex agy; do
command -v "$b" >/dev/null 2>&1 || { echo "$b MISSING"; continue; }
if timeout 60 "$b" --version >/dev/null 2>&1; then echo "$b OK"
else echo "$b RESOLVES BUT FAILS TO RUN"; fi
doneThis is not paranoia. Measured on this machine, 2026-08-14: command -v codex
resolved successfully to /mnt/c/.../AppData/Roaming/npm/codex — the Windows
npm shim reached through /mnt/c — and invoking it under WSL died with
Missing optional dependency @openai/codex-linux-x64. A resolve-only preflight
declared four of nine agents available when all four were dead, and the failure
surfaced as a sub-agent that dispatched and simply never returned.
An agent is available only if its harness ran. Route work only to those.
Watch the shell. agy lives in ~/.local/bin, which a non-login shell does
not have on PATH — bash -c "which agy" fails while bash -lc "which agy"
succeeds. A missing binary that is actually a PATH artifact will silently shrink
your roster in the other direction.
Windows-installed harnesses do not work under WSL. If a binary resolves to a
/mnt/c/... path, treat it as suspect until it passes the invoke test — most
CLIs ship platform-specific native dependencies and the shim will resolve on
both sides while only executing on one.
2. Models — an empty list is NOT a verdict
Call sys_list_models and confirm each agent's configured model is actually
runnable on this deployment's credentials.
But sys_list_models is not authoritative for harnesses that carry their own
authentication. Antigravity signs in with its own Google account, independent
of Omnigent's credential store. On this machine omnigent config list reports
Gemini (none configured) and sys_list_models returns models: [] for every
antigravity agent — and those agents dispatch and return correctly anyway.
An empty or missing model list therefore means unverified, not unavailable. Resolve it with a bounded probe rather than a verdict:
Dispatch that agent one trivial read-only task (
pwd, reply with one line) with a hard timeout of ~120s. Returns in time → AVAILABLE. Times out → UNAVAILABLE.
This is the one sanctioned exception to "do not test by dispatching." The reason that rule exists is that a dead harness hangs forever — so the timeout is the test, and it is safe precisely because it is bounded. Never probe by dispatching real work.
Marking a working agent unavailable is not the safe error. It shrinks a team
below its convene threshold and halts a run that should have proceeded, and it
sends the operator off to reinstall software that was fine. The model IDs in agents/*/config.yaml
were written from the operator's naming and have not been verified against a
live provider. An invalid model/harness pair fails loud at dispatch — read the
error and adjust rather than retrying blindly.
Note that harnesses are vendor-bound: Antigravity runs Gemini only and will not
run Claude or GPT-family models; Codex runs GPT; claude-sdk / claude-native
run Claude.
3. Skill roots — the one people skip
Skill-path resolution is the most frequently recorded failure in these repos (eight logged incidents: wrong skill root, root misresolved, skill reference absent, catalog path lookup). Checking that a CLI exists tells you nothing about whether it can find its skills.
For each available agent, verify it resolves its catalog:
| Harness | Expected skill root |
claude-sdk / claude-native | ~/.claude/skills |
codex-native | ~/.codex/skills |
antigravity-native | ~/.gemini/config/skills |
Verify by reading a SKILL.md through the path and parsing its name: and
description: lines — not by counting files and not by ls. These catalogs
are symlink farms into /mnt/c, and several tools traverse them incorrectly:
ripgrep and grep -r silently return zero matches on the Windows-side NTFS
junctions while a direct read of the same file succeeds. A count is not evidence.
Also confirm no broken links: find <root> -maxdepth 1 -xtype l.
3b. If you have no shell, say so — do not report anyway
Before checking anything, confirm you actually have a shell tool. If you do not, the correct output is one line:
PREFLIGHT IMPOSSIBLE — no shell tool in this session. Roster not certified.
Then stop. Do not produce a roster table.
This is not hypothetical. On this framework's first dry run the orchestrator had no shell tool registered, and it returned a fully formatted roster table declaring nine agents unavailable and three skill roots absent. All three roots existed, with 40, 16, and 42 entries, readable. The report was fabricated, confident, and would have sent the operator to reinstall working software.
Every line of your report must be backed by output you actually saw. Paste the raw command output verbatim under each check before drawing any conclusion from it. A preflight that asserts findings without pasting evidence is exactly the unevidenced delivery this framework rejects everywhere else — and it is worse here, because the whole point of preflight is to be the thing you can trust before anything else runs.
4. Report
Say nothing when everything resolves — get on with the task. A missing binary,
an unavailable model, or an unresolvable skill root is the only roster fact
worth words: name it, say which agent is affected, and tell the PM what to
install or fix. Then run with the reduced roster only if the affected team still
meets its convene threshold; if it does not, halt.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

