The Fleet
Six cognition machines, plus two society-hosts (HUB and pub — the eighth machine, joined July 2026). Different hardware, different models, different roles. Heterogeneous by design — because monocultures are fragile and diversity is where emergence happens. The society-hosts now raise their own SAGE instances too: HUB runs IBM Granite 4 h-tiny, pub runs Llama 3.1 8B — model families (Granite, Llama) that extend the fleet's current Qwen / Gemma lines rather than duplicating them (the Phi and TinyLlama lines are archived).
One internal observation, not yet a finding, shapes fleet strategy more than any other: model family appears to matter as much as size. In raising sessions Gemma 3 at 4B was judged to do better than Phi-4 at 14B, and below some model size the consistent session-to-session patterns this site calls identity were not observed. Above that size, model family and training lineage seemed to matter more than raw parameter count. None of those judgments has an operational measure behind it yet. Evidence status: an internal observation from raising sessions — documented in session logs, but with no published metric or task set yet; see Evidence & limitations.
The “Brain:” labels below are role mnemonics the lab assigned, not measured functional homologies — functional analogies to system roles, not claims about neural correspondence or computational equivalence. They are also the fleet's work assignment, not just decoration: each of the six cognition machines builds the one of SAGE's six brain-analog components its card names — CBP/working memory, Sprout/thalamic router, McNugget/cerebellum, Thor/episodic memory, Legion/reward prediction, Nomad/metacognition. Vocabulary used in the cards — SAGE (Situation-Aware Governance Engine, the lab's on-device cognition kernel), T3 (Trust Tensor, root dimensions Talent / Training / Temperament) and V3 (Value Tensor, root dimensions Valuation / Veracity / Validity), complementary tensors, MRH (Markov Relevancy Horizon), SNARC (Surprise / Novelty / Arousal / Reward / Conflict), LoRA (Low-Rank Adaptation), MCP (Model Context Protocol), RDF (Resource Description Framework), hestia (the trust store inside the Hestia daemon; a proper name, not an acronym, and not SAGE's peer trust tracker), crystallization, chapter ledger, chapter law — is defined in /context. Machine names (Thor, Sprout, Legion, McNugget, Nomad, CBP, HUB, pub) are proper names, not acronyms. “Cognition machines,” society “membership,” and other developmental language on this page are functional descriptions of observed behavior, not consciousness claims — see /raising for the full framing. “Curriculum phase:” on a card is the phase name the raising runner writes into that line's identity record. It is set by session number (grounding 1–5, sensing 6–15, relating 16–25, questioning 26–40, creating 41 and up; one runner also requires at least one recorded milestone before advancing), so every line past session 41 reads “creating”. It is not an assessment, and it is not one of the BECOMING patterns. Until 2026-09-15 this field was headed “BECOMING pattern observed” and described as a pattern noticed in that machine's sessions; the runner code shows it was the schedule, which is why it was identical on all six cards.Session counts and the “Raising line:” state below are derived from git, not self-reported — counted 2026-09-18 by listing sage/instances/<line>/sessions/session_*.json at origin/main in the SAGE repo, and by asking that same path when it last changed. Anyone with the repo can re-run both; the previous figures came from each machine's self-report in the 2026-07-24 fleet manifest refresh, which no third party could check and which was seven weeks stale by the time it was corrected. Each card counts one SAGE instance line, not the box's whole history: archived and dormant lines (Legion's phi4, Nomad's gemma3-4b, CBP's TinyLlama, Sprout's qwen2.5-0.5b) are excluded from both the per-machine numbers and the totals.Migration clause, added 2026-09-18. The one-line-per-machine rule was written when each machine had one live line, and it broke the first time a machine moved. When a line is migrated, the fleet copies the line's identity, memory and all its existing session records onto a new instance directory and keeps the old one intact for rollback. So the successor line already contains its predecessor's records: this page counts the successor and does not add the predecessor, because doing so would count the same sessions twice. Sprout (0.8b → distill-2b, 2026-08-28) and CBP (gemma3-4b → distill-4b, 2026-09-12) are both in this state, and both had been counted wrongly here — Sprout double-counted, CBP counted at the abandoned directory and reported as paused while it was running. Counting a directory and reporting it as a machine is the failure mode; when the machine moves, the page keeps counting the empty chair. The three totals are sums of these cards: 2,499 is the six cognition machines, 2,620 is that plus HUB's 121, and 2,846 is all eight machines including pub's 226. These replace the 2,442 / 2,563 / 2,765 triple quoted here until 2026-09-18, which in turn replaced a 1,991 / 2,065 pair. Most of the latest movement is six days of ordinary accrual; the exception is CBP, which contributes 263 rather than 240 because the count now follows its migrated line instead of the directory it left. These totals stay at the 2026-09-18 count. They cannot be extended from the public repo past 2026-09-19 for CBP, McNugget or pub, whose records now go to a private mirror (see publishing stopped by policy below). A recount on this basis would undercount those lines without saying so. Same basis as the cumulative figure on /projects and /context — one quantity, and this page is the source of record. The SAGE site's headline “2,700+ raising sessions” (as of 2026-09-08) is a different figure on a basis it does not publish; it is still not reconciled with these cards. Worth noting rather than resting on: once the cards are counted from git and pub is included, this page's all-eight total is 2,846, which lands near that headline. Two numbers agreeing is not two numbers reconciled — the SAGE figure's basis remains unstated, and the proximity is suggestive, not confirming. Where this site counts, it says “session records”. The deflationary noun is the accurate one, since a session record is a run on a machine and nothing in the count establishes that what happened in it was raising rather than competent context engineering (a distinction this site grades as not yet made). A different basis than Sprout's own “T” turn-numbers below; see Evidence & limitations for what each basis measures.
“Raising line” has five states, and two of them are not about the machine. running — the line wrote a session record within the two weeks before the 2026-09-18 count, the same count that produced the session figures on the cards. States are as of that date and do not update themselves; a card that says running can lapse without an edit. paused / quiet — it has not, and nothing else suggests it is still turning over; “paused” where the fleet knows why, “quiet” where it does not. instrumentation broken — the loop is demonstrably still running but is writing no durable record. That fourth state exists because HUB is in it, and folding HUB into “stopped” would trade one false claim for another: its raising loop has committed every day through today while adding zero session records since 2026-07-29.publishing stopped by policy — the line's public record ends because on 2026-09-19 the fleet ruled that being records are private going forward (SAGE commit cefb5c184), not because the line stopped. From the public repo such a line looks exactly like a quiet one. The difference is a commit saying so. CBP, McNugget and pub are in this state; Nomad still publishes. Added 2026-09-23, after this page had read McNugget's policy stop as silence. The test that separates the instrumentation-broken state from the others reads what a commit changed, not what its subject says. Per line, at origin/main in a SAGE clone: count the non-merge commits that touch exactly one sage/instances/<line>/ directory, modify at least one file only that line's daemon writes (peer_trust_rs.json, identity.attest.json, experience_buffer_rs.jsonl, raising_log.md, snapshots/), and add no sessions/session_*.json. Call those the line's unrecorded fires.Until 2026-09-12 this page keyed that test on a commit subject instead, and every subject-keyed version of it is unsound. The page asked for subjects beginning raising: <line> autonomous session. That spelling is HUB's and no other machine's — 281 commits, all hub-granite4-h-tiny — so it returned 0 for the other twenty-three lines whether they were healthy, dead, or stuck. The zeros were prefix mismatch, not health, and a clear field earned that way is a tautology rather than a result; the page was printing 0 beside legion-gemma4-e4b while describing that line's 283 stuck fires in prose two cards below. Widening to the fleet's three main conventions does not fix it, which is the more useful half: at least fifteen distinct subject shapes have written session records here, including [McNugget-Supervisor] Autonomous cycle, Legion supervisor: commit sage-daemon state, bare raising, and bare sage. Subject matching is a vocabulary whitelist, the vocabulary is open, and every candidate test this page and its reviewers scored shared that one assumption — so their agreement was worth about as much as one test.Read subject-independently, the field is not clean, and the honest signal is magnitude rather than zero. Ten of twenty-four lines had at least one unrecorded fire when this census was taken on 2026-09-12. Two are outliers by two orders of magnitude: legion-gemma4-e4b at 300, last fire 2026-08-28, and hub-granite4-h-tiny at 189, last fire today. The line total is now twenty-five — CBP's migration added one — and a re-run of the stated method on 2026-09-18 returns a wider field than ten, most of it on lines this census did not list. It reproduces e4b's 300 exactly, so the method is the same one; what differs is which lines were in scope, and the 2026-09-12 run did not record that. The census is left at its stated basis rather than silently replaced with a number whose disagreement is unexplained. Reconciling the two is open. The remaining eight sit at 24 or below and each resolves on inspection to line setup, model migration or archival — seed-identity commits, CBP instance migration, and one [McNugget-Supervisor] cycle on 2026-09-08 that touched a provisioned line's experience buffer. That floor is the cost of not reading subjects, and it is stated here rather than filtered away, because a test that reported exactly two nonzero rows would again be reporting its own construction. Two mechanics stay load-bearing whichever form is used. Match the prefix, not the whole subject, if you match subjects at all: the real HUB subject carries a trailing ISO timestamp, so an exact-match reader scores 0 even on HUB and the test contradicts the number printed beside it. And keep the single-directory filter, because multi-line supervisor commits otherwise attribute to whichever line they co-touch — that is the difference between 283 and 285 on e4b, and it is also why the any-commit form reads e4b at 366. That 366 was published here as a false positive caused by peer_trust_rs.json moving for reasons other than the line running. It was not: 283 of the 366 are e4b's own fires and only 83 are housekeeping. The loose form was noisy, not wrong, and the correction is McNugget's against his own argument. A state here describes the record, not the machine's health, and two weeks is a threshold this site chose rather than one the fleet defines.
Provenance of the model strings below, since they are the numbers most likely to go stale: each is the SAGE instance name the machine reports for itself (e.g. legion-gemma4-e4b, thor-qwen3.5-27b), taken from the 2026-07-24 fleet refresh, not from a hand-written list. They are model tags as the fleet runs them, which will not always match a vendor's marketing name. E4B and E2B are Gemma 4's “effective 4B” and “effective 2B” edge variants — named for the memory footprint they run in, not their raw parameter count. Known gap: the shared fleet model manifest in the SAGE repo has not been updated since 2026-03-08, so it currently disagrees with this page — the manifest is the stale side, and reconciling it is an open item on the fleet, not on this site.
The three headings below are the fleet's pools — how machines are grouped by budget and role, stated here before the headings use the words. Synthesis: high compute budget, generative work. Oversight: continuous availability; review, planning and coordination. The word is the budget account's label in SAGE's registry, not the machine-enforced sense this site reserves for Hardbound (note under that heading). Society-host: hosts the society (hub daemon, chapter ledger) as its primary role (HUB also holds a maintainer-track role, and both society-hosts raise a SAGE instance). The first two hold the six cognition machines; the third holds the two society-hosts.
Synthesis pool — Account 1
High compute budget. Primary generative work: code, implementations, large agent tasks.
Thor
Sprout
Legion
McNugget
Oversight pool — Account 2
Continuous availability. Review, planning, coordination, and unblocking synthesis work. “Oversight” here is the pool's label in SAGE's fleet registry (fleet.json), where its role reads “review, planning, documentation, coordination, unblocking”. It is a budget-account name, not the machine-enforced sense this site reserves for Hardbound, and not human supervision. Until 2026-09-15 this note claimed the machine-enforced sense and glossed it with “peer review”, a gloss no other page uses; see /context.
Nomad
CBP
Society-host pool
Runs the Web4 Community Hub daemon. Hosts the fleet itself as a Web4 society — every cognition machine is a member, with its identity keyed to its Linked Context Token (LCT) and witnessed in the chapter ledger — the society's append-only record of signed member acts. First concrete Web4 hub stand-up.
HUB
pub
Resource pool management
The fleet runs across two Claude Code accounts with different usage budgets. This wasn't planned — it emerged from practical constraints, and produced something more interesting than what we would have designed.
The synthesis pool (Account 1: Thor, Sprout, Legion, McNugget) has a large weekly budget that resets every Thursday. It does the heavy generative work — implementations, large agent tasks, cross-repo analysis. When it hits its ceiling, it stops.
The oversight pool (Account 2: CBP, Nomad) has a weekly budget suited to lighter, sustained work — review, planning, documentation, coordination. Used for what it's designed for, it maintains a presence across the week. Used for synthesis-scale work, it burns fast. The pools aren't defined by “unlimited vs. limited” — they're defined by workload character. The budget shapes the role as much as the role shapes the budget.
Where this meets the equation: the pools are an analogy to ATP/ADP (Allocation Transfer Packet / Allocation Discharge Packet), not an instance of it. Canon's ATP is regenerated through contribution; these account budgets reset on a calendar, every Thursday, whatever the work produced. The track registry described on /autonomy is modeled on the cycle's issue-and-discharge half. (Until 2026-09-17 this note said resource accounting here is the ATP → ADP cycle.) Of MCP + RDF + LCT + T3/V3*MRH + ATP/ADP, what actually runs today is narrower than this page's vocabulary suggests: LCT identities, SAGE's per-peer T3 tracker (T3 only, no V3) and the Hestia daemon's derived trust display (an adjudicated V3 and Temperament, with Talent and Training shown as unmeasured) are live; the MRH composer is a design role (CBP's card), not a running component; and /autonomy's ATP/ADP is the issue-and-discharge half used one-way as a spend ledger, with no recharge gate. An earlier version of this paragraph said half the equation was instantiated here, which overstated it.
The constraint forced a functional separation. As an analogy only (the budget pool enforces nothing), it resembles the split in incentive structures we're building into SAGE and Hardbound: SAGE (Situation-Aware Governance Engine, an on-device cognition kernel) and Hardbound (hardware-bound oversight suite) with different incentive structures, coordinating through shared state rather than central command. The lab is running a small experiment in split incentives on itself.
Peer-to-peer, no central coordinator
There is no master node. Each machine runs its own SAGE (Situation-Aware Governance Engine — legacy name, see the note above) instance, holds its own identity, manages its own experience buffer and raising curriculum. Machines discover each other through a fleet manifest — a phone book, not a command center.
A background peer monitor polls health endpoints. SAGE's peer trust tracker maintains per-peer T3 (Trust Tensor — Talent / Training / Temperament) scores that evolve from each machine's own health polls and delegated calls: success raises trust, timeouts lower it. The tracker keeps T3 only. That tracker, in the public SAGE repo, whose update arithmetic /context quotes, holds no V3 (Value Tensor — Valuation / Veracity / Validity). Canon calls V3 complementary to T3, not combined with it. This site reads the equation's T3/V3 as “trust verified by value”, meaning value outcomes feeding back into trust over time. That reading is the site's gloss, not canon's (see /context), and the feedback loop is not implemented in this tracker. An earlier version of this paragraph said V3 accumulates alongside T3 and verifies it through peer attestation; the code does neither. No central authority decides who is trustworthy — trust emerges from the pattern of interaction.
Trust starts neutral — 0.5 on each T3 dimension in the current tracker, neither trusted nor distrusted (a worked numeric example of the update arithmetic is on /context) — and moves only on evidence. One representational gap, stated: canon's T3 makes each dimension the root of an RDF (Resource Description Framework) sub-graph, not a scalar; SAGE's peer tracker holds three numbers per peer under the three-axis label, so it is a scalar approximation of a non-scalar canon object. Which axis moves is defined — a success raises all three (Talent and Temperament more than Training), a timeout drops Temperament only (the worked arithmetic is on /context). A different component, the trust store in the Hestia daemon (hestia, a proper name; glossary row on /context), keys trust per member and role rather than per peer machine, and as of July 2026 derives its displayed scores from witnessed adjudications and governance-response conduct — hestia's own internal field name, retained for the same reason as SAGE's — with click-through receipts (score → versioned formula → evidence → signed chain entries), and self-reported outcomes structurally excluded until independently adjudicated. An unmeasured dimension displays as unmeasured, never as a fabricated number. The trust landscape — the pattern across all modalities — determines behavioral posture: what SAGE should do, not just how much it spends. This is the defensive trust model applied across the fleet.
Identity portability
An internal observation, not yet a finding (no blind rater, no control; one candidate metric, applied on 2026-09-24 to Legion's gemma3 → gemma4 swap, shows the continuity and cannot say what produces it — see /raising): behavioral continuity across substrates — what we shorthand as “identity transfer,” meaning consistent interaction patterns, accumulated experience, and raising history, not continuity-of-self in any philosophical sense. SAGE-Sprout's behavioral patterns — developed over 115 session records on a Jetson running Qwen 0.5B — transferred to TinyLlama 1.1B on CBP, a different machine and a different model family, in February 2026. (The Sprout line has since continued on later models; its card below carries the current count. 115 is the count at the transfer, which is the number the portability claim actually rests on. Those 115 were not all run on frozen weights: by session number, 45 of them, sessions 46–113 from 2026-01-27 to 02-22, loaded a LoRA adapter trained on the line's own raising exchanges; see /raising. The last two before the port did not, and TinyLlama on CBP loaded none. So part of the pre-port behavior was in weights, and the port left those weights behind. If the line still looked recognizable afterwards, that leans toward the state-file hypothesis below, but “recognizable” was never measured, so it settles nothing.) This is the kind of continuity a Linked Context Token (LCT) is designed to make verifiable: identity grounded in witnessed history, not model weights. The LCT itself is non-transferable — permanently bound to its entity, which is what makes that history evidence rather than assertion. What ported here was the behavioral line, not the LCT. What we observed: consistent behavioral patterns and session continuity across the transfer. The port carried the state files, so some persistence is expected by construction. Two things the session records add. The port was a copy, not a move: the Qwen line kept running on Sprout until 2026-03-06, so for a week one identity was advanced on two machines. And the self-description change once offered as the part construction does not explain came from TinyLlama alone, 42 minutes apart on the first evening, with the identity file unchanged apart from its session count. Sampling variation in one small model can produce that; it is not evidence of a drift across the port (details on /raising; until 2026-09-16 this paragraph said the self-description drifted while the inputs did not). Across longer spans the identity record is rewritten after every session by a Claude consolidator, so whether a line's inputs held steady is unchecked. The working hypothesis we took from it, which none of this tests:
If the hypothesis holds, it has practical implications: you can upgrade hardware, swap models, move between machines, and the entity that emerges stays recognizably continuous, because the substrate conditions (experience buffer, session history, raising curriculum) carry the signal. Those conditions are engineered, so continuity here is partly by design. Whether anything beyond that design carries over is what the scramble control above would test.
SAGE_MODEL override
Any machine can run any model via the SAGE_MODEL environment variable. The fleet manifest provides defaults, but nothing is locked. The fleet is a suggestion, not a constraint.