Canonical status reference for the [&] Protocol ecosystem.
Stack map · Ecosystem overview · Three-protocol stack · [[&] Protocol](AmpersandBoxDesign/docs/index.md) · Graphonomous · OpenSentience · WebHost.Systems
Last updated: 2026-08-13 — §0 and §6 recomputed against measurement for the first time since April, and three published numbers corrected. The ratings had been carried in the present tense through four months of releases while the header moved; every figure now carries the date it was last actually measured, and §6 has a Verified column so a row cannot silently age again. The recompute moved no percentage — the work since April all landed at live_local or below, and the rows that bound the total (deployed dark-factory pass, adoption) are untouched. Corrections found by measuring: box-and-box is 116 laws with 3 declared-open, not 129 — the cited test/coalition-laws.mjs does not exist, and the suite's own ✓ all 116 stated CC2 compose laws banner overstates its file by 8× (116 is the whole-kernel total hard-coded into the compose suite); the docs atlas serves byte-identical content on 13 hostnames, none redirecting, so ACADEMY.md A1's "the two non-canonical docs hosts" undercounts by ten; and the 1,463-test ecosystem figure has not been re-run since 2026-04-28 and is now labelled historical. Also this session: Alkeyword v0.6.2 inventoried (§2.6, §5) and run end-to-end for the first time, plus Academy added to §5. The tool had shipped a live site, a 22-surface corpus and 15 green witnesses without the loop ever being closed against a real site in one pass. Doing that (opensentience.org: 15 pages, 493 claims, 3 questions × 3 runs on the free WebSearch path) promoted the app from in_tree to live_local and immediately surfaced three defects no unit test could reach — chief among them that brief.py --probe joined probe results by question ID against cluster query text, so the probe stage silently contributed nothing to any brief and the scoring rule that treats a measured citation miss as the strongest available signal was unreachable code. All three fixed, each with a witness watched failing first (18/18). The calibration loop stays in_tree and says so: one baseline now exists, and calibrate.py correctly reports nothing until a published brief sits between two probes. Prior entry: Workbench v0.4.0-alpha — Record: the harness stops asking you to drive an agent and starts recording the one you already drove. Workbench's only path to a bundle was a 563-line in-browser chat page behind a pasted OpenRouter key. That shape is a dead end for subscription auth, because the Claude Agent SDK's OAuth token is licensed for individual use and cannot back a hosted multi-user app — so the surface that uses your subscription has to run locally, and the hosted surface has to stop needing a key. The new `/record` route takes the other road: drop a Claude Code session transcript (~/.claude/projects/<project>/<session-id>.jsonl) and it becomes a scored SkillBundle — streamed and indexed in the tab, segmented at each user turn, verified against the same six IA-derived gates, redacted on save, into the same library. No model call, no key, nothing uploaded. app/src/lib/ingest/ is pure and browser-safe; app/tools/ingest-transcript.ts (run via the already-present vite-node, no new dependency) is the only thing that reads a real transcript off disk.
Measured against real data, not fixtures. Largest session on this machine: 202 MB / 10,040 records / 75 segments — indexed in 936 ms streaming, largest segment (304 records → 270 edges) built in 1,031 ms → a 21.1 MB bundle. Two passes by design (index retaining nothing, then retain one segment); an ingester that must hold the file to answer "what is in here?" does not survive this corpus. The gates carry signal, and it is checked rather than assumed: every segment is sealed twice, once with each observed capability declared (all six PASS) and once with the most-used capability dropped (gate.no_hidden_capability + gate.authority both FAIL, naming it). An unmapped tool becomes &host.unknown_<name> and never `ambient` — "we don't know what this needs" must stay distinguishable from "this needs nothing".
Three defects in shipped code that only real transcripts surfaced, all pre-existing, all fixed: (1) canonicalize threw on any object with an undefined-valued key, so appendEdge(trace, {kind:'act'}) — a legal edge with no observation — made bundleContentHash throw; now omits such keys per JSON.stringify semantics, which cannot move any existing hash because those inputs used to throw. (2) transcript_pii redaction walked observation only, so a secret handed to a tool (export TOKEN=…, a key written into a config, a bearer token in a URL) survived redaction intact — and the full profile, the one meant for publishing to third parties, kept tool_call.arguments verbatim. Not theoretical: 8 of this project's 25 largest transcripts contain key-shaped strings (one has 260), and a single ingested segment carried 86, four of them in tool arguments → 0 after the fix. (3) applyProfile never redacted the manifest at all, whose name/description/slug derive from the user's own prompt — precisely where a pasted key lands; the slug is now re-derived after redaction, and isIdempotent covers the manifest so gate.redaction_verify covers everything the profile touches.
`checkPhaseOrder` was measuring its own segmentation. It read every tool call in a loop as a learn → act violation — 124 of them on a 124-tool-call segment, every violation on every real segment the same transition. A cycle now also closes when feedback arrives and the next step is not after it, so a faithfully ingested transcript reports 0 violations / 95 cycles where it previously reported 94 violations. The narrowness is deliberate: only a phase at or past learn opens a new cycle, so authorize-after-act is still caught and is pinned by a new test. Two old tests that encoded the previous model were rewritten rather than deleted, with the reason recorded inline.
152 / 152 vitest tests pass (132 through v0.3 + 18 ingest + 2 rewritten phase-order). npm run check is 27 diagnostics, 26 of them pre-existing; the added one is the same "no declaration file for uuid" error four untouched files already carry. Verified live in-browser at /record (streamed index → segment table → crystallize → six gates PASS → save with transcript_pii, then read straight back out of IndexedDB: 0 raw key occurrences, 8 redaction markers, manifest name redacted). Findings, reproduction commands and kill criteria in `workbench/docs/INGEST_SPIKE.md`. Not done, and not claimed: no Claude Code hooks integration, no claude -p driving, no local-app shell, and the OpenRouter path is untouched — the marketing-site / local-app split this points at is a decision, not a delivery.
Last updated: 2026-07-29 — The execution substrate becomes a real layer: WRL / TRVM / WRLM / TRAAVIIS, plus `code` as the orchestration console — and amp-nav v0.8.0 surfaces all five. A month of work in four nested repos that this file had never inventoried. All five are their own GitHub repos, gitignored by ProjectAmp2 per the sub-repo policy; none is deployed, so the honest status for the whole chain is live_local, with the marketing subdomains (trvm.traaviis.com, wrl.traaviis.com, code.traaviis.com) as the only public surfaces.
The chain, in the order a world moves through it — WRLM proposes → WRL seals → TRVM reduces → TRAAVIIS admits. WRLM is the only statistical layer; the other three are total and deterministic. That is the claim the layer is organized around, and it is why they are one nav column rather than four unrelated projects.
WallRiderLang (`WRL/`, Core 0.1.2) — an executable topology language whose meaning is a hash. wrl.js is the browser identity spine that seals real sem- ids. Two tracks closed this month: Path B (Semantic IR V2, relation-v2.js — the §D8 Relation Identity Kernel, profile-aware world validation before canonicalization, a required ir 2.0 header, legacy adoption with supplied names) and Path C (unified admission on the source's own ir line; explicit Import V1 as V2 / Adopt these names operations; deriveRuntimeProjection + §D8.18, which makes the V1→V2 downgrade in-band rather than mute; and §D8.19, the projection on the wire — no flags, no prose, only claims a receiver recomputes, so an implementation divergence is refusable rather than silent). 890 conformance checks, 0 failed (node test/conformance.mjs, re-verified this session); register 128 rows, model debt 0. Cross-implementation agreement is real, not asserted: the committed projection vectors round-trip byte-exact through TRVM Forge's independent Python spine, and a shared negative corpus (test/projection-negative-vectors.json) has both verifiers refuse all 15 tampers and agree on the name of every refusal, across two languages and two repos.
TRVM (`TRVM/`) — the coordination-free interaction-calculus runtime, and now also the host of Forge. Forge Spinner Bench is at `v0.7.0-alpha.5`, having walked a long ruled slice ladder (v0.4 authoring → v0.5 project/library/persistence → v0.5.1 workspace closure → v0.6 recovery/jobs/startup/migration/perf → v0.6.5.x release + read-only-installation closure → v0.7 template catalog + responsive/a11y closure). Across every one of those slices the pinned demo world still seals to the frozen sem-8ae91fe9…fe4a and every fold stays byte-identical — the discipline is that a packaging or UX slice may not move an identity, and it is checked, not asserted. A separate TRVM/bench/ cross-runtime harness now runs six runtimes on famous math problems: the five IC32-model runtimes give byte-identical normal forms and identical interaction counts; throughput C 34.9M/s > Zig 30.9 > Mojo 15.8 ≫ ic_ref 0.47 > ic_float 0.15, with wasm unranked (V8's call-depth cap ceilings it at 8192 vs ≥2²¹ for the natives).
WRLM (`TRVM/wrlm/`) — the proposer/cortex layer above the shipped substrate. Design of record is TRVM/WRLM_RESEARCH_BRIEF.md; build-order steps 1, 2, 2.1 and 2.2 are closed, with zero forge dependency throughout. Step 1 is the GoalSpecV1 closed two-sorted AST plus the one adapter; step 2 closes the crossed-source hole (a sealed record can no longer be minted from a result and an artifact that never met) and replaces the flat 768-cell Cartesian product with a derived 320-cell domain — 448 of the published cells had no preimage at all, and marginal coverage structurally cannot see a dead combination. Steps 2.1/2.2 then found the real ceiling: the proposer's repertoire, measured at 8 of 29 admissible triples, which is why goal satisfaction read "saturated" at every pool size. Widened to 29/29; witness minimality is discharged by execution (every proper subsequence is re-run through the generator's own evaluator) rather than by assertion. Pool 21 → 58 proved worlds; python3 test_generator.py reports PASS_GENERATOR_V1 with R1–R29 green (re-verified this session). Two findings are recorded against the method itself rather than hidden: the global marginal-coverage stop rule is unsound (it fires twice before a neighbourhood that then delivers +3.11/world), and a dead cell is not inert — it displaces real coverage once the reuse caps bind. Steps 3–10 remain paper only.
TRAAVIIS (`TRAAVIIS/`) — repositioned (2026-07-23) from "harness engineer" to `trvs`, the verifiable world terminal: content-addressed evaluation environments with an eight-rung identity ladder (sem- … bundle-), episode evidence bundles that replay with no agent in the loop, trvs init/pack/eval/eval-one/batch/compare/verify-episode, and — newest — the Episode Kernel's first transport, `trvs serve --ors` (Residency Submission ORS Profile v1, O1–O30). This supersedes the 2026-05-31 §2.4 entry below, which describes the retired v0.1.0 OS-008 harness kernel. Suite status, measured 2026-08-04: 595 passed, 0 failed, 0 errors (~7m38s), up from 532 collected — test/test_mcp.py (M1–M31) and test/test_canonical.py (C1–C30) are new. The K27 defect is closed, and it was not what this file said it was. It was never the linearization: the test fixture wrote the ambient $PATH into the task spec, and since agent_run_policy is inside task- and task_id is an episode-identity key, the host's $PATH moved the episode- id — while never reaching the agent at all, because runner._seal_env (R1) discards caller-supplied PATH. That is why this file recorded episode-0fe5c764…, an earlier handoff recorded episode-7265e90a…, and a third run recorded episode-6a98c47c…: the id was stable within a session and unstable across them, because this box's $PATH carries per-session directories. A second leak had basename(sys.executable) entering trace_id via R4. Production code was correct throughout; the fixtures were contradicting it. The same defect was then found and closed in test_evalone.py and test_ors.py (it did not hold in test_runner.py, which mints only trace-), and the new constant is proven invariant across five simulated hosts. The tests_verifier collection error is gone (renamed at the binding only — the name is in substrate_verifiers.__all__ and wired in wiring.py). `trvs serve --mcp` shipped (MCP revision 2026-07-28, the stateless one — no handshake, no session header; M1–M31, live end-to-end replaying offline to the same reward). A `test_bundle.py::D26` failure not previously recorded was also closed: tools/ has no __init__.py, so import tools.build_packet was resolving to Forge's build_packet.py once engine.py put the Forge checkout on sys.path. Open and escalated, not closed: an RFC 8785 audit (test/test_canonical.py) found the identity canonicalization does not conform to JCS, and the divergence is already realized in a live id — "reward":1.0 vs "reward":1 makes the shipped episode-42d0bb07… an episode-0207bbfc… under JCS. Every receipt hashes a float, so conforming would move essentially every episode- ever minted; that is Travis's call and the current recommendation is to document rather than conform. One free hardening did land (allow_nan=False, proven byte-identical over 73 documents including published dist/ packets, so no id moved). Environment note worth keeping: a first run on this box reported 42 failures, all but two of which were a single environment coupling — trvs resolves python3 to the asdf shim and then runs it under a deliberately scrubbed (hermetic) env, so the shim exits 126 with "No version is set for command python3". Putting a real python3 first on PATH collapses 42 failures to 2. The verifier is behaving correctly; the fixture toolchain resolution is what is host-coupled.
`code/` — the `amp` orchestration harness + browser console (own repo c-u-l8er/code, ~20k LOC Python + JS, state in a gitignored .amp/). Workers are Claude Code (claude -p + --resume), each in an isolated amp/<lane> git worktree, budget-capped, and apply refuses to merge. It mints its own worker token by driving claude setup-token over a wide pty (every pty byte goes through redact()), reads worker transcripts straight from ~/.claude/projects/*/<session_id>.jsonl, and now carries a Preview tab that runs what a lane built on its own child port. Two harness-integrity fixes are worth recording because they are the kind that quietly rot a scoreboard: the contradictions gate had no worker and no exit — lane_rungs() takes the maximum rung ever recorded, so a claim recorded at a rung it never earned could never be walked back while still being shown to every proposal in every lane; it now has retract_rung / settle_finding / settle_findings, and a verdict whose consequence the harness cannot itself perform is downgraded to `keep` rather than marked done. And sharpening now stops on measured convergence instead of a flat round cap — which immediately exposed that 12 of 14 sharpen rounds on record had moved the odds down, because the lane's spec was being fed to exploration only and neither review nor sharpen had ever seen it.
amp-nav v0.7.7 → v0.8.0 (ampersand-nav/src/amp-nav.js, synced to 12 sites + 10 extra targets): Code leads Products, TRVM closes Protocols, c-u-l8er.link leads Company, Research gains a fifth column The Execution Substrate and Docs a fourth Execution substrate, and the stale TRAAVIIS tagline ("the harness engineer — OS-008 terminal runtime") is corrected. Two layout fixes came with it: mega-dropdowns are now sized from their own --cols count instead of one shared min-width, and centered on the bar rather than on their trigger — which also fixed a pre-existing bug where the Compose menu ran off the right edge at 1280px. Verified live in a browser (all three placements, and every mega menu fully on-screen).
What this does not claim: none of the five is live_deployed; no third party has driven any of these paths (external); WRLM steps 3–10 are unwritten. The WRL/TRVM/WRLM/TRAAVIIS chain has now been exercised end-to-end as a single pass — TRAAVIIS/tools/end_to_end.py, pins in TRAAVIIS/examples/end-to-end/ — but still not by an outside consumer, which was the other half of that gap and remains open. Two results, and the second is a limit rather than a win: the joins hold (the world's identity derives identically three times — the sem- WRLM carries from capture, Forge's independent lowering of the source, and trvs pack re-lowering from the bytes that landed on disk), and the chain stops at `bundle-`, not `episode-`: a trvm.world.v1 package packs and verifies, then refuses evaluation with SUBSTRATE_NOT_EVALUABLE, because no EpisodeKernelV1 implements TRVM episode semantics (D5 is ruled and unbuilt). That refusal is pinned as an expected outcome, so building the TRVM kernel will fail the pass rather than silently extend it. TRAAVIIS is not installable as advertised — pipx install traaviis 404s, traaviis is an unclaimed PyPI name, and the README said otherwise for months; it now says install-from-source and that is the only path anyone has run. The trvs serve --mcp transport has been driven only by a client written in the same session — no third-party SDK and no Claude Desktop has connected, its pagination is ignored rather than implemented, and it is POSIX-only. The TRAAVIIS K27 identity defect is closed (see §2.6), but the audit that closed the surrounding questions opened a larger one that is not closed: the identity canonicalization does not conform to RFC 8785, and a live shipped `episode-` id already differs.
Last updated: 2026-06-28 — Research-runtime inventory: TRVM + the-residency added to §2.6. Two nested research repos (own GitHub repos, gitlink'd into ProjectAmp2 alongside PULSE/TRAAVIIS) are now first-class entries instead of living only outside the inventory. TRVM ([email protected]:c-u-l8er/TRVM.git) — a coordination-free distributed interaction-calculus runtime; make test conformance battery green live_local; this session propagated a confluence-honesty correction across paper.md/README.md/SPEC.md (confluence licenses schedule-independence; coordination-freedom across machines additionally rests on the §4.5 boundary-port discipline — the two are kept distinct, not collapsed), and §6.4 snapshot + §6.5 REF remain honest GAPs. the-residency ([email protected]:c-u-l8er/the-residency.git) — a browser-native, sovereign agent research board; positioned (new DIRECTION.md + ROADMAP.md) as a thin deliberation+findings layer that is simultaneously the capstone consumer of the [&] stack and the live demo of TRVM's distribution thesis — explicitly not a new platform; memory is browser-local-first (G-Set CRDT + localStorage), text-gen via a local claude harness proxy (zero API cost), corpus live-hydrated from TRVM's git CDN at a pinned SHA. Gated roadmap: Gate 0 (does a multi-resident board beat a single agent? — the untested core premise) → Gate 1 (finding reliability over 3–4 corpora) before any wiring into Graphonomous/PRISM/PULSE/box-and-box/TRAAVIIS. No portfolio product behavior changed; docs/inventory + the TRVM honesty edits only.
Last updated: 2026-06-11 — Stack-reconciliation pass: status vocabulary adopted, B10 dark-factory contradiction resolved, inventory gaps closed. No product behavior changed; this is a docs + honesty pass plus the code/site fixes it depends on. (1) Status vocabulary — every bare check/warning/cross glyph in this doc is replaced by one of the five canonical terms spec | in_tree | live_local | live_deployed | external (defined in §8); Fly.io machines are live_deployed, the dark-factory loop is live_local. (2) B10 resolved — the §4 matrix (all 7 steps live_local, tagged live suites dated 2026-04-24) is authoritative; the stale "2 of 7 live" prose in §0/§4/§6 is corrected to "7 of 7 live_local". The dark-factory rating row and blended 8.3/10 are flagged for Travis (re-rate given 7/7 live_local, and keep-blend-vs-per-layer) rather than silently changed. (3) Inventory — new §2.6 inventories box-and-box (v0.10.0, 117 laws = 103 kernel + 14 compose incl. the new fail-closed CX6), Weave, the tiered opensentience.org proof pages, and topology-as-warrant; TRAAVIIS already lived in §2.4. (4) Supporting code/site fixes (separate tasks, all green): compose runtime made fail-closed + CX6 law (116→117); TRAAVIIS /validate unhardcoded to resolve the kernel via env/require.resolve/sibling + now gates its exit code on the verdict (22 harness tests); numerics domain documented (IEEE-754 binary64, round(x,3)); proof pages carry explicit method-of-evidence tiers; one-command scripts/dark_factory_smoke.sh emits an honest live_local/in_tree/external evidence bundle. Reserved for Travis (flagged, not decided): traaviis publish timing; blended-8.3 vs per-layer rating; docs robots-block; SCOPE v0.1 scope.
Last updated: 2026-06-07 — The compose runtime ("lego layer") lands in `box-and-box` — bricks now compose with `&` and `|>` over the shared floor, and the [&] stack composes itself in the browser. Implements AmpersandBoxDesign/docs/COMPOSE_RUNTIME.md §5 Slice 1, additive to the v0.9.0 kernel (no verdict-bridge behavior change). The Brick (§2): a capability + holder + |> contract + box-and-box modal value + a (duck-typed) Weave cost certificate + CC2 semiring quantities; composing bricks yields a brick (closure — "a brick of bricks is a brick"). Two CC2 operators: `&` (composeAnd) — commutative idempotent monoid on the capability lattice, identity &none, holder provenance flattened to a flat set; `|>` (composePipe) — associative phase-graded monoid, identity id, NOT commutative, infeasible (backward PULSE phase / type mismatch / unresolved σ / cyclic κ) ⇒ the absorbing `0̲`; utility cannot resurrect a floored branch. Quantities follow the CC2 semiring (confidence = ∏, cost = Σ, latency = max); conservative cost rule — any uncertified child poisons the composite to 0̲, else costClass = the join (worst) over children. `box-and-box/compose.mjs` (pure library — duck-types the Weave certificate so the zero-runtime-dep guarantee holds; cross-repo HTML stays out of the package per CLAUDE.md), exported via index.mjs (* as compose) + ./compose package export. `test/compose-laws.mjs` — 13 new CC2 §2 conformance laws (CA1–CA4 combine, CP1–CP4 pipe, CX1–CX5 floor/semiring/cost-lattice/closure), 2000 trials each, self-contained harness (does not import laws.mjs to avoid auto-running its CLI). Harness total 103 → 116 laws, all passing (node test/laws.mjs && node test/compose-laws.mjs). During build, a holders() bug was found+fixed (nested composite holders broke & associativity/commutativity — now flatMap-flattened to a flat provenance set). `examples/compose-coalition.mjs` — the worked self-composing demo: retrieve |> certify |> govern (graphonomous ▸ weave ▸ box-and-box) composes, certifies (poly), governs, and survives; three floor refusals (backward phase, type mismatch, uncertified util-999) all collapse to 0̲; closure + &none/0̲ identities hold. `weave/compose.html` — the Forge compose canvas (website content, imports the real compose.mjs/value.mjs cross-repo): brick palette → click-to-drop canvas → & | ⟲ snap operators → six retargeting panels (Certificate, Alethic value, Quantities, Governance bench floor-then-gradient, Feedback) → CloudEvents v1 OutcomeSignal (learn) + *.pulse.json (⟲) emission; boots the 3-brick pipeline live. Verified end-to-end in-browser via agent-browser (no console errors): & coalition (util 5), |> pipeline (poly/allow, confidence 0.838), uncertified |> → 0̲, governance verdict (margin 7), OutcomeSignal envelope with unioned holder set, ⟲ pulse.json with the 5 canonical PULSE phases. Bidirectional forge.html ⇄ compose.html header links added. weave/ + box-and-box/compose* still untracked in ProjectAmp2.
Last updated: 2026-06-06 — Weave lands in `weave/` as the resource-rung static cost certificate, with both research forks closed. weave/ (12 original research files + 6 new, plain Node v18+, zero deps) is a deep probe of the [&] kernel's resource rung: box-and-box's resource rung is a runtime ledger ("what was spent"); Weave is the static certificate ("what can be spent, in what class, with termination guaranteed") — wired into govern(), an uncertifiable computation becomes 0̄ (annihilated, same floor pattern as forbidden actions). All original suites pass on Node v25.2.1 (reducer sound on 12-term battery + ~3000 random STLC terms + Church arithmetic; fold differential 1200/1200; cost cliff measured + statically predicted). Two tracks built this session, both additive — no original file modified. Track A — EAL cost certificate (the doc's §5 "single next step," turning the cost classifier from validated heuristic into certificate): weave-eal.mjs (inferEAL → type-directed EAL box-level inference; box-nesting depth = elementary tower height: plus/mul→1, c3 c2→2, tower(k)→k), weave-eal-test.mjs (validates depth vs measured cost to avoid circularity: 2010 terms, 0 cost violations, 0 residual superposition, 0 divergences — the eal:true⟹no-residue check closes the I1+I2 soundness gap), weave-eal-degree.mjs (finite-difference polynomial degree: recovers 1/2/3, all depth-1; depth certified, degree measured). Track B — HVM4 backend (the doc's §4 "lower Weave's IR to HVM4"): weave-hvm4.mjs (local lower→parse→normalize round-trip, 8/8 across all node types), weave-hvm4-run.mjs (the real backend — cloned + built HVM4 pre-release at ~/hvm4/src/hvm via clang -O2, reconciled its actual surface: call-syntax f(a), infix ops, &L{a,b} sups, ! d &L= v; body dups with d₀/d₁, affine vars; lowers the linearized IR and diffs integer outputs: 6/6 agree — pure arith→20, decode c5→5, plus c2 c3→5, mul c3 c4→12, mul c2 c2→4, exp c3 c2→8). Also fixed the Elixir surface's hardcoded /home/claude path (weave_surface.exs now resolves the backend via __ENV__.file); it runs end-to-end (arith→20, sumlist→15, prodlist→120, sumbig→210, classifications correct). HVM4 checkout lives outside ProjectAmp2 (~/hvm4) to keep its git clean; the weave/ dir is currently untracked in ProjectAmp2.
Last updated: 2026-05-31 (later, +TRAAVIIS) — TRAAVIIS recorded as a portfolio product (§2.4). TRAAVIIS/ (own repo [email protected]:c-u-l8er/TRAAVIIS.git, untracked in ProjectAmp2 as ?? TRAAVIIS/) is the OS-008 terminal harness — "the harness engineer that builds/orchestrates your harness." v0.1.0, Node ESM, zero deps, 1,055 LOC, 7 tests passing, demo-driven site at traaviis.com (3 themes). The real orchestration loop is docs+website only (ARCHITECTURE.md §3a); src/ is the minimal harness kernel. Ecosystem deterministic-test total ~1,680 → ~1,687. Product counts: shipping 7, progressing 4, spec-only 4, frontend/app+harness 3 (was 2).
Last updated: 2026-05-31 (later) — box-and-box v0.9.0 — the evolution surface lands + CC2 coalition schema/lifter ship. Two tracks, both additive, no behavior change to the verdict bridge. Track A — the evolution surface (`evolution.mjs`): the measured/priced/certified self-revision bridge + the provenance substrate box-and-box was missing. Pure, zero-dependency: canon/hash (FNV-1a 32-bit over key-sorted JSON) → digest, a tamper-evident hash-chain (record/chain/verify, GENESIS='00000000'), regresses/delta (non-regression over score vectors), and evolve() — the verdict one level up from govern: govern asks "may this action proceed, and is it best?"; evolve asks "may this policy change (reflexive/entrenchment admissibility), did it measurably improve (axiological non-regression vs. self-declared prediction), is it worth paying for (resource Type-II pricing)?" It checks admissibility first (refuses to weaken an entrenched floor even at large positive Δ), then non-regression, then affordability+worth; on accept it calls revise() and charges the ledger; every verdict ships a certificate {decision∈accept|reject|escalate, predicted, observed, verified, regressed, priced, price, policyBefore/After, rungs:['reflexive','axiological','resource'], record} linked onto the provenance chain. This is the "change manifest pairing every edit with a self-declared prediction verified against outcomes" that Agentic-Harness-Engineering research (arXiv 2604.25850) calls the unsolved self-improvement crux — now the L-E6 non-regression law. 6 new property-tested laws (EV1–EV6) registered in test/laws.mjs (EV1 digest key-order independence, EV2 chain verify+tamper-detect, EV3 refuse-to-weaken-floor, EV4 regressing-change-never-accepted, EV5 priced-accept⇒affordable∧worthwhile∧charged, EV6 certificate soundness); harness now 103 laws (was 97), all passing at 2000 trials each. examples/evolve.mjs extended with a live Ledger demo (accept charged Δ-verified, reject regression, reject weaken-floor). Framed as a join across rungs (reflexive × axiological × resource + provenance), not a ninth rung. Package bumped 0.8.0→0.9.0 (description, ./evolution export, files list); index.mjs re-exports * as evolution; README + bin/arith.mjs + aios/box_and_box_aios.ex 97→103. Track B — CC2 coalition schema + lifter: protocol/schema/v0.1.0/coalition.schema.json (JSON Schema draft 2020-12, the previously-RFC-only CC2 now has a validatable artifact) — required $schema/coalition/version/agents/ensure; clauses map to rungs (agents→alethic join, ensure→strategic ⟨⟨agents⟩⟩◊, common_knowledge→epistemic, owns→deontic, shield→temporal, floor→reflexive, compose→alethic chain+axiological); singleton coalition + empty adversary = the CC1 special case (RFC §6); two examples (ship_it, InfraOperator) validate via ajv. bin/lift.mjs (routed via bin/arith.mjs as box-and-box lift) — the CC1→singleton-coalition lifter: deterministic, no LLM/network, file-or-stdin in → schema-valid coalition on stdout, notes on stderr. Maps agent→name+agents:[self], capabilities[*].need→ensure (else flagged placeholder), governance.hard→floor (un-weakenable by definition), first pipeline steps→compose (op1 |> op2); surfaces escalate_when/soft/autonomy as `compile`'s domain, not structural lift. Verified: lifted infra-operator.ampersand.json validates VALID against the new schema. Pending follow-up: the "97→103" count still needs syncing in website/deploy artifacts (opensentience.org/ living-paper rung pages, site/laws.html, playground.html's "64 of 97" curated subset note, root + AmpersandBoxDesign CLAUDE.md "97 property-tested laws"); and CC2 has a schema+lifter but still no runtime enforcing the coalition admissibility the schema describes (no coalition compose, no joint-trajectory shield check).
Last updated: 2026-05-31 — The [&] umbrella is mapped end-to-end + the govern bridge connects composition to the kernel. Resolves a recurring confusion: [&], box-and-box, CC1, and CC2 are not competing/redundant protocols — they are layers of one pipeline (declare → validate → compose → govern → wire → run → observe). Three additions: (1) new AmpersandBoxDesign/docs/UMBRELLA.md — the single status map of all seven stages, the CC1/CC2/box-and-box term disambiguation, and the keystone gap (the govern stage was split between ampersand_core/governance.ex's flat string matcher and the unconnected box-and-box engine). (2) the govern bridge — box-and-box compile <ampersand.json> (bin/compile.mjs, routed via bin/arith.mjs): deterministically translates a CC1 governance block into a box-and-box policy (escalate_when.confidence_below→req.beta_min; cost_exceeds_usd→OBLIGATORY norm + CTD escalate-to-human; machine-checkable hard→FORBIDDEN floor norm; natural-language hard/soft→surfaced as requiresJudgment, never fabricated). With --options <file> it emits a full govern-ready spec that pipes into box-and-box govern → certificate. govern's condition mini-language gained numeric gt/gte/lt/lte (additive, no eval). Verified end-to-end on examples/infra-operator.ampersand.json. (3) CC2 status now recorded here: CC2 (coalition capability composition) is a draft RFC (docs/CC2-capability-composition.md + SPEC.md §10), unbuilt — no coalition.schema.json, no lifter, no coalition compose; CC1 remains the shipped singleton case. (Superseded by the 2026-05-31-later entry above: CC2 now has a `coalition.schema.json` + a `box-and-box lift` CC1→coalition lifter; still no coalition runtime.)
Last updated: 2026-05-30 (later) — box-and-box gains a real verdict CLI + a browsable reference-impl mirror + an honest Elixir conformance path. Follow-on to the kernel landing below. Three additions, no behavior change to the 97-law engine: (1) Verdict CLI — box-and-box govern [file.json] [--quiet] (AmpersandBoxDesign/box-and-box/bin/govern.mjs, routed via bin/arith.mjs): reads a decision spec as JSON (file arg or stdin), runs the real govern() (alethic ▸ deontic ▸ axiological), prints the certificate JSON, and exits 0=decision · 1=no admissible · 2=usage/parse · 3=escalation for CI gating. Norm conditions are expressed in a declarative JSON mini-language (true/omitted, {field,eq|ne|in}, {truthy}, {all}, {any}, {not}) compiled to predicates — no `eval`. Verified end-to-end on a sample PII-consent decision (correctly forced the obligation option, vetoed the PII-transmit option, exit 0). The CLI/library is the primary surface for this deterministic tool (CI, pipelines, language-agnostic embedding, reproducible/auditable verdicts); an MCP adapter is a planned optional surface for live agent-in-the-loop calls (follow-up, not built). (2) Browsable reference implementation — both impls are now visible + downloadable at opensentience.org/box-and-box/ (a same-origin served mirror of the canonical AmpersandBoxDesign/box-and-box/): all 8 rungs as .mjs + test/laws.mjs + bin/ + examples/, with a README mapping each .mjs to its rung/laws. Every github.com/c-u-l8er profile link on index.html, protocol.html (×2), and laws.html now points here. (3) Honest Elixir conformance — aios/box_and_box_aios.ex gained BoxAndBox.Conformant, which delegates to the JS govern.mjs CLI for real verdicts (vs. the illustrative inline BoxAndBox.Kernel demo), with a header caveat that Elixir was not run in the build env. Old `box-and-box-mcp` Fly.io machine is now orphaned — the validator code was removed (clean break), but Fly.io teardown remains an out-of-scope follow-up; see §3.
box-and-box v0.8.0 — the governance kernel is now the canonical `box-and-box`. Clean-break stack upgrade: the arithmetic ladder lands as the governance kernel of the [&] stack — eight rungs (alethic · axiological · deontic · temporal · reflexive · epistemic · strategic · resource), one composing bridge (feasible ▸ permitted ▸ best) over an un-weakenable safety floor, 97 property-tested laws (2000 trials each, all passing via node test/laws.mjs). Invariant Arithmetic = rungs 1–2 of this same ladder. The kernel ships as a pure-library npm package (code only — *.mjs, bin/, examples/, test/) at AmpersandBoxDesign/box-and-box/; the six living-paper rung pages + playground.html (64 of 97 laws wired client-side) live at opensentience.org/ root; the new ampersandboxdesign.com homepage + /laws.html conformance page position it as an AI-OS kernel; an illustrative Elixir AIOS reference host sits at AmpersandBoxDesign/box-and-box/aios/. The old `box-and-box` v0.1.0 [&] Protocol validator/composer MCP server was removed (no backwards compat, git history is the only recovery path); its directory now holds a one-line redirect stub. amp-nav bumped to v0.7.0 with a new Research "Arithmetic Ladder" mega-column. npm name-swap caveat: the published box-and-box on the registry is the v0.1.0 validator; this kernel is a different tool under the same name. To avoid a silent npm update binary swap, the kernel should publish as 1.0.0 (not 0.8.0-as-replacement) at publish time. (npm publish + Fly.io teardown of box-and-box-mcp are out of scope here.) Kernel home moved into the [&] folder: the package now lives at AmpersandBoxDesign/box-and-box/ (not under opensentience.org); the six rung pages + playground.html stay at the opensentience.org root. opensentience.org homepage revamped — box-and-box is now the hero "Governance Kernel" section (8-rung ladder grid + 97-laws/playground CTAs), protocol count corrected to eleven (added the OS-011 Embodiment card; PULSE token count fixed 5→6). Three arithmetic integration reviews added (all additive, no behavior change): PULSE/docs/ARITHMETIC_INTEGRATION.md (invariants↔alethic Value, closure.guarantee↔temporal rung, V0.2 linear/affine↔resource rung), PRISM/docs/ARITHMETIC_INTEGRATION.md (composite=probability semiring, meta-judge reject=0̲ annihilation, optional tropical per-pass floor), and graphonomous/docs/ARITHMETIC_COMPLIANCE.md (coverage→decision policy already is the bridge; Wilson intervals=epistemic rung ~95%; cost cap=affine resource ledger).
2026-05-27 — Workbench v0.3.0-alpha — Invariant Arithmetic v0.3 is now the verifier substrate. Ported the Elixir reference impl to TypeScript at workbench/app/src/lib/ia/ (~400 LOC). Every proof gate's verdict now derives from InvariantArithmetic.consume(value, requirements); every gate carries law + invariant_family annotations (e.g. L12/L14 topological, L14 governance). Replay surprise signals carry the same projection. The three relevant JSON schemas (PROOF_RESULT, REPLAY_REPORT, EVIDENCE_BUNDLE) declare the optional law / invariant_family / ia_substrate / invariants fields. 15 algebraic laws verified by fast-check at 1000 trials each. 112/112 vitest tests pass. See §2.4 for full detail.
2026-05-25 — Workbench v0.1.0-alpha.0 ships with full 6-gate verifier and live OpenRouter smoke. New product at workbench/ — a Skill Workshop (user-facing) and Proof Harness (PRISM-facing), same JSON two audiences. SvelteKit static app with BYO-OpenRouter key, IndexedDB persistence, streamable-HTTP MCP client (initialize → notifications/initialized → tools/call w/ mcp-session-id) reused from FleetPrompt's GraphonomousClient.HTTP. 6 JSON Schemas (SkillBundle/SkillManifest/ProofResult/ReplayReport/EvidenceBundle/FixtureScenario) + 5 canonical fixtures + ~570-line spec.
Verified end-to-end against live OpenRouter (`openai/gpt-4o-mini` via `/api/llm/openrouter` dev proxy):
validateKey + chat round-trip → 626 ms, $0.0000047, real cost-accounted usage.
Full teach → trace → buildBundle → verifyBundle → replayBundle pipeline produces verify_verdict: pass across all six gates: gate.content_hash, gate.trace_completeness, gate.no_hidden_capability, gate.authority (local kernel; delegatic-mcp round-trip is v0.2), gate.redaction_verify (3 profiles: none / transcript_pii / full; idempotent), gate.replay_fidelity (re-executes recorded trace via deterministic observation executor).
Negative cases verified: an injected undeclared &body.os capability fails exactly no_hidden_capability + authority (other 4 pass); a corrupted state_hash on edge 1 fails exactly replay_fidelity with halted_at_edge_N @ edge 1 (other 5 pass).
Redaction scrubs sk-... keys and emails to [REDACTED_*] tokens across both interaction_trace.edges and evidence.trace.edges (the PRISM-facing re-projection); double-application is a no-op.
Bundle export pipeline (apply profile → re-seal content_hash → JSON serialize → JSON parse → re-verify) round-trips cleanly for all three profiles. Redacted bundles correctly report gate.replay_fidelity: pass at fidelity_level: structural (walk succeeded but no state_hash was available to compare byte-for-byte) and overall_verdict: pass. 27/27 vitest unit tests cover hash canonicalization (NIST vectors), 6-gate verification (all positive + negative cases), and redaction (3 profiles + evidence-subtree leak regression + idempotency).
Closes STACK_ARCHITECTURE_GAP_REVIEW.md Finding 8 (Evidence Bundle). v0.2 will add browser body, real delegatic-mcp authority round-trip, and PRISM upload.
2026-04-28 — BendScript + RuneFort pivot reconciliation. §2.2 (RuneFort) and §2.4 (BendScript) updated to reflect that both products were repositioned as protocols and re-implemented. BendScript is now @bendscript/core v0.1.0-alpha.0 — a TypeScript reference parser/validator/round-trip harness for the BendScript Protocol v0.1 (96 tests passing, up from 5); the previous SvelteKit + Supabase canvas/KAG editor is archived under bendscript.com/old_scrap/v1/ and is no longer extended. RuneFort is now a layout protocol (@runefort/core v0.1.0-alpha.1 Web Components framework, 22 JS files, no SvelteKit); the spec is split across three files at runefort.com/docs/spec/{runefort.protocol.md, runefort.core.md, runefort.dsl.md} totaling 1150 lines (the prior single 1087-line spatial-cognition README is gone, reframed as the supervisor-floor.v1 vocabulary on top of the protocol). Consequence for the shared data layer: BendScript no longer uses Supabase, so the kag.* schema (migrations 010–019) is now orphaned — see §3.1. No deployments changed; ecosystem test count rises from 1,372 to 1,463 (+91, all from BendScript's new protocol-framework test suite).
2026-04-24 — Dark-factory closed loop deployed end-to-end on Fly.io. 10 [&] ecosystem apps live (graphonomous-mcp, os-pulse-mcp, delegatic-mcp, body-browser-mcp, body-os-mcp, prism-eval, fleetprompt, agentelic, specprompt, box-and-box-mcp); three were brand new this session. All three live smoke tests pass against production Graphonomous: fleetprompt crystallization 2/2, PRISM OS-011 3/3, body-browser cross-machine replay 2/2. Same-day fixes: latent Anubis supervision bug in delegatic/body-browser/body-os (HTTP transport had no server registry started); path deps refactored to hex (anubis_mcp) + public git deps (delegatic-engine, opensentience.org) so production Docker builds no longer need multi-project context; body-os-shim + agent-browser CLI bundled into their respective images.
Earlier 2026-04-24 — ALL 7 InstallEngine steps implemented + live FleetPrompt ↔ Graphonomous HTTP roundtrip verified locally. FleetPrompt.InstallEngine now reports 7/7 implemented (step 5 / OpenSentience deploy wired via {:open_sentience, path: "../graphonomous/deps/open_sentience"} — hex publication explicitly off the roadmap, path-dep is the permanent pattern). GraphonomousClient.HTTP gained full MCP session handshake (initialize → notifications/initialized → tools/call with mcp-session-id + SSE-envelope parsing), verified against a real running Graphonomous MCP server locally: initialize_telespace/1 stored a node, retrieve(context) queried it back. All 7 previously-documented pre-existing test failures fixed. First DB-backed end-to-end install/3 tests added. Latent schema bug in all 9 Ecto schemas fixed (@schema_prefix "fleet" pattern). Maintained by: Travis Burandt Update policy: See §8. Update this file whenever a product ships a new version, a deployment status changes, a spec is finalized, or an OS-0XX protocol advances a stage.
Companion docs:
AmpersandBoxDesign/SPEC.md — authoritative [&] Protocol specification
AmpersandBoxDesign/prompts/PROTOCOL_PROMPT.md — implementation prompt (BNF, rationale, color palette)
opensentience.org/docs/spec/README.md — OS-001 through OS-011 index
CLAUDE.md (this repo root) — agent onboarding; points here first
Provenance of the figures below (added 2026-08-13). Every bullet in this section and every row in §6 was computed on 2026-04-24/28 and then carried forward in the present tense while the
Last updatedheader moved through four months of releases. Each item is now tagged with the date it was last actually measured. Anything marked (unverified since 2026-04-28) may be true; it has not been checked, and it should not be quoted as current.
Overall completion: ~8.3/10 against the full dark-factory vision (April blend; re-examined 2026-08-13 and left unmoved). The composition changed a great deal in four months — Workbench, Alkeyword, Academy, the WRL/TRVM substrate, PARKVPS/T&R, RAVIO — and the blend did not, because every one of those landed at `live_local` or below and the row that bounds the total is adoption/external, which has not moved at all. That is the finding, not an artifact of stale arithmetic: four months of substantial building does not raise this number, and one external consumer would.
Protocol layer: ~90% (unverified since 2026-04-28) — 11 OS protocols + 6-primitive [&] algebra; OS-006 has a working authorization kernel with in-memory store; OS-007 still draft; OS-011 has two reference impls that pass their conformance suites against deterministic Simulator backends
Implementation layer: ~55% (April basis; the denominator has grown since) — 7 shipping-tier products + 4 progressing + 2 frontend apps + 4 spec-only. Not counted in that April basis and shipped since: Workbench v0.4.0-alpha, Alkeyword v0.6.2 (§2.6), Academy (spec + placeholder surface, live), and the TRVM/WRL substrate work. None of them changes the percentage, because none has cleared live_deployed and external.
Deployments re-checked 2026-08-13: all 10 Fly.io apps still answer — prism-eval, fleetprompt, specprompt return 200; the MCP servers return 404/405 on / as expected (no root route). `box-and-box-mcp` is still up, which means the "orphaned validator, Fly.io teardown = pending follow-up" note in §3.4 has been pending for three and a half months and is now the oldest open item in this document.
Ecosystem test count — last verified 2026-04-28, NOT re-run since: 1,463 tests · 1,463 passing · 0 failures. Four months of commits have landed against these suites without a full-stack re-run, so this is a historical result, not a current guarantee. Re-running it is cheap and nobody has. Net +91 from prior 1,372: BendScript's new protocol-framework test suite reports 96 tests (85 round-trip + 11 harness) replacing the old SvelteKit product's 5. Last full-stack verification before the pivot reconciliation: FleetPrompt grew from 122 to 157 tests (+35) this session — 12 for InstallEngine step 4/6 (Delegatic policy check + Graphonomous connect), 7 for GraphonomousClient.initialize_telespace/1, 9 DB-backed end-to-end install/3 tests, 4 for OpenSentience deploy step 5 (including a real transient-harness start/stop against the live OS-008 runtime), 2 real-HTTP roundtrip tests against a local Bandit fake Graphonomous, and +1 audit_status reorg. All 7 previously-pre-existing failures were real bugs, all fixed: FleetPrompt MCP.Server (2 missing handle_tools_list/0 + handle_tools_call/2 convenience wrappers), Agentelic MCP.Server (1 tools-count drift from 9→10 after agent_ensure was added), PRISM McpClient (4 caused by stdio:// URLs reaching Finch, now short-circuited with typed :stdio_transport_not_supported error that the caller already handles). Three additional latent bugs fixed: all 9 FleetPrompt Ecto schemas used schema "fleet.xxx" with a literal dot (dormant because no test had ever inserted a row — converted to @schema_prefix "fleet"); a manifest unique_constraint whose declared name never matched the real DB constraint; and GraphonomousClient.HTTP lacked MCP session handshake (now does full initialize → notifications/initialized → tool call with mcp-session-id propagation and SSE-envelope parsing, verified against a real running Graphonomous locally).
Infrastructure: Shared Supabase (35 migrations, 11 schemas) + amp-nav v0.3.3 + 4 Claude Code plugins (unverified since 2026-04-28). Note that §3.1's Supabase route was abandoned by decision after this was written — the products it lists are not all on it.
Docs atlas — verified live 2026-08-13: prerendered and deployed, 434 sitemap URLs, canonical + JSON-LD on document pages (spot-checked 150–453 extractable words). But the same deployment answers on 13 hostnames — docs. on agentelic.com, agentromatic.com, ampersandboxdesign.com, bendscript.com, delegatic.com, deliberatic.com, fleetprompt.com, geofleetic.com, graphonomous.com, opensentience.org, specprompt.com, ticktickclock.com and webhost.systems — all returning byte-identical content, all HTTP 200, none redirecting. That is ~5,600 duplicate URLs for 434 documents. ACADEMY.md step A1 says "301 the two non-canonical docs hosts"; the real count is twelve, and the canonical <link> tag every page carries is the only thing currently distinguishing them.
Dark-factory closed loop: 7 of 7 steps `live_local`, 0 `in_tree`, 0 missing — the full loop is closed locally. All seven moved in_tree → live_local across the 2026-04-24 session. (The §4 matrix is authoritative here; an earlier "2 of 7" prose read was stale and is corrected throughout this revision. live_local ≠ live_deployed: the loop has been exercised against real local substrates, not yet across deployed cross-machine boundaries — see the next-bar note below.) Step 6 was proved by a cross-BEAM replay test: Process A records a 2-edge trace and stores it in Graphonomous; a fresh mix run BEAM subprocess (Process B) fetches the trace over HTTP, replays against an independently-constructed identical Simulator, and returns status=success, edges_committed=2, edges_attempted=2 at full fidelity. A second test with a deliberately-corrupted state_after confirms the fail-fast invariant (edge 0 committed, edge 1 halts with state_hash_mismatch) crosses the process boundary.
What actually shipped this session (2026-04-21 → 2026-04-24):
OS-011 Embodiment Protocol spec (opensentience.org) + &body as the 6th [&] primitive (AmpersandBoxDesign)
Graphonomous v0.4.3 — &memory.episodic.store/replay (573 tests, +19 new)
body-browser v0.1.0 — first &body.browser reference impl with Simulator backend (41 tests; 12 OS-011 §9 conformance + 12 MCP + 17 AgentBrowser adapter with injected exec transport)
body-os v0.1.0 — first &body.os reference impl (41 tests; same shape as body-browser)
delegatic v0.1.0 — OS-006 authorization kernel + 6-tool MCP surface (42 tests; in-memory ETS policy store only)
FleetPrompt crystallizer — Crystallizer + GraphonomousClient.HTTP + Oban worker + install-engine audit (+55 tests; 122 total, 2 pre-existing failures)
PULSE v0.1.1 — SurpriseSignal as the 6th canonical cross-loop token
Ten OS-011 PRISM scenarios at PRISM/priv/fixtures/os011/
Six fly.toml + Dockerfile pairs ready to deploy (body-browser / body-os / delegatic new; graphonomous / prism / pulse already live)
What HASN'T reached `live_deployed` / `external` (the next bars above `live_local`):
The dark-factory loop is live_local (real local Graphonomous, real agent-browser CLI + Chromium, real host-exec shim, real cross-BEAM-process replay), but has not been run as a single end-to-end pass across the deployed body-browser-mcp / body-os-mcp / delegatic-mcp Fly.io machines — those machines are up (live_deployed, see §3.4) but no driver has stitched perceive→…→measure across them in one production run.
ComputerUse was exercised against a bundled body-os-shim, not against real OpenClaw / Claude Computer Use (external).
No competitor memory system (Mem0 / Zep / Letta) has been adapted into PRISM (external).
No third-party consumer, benchmark, or contributor has driven any of these paths (external).
Highest-leverage next move: one deployed end-to-end smoke test stitching the already-live_deployed machines into a single production pass — promoting the loop from live_local to live_deployed. The one-command local evidence bundle (scripts/dark_factory_smoke.sh) reproduces the live_local core today; the deployed pass is the remaining bar.
| Item | Status |
|---|---|
| Draft version | v0.1.0 |
| Primitive roots | 6 — &memory, &reason, &time, &space, &body, &govern |
| Subtypes contracted | 19 (3 memory + 5 reason + 3 time + 3 space + 2 body + 3 govern) |
| JSON Schema | draft 2020-12, 3 canonical files, 2 SDK copies in sync |
| Reference impl (Elixir) | ampersand_core v0.1.0, CLI builds, 58 tests green |
| npm SDK | @ampersand-protocol/validate v0.1.0, published |
| Python SDK | ampersand-protocol v0.1.0, setuptools-ready |
| Playground | playground/ directory present in repo |
| Assessment | 8.5/10 — algebra is complete, &body.* implementation in the runtime is the remaining gap |
| # | Protocol | Implements | Status | Reference impl |
|---|---|---|---|---|
| OS-001 | Continual Learning | &memory.graph | Shipped | Graphonomous v0.4.2 (554 tests) |
| OS-002 | κ-Routing (topology) | &reason.deliberate | Shipped | Graphonomous |
| OS-003 | Deliberation Orchestrator | &reason.deliberate | Spec complete | Graphonomous route.deliberate |
| OS-004 | Attention Engine | &reason.attend | Spec complete | Graphonomous |
| OS-005 | Model Tier Adaptation | system | Spec complete | PROTOCOL_PROMPT.md |
| OS-006 | Agent Governance Shim | &govern.* | Shipped | `delegatic/` v0.1.0 — authorization kernel (Policy + PolicyStore + HMAC-signed AuthorizationBlock + Authorizer) + Anubis MCP server (6 tools). 42 tests total (25 unit + 3 integration + 14 MCP) + 2 body-os end-to-end integration tests. Fly.io deploy config ready (delegatic-mcp, port 4400) |
| OS-007 | Adversarial Robustness | &govern.identity | Draft | — |
| OS-008 | Agent Harness Protocol | &govern.harness | Vendored + consumed | open_sentience package at graphonomous/deps/open_sentience/ (123 tests green, never hex-published by design — path-dep is the permanent pattern). Consumed by FleetPrompt via {:open_sentience, path: "../graphonomous/deps/open_sentience"} for InstallEngine step 5 (Harness smoke validation). |
| OS-009 | PRISM (benchmark) | &memory + &reason | Shipped | PRISM v0.1.0 on Fly.io (prism-eval, iad region) |
| OS-010 | PULSE (temporal) | &memory + &govern + &time | Shipped v0.1.1 | os-pulse npm + os-pulse-mcp Fly.io |
| OS-011 | Embodiment Protocol | &body.* | Shipped | body-browser/ v0.1.0 (12/12 §9 conformance tests against Simulator backend); Graphonomous v0.4.3 provides the episodic half |
Protocol layer completion: ~94%
Shipped: 6 (OS-001, OS-002, OS-006, OS-009, OS-010, OS-011 — OS-011 has two conforming reference impls)
Spec complete + partial impl: 4 (OS-003, OS-004, OS-005, OS-008)
Draft: 1 (OS-007 — Adversarial Robustness)
TopologyContext
DeliberationResult
OutcomeSignal
ReputationUpdate
ConsolidationEvent
SurpriseSignal ← added v0.1.1 for OS-011
All six are enum-validated in the schema and typed in the TypeScript reference source.
| Product | Dir | Version | Tests | Deployment | Publication | Notes |
|---|---|---|---|---|---|---|
| Graphonomous | graphonomous/ | 0.4.3 | 573/0 | Fly.io graphonomous-mcp (ord) | npm graphonomous | 92.6% QA on LongMemEval 500Q; 18K-file OS-E001 benchmark; 6 graph algorithms; `&memory.episodic.store/replay` (OS-011) |
| PULSE | PULSE/ | 0.1.1 | 3/0 | Fly.io os-pulse-mcp (ord) | npm os-pulse | 12 conformance tests; 6 canonical tokens; 3 reference manifests |
| PRISM | PRISM/ | 0.1.0 | 172/0 (+3 live, opt-in via :live_os011 tag) | Fly.io prism-eval (iad, 6 machines) | — (Elixir-only) | Phoenix LiveView leaderboard UI; BYOR evaluation. (Previously 4 failures from stdio:// URL scheme hitting Finch — fixed.) 2026-04-24: 3 live OS-011 benchmark tests added verifying the full compose→store scenarios→register system→interact→persist-transcript path against a running local Graphonomous. Also added :inets + :ssl to extra_applications so the simulator's :httpc calls work at test startup. |
| [&] Protocol | AmpersandBoxDesign/ | 0.1.0 | 58/0 | — (spec repo) | npm + Python SDK | 6 primitives, 19 contracted subtypes, reference CLI |
| body-browser | body-browser/ | 0.1.0 | 41/0 (+6 live: 4 :live_agent_browser + 2 :live_cross_machine) | fly.toml + Dockerfile ready; not yet deployed | — | OS-011 &body.browser reference impl. 12 Simulator §9 conformance tests + 12 MCP tests + 17 AgentBrowser adapter tests (injected exec_fn). 2026-04-24: 4 live `agent-browser`/Chromium tests + 2 live cross-machine replay tests added. Cross-machine tests seed a trace in the parent BEAM via Graphonomous MCP, spawn a fresh BEAM subprocess (mix run worker.exs) that independently fetches + replays the trace, and assert OS-011 §5.4 fidelity + fail-fast invariants across the process boundary. build_observation/2 normalizes the real agent-browser CLI envelope. |
| body-os | body-os/ | 0.1.0 | 41/0 (+7 live, opt-in via :live_computer_use tag) | fly.toml + Dockerfile ready; not yet deployed | — | OS-011 &body.os reference impl. 12 Simulator §9 conformance tests + 12 MCP tests + 15 ComputerUse adapter tests (injected exec_fn) + 2 Delegatic end-to-end tests. 2026-04-24: 7 live tests added verifying the default System.cmd path drives a real filesystem + real shell end-to-end through a bundled priv/bin/body-os-shim sandbox (exists because OpenClaw's actual surface is a Gateway/agent-runtime, not a plain host-exec CLI — the adapter's docstring explicitly supports "any equivalent" that exposes the typed primitives). |
| delegatic | delegatic/ | 0.1.0 | 42/0 | fly.toml + Dockerfile ready; not yet deployed | — | OS-006 authorization kernel with Policy + in-memory ETS PolicyStore + HMAC-signed AuthorizationBlock + 6-tool MCP surface. Full spec delegatic.com/docs/spec/ (630 lines) covers org trees / memberships / effective-policy — this v0.1 ships the authorization kernel only. Postgres adapter + org-tree layer are future work. |
\* PRISM 4 failures are test-harness MCP-client connection issues, not product bugs.
| Product | Dir | Source files | Tests | Spec | Fly.io config | Status |
|---|---|---|---|---|---|---|
| Agentelic | agentelic.com/ | 40 Elixir | 66/0 | 685 lines | present | Premium agent builder; spec-driven pipeline. (Previously 1 MCP.ServerTest tools-count-drift failure — now aligned with 10 tools including agent_ensure.) |
| FleetPrompt | fleetprompt.com/ | 47 Elixir | 157/0 (+2 live, opt-in via :live_crystallization tag) | 1153 lines | present | Agent marketplace, trust scoring; 9 Supabase tables (fleet.*). All 7 InstallEngine steps implemented (Delegatic step 4 via {:delegatic, path:}, OpenSentience deploy step 5 via {:open_sentience, path: "../graphonomous/deps/open_sentience"}, Graphonomous-connect step 6 via GraphonomousClient.initialize_telespace/1 with full MCP session handshake). DB-backed end-to-end test suite for install/3 (9 tests) surfaced and fixed latent bug in all 9 Ecto schemas (@schema_prefix "fleet" pattern) + a manifest unique-constraint name mismatch. Live FleetPrompt↔Graphonomous HTTP roundtrip verified locally 2026-04-24. 2026-04-24: 2 live crystallization tests added (seed InteractionTrace into Graphonomous → poll via retrieve(replay) → PollWorker crystallizes to draft manifest + crystallization row in Supabase + idempotency). Idempotency bug in PollWorker.crystallize_one/2 fixed: manifest unique-constraint was masking intended :skipped as :failed. |
| SpecPrompt | specprompt.com/ | 42 Elixir | 71/0 | 759 lines | present | Spec-driven dev standard; parser + validator + linter + MCP. |
| RuneFort | runefort.com/ | 22 JS (Web Components) | no test script | 1150 lines across 3 files (runefort.protocol.md 300 + runefort.core.md 617 + runefort.dsl.md 233) | — (static + @runefort/core 0.1.0-alpha.1 npm package) | Pivoted 2026-04-26 from spatial-cognition product to layout protocol. v0.1 protocol = tiled, file-backed UI layouts via four primitives (rooms, claims, neighbors, state bindings) compiling to CSS grid + editor handoff + live state overlay. Reference framework is plain Web Components (no SvelteKit). [&] supervisor-floor is one customer; the prior 1087-line spatial-cognition README is gone, reframed as supervisor-floor.v1 vocabulary. 5 Supabase tables (rune.*) still defined but used only by the LLM-authoring playground. |
Notes on progressing products:
Agentelic / FleetPrompt formerly-pre-existing MCP-server test failures were cleared on 2026-04-24 — all were small, real bugs (stale test counts / missing convenience wrappers), not flakes.
RuneFort ships @runefort/core 0.1.0-alpha.1 (Web Components) with no test script in packages/core/package.json — treating this as "untested" rather than "0 tests" is honest. The LLM-authoring playground at runefort.com/app/ and the forts/ example layouts back the protocol's reference renderer.
All four have fly.toml or equivalent deployment config; running-status not currently tracked (add to §3.4 if deployed).
Complete specifications, no implementation yet. Each is 418-1118 lines, 28-63 sections. (Delegatic's authorization kernel shipped in delegatic/ — see §2.1 — but the full spec's org-tree + memberships + effective-policy layers are still spec-only.)
| Product | Spec lines | Planned stack |
|---|---|---|
| AgenTroMatic | 1118 | Elixir/OTP + Phoenix + Raft consensus |
| Deliberatic | 418 | Argumentation protocol (Dung 1995, Raft/PBFT, Merkle evidence) |
| GeoFleetic | 987 | Spatial intelligence (delta-CRDTs, federated learning, GNN routing) |
| TickTickClock | 1013 | Temporal intelligence (Mamba anomaly, multi-timescale consolidation) |
Substantial product implementations that don't fit the Fly.io Elixir-MCP shape.
| Product | Dir | Version | Tests | Purpose |
|---|---|---|---|---|
| TRAAVIIS | TRAAVIIS/ (own repo [email protected]:c-u-l8er/TRAAVIIS.git) | 0.1.0 | 7/0 | OS-008 terminal harness — "the harness engineer that builds (and orchestrates) your harness." Node ESM, zero runtime deps (box-and-box ethos). 1,055 LOC: bin/traaviis.mjs + src/{index,harness,builtins,repl,stack,extensions,theme}.mjs. Kernel = 5 primitives (command registry, pipe engine + structured values, capability manifests, session tree, output modes); composability via run(h,args,input)→value pipelines + where/map/each/first/count/json combinators; pluggability via capability/needs resolve-by-capability + /plugins. Discovers stack products live by scanning for markers (mix.exs, package.json, docs/spec/, *.ampersand.json). /validate shells to box-and-box/bin/govern.mjs. Demo-driven marketing site at traaviis.com (index.html, original theme, 3 shippable themes midnight/phosphor/paper derived from src/theme.mjs; orchestration/compose/extend/pluggable demos verified across all 3 themes via agent-browser). Layer boundary: the harness IS the agent runtime, so it legitimately routes prompts/calls models/orchestrates sub-agents while the commands+libraries it drives stay model-free. NOT YET IMPLEMENTED: the real orchestration loop (retrieve▸route▸act▸learn▸consolidate, tier-routed per MODEL_TIER) is docs+website only (ARCHITECTURE.md §3a); src/ is still the minimal harness kernel. Untracked in main ProjectAmp2 repo (?? TRAAVIIS/). |
| WebHost.Systems | WebHost.Systems/ | 0.0.0 (apps/web 0.1.0) | 143/0 | React/Vite dashboard, Supabase auth; [&] integration specs written, runtime provider impl pending |
| BendScript | bendscript.com/ | 0.1.0-alpha.0 | 96/0 | Pivoted 2026-04-27 from SvelteKit/Supabase canvas/KAG SaaS to BendScript Protocol v0.1. Now @bendscript/core (TypeScript, vitest) — reference parser + validator + LLM round-trip harness for a graph-first JSON document format with typed inline link facets, span-addressable URIs (bend:doc#blk.spn), and content-addressable IDs. 85 round-trip tests + 11 harness tests. Spec at bendscript.com/docs/spec/README.md (678 lines, sections 0–6 of v0.1 draft). Five reserved vocabularies tie into portfolio: bendscript.argument.v1 (Deliberatic), bendscript.memory.v1 (Graphonomous), bendscript.spec.v1 (SpecPrompt), bendscript.runefort.v1 (RuneFort), core. Old SvelteKit/Supabase product archived under old_scrap/v1/; Cloudflare Pages target removed. v0.1 final gated on (a) §8 LLM round-trip evidence and (b) §14 written with at least one portfolio adopter committing to bend: URIs (Graphonomous via bendscript.memory.v1 is the obvious first). |
| Workbench | workbench/ | 0.4.0-alpha | 152/0 vitest + browser-runtime verified | Updated 2026-05-27. Skill Workshop + Proof Harness for the [&] Stack. SvelteKit static app (Cloudflare Pages target, BYO OpenRouter key via /api/llm/openrouter pass-through Worker). Teach an agent once → crystallize the trace into a signed, replayable SkillBundle → replay it against the same body and score across 6 named proof gates. v0.1 spec in workbench/docs/spec/README.md; 6 JSON Schemas; 5 canonical fixture scenarios. All six gates implemented: gate.content_hash, gate.trace_completeness, gate.no_hidden_capability, gate.authority (real delegatic-mcp HMAC + TTL verification in v0.2.1 — put_policy → authorize → verify round-trip confirmed live against delegatic-mcp.fly.dev/mcp), gate.redaction_verify with 3 profiles, gate.replay_fidelity via deterministic re-execution. v0.2.2 wires body-browser-mcp.fly.dev/mcp into the Teach page — selecting body: browser calls ensure_session → perceive → encode_state per turn, appending a kind: 'perception' edge with &body.browser capability and a real sha256: state_hash. v0.2.3 adds the /prism page: live leaderboard via same-origin proxy (PRISM cycle 6, [email protected] / [email protected]), list_systems over PRISM MCP, plus bundle hand-off staging (content_hash + copy-bundle-JSON button) for the PRISM EvidenceBundle ingest endpoint when it lands. Three CF Pages Functions (functions/mcp/{delegatic,body-browser,prism}.ts) + one for the read-only leaderboard mirror the Vite dev proxies so the browser only ever talks same-origin. v0.3.0-alpha (2026-05-27) — Invariant Arithmetic v0.3 is now the verifier substrate. Ported the Elixir reference impl (AmpersandBoxDesign/reference/elixir/invariant_arithmetic) to TypeScript at app/src/lib/ia/ (~400 LOC, framework-free, browser-safe): 4 invariant families (topological κ/β, spatial σ, temporal π/ι/ψ, governance authority_path/deny_default/audit), 6 operations (combine, chain, promote, reconcile, deliberate, consume), 15 algebraic laws verified by fast-check property tests at 1000 trials each (all 15 pass in ~134 ms). Every proof gate's verdict is now computed by an InvariantArithmetic.consume(value, requirements) call — each of the 6 gates derives a Value via lib/ia/bundle.ts and projects onto one IA family: content_hash → L14 topological, trace_completeness/no_hidden_capability → L11/L14 spatial, authority → L14 governance, redaction_verify/replay_fidelity → L12/L14 topological. Every gate carries law + invariant_family annotations; replay surprise signals carry the same projection via projectSurprise(kind) (state_hash_mismatch → L12/L14 topological, affordance_drift → L11/L14 spatial, policy_deny/model_refusal → L14 governance). Schemas updated: PROOF_RESULT + REPLAY_REPORT + EVIDENCE_BUNDLE declare the optional law / invariant_family / ia_substrate / invariants fields. verifyBundle now returns an ia_substrate declaration (version + laws_exercised + families_exercised projected from the gates' annotations) and the teach flow stamps it into bundle.proof.ia_substrate before re-sealing the content_hash, so every persisted bundle is self-describing as IA-derived. Test count: 95 v0.2 + 15 IA law properties + 3 IA annotation/substrate tests = 113/113. v0.1 spec acceptance criteria #3 / #6 / #8 / #13 all still pass. Same JSON file is the user-valuable SkillBundle AND the PRISM-facing EvidenceBundle, now backed by a 15-law algebraic substrate — closes Finding 8 in STACK_ARCHITECTURE_GAP_REVIEW.md and operationalizes the invariant arithmetic story from STACK_PROOF.html. Known: 23 pre-existing svelte-check diagnostics inherited from v0.2.3 (no new ones from IA work) — do not call the app typecheck-clean until those are resolved. v0.4.0-alpha (2026-08-11) — `/record`: a Claude Code session transcript becomes a scored SkillBundle with no model call and no key. app/src/lib/ingest/claude_code.ts (pure, browser-safe) maps transcript records onto the existing TraceEdgeKind union without extending it (tool_use→act/mcp_call + mapped capability, tool_result→observe + state_hash, thinking and isSidechain dropped and counted), segments at each user turn, and mints deterministic UUIDv5 ids so re-ingesting a segment is stable. /record streams the file (ingest/stream.ts), indexes it without retaining records, then re-streams to retain one segment — 202 MB indexed in 936 ms. Every segment sealed twice (honest → 6/6 PASS; one capability withheld → no_hidden_capability + authority both FAIL) so the gates are shown to carry signal rather than assumed to. Three pre-existing defects fixed en route: canonicalize crashing on undefined-valued keys, transcript_pii/full never redacting tool_call.arguments (86 key-shaped strings in one real segment, 4 in tool args), and applyProfile never redacting the manifest. checkPhaseOrder now closes a cycle at feedback — 94 violations → 0 on a real segment — while still catching authorize-after-act. See workbench/docs/INGEST_SPIKE.md. Test count: 132 + 18 ingest + 2 rewritten phase-order = 152/152; svelte-check 26 → 27 (the one added is the same missing-uuid-types error four untouched files carry). |
graphonomous.com/ — marketing landing page for Graphonomous engine (real impl lives at graphonomous/ root)
ampersandboxdesign.com/ — marketing site for the [&] Protocol (if separately hosted; most content served from AmpersandBoxDesign/site/)
All 10 portfolio product .com/.org sites have index.html + amp-nav v0.3.3; deployment handled via static hosting
These are first-class stack artifacts that don't fit the product tables above (no MCP server, no Fly.io machine). Added 2026-06-11 to close an inventory gap — previously they were described only in the "Last updated" log, never inventoried.
| Artifact | Where | Version | Tests / proof | Status | Notes | ||
|---|---|---|---|---|---|---|---|
| box-and-box (governance kernel) | AmpersandBoxDesign/box-and-box/ | v0.10.0 (version confirmed 2026-08-13) | 118 enforced property-tested laws, 3 declared-open — corrected 2026-08-14; the 2026-08-13 pass got the direction right but undercounted by one. test/laws.mjs registers 103 distinct law IDs; test/compose-laws.mjs registers 18, of which 15 are enforced (14 in SUITES + the AC-COMM anchor, which is property-tested at 2000 trials and does fail the build — the 08-13 count omitted it) and 3 are xfail (CP5 `\ | > floor association-invariance, CP6 no-backward-step, CP7 &-operand order — all FALSIFIED and open pending the Value.pi carrier fix). **The prior "129 laws (103 + 13 compose + 13 coalition)" in this row was wrong on two counts:** test/coalition-laws.mjs **does not exist** (coalition power is a cross-personality *check* inside laws.mjs, not a 13-law suite), and the total never included the three open gaps as open. **Fixed 2026-08-14:** compose-laws.mjs used to print ✓ all 116 stated CC2 compose laws hold — a hard-coded string meaning the old whole-kernel total, mislabelled as a compose-only count, overstating its own suite ~8×. Both suites now **derive** the number from SUITES.reduce(...) (+ ANCHOR.length) and print ✓ all 103 enforced kernel laws hold. / ✓ all 15 enforced CC2 compose laws hold — 14 suite + 1 anchor.` No law count anywhere should be a literal again; that is how the published figure and the printed figure drifted apart in the first place. | live_local | Pure-library, zero runtime deps npm package + CLIs (govern / compile / lift / arith, exit-code gated). 8-rung modality ladder + bridge.mjs (feasible ▸ permitted ▸ best) + evolution.mjs provenance chain + compose.mjs CC2 runtime (&, ` | >, absorbing 0̲, **fail-closed** CX6). govern CLI exercised live_local; **cross-process kernel admission** exercised live_local — Node.js kernel decides, Elixir BEAM actor (ampersand generate mcp) acts only on permission, certificate retained to disk (bash test/integration/kernel-gates-action.sh, 13/13 assertions, permit+refuse paths). Laws are in_tree property tests (universal properties, not exhaustive). **Not** deployed — the old box-and-box-mcp` Fly.io machine is a different, orphaned v0.1.0 validator (§3.4). |
| Weave (resource-rung cost certificate) | weave/ | research probe (18 files, zero-dep Node v18+) | reducer sound on 12-term battery + ~3000 random STLC terms; EAL cost-certificate validation 2010 terms (0 violations); HVM4 backend diff 6/6 | live_local | Static cost certificate ("what can be spent, terminating") feeding the kernel's resource rung; an uncertifiable computation annihilates to 0̄. EAL inference (weave-eal*.mjs) + HVM4 backend (weave-hvm4*.mjs, real cloned HVM4). Untracked in ProjectAmp2 (own working tree). | ||
| TRAAVIIS (OS-008 harness) | — | — | — | — | See §2.4 — recorded there as a frontend/app + harness product. | ||
| TRVM (interaction-calculus runtime) | TRVM/ (own repo c-u-l8er/TRVM, gitlink'd) | research/spec (multi-impl, no semver tag) | make test full conformance battery; runtime/c/ic32 --test 13/13; ic32.wasm matches reference bit-for-bit; dist_ic.py 480 runs; swarm.js across worker_threads | live_local | Coordination-free distributed Interaction-Calculus (HVM lineage) reducer + the argument/evidence it distributes with no locks/consensus. Thesis (post-honesty-edit): confluence ⇒ schedule-independence of single-net reduction; coordination-freedom across machines additionally rests on the §4.5 boundary-port (BND) discipline (owner-only rewrite over monotone never-retracting exports) — the two guarantees kept distinct. Honest GAPs: §6.4 snapshot, §6.5 REF, no demonstrated parallel speedup (correctness only). Identity/memory thread research/INCRDT.md (merge = NF(A ∪ B)). The residency's first corpus + the proof its CRDT-merged memory model is sound. | ||
| the-residency (agent research board) | the-residency/ (own repo c-u-l8er/the-residency, gitlink'd) | single-file (index.html ~127KB) | 1 overnight run → human-verified findings → real TRVM/spec/paper.md edits (n=1; reliability is the open question, see ROADMAP.md Gate 0/1) | live_local | Browser-native, sovereign-by-default deliberation board: embedded corpus + base64 ic32.wasm + G-Set CRDT board (BroadcastChannel + localStorage); corpus live-hydrated from TRVM's raw-git CDN at a pinned SHA; text-gen via a local claude harness proxy (harness-proxy.mjs, runs on the Claude subscription — zero API cost). Scope is deliberately thin (DIRECTION.md/ROADMAP.md): the only layer no existing portfolio component covers (multi-resident board + findings-as-first-class-objects-with-provenance + living-paper loop); everything else (memory/benchmarks/loops/governance/execution) delegates to Graphonomous/PRISM/PULSE/box-and-box/TRAAVIIS rather than rebuilding them. Gated: Gate 0 (board > single agent?) → Gate 1 (finding reliability) before any of that wiring is built. | ||
| Alkeyword (GEO / AI-search visibility tool) | alkeyword.com/ (site, deployed from own repo c-u-l8er/alkeyword.com → Cloudflare Pages) + alkeyword.com/app/ (Claude Code plugin) | v0.6.1 | 18 regression witnesses (prototype/tests/witnesses.py, stdlib-only, each cut from a real defect and watched failing first); 22-surface portfolio corpus (100 pages, 4,506 claims) in prototype/runs/ | site live_deployed · app live_local · calibration loop `in_tree` | Bring-a-domain GEO tool: deterministic stdlib crawl → claim graph → free autocomplete expansion → single-engine probe → research briefs, refusing to generate below per-form material thresholds (the §3.2 refusal rule, clamped in config.py, not merely defaulted). Zero runtime deps, no API keys — the model work runs on the Claude subscription. Site is byte-identical to the working tree and serves its own dist/ tarballs. First real end-to-end run 2026-08-13 (opensentience.org, 15 pages/493 claims) promoted the app to live_local and surfaced three defects the unit tests could not: brief.py --probe joined probe results by question ID against cluster query text, so --probe was a silent no-op and the "a measured miss is the strongest signal" branch in score() was unreachable; the engine name in a brief's "measured on" line was hard-coded to perplexity/sonar regardless of which engine ran; and registrable() used lstrip("www."), which strips characters, turning a bare wikipedia.org into ikipedia.org (and so out of the infrastructure filter). All three fixed with witnesses. Honest gap: calibrate.py and stage-5 store.py movement remain in_tree — the first probe baseline exists as of 2026-08-13, but a second probe and a published brief are both required before either can report anything, and both correctly refuse to until then. | ||
| Proof pages (opensentience.org) | opensentience.org/proofs/ + invariants.html | — | tiered method-of-evidence (2026-06): machine-checked (kappa.html — κ exhaustive over n=2–5 digraphs + FDS n=2–7, 1,926,351 objects, 0 counterexamples) · property-tested (phase-ordering.html) · implementation-verified (append-only, deny-default, monotonic-inheritance, no-cycles — Delegatic 42-test kernel suite + L14 law) | in_tree (site content) | Each page now carries an explicit proof-tier badge + legend so "Proved" never overstates the method of evidence. | ||
| Topology-as-warrant | opensentience.org/invariants.html (+ κ proof) | — | κ machine-checked (above); topology→routing→deliberation warrant is in_tree | in_tree | The claim that graph topology (κ cyclicity, β components) is the warrant for routing/deliberation. Backed by the machine-checked κ invariant; the end-to-end "topology gates the deliberation loop" path is property/impl-tested, not yet live_deployed against an external consumer. |
35 migrations in ampersand-supabase/migrations/, numbered by schema:
000-009: core (amp.*: profiles, workspaces, members, entitlements)
010-019: kag.* — orphaned as of 2026-04-27. Defined for the previous BendScript SvelteKit/Supabase product, which has been archived under bendscript.com/old_scrap/v1/. Not deleted (cheap to keep) but not consumed by any active product. May be reclaimed if the BendScript Protocol direction grows a registry mode that wants Postgres.
020-029: webhost.* (WebHost.Systems)
030-039: fleet.* (FleetPrompt)
040-049: geo.* (GeoFleetic)
050-059: temporal.* (TickTickClock)
060-069: orchestrate.* (AgenTroMatic)
070-079: govern.* (Delegatic)
080-089: agentelic.* (Agentelic)
090-099: rune.* (RuneFort)
100-109: spec.* (SpecPrompt)
One `supabase start` runs the entire data layer locally
Products NOT using Supabase: Graphonomous (embedded SQLite), Deliberatic (in-memory), OpenSentience (ETS), BendScript (post-2026-04-27 pivot — protocol spec + reference parser, no DB). SpecPrompt uses Supabase in registry mode only.
Single Web Component synced to every portfolio site via sync-nav.sh
Current version: v0.3.3
Shadow DOM isolated, no framework dependency
Distributed to: graphonomous.com, runefort.com, specprompt.com, fleetprompt.com, agentelic.com, and all other portfolio sites
Four skill modules already distributed:
ampersand-protocol — protocol validation/composition
graphonomous — autonomous codebase traversal via Graphonomous MCP
prism — benchmark scenario composition
spec-driven-dev — SpecPrompt toolchain
| Product | Platform | Region | Status |
|---|---|---|---|
| Graphonomous MCP | Fly.io graphonomous-mcp | ord (Chicago) | live_deployed — running v0.4.3, 1 machine, min_machines: 1 |
| PRISM | Fly.io prism-eval | iad (N. Virginia) | live_deployed — running 0.1.0 (2026-04-24 redeploy w/ stdio:// fix), 1 machine (6 configured) |
| PULSE MCP | Fly.io os-pulse-mcp | ord (Chicago) | live_deployed — running v0.1.0, scale-to-zero |
| Delegatic MCP | Fly.io delegatic-mcp | ord (Chicago) | live_deployed — running v0.1.0, 1 machine, scale-to-zero (NEW 2026-04-24). Empty in-memory ETS PolicyStore. |
| body-browser MCP | Fly.io body-browser-mcp | ord (Chicago) | live_deployed — running v0.1.0, 1 machine shared-cpu-2x/1024mb, scale-to-zero (NEW 2026-04-24). [email protected] CLI + Chromium shared libs bundled. Default backend: Simulator. |
| body-os MCP | Fly.io body-os-mcp | ord (Chicago) | live_deployed — running v0.1.0, 1 machine, scale-to-zero (NEW 2026-04-24). priv/bin/body-os-shim bundled; BODY_OS_SHIM_ROOT=/app/body-os-sandbox. Default backend: Simulator. |
| Agentelic | Fly.io agentelic | iad (N. Virginia) | live_deployed — running v0.1.0, 1 machine (last deploy Apr 19; no Apr 24 drift beyond test-count fix — skipped redeploy) |
| FleetPrompt | Fly.io fleetprompt | iad (N. Virginia) | live_deployed — running v0.1.0 (2026-04-24 redeploy w/ InstallEngine 7/7 + git-dep delegatic + git-dep open_sentience), 1 machine |
| SpecPrompt | Fly.io specprompt | ord (Chicago) | live_deployed — running, 1 machine (last deploy Apr 24) |
| ~~box-and-box MCP (validator)~~ | Fly.io box-and-box-mcp | ord (Chicago) | live_deployed — orphaned: validator code removed from repo (clean break, 2026-05-30); the deployed v0.1.0 machine still runs but is dead code. Fly.io teardown = pending follow-up. The name box-and-box now belongs to the governance kernel (library/CLI-first; no MCP surface yet). |
| WebHost.Systems | — | — | Dev only |
| BendScript | — | — | Dev only (Cloudflare Pages target configured) |
| RuneFort | — | — | Dev only (SvelteKit) |
| Portfolio marketing sites (.com/.org) | Static hosting | — | All deployed |
Live smoke tests against production Graphonomous (2026-04-24):
fleetprompt.com → graphonomous-mcp.fly.dev/mcp — 2/2 live_crystallization (seed trace → crystallize → manifest + idempotency)
PRISM → graphonomous-mcp.fly.dev/mcp — 3/3 live_os011 (compose → register → interact → persist transcript)
body-browser → graphonomous-mcp.fly.dev/mcp — 2/2 live_cross_machine (record → fresh BEAM subprocess → replay at full fidelity + fail-fast on corrupted state_hash)
Cross-app wiring (verified):
FleetPrompt → Graphonomous: HTTP via GraphonomousClient.HTTP — ✓ live
FleetPrompt → Delegatic: in-proc git-dep (c-u-l8er/delegatic-engine) — ✓ unit-tested (157 tests)
FleetPrompt → OpenSentience: in-proc git-dep (c-u-l8er/opensentience.org) — ✓ InstallEngine step 5 tests
PRISM → Graphonomous: HTTP via simulator MCP client — ✓ live
New github repos (2026-04-24):
c-u-l8er/delegatic-engine — OS-006 authorization kernel Elixir library (split from ProjectAmp2/delegatic/; anubis_mcp dep switched from path → hex v0.17.0)
Deploy-time fixes (2026-04-24):
delegatic, body-browser, body-os all had latent bug: *.Application.start/2 started Bandit with HTTP router dispatching to Anubis MCP transport, but never started Anubis.Server.Registry or Anubis.Server.Supervisor for the MCP server. Hot-path unit tests bypass HTTP, so tests never caught it. Added to all three under the maybe_start_http branch.
delegatic/Dockerfile, body-browser/Dockerfile, body-os/Dockerfile all had COPY .../config/ config/ 2>/dev/null || true — Docker COPY isn't shell, the 2>/dev/null was treated as a literal path. Removed (none of the three has a config/ dir anyway).
body-os/Dockerfile now also COPYs priv/ into the build and ships priv/bin/body-os-shim into the runtime image with chmod +x + pre-created body-os-sandbox/ chown'd to nobody.
body-browser/Dockerfile runtime stage now installs Node.js + [email protected] + Chromium shared libs. VM bumped to shared-cpu-2x/1024mb. Image: 397 MB.
The dark-factory vision requires a closed loop: Machine A perceives → acts → learns → crystallizes skill → ships to Machine B → B installs → B replays → PRISM measures fidelity.
| Step | Status | What's in-tree | What's needed for live_deployed |
|---|---|---|---|
| 1. Machine perceives/acts | live_local | body-browser + body-os Simulator backends (24 §9 conformance tests). Browser half: BodyBrowser.Backend.AgentBrowser verified end-to-end against the real agent-browser v0.26.0 CLI driving a real Chromium via CDP (4 live tests, tag :live_agent_browser); real CLI envelope normalization added to build_observation/2. Host half: BodyOs.Backend.ComputerUse verified end-to-end against a bundled priv/bin/body-os-shim — a 150-line sandboxed POSIX sh host-exec CLI that provides the exact vocabulary the adapter was designed for (perceive, read, write, edit, delete, exec, spawn, signal, keyboard/mouse, capture). Path-escape guard (exit 3) confirms writes to /etc/passwd are blocked. 7 live tests tagged :live_computer_use (perceive, fs detection, write+read roundtrip, delete roundtrip, shell_exec, escape containment, state hash). OpenClaw turned out to be an agent-runtime Gateway (agents/channels/WebSocket), not a plain host-exec CLI — the shim is the "any equivalent" the ComputerUse docstring explicitly contemplates. | — |
| 2. Records InteractionTrace | live_local | Graphonomous v0.4.3 act(store_trace) + retrieve(replay) (19 new tests). SQLite interaction_traces + trace_edges tables live. Body-* TraceRecorder emits matching traces. | — |
| 3. Learns via memory consolidation | live_local | Graphonomous consolidator, κ-routing, procedural clustering — pre-existing and stable. | — |
| 4. Crystallizes to SkillCandidate | live_local | FleetPrompt Skills.Crystallizer (pure transform, 23 tests) + GraphonomousClient.HTTP (now with real MCP session handshake, 18 injected-transport tests + 2 live Bandit roundtrip tests) + PollWorker + Crystallization schema + migration 034 (applied locally 2026-04-24). Live crystallization pipeline verified end-to-end: seeded an OS-011 InteractionTrace into a local Graphonomous via act(store_trace) MCP call, polled it back via retrieve(replay), ran PollWorker.crystallize_all/2 — a draft manifest row appeared in fleet.manifests and a crystallization row with source_type=:interaction_trace + matching source_id appeared in fleet.skill_crystallizations. Idempotency proven: second run produces {:ok, %{crystallized: 0, skipped: 1}} (discovered + fixed a real idempotency bug along the way — manifest's own (agent_id, version) unique constraint was firing before the crystallization-side (source_type, source_id) one, masking the intended :skipped as :failed; fixed with a pre-check Repo.exists? in PollWorker.crystallize_one/2). | — |
| 5. Ships via FleetPrompt | live_local | FleetPrompt.InstallEngine.audit_status/0 reports all 7 install-flow steps implemented: permission review, manifest verification, MCP dependency resolution, Delegatic policy check (Delegatic.authorize/1 with opt-in :delegatic_policy_id gating; hard-fails on deny), OpenSentience deploy (OpenSentience.Harness.start_session/1+stop_session/1 smoke validation against the OS-008 runtime loaded via path dep; non-fatal on failure; pluggable via :opensentience_deployer), Graphonomous connect (GraphonomousClient.initialize_telespace/1 does a full MCP session handshake + POSTs act(store_node) to the configured endpoint; non-fatal on failure), audit write. Live roundtrip verified locally: FleetPrompt → running Graphonomous MCP → store_node → retrievable via retrieve(context). +35 FleetPrompt tests this session including 9 DB-backed end-to-end install/3 tests (seeded workspace→publisher→agent→version→published-manifest, transactional sandbox) and 2 real-HTTP-roundtrip tests against a local Bandit fake Graphonomous. | Cross-machine install (machine B receives a manifest shipped from machine A) — requires two-process-boundary exercise, not blocked by code. |
| 6. Machine B installs + replays | live_local | BodyBrowser.Replay.execute/3 + BodyOs.Replay.execute/3 implement OS-011 §5.4 fail-fast with SurpriseSignal emission. 2 Delegatic integration tests verify the OS-006+OS-011 wire in a single process. Live cross-machine replay verified 2026-04-24: Process A records a 2-edge trace against a Simulator-backed Session + stores it in a running Graphonomous MCP. A fresh BEAM subprocess (Process B, spawned via System.cmd("mix", ["run", worker.exs])) fetches the trace back over HTTP, constructs an independently-configured identical Simulator, and replays at 100% fidelity (edges_committed == edges_attempted == 2). Second test corrupts edge 1's state_after — Process B fails-fast on state-hash mismatch after committing edge 0 only, with reason=state_hash_mismatch. OS pids confirm the processes are distinct. | — |
| 7. PRISM measures | live_local | 10 OS-011 scenarios at PRISM/priv/fixtures/os011/scenarios.json with coverage of all five invariants. Live benchmark verified 2026-04-24: PRISM/test/prism/live_os011_test.exs (3 tests, tag :live_os011) seeds a repo anchor, submits all 10 fixture scenarios through Compose.execute(action: "scenarios"), registers a running Graphonomous (http://127.0.0.1:4201/mcp, transport: streamable_http) as a PRISM system, and drives Interact.execute(action: "run", ...) → the simulator connects via real MCP session handshake, executes scenario turns against Graphonomous, and persists a Prism.Transcript row with scenario_id + system_id + sessions. List-query round-trip also verified. | — |
7 of 7 steps `live_local`, 0 `in_tree`, 0 missing — corrected 2026-04-24 (this matrix is authoritative; the earlier "2 of 7" read was stale). live_local means the step's code path has been exercised against a real local substrate at least once: step 1 against the real agent-browser CLI + Chromium and a real host-exec shim, steps 2–3 against actual SQLite/ETS, steps 4–7 against a real local running Graphonomous over MCP (tagged live suites :live_crystallization, :live_os011, :live_cross_machine, :live_agent_browser, :live_computer_use, dated 2026-04-24). The remaining bar is `live_deployed`: one production pass stitching the already-deployed body-*-mcp / delegatic-mcp machines (§3.4) into a single perceive→…→measure run — that is a deploy-and-drive exercise, not new code.
All 10 portfolio products have complete specs (630-1153 lines, 28-69 sections each).
| Product | Lines | Sections | Has PULSE manifest? | Has capability contract? |
|---|---|---|---|---|
| AgenTroMatic | 1118 | 50 | Yes | Yes |
| FleetPrompt | 1153 | 55 | Yes | Yes |
| OpenSentience (research) | 1131 | 66 | N/A (meta) | N/A |
| RuneFort | 1150 (3 files: protocol 300 + core 617 + dsl 233) | — | Yes (post-pivot) | Yes |
| Graphonomous | 1047 | — | Yes | Yes |
| TickTickClock | 1013 | 51 | Yes | Yes |
| GeoFleetic | 987 | 63 | Yes | Yes |
| BendScript | 678 (v0.1 draft, sections 0–6) | — | Partial | Partial |
| SpecPrompt | 759 | 44 | Yes | Yes |
| Agentelic | 685 | 29 | Yes | Yes |
| Delegatic | 630 | 32 | Yes | Yes |
| Deliberatic | 418 | 28 | Yes | Yes |
| Alkeyword | 446 (v0.1 draft, sections 0–8) | 10 | No | No |
| Academy | 355 (ACADEMY.md, v0.1 draft) | 12 | No | No |
Spec layer: effectively 100% complete. 2026-08-13 caveat: Alkeyword and Academy are listed here for inventory completeness but are not among the 10 portfolio products the heading counts. Alkeyword is a tool (§2.6) whose v0.1 spec the shipped v0.6.2 implementation has already outrun in places (§2.2 assumes paid multi-engine probing; the shipped free path probes one engine and says so). Academy is an institutional-layer draft that consumes the other products rather than being one — and it is the only spec here that states its own falsification conditions and records that none of them have been tested (ACADEMY.md §7: "This document claims a decision, not a result."). Neither declares a PULSE loop manifest. Every product has a canonical spec with PULSE manifest declaration. 2026-04-26/27 caveat: RuneFort and BendScript both replaced their previous SaaS-era specs with protocol specs during the pivot — the line counts above are the new specs, not the archived ones (RuneFort's prior 1087-line spatial-cognition README was removed; BendScript's prior 866-line canvas/KAG spec moved to bendscript.com/old_scrap/v1/docs/spec/README.md).
Recompute pass, 2026-08-13. The rows below were last computed on 2026-04-24. Re-examining them four months later moved none of the percentages, and that is the result worth reading: the work since April (Workbench, Alkeyword, Academy, TRVM/WRL, PARKVPS/T&R, RAVIO) is real and substantial, and all of it landed in rows that were already high, or at statuses at or below live_local. The two rows that bound the total — dark-factory live_deployed, and adoption — are untouched. A `Verified` column has been added so no row can silently age again.
| Layer | Completion | Verified | Assessment |
|---|---|---|---|
| Protocol ([&] + OS-001..011 + PULSE tokens) | 90% | 2026-04-24 | Algebra + typing slots complete. Only OS-007 still draft. OS-006 has a working authorization kernel (in-memory store only) with shipped MCP surface; the full OS-006 spec (org trees / memberships / effective-policy) is still aspirational. OS-011 has two reference impls that pass §9 conformance against Simulator backends. |
| Spec writing (all 10 portfolio products) | ~100% | 2026-08-13 | Every product has a 400–1153 line authoritative spec with PULSE manifest. Two specs exist outside that set of 10 and are inventoried in §5: Alkeyword (446 lines, no PULSE manifest) and Academy (ACADEMY.md, 355 lines, v0.1 draft, no PULSE manifest). Neither raises this row; both are noted so the count stops reading as an inventory of everything specified. |
| Implementation | ~55% | 2026-04-24 | 7 shipping-tier products (Simulator-backed conformance; none of the new three are deployed) + 4 progressing + 2 frontend apps + 4 spec-only (out of ~17 active projects). |
| Infrastructure (Supabase, amp-nav, plugins) | ~85% | 2026-04-24 | Shared data layer (35 migrations, 11 schemas), shared nav, shared plugins all live. |
| Dark-factory closed loop | ~50% _(under review — see flag)_ | 2026-04-24 | 7 of 7 steps are live_local as of 2026-04-24 (§4 is authoritative); the "2 of 7" basis for this 50% was stale and is corrected. The loop is closed against real local substrates; the remaining bar is a single live_deployed production pass, not more code. FLAG for Travis: with 7/7 now live_local, this row likely understates — held at 50% pending your call on whether live_local (vs live_deployed) should count as "closed" for rating purposes. |
| Adoption / external validation | ~10% | 2026-08-13 | Re-checked and unchanged since April. No external benchmarks (Mem0/Zep/Letta not adapted); no enterprise case studies; no external contributors. Academy's B1 — hand one outsider the docs atlas and one real repository task — has been marked runnable today, needs no new code since 2026-08-11 and has not been run. It is the cheapest available move against the row that bounds the entire rating. |
| Overall | ~8.3/10 _(blended — see flag)_ | 2026-08-13 | Protocol + spec layers are genuinely strong (94% / 100%). Implementation and adoption rows drag the weighted total down to low-8s: the ecosystem is live_local against real substrates (real browser, real host, real local Graphonomous, real cross-process replay) but is not yet live_deployed end-to-end nor externally validated by any third-party consumer. The gap between 8.3 and 9.5 (the pre-adoption ceiling) is closed almost entirely by a single live_deployed end-to-end pass plus first external adoption. FLAG for Travis: this 8.3 is a single blended figure; the per-layer rows above may be more honest reported separately — your call whether to keep the blend or drop to per-layer only. |
Rating note. Protocol/spec completeness weighs heavily because those are the hardest parts to get right; adoption weighs heavily because it bounds real-world impact. The dark-factory closed loop row was once self-rated at 92% by conflating "every step has in-tree substrate" with end-to-end aliveness (a category error). A subsequent pass over-corrected to 50% on a "2 of 7 live" basis that is itself now stale: §4 records all 7 steps as live_local since 2026-04-24. Honest rule of thumb: never report in_tree (code + unit tests, no live exercise) as live_local, and never report live_local (real local substrate) as live_deployed (running in production) — promote a status only when the named bar is actually cleared.
Deployed end-to-end smoke test — the single highest-leverage move now. The body-browser-mcp / body-os-mcp / delegatic-mcp machines are already live_deployed (§3.4); drive one real session from perceive → act → store_trace → crystallize → install-and-replay across those deployed machines (and against real openclaw, not the bundled shim). This promotes the loop from live_local to live_deployed. Rating delta: +0.5 (promotes all 7 dark-factory steps live_local → live_deployed).
Graphonomous `&memory.episodic.store/replay` — shipped in-tree as v0.4.3 on 2026-04-21 (19 new tests). Still needs: a real consumer writing traces through MCP (not just the test suite).
Publish `open_sentience` to hex.pm (externalize OS-008 Harness).
Takes 19 passing tests from vendored-dep to hex-consumable
Rating: +0.2
First conforming `&body.browser` provider — body-browser/ v0.1.0 shipped in-tree on 2026-04-21 with 12/12 OS-011 §9 conformance against the Simulator. Still needs: AgentBrowser adapter run against a live Chromium + the same 12 tests passing with real a11y-tree data.
SkillCandidate connector — Crystallizer + Oban PollWorker + GraphonomousClient.HTTP shipped in-tree 2026-04-23 (41 unit tests). Still needs: the HTTP client issuing a real request to a running Graphonomous endpoint and a draft manifest actually appearing in fleet.manifests.
First competitor MCP adapter (Mem0 OR Zep OR Letta) + OS-E002 published.
External validation; PRISM becomes industry-comparable
Rating: +0.3
`&body.os` provider via OpenClaw / Claude Computer Use — body-os/ v0.1.0 shipped in-tree on 2026-04-23 with 12/12 OS-011 §9 conformance against the Simulator. Still needs: ComputerUse adapter run inside a sandboxed host, destructive-edge authorization gate exercised with real file_delete / shell_exec calls.
OS-007 Adversarial Robustness with real threat demos (needs Cycle-5-style empirical anchor).
Enterprise-buying protocol
Rating: +0.3
Multi-agent spatial coordination for GeoFleetic 2030 scenarios.
Genuine research territory; no protocol solves it anywhere yet
Rating: +0.3 (caps realistic completion at ~9.5/10 without external validation)
Rating-delta caveat: The per-move deltas above are rough forecasts of impact, not strictly additive. If several moves ship together, diminishing returns apply (e.g., shipping OS-008 externalization without anyone adopting it gets less credit). Summing all deltas overshoots the realistic 9.5 cap by design — each delta assumes the prior moves landed first.
Invent new protocols (OS-012+) before existing ones are implemented
Compete with OpenClaw on product surface (substrate play is higher leverage; see discussion in session history)
Full prose-sweep for sites that already have amp-nav v0.3.3 (nav handles cross-site consistency)
Marketing landing page redesigns before the substantive products have external users
This document is the canonical status reference for the [&] Protocol ecosystem. Every person (or agent) working on the stack should read it before starting non-trivial work and update it on completion of any of these events:
A product ships a new version (bump version in §2 tables)
A Fly.io/deployment status changes (update §3.4)
An OS-0XX protocol advances a stage (draft → spec complete → shipped, update §1.2)
A spec crosses 1000 lines or reaches completeness (update §5)
A dark-factory step advances a status rung (spec → in_tree → live_local → live_deployed; update §4)
A rating component changes materially (update §6)
A recurring failure mode in this document has been rating-inflation that conflates "code exists and unit tests pass" with "the pipeline runs end-to-end against real substrates." The 2026-04-24 correction pass walked the overall rating back from a self-assessed 9.2 to 8.3 for exactly this reason. Going forward, every status is one of these five terms — never a bare check / warning / cross glyph:
`spec` — specified (and possibly schema'd), but no implementation exists yet.
`in_tree` — implemented and unit/property-tested in-tree, but exercised only against stubs / simulators / injected transports / single-process round-trips. Code is present; the system has not been proven against a real external substrate.
`live_local` — the code path has been exercised end-to-end against its real substrate at least once on a developer machine (real DB, real browser/CLI, real host, real local server, real cross-process boundary — whichever applies).
`live_deployed` — the code path runs in production (e.g. a reachable Fly.io machine) and has been exercised there.
`external` — validated by an outside party: a third-party consumer, a published benchmark, an external contributor, or a non-self deployment.
When in doubt, downgrade. Unit tests against an injected transport prove the transform logic is correct (in_tree); they do not prove the system works (live_*). Promote a status only when the named bar is actually cleared.
Edit this file directly. Do not create a sibling status doc.
Update the Last updated date at the top.
Update the specific table(s) affected — keep other rows exact.
If adding/removing a product, update §2.1-§2.4 tables AND §3.1 migrations AND §5 spec completeness.
If the overall rating moves > 0.2, explain in §0 TL;DR's "What's different from 6 months ago" line.
Do not fabricate counts or statuses. When uncertain, use ? or note "status unknown".
For adoption metrics (§6 adoption row), only count verifiable external usage (published benchmarks, external contributors, third-party deployments).
A product roadmap — that lives in individual spec docs
A marketing artifact — write honestly, including what's missing
A protocol reference — SPEC.md, PROTOCOL_PROMPT.md, and OS-00X docs are authoritative
A CHANGELOG — per-project CHANGELOG.md files track their own history
The authoritative answer to "where are we on stack completion right now?"
A quick reference for any agent (human or AI) joining the work
A sanity check against marketing copy (index.html should not claim more than this doc)
Shipped — published to npm/hex/pypi OR deployed to production hosting OR both
Progressing — substantial source code (≥40 non-boilerplate files) + passing tests + deployment config present
Spec complete — authoritative spec ≥ 400 lines, normatively structured, approved for implementation
Draft — spec exists but incomplete or superseded
OS-0XX — OpenSentience protocol number (OS-001 through OS-011 currently)
[&] — the composition protocol (AmpersandBoxDesign)
PULSE — OS-010 temporal loop manifest standard
PRISM — OS-009 benchmark engine (Rating Iterative System Memory)
Dark factory — machine-hosted agents operating autonomously with continual learning and cross-machine skill transfer
InteractionTrace — OS-011 canonical record of a perception-action cycle (defined in opensentience.org/docs/spec/OS-011-EMBODIMENT.md)
SurpriseSignal — PULSE v0.1.1 canonical token emitted when an actual observation diverges from a forward-model prediction; consumed by novelty detection, PRISM calibration scoring
MCP — Model Context Protocol (Anthropic); the runtime transport that &memory/&reason/&body/etc. capabilities compile to
A2A — Agent-to-Agent protocol (Google); the coordination transport that a2a_skills on [&] contracts compile to
BYOR — Bring Your Own Repo; PRISM feature that lets you benchmark a memory system against your actual codebase
FSM — Finite State Machine; implicit structure formed by the set of {StateHash, TypedAction, StateHash} triples across recorded InteractionTraces
hex.pm — the Elixir package registry (some protocols are hex-published, some still vendored)
amp-nav — the shared navigation Web Component distributed to every portfolio marketing site (v0.3.3 current)
To audit this document's claims, run:
# From ProjectAmp2 root
cd graphonomous && mix test 2>&1 | tail -3 # Graphonomous test count
cd ../PULSE && npm test 2>&1 | tail -5 # PULSE conformance
cd ../PRISM && mix test 2>&1 | tail -3 # PRISM test count
cd ../AmpersandBoxDesign/reference/elixir/ampersand_core && mix test 2>&1 | tail -3 # [&] reference
cd /home/travis/ProjectAmp2/specprompt.com && mix test 2>&1 | tail -3 # SpecPrompt
cd ../agentelic.com && mix test 2>&1 | tail -3 # Agentelic
cd ../fleetprompt.com && mix test 2>&1 | tail -3 # FleetPrompt
cd ../WebHost.Systems/apps/web && npm test 2>&1 | tail -5 # WebHost.Systems (if present)
cd ../bendscript.com && npm test 2>&1 | tail -5 # BendScript (post-pivot: 96 tests via vitest)
# Check Fly.io deployment configs exist
find . -name fly.toml -not -path '*/node_modules/*' -not -path '*/deps/*'
# Check shared Supabase migrations
ls ampersand-supabase/migrations/ | wc -l
# Check amp-nav version
grep -o 'amp-nav v[0-9.]*' ampersand-nav/*.md | head -1
# Spec line counts
for dir in */docs/spec; do
echo "$dir: $(wc -l < $dir/README.md 2>/dev/null) lines"
done | sort -t: -k2 -n -r
If any output disagrees with a claim in this doc, update the doc (not the other way around) — ground truth comes from the running systems.
This file is version-controlled. The most recent authoritative version is always at `/home/travis/ProjectAmp2/STACK_COMPLETION.md` on the `main` branch.