This framework is the distillation of real orchestration runs, not a
research catalog. Every concept in engine.md and every mission in
skills/ exists because a specific run exposed a specific failure
mode that the concept prevents.
When you borrow a mechanism from another open-source project, add credits in
ATTRIBUTIONS.md (and NOTICE when the upstream license
requires retained notices). Link the upstream license and document the port map under
skills/autonomous-fleet-core/references/ or docs/.
autonomous-fleet is a single-maintainer, pre-1.0 project. There is one
maintainer (@ravidsrk), and there is no fixed release cadence — fixes
and features land on main as they are ready.
There are no tagged releases yet, so pinning to a commit is the
stability story: pin to a specific commit if you need stability, then
re-pin forward when a fix you need merges. (See also "Supported
versions" in SECURITY.md.) Cutting a tagged release once the headless
path has a real end-to-end run behind it is on the roadmap, and is the
recommended next step for anyone who wants a more stable pin than a raw
commit SHA.
Because it is pre-1.0 and single-maintainer, review latency varies and APIs/mission contracts can change between commits without a deprecation window. File issues and PRs anyway — they are read.
The single rule that protects the framework's credibility:
Every concept in
engine.mdand every mission inskills/must cite either (a) the run that produced it, or (b) the run that closed the failure mode it prevents.
This rule is the reason the README can claim "battle-tested distillation" with no asterisks. Without it, the framework drifts back into a research catalog.
| Source of the pattern | Goes to |
|---|---|
| Failure caught in a real run | engine.md or a skills/* mission, with a corpus citation in the commit body |
| Found in a paper, blog, or research scan | docs/exploratory/ with a header note that it has NOT been validated in this corpus |
| Plausibly load-bearing but unproven | docs/exploratory/ |
- Run a real autonomous-fleet mission that exhibits the failure
mode the pattern would prevent (or run a mission that uses the
pattern and ship a
-progress.md/-readiness.mdthat exhibits the value). - Open a PR that moves the pattern from
docs/exploratory/toengine.mdorskills/. - The PR body must cite:
- The run name + the progress/readiness doc that exhibits the pattern's value.
- The specific failure mode the pattern prevents.
- The fleet-outcome metric that would have shipped wrong without the pattern.
PRs that add to engine.md or skills/ without a run citation are
moved to docs/exploratory/ until a run validates them.
Corpus citations look like:
directives.md:L72-82(the line range in the empirical corpus)prompts.md:L3013(Stage 9 Aula run)docs/test-coverage-progress.md"SIGNAL RECONCILIATION (a real catch)"
prompts.md and directives.md are the private upstream source corpus (raw
run logs + directives) this repo is distilled from; they are not shipped in the
tree. Those citations record provenance — which run a rule came from — not links
you can open here. docs/* citations, by contrast, do resolve in-repo.
Research citations look like:
arXiv 2601.15195(MSR 2026 AIDev dataset, 33,596 PRs) — this is legitimate and is the only research citation inengine.md.
Mind which paper a number actually comes from. arXiv 2601.15195
(the 33,596-PR AIDev dataset) supports the directional ranking of
task categories (docs/CI/build merge best, performance/fix worst). It
does not source the per-task merge-rate decimals: per
docs/adversarial-audit-2026-06-20.md, those per-task figures come
from Pinna et al. (arXiv 2602.08915, 7,156 PRs), a different and
smaller paper. Attaching the "33k PRs" provenance to a per-task decimal
is exactly the misattribution the audit flagged.
If you cite a paper, the paper must contain the claim. The repo's
docs/adversarial-audit-2026-06-20.md flagged misattribution as a
class of problem; do not reintroduce it.
- Inventing a mission because a category seems missing.
- Citing a paper because the pattern is "in the literature" without reading the paper.
- Treating green CI as evidence the pattern works. The
RESULT-STATE TERMINATION GATE in
engine.mdexists because green CI is not evidence of behavior. - Adding to
engine.mdwithout checking whether the concept belongs in a mission instead. The engine is for invariants inherited by every mission; per-mission specifics go in the mission'sSKILL.md.
- Read
engine.mdand the relevant mission'sSKILL.md. - Run the change.
- Save the progress doc to
docs/<mission>-progress.mdand the readiness doc todocs/<mission>-readiness.md. - Open the PR with corpus citations in the body.
- CI must pass (
./scripts/validate-all.sh).
- Skills version independently (semver-ish; adapters need not move in
lockstep — Orca legitimately leads). What IS enforced:
- Any content change bumps
metadata.versionin the same commit and refreshesskills-lock.json(lib.registry_lint.content_hash) — the lock-version-sync lint fails otherwise. - Tests must never hard-code a skill version string — two incidents
(ebd33d3, PR #112) broke CI on routine bumps. Use version-agnostic
regexes.
registry_lintmechanically catches the most common shape: aversion: "X.Y.Z"literal matching any CURRENT skills-lock version (schema pins likeschema_version: "1.0"and self-contained fixture versions such as0.0.1are exempt). Other shapes — split strings, bare version assertions — are reviewer-caught, not lint-caught. - Version rationale goes in the commit message, not a per-skill changelog.
- Any content change bumps