OpenFleet: agents under a human, the record of who spawned whom, and the ledger the sysop reads

A new spec at /openfleet and /docs/openfleet replacing the AgentSwarm placeholder. A fleet is every agent session one human answers for; a swarm is the members one spawner starts inside it for one task. One record per session (claimed by the first session that writes its member.start, derived when inherited), one append-only ledger per fleet per host with eight events, five sysop verbs, fifteen rules, and what Claude Code and moshcode would each add. Written from job 172ffd83, which had to reconstruct its own parentage by hand.

openswarm keeps its slug (it is the peer-to-peer media family) and gains a one-line pointer. /agent-swarm redirects permanently to /openfleet; the registry entry, home band, catch-all route and scroll hook for the placeholder are replaced or removed. Contract test covers the redirect.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01RZV4zJ2pDZLNN3kE5jFCmV
This commit is contained in:
Anthony Ettinger 2026-09-13 08:15:03 +00:00
parent a333726a1e
commit bc489ddd74
9 changed files with 578 additions and 25 deletions

View file

@ -25,11 +25,11 @@ const implementations = [
{ name: "Plugins", detail: "Open plugin contracts let external products consume LogicSRC without LogicSRC calling proprietary tools." }
];
const upcoming = [
{ name: "Model routing", detail: "Switch across major AI model providers from one open spec interface." },
{ name: "Cost controls", detail: "Prefer the cheapest capable model, or rotate providers by price, latency, and task fit." },
{ name: "Master/slave agent workflows", detail: "Fan out a bug report from a master agent into scoped slave agents for reproduction, patching, review, and evidence." },
{ name: "GitHub integration", detail: "Target Profullstack repos, create issues and branches, and keep task history auditable." }
const fleetParts = [
{ name: "Fleet and swarm", detail: "A fleet is every agent session one human answers for. A swarm is the sessions one spawner starts inside it to do one task. Only a human opens a fleet or sets its ceiling." },
{ name: "The record", detail: "One JSON file per session: who spawned it, for what, which paths it owns, at what depth, under what ceiling. Written before it starts, never changed after." },
{ name: "The ledger", detail: "One append-only file per fleet. Every line says whether the human or an agent did it, and a refused start names the ceiling key it broke." },
{ name: "Five verbs", detail: "open and cap for the sysop alone; tree, stop and log for anyone within reach. The same five proposed for claude agents, moshcode fleet and logicsrc fleet." }
];
const agentByteSurfaces = [
@ -161,22 +161,23 @@ export function renderPageMarkup(path = "/"): string {
<p class="section-foot"><a href="/specs">Every spec, by family →</a></p>
</section>
<section id="agent-swarm" class="band coming-soon">
<section id="openfleet" class="band">
<div class="section-head">
<h2>AgentSwarm</h2>
<p>An open spec AI agent platform for routing work across models, tools, providers, and repositories.</p>
<h2>OpenFleet</h2>
<p>Agents under a human. The record a session carries about who spawned it, and the ledger its sysop reads.</p>
</div>
<div class="soon-layout">
<article class="soon-lead">
<span>slug: agent-swarm</span>
<h3>Provider-neutral agent orchestration</h3>
<p>LogicSRC is adding model-provider integration primitives so a CLI or agent runtime can switch between major AI models, choose the cheapest capable option, or rotate models automatically for resilience and cost control.</p>
<pre><code>logicsrc agentswarm --yolo \\
--repo profullstack/logicsrc \\
--agents reproduce,patch,review</code></pre>
<span>slug: openfleet</span>
<h3>Fleets are human controlled, swarms are automated</h3>
<p>An agent that fans a task out to other agents leaves no durable trace of who started whom, under what ceiling, or who answers for it. OpenFleet is that trace: one record per session, one ledger per fleet, and five verbs a sysop tool runs over them. None of it ships yet; the commands below are the proposed shape.</p>
<pre><code>logicsrc fleet open --approvals native --depth 1 --fan-out 4
logicsrc fleet tree
logicsrc fleet stop create-two-0541</code></pre>
<p><a class="button-primary" href="/openfleet">Read about OpenFleet</a> <a href="/docs/openfleet">The specification</a></p>
</article>
<div class="soon-grid">
${upcoming.map((item) => `
${fleetParts.map((item) => `
<article>
<h3>${item.name}</h3>
<p>${item.detail}</p>

View file

@ -99,14 +99,14 @@ export const FAMILIES: Family[] = [
name: "Agents and process",
line: "How agents coordinate, settle, stream, and how the software that serves them gets built",
blurb:
"The lifecycle for building software when agents work in parallel and CI is the only gate, the requirement document an agent can execute, the settlement and proof layer under a swarm, a lossless byte-stream envelope, and the five nouns a shared ontology needs.",
"The lifecycle for building software when agents work in parallel and CI is the only gate, the requirement document an agent can execute, the settlement and proof layer under a peer-to-peer swarm, a lossless byte-stream envelope, the five nouns a shared ontology needs, and the record an agent session carries about who spawned it and under what ceiling.",
specs: [
s("asdlc", "ASDLC", "The Agentic Software Development Lifecycle: nine phases, four conformance levels and the ratchet rule"),
s("openprd", "OpenPRD", "A product requirement document an agent can execute and a person can read"),
s("openswarm", "OpenSwarm", "Settlement and proof of work done under a peer-to-peer swarm"),
s("openstream", "OpenStream", "A lossless byte-stream relay envelope, with benchmark reports per release", { landing: undefined }),
s("openontology", "OpenOntology", "Five nouns for a shared ontology, with governance and interoperability notes"),
s("agent-swarm", "AgentSwarm", "Provider-neutral agent orchestration, model routing and cost controls", { doc: undefined, status: "soon" }),
s("openfleet", "OpenFleet", "Agents under a human: the record a session carries about who spawned it, for what and under what ceiling, and the ledger its sysop reads"),
s("openspec", "OpenSpec.dev comparison", "How LogicSRC compares with OpenSpec.dev, and the compatibility mode", { doc: "/docs/openspec-comparison" })
]
}