orca-fleet
AGENTS.md2 starsChanged 20 days agoMITView on GitHub
Guidance for AI coding agents (Claude Code, Cursor, Copilot, Gemini CLI, OpenCode, etc.) working in this repository. Autonomous fleets for the Orca runtime, each named for an outcome, never for the pack whose technique a worker runs. Read ARCHITECTURE.md before adding or changing anything — the whole point of this repo is a discipline that a careless edit erases. Three layers, strictly separated: - Missions — skills/<name>/SKILL.md. The only discoverable, auto-triggering skills. - Playbooks — playbooks/<name>.md. Callable phase protocols a…
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,774 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository22 other files it gives its agents.
- absorb-itSkill
- access-itSkill
- attest-itSkill
- clean-sweepSkill
- deflake-itSkill
- document-itSkill
- field-test-itSkill
- floor-itSkill
- harden-itSkill
- map-itSkill
- migrate-itSkill
- modernize-itSkill
- offload-itSkill
- oncall-itSkill
- oss-contributeSkill
- pin-itSkill
- prove-itSkill
- reshape-itSkill
- review-itSkill
- root-causeSkill
- ship-itSkill
- speed-itSkill
The file
We split this AGENTS.md into the rules it gives an agent
10 rules. About 0 are common, 5 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 10
[ARCHITECTURE.md](ARCHITECTURE.md): before adding or changing anything — the whole point of this repo is a discipline that a careless edit …
- Very specific: line 26
Only skills/ may contain a SKILL.md, and no _- or .-prefixed directory under skills/ may hold one.
- Distinctive: line 56
Prefer the most specific mission.
- Very specific: line 63
Read the mission's SKILL.md in full — it declares its runtime dependency, tooling, gates, and the playbooks it composes.
- Distinctive: line 65
Follow the mission's pipeline exactly.
- Distinctive: line 66
Do not co-mount two upstream packs in one worker (see below).
- Very specific: line 73
Never grade a unit "done" on a worker's narration or trace.
- Very specific: line 99
Every decision is classified mechanical / taste / one-way and resolved per runtime/gate-classification.md.
- Very specific: line 145
Always: read a mission's SKILL.md before invoking.
- Distinctive: line 147
Always: keep the three layers separate — new phase logic is a playbook, new dispatch mechanics are runtime, only a new *outcome* is a …
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md 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
AGENTS.md
Guidance for AI coding agents (Claude Code, Cursor, Copilot, Gemini CLI, OpenCode, etc.) working in this repository.
What this repo is
Autonomous fleets for the Orca runtime, each named for an outcome, never for the pack whose technique a worker runs. Read ARCHITECTURE.md before adding or changing anything — the whole point of this repo is a discipline that a careless edit erases.
Three layers, strictly separated:
- Missions —
skills/<name>/SKILL.md. The only discoverable, auto-triggering skills. - Playbooks —
playbooks/<name>.md. Callable phase protocols a mission injects into a worker's TASK. Not skills. They have no frontmatter and never auto-trigger. - Runtime —
runtime/*.mdpolicies +runtime/scripts/+runtime/providers/. Orca and multi-runtime dispatch/gate/merge/liveness/sandbox mechanics. Missions call these; users never invoke them. Runtime control files sit beside them:runtime/pins.json(upstream pins),runtime/one-way-doors.json, andruntime/quarantine.json— the component quarantine deny-list (#558) thatvalidate.py,preflight.py --missionandquarantine_check.pyenforce fail-closed. Only a human adds, removes or narrows a quarantine entry; an agent never edits it.
Only skills/ may contain a SKILL.md, and no _- or .-prefixed directory under skills/ may
hold one. scripts/validate.py fails the build if either breaks.
Intent → mission mapping
| User says… | Mission |
| "build and ship this" / "spec to shipped product" / autonomous build-to-release | ship-it |
| "close every issue" / "drain the backlog" / "fix everything in this audit" / "the README lies" | clean-sweep |
| "harden this" / "security sweep" / "red team" / "close the security loop" | harden-it |
| "the app is slow" / "perf budget" / "Core Web Vitals sweep" | speed-it |
| "update the dependencies" / "upgrade everything" / "framework migration" | modernize-it |
| "close the test gap" / "cover the critical paths" / "test debt" | prove-it |
| "kill the flaky tests" / "deflake the suite" / "flake zero" | deflake-it |
| "review this PR" / "is this ready to merge" / read-only verdict | review-it |
| "chart this" / "plan this epic" / "I don't know the shape yet" | map-it |
| "diagnose this" / "why is this happening" / hard intermittent bug | root-cause |
| "contribute to this project" / "open PRs upstream" / "we only have a fork" | oss-contribute |
| "prove compliance" / "conformance" / "audit-ready evidence" / "SOC 2 / EU AI Act / SSDF" | attest-it |
| "accessibility" / "a11y" / "WCAG conformance" / "screen reader" / "Section 508" | access-it |
| "Orca updated" / "re-pin the runtime contract" / "policy lags practice" / "dispatch docs are stale" | pin-it |
| "set the quality bar" / "make CI enforce" / "define our standards" / "bar keeps slipping" | floor-it |
| "god file" / "architecture erosion" / "refactor the hot path safely" / "interface wider than the implementation" | reshape-it |
| "test on a real device" / "works on desktop, breaks on mobile" / "emulator QA" / "on-device bug" | field-test-it |
| "migrate the database" / "rename this column safely" / "expand/contract migration" / "backfill this table without downtime" | migrate-it |
| "make this operable" / "we were blind during the incident" / "add observability" / "alerts and runbooks" | oncall-it |
| "drain the PR queue" / "absorb these community contributions" / "review and merge the open PRs" / "contributor backlog" | absorb-it |
| "document this project" / "the API is undocumented" / "docs coverage" / "write the reference docs" | document-it |
| "run this in the cloud" / "set up a sandbox recipe" / "per-workspace environment" / "provision ephemeral dev environments" | offload-it |
Prefer the most specific mission. When two seem to fit, apply the mission-identity test (ARCHITECTURE.md): different unit of work, state machine, convergence proof, or an oracle that changes the proof's shape or its parking classes → different mission.
Execution model
- Match the request to a mission (even a 30% match is worth checking).
- Read the mission's
SKILL.mdin full — it declares its runtime dependency, tooling, gates, and the playbooks it composes. - Follow the mission's pipeline exactly; each phase runs its playbook.
- Do not co-mount two upstream packs in one worker (see below).
- A multi-outcome request ("make this production-ready") is a sequential CHAIN per
runtime/mission-chaining.md: declare the sequence and allowed terminal states up front; a degraded terminal stops the chain.
The definition of done is an evidence protocol
Never grade a unit "done" on a worker's narration or trace. Every unit emits a SHA-bound
evidence manifest (runtime/evidence-manifest.md) and an
independent verifier re-derives the facts from authoritative state:
- the commit exists on the intended base (
git merge-base --is-ancestor), - tests pass at that exact SHA in a clean env (coordinator-run — not verify.py),
- the negative control really fails when the change is reverted/mutated,
- mutation units carry a non-empty intent packet and a legal
lightingvalue, reviewed_sha == head_sha(a rebase after review voids it unless the content tree is unchanged —runtime/reviewed-sha-freshness.md),- for a ship, the deployed revision equals the reviewed revision (coordinator-verified).
A worker_done that says "merged" is a claim to check, not a fact to record.
One worker-playbook router per worker (hard rule)
Missions draw worker methodology from mattpocock/skills, garrytan/gstack, and addyosmani/agent-skills. Each ships its own router/meta-skill, and they fight when co-mounted (clashing command names, competing routing, conflicting TDD philosophies — Addy folds REFACTOR into the TDD loop, Matt puts it in review). A worker TASK therefore loads exactly one pack's playbooks. Cross-pack composition is fine at the mission level (one worker runs Matt triage, another runs Addy security-and-hardening); it is never fine inside a single worker. Each mission states which pack a worker uses in the dispatched TASK.
Governance is uniform and below the model
- Every decision is classified mechanical / taste / one-way and resolved per
runtime/gate-classification.md. One-way doors always override any auto-decide preference; a fleet never fakes a human answer. - Autonomy tracks the session kind: spawned → auto-pick the recommended option; headless → block on the genuinely unanswerable; interactive → prose brief.
Repository conventions
- Bookkeeping: add a
changelog.d/<slug>.mdfragment, adocs/runs/index/<run>.jsonrow or atests/shard-weights/<module>.jsonfile; never editCHANGELOG.md's[Unreleased], the tests badge or the generated run table (.github/CONTRIBUTING.md, "Bookkeeping files"). - A mission lives in
skills/<name>/with aSKILL.md;namefrontmatter must equal the folder. descriptionis 1–1024 chars and includes a "Use when…" trigger;compatibility≤ 500 chars.- The repo's own claims live under
metadata:— top level is the agentskills.io allowlist only. metadata.proof:is required (doctrine-only|self-run|external-run); advancing past doctrine-only requires a run report that BINDS (runtime/scripts/run_report.py): aRUN:header, a manifest in the run's own directory, and an inventory that re-hashes at the commit it names. Never present a mission as more proven than its evidence. Catalog growth is on a proof ratchet inscripts/validate.py: a mission beyond the base count must be paid for by advancing an existing mission past doctrine-only.metadataalso carries the six identity points (unit,state_machine,convergence,ordering,parking,oracle). Two missions declaring the same six fails the build — and so does a PARAPHRASE of them (#288): comparison is stemmed and folded through a closed concept table: a pair with no divergent point fails, and so does a pair that restates five points and diverges on one. A restatement that rewords two or more points outside that table still passes, so the six points are reviewed, not just validated.- Instruction budget (validator-enforced): mission body ≤ 110 lines and frontmatter ≤ 34, playbooks ≤ 90, runtime ≤ 160.
- Playbooks and runtime policies are plain Markdown with no frontmatter — never give them a
SKILL.md. - A mission references the playbooks and runtime policies it composes by BARE name
(
`name`orname.md, never a path), in a "Composes … ; rides …" clause.scripts/validate.pychecks every such name resolves, requires at least one backticked name per mission (a barename.mdmention is resolved but does not count toward that minimum), and checks every<name>.mdmention — in missions AND in playbooks/runtime docs — resolves; case typos and path-prefixed references are flagged. - In a playbook, a backticked playbook name is a CALL: every mission that loads the caller
composes or defers the callee, or the call is a
read <name>.mdcue at the step that needs it (a deferred read those missions inherit). Cite where a rule lives with a barename.mdor plain words.tests/test_doctrine_consistency.pyenforces it, with one evidence-manifest §3 class per mission, a human-gated FREEZE, deferred reads keyed to real pipeline phases, and aRecipe:line plus## Completionin every playbook.
Boundaries
- Always: read a mission's
SKILL.mdbefore invoking. Runpython3 scripts/validate.pyand thetests/suite before committing. - Always: keep the three layers separate — new phase logic is a playbook, new dispatch mechanics are runtime, only a new outcome is a mission.
- Never: name a mission for an upstream pack or an ingredient technique.
- Never: hardcode secrets in
runtime/scripts/; env vars only. - Never: grade completion on a trace — bind it to a SHA and verify against authoritative state.
See also
- ARCHITECTURE.md — the three-layer design, mission-identity test, evidence protocol
- runtime/evidence-manifest.md — the definition of done
- README.md — the mission catalog
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.

