{
  "title": "The Operators Loop",
  "story": [
    {
      "type": "markdown",
      "id": "f3422ea666915857",
      "text": "# 🧰 The Operators Loop"
    },
    {
      "type": "markdown",
      "id": "bb6ec7abd8c6bf10",
      "text": "This is the harness as an **operational autoresearch instrument**: one loop\nyou can run end to end on a small local machine, six paths that grow out of\nit, and a set of stable read surfaces that let you bring your own interface\n— your own UX — without ever touching a ledger. `node tools/adventure.mjs`\nprints this map from inside the repo, with your local state filled in."
    },
    {
      "type": "markdown",
      "id": "0b020666e4d14b79",
      "text": "## One machine, one loop\n\n**Requirements:** Node ≥ 18. Nothing else — zero npm dependencies, no\nnetwork, no accounts. The multi-agent rounds need *a* model driver, and any\nof these works: Claude Code's Workflow tool (the reference), the Agent SDK,\nor an Ollama-class **local model** — hh_workshop ran every seat on a local\n12B, air-gapped, hashes computed code-side so the seat physically cannot\nsee the salt (`HARNESS_PATHS.md` §12). A laptop is enough; a Pi serves the\nwiki wall.\n\nThe loop, end to end:\n\n```bash\nnode tools/check.mjs                                   # 1 · prove the axioms — every gate\nnode tools/adventure.mjs                               # 2 · see your paths\nnode tools/new_instance.mjs ../my-harness my-harness   # 3 · scaffold (the wizard)\n#    fill every TODO in harness.config.mjs — ADOPTION.md, five answers, Gap first\nnode engine/conform.mjs ../my-harness                  # 4 · the gate accepts your config\nnode tools/bundle.mjs ../my-harness/harness.config.mjs ../my-harness/harness.workflow.mjs\n#    run the workflow (your driver) → runs/<runId>/    # 5 · a round: propose ⊥ prove\nnode tools/render_run.mjs ../my-harness r1             # 6 · audit — every seed re-derived\n#    fold as keystone: frontier first, chronicle, conform green again (README step 5)\nnode tools/mint_artefact.mjs ../my-harness r1          # 7 · seal what survived (κ)\nnode tools/wiki_install.mjs ../my-harness --farm ~/.wiki   # 8 · observe — the wall updates\n```\n\nStep 8 closes the cycle: the round's story is pages a person can fork, a\ngraph an agent can fetch, and a star seating on the lattice — all derived\nfrom the ledgers, so none of it can drift. Then the loop goes round again:\nwhat the wall shows becomes the next round's measure."
    },
    {
      "type": "markdown",
      "id": "7b16bc59eee7f72f",
      "text": "## Choose your adventure\n\nThe corpus this harness came from runs the same model at every register,\nfrom formal papers to narrative myth — and the harness carries that whole\nspan, because the discipline is register-invariant: **many tellings, one\ninvariant, and a gate that catches them drifting.**\n\n| register | path | what you run |\n|---|---|---|\n| most academic 🎓 | **autoresearch** — claims that survive an adversary | the litreview pattern: sweep ⊥ refute ⊥ judge, refuters blind to the prover; absence is never novelty; an all-clear run indicts itself (`HARNESS_PATHS.md` §15, `RESEARCH.md`) |\n| operational 🤺 | **the spar → your own instance** | the loop above — the wizard, the Gap, the census |\n| interop 🔗 | **acceptance & registries** | the DTG pattern: digest-manifest match, human gates, disclosure (§14); the descendant-lane pattern: inherit the constitution whole (§16) |\n| federated 🕸️ | **the Observe lane** | `WIKI.md` — wikis auto-populated per instance, `examples/wiki-farm/` in the box |\n| geometric ⭐ | **the lattice** | `star.mjs` (vertex ⊥ anchor, results at κ mod 64) · `spellweb.mjs --workshop` · `emit_feed.mjs` → /star, game42 |\n| most myth 📖 | **spells & chronicles** | `SPECIALISATION.md` personas and spells; chronicles read in date order — the same truths as the papers, told as story |"
    },
    {
      "type": "markdown",
      "id": "35d5b3bc3177dce0",
      "text": "## BYO interface, BYO experience\n\nEvery surface below is a **stable, derived, read-only projection**. Build\nany UI you like against them — a terminal, a game, a gallery, a voice — and\nyou inherit the discipline for free, because interfaces read projections and\n**never write ledgers**. The write path stays what it always was: seats\nwrite runs, the keystone folds, the First Person opens doors.\n\n| surface | shape | derived by | feeds |\n|---|---|---|---|\n| `frontier.json` | the numbers — sole authority (GR-1) | the keystone, by hand | anything that shows progress |\n| `runs/<id>/` | proposal_canon · gap · verdict, per lever | the loop | audit UIs, replays — every seed re-derivable from bytes |\n| `graph.json` | node `{id,type,label,domain,layer,desc}` · edge `{source,target,type}` | `spellweb.mjs` | knowledge-graph UIs, agent memory |\n| `star.json` (`star.v1`) | vertex ⊥ anchor + results at κ mod 64 | `star.mjs` | lattice UIs, game42, City-Key work |\n| `runtime-feed.v1` | moving ceiling R(t) · lattice · κ artefacts | `emit_feed.mjs` | /star instruments, dashboards |\n| wiki pages | FedWiki page JSON, slug-bijective | `wiki_emit.mjs` | any FedWiki client; fork-based federation |\n| artefact bundles | κ-addressed, evidence hash-manifest, `DOOR.md` | `mint_artefact.mjs` | anything that carries results across a boundary |\n| VRC edges | ed25519-signed κ→κ, signer `did:key` | `vrc.mjs` | cross-party trust graphs |\n\nTwo rules keep a BYO UI honest: cite numbers from `frontier.json`, never\nrestate them (GR-1); and render doors as doors — a UI may show the\npublish/serve/submit action, never perform it (T6)."
    },
    {
      "type": "markdown",
      "id": "636080f31fd86c8e",
      "text": "## Interoperability — how the work leaves home\n\n- **κ / UOR** — every sealed result is content-addressed by one κ law\n  (`tools/kappa.mjs`, `HOLONS.md`). κ's lineage is *from* UOR, so a\n  κ-address meets the UOR/kappa-registry substrate as shared lineage — the\n  uor_kappa lane (§16) is that meeting, run as research.\n- **VRC / credential specs** — *a reference proposes; a signature mints.*\n  A signed κ→κ edge with a `did:key` signer is the shape verifiable-\n  credential ecosystems already speak; the DTG cred-spec work maps onto it,\n  and `did:cid` identity is this layer named for people (hearthold, §11).\n- **FedWiki / OASIS** — federation by forking: every page carries its\n  journal, every site can fork any page it can reach, and cross-site links\n  are explicit references. The OASIS pattern (consented pages spooling to a\n  shared federation) rides the same rails — outward legs at the door.\n- **Acceptance flows** — when a counterparty must trust a result they\n  didn't watch happen: pin a manifest, re-run, byte-match, human-gate the\n  admission and the publication, disclose the agent (§14)."
    },
    {
      "type": "markdown",
      "id": "d0b6eebdb5f939c6",
      "text": "## The small-machine promise\n\nEverything in this table runs offline on modest hardware: the engine and\nevery gate (`check.mjs`), the data projections (`spellweb`, `star`,\n`emit_feed` — data only, views live with the consumer; `render_run` — one\nstatic audit page, no CDN), the wiki farm (one Node process; a Raspberry Pi\nserves a federation), and the loop itself under a local model driver. The\nonly thing that ever needs the network is the door — and that is exactly\nwhere a person is standing.\n\n```\n(⚔️⊥⿻⊥🧙)😊 = neg ⊕ bnot → succ\n```"
    },
    {
      "type": "markdown",
      "id": "ac010d8fbcfa5a6c",
      "text": "# Assets"
    },
    {
      "id": "b3707e65e04da9ea",
      "type": "assets",
      "text": "the-operators-loop"
    },
    {
      "type": "markdown",
      "id": "0b61e06b3cecf5e2",
      "text": "## Navigation\n\n← [[Welcome Visitors]] · [[The Dual-Agent Harness]]"
    },
    {
      "type": "markdown",
      "id": "0a9f6529d75320bd",
      "text": "---\n*the wiki is a projection; `~/dual-agent-harness` (git) is the source of truth · (⚔️⊥⿻⊥🧙)😊 = neg ⊕ bnot → succ*"
    }
  ],
  "journal": [
    {
      "type": "create",
      "item": {
        "title": "The Operators Loop",
        "story": [
          {
            "type": "markdown",
            "id": "f3422ea666915857",
            "text": "# 🧰 The Operators Loop"
          },
          {
            "type": "markdown",
            "id": "bb6ec7abd8c6bf10",
            "text": "This is the harness as an **operational autoresearch instrument**: one loop\nyou can run end to end on a small local machine, six paths that grow out of\nit, and a set of stable read surfaces that let you bring your own interface\n— your own UX — without ever touching a ledger. `node tools/adventure.mjs`\nprints this map from inside the repo, with your local state filled in."
          },
          {
            "type": "markdown",
            "id": "0b020666e4d14b79",
            "text": "## One machine, one loop\n\n**Requirements:** Node ≥ 18. Nothing else — zero npm dependencies, no\nnetwork, no accounts. The multi-agent rounds need *a* model driver, and any\nof these works: Claude Code's Workflow tool (the reference), the Agent SDK,\nor an Ollama-class **local model** — hh_workshop ran every seat on a local\n12B, air-gapped, hashes computed code-side so the seat physically cannot\nsee the salt (`HARNESS_PATHS.md` §12). A laptop is enough; a Pi serves the\nwiki wall.\n\nThe loop, end to end:\n\n```bash\nnode tools/check.mjs                                   # 1 · prove the axioms — every gate\nnode tools/adventure.mjs                               # 2 · see your paths\nnode tools/new_instance.mjs ../my-harness my-harness   # 3 · scaffold (the wizard)\n#    fill every TODO in harness.config.mjs — ADOPTION.md, five answers, Gap first\nnode engine/conform.mjs ../my-harness                  # 4 · the gate accepts your config\nnode tools/bundle.mjs ../my-harness/harness.config.mjs ../my-harness/harness.workflow.mjs\n#    run the workflow (your driver) → runs/<runId>/    # 5 · a round: propose ⊥ prove\nnode tools/render_run.mjs ../my-harness r1             # 6 · audit — every seed re-derived\n#    fold as keystone: frontier first, chronicle, conform green again (README step 5)\nnode tools/mint_artefact.mjs ../my-harness r1          # 7 · seal what survived (κ)\nnode tools/wiki_install.mjs ../my-harness --farm ~/.wiki   # 8 · observe — the wall updates\n```\n\nStep 8 closes the cycle: the round's story is pages a person can fork, a\ngraph an agent can fetch, and a star seating on the lattice — all derived\nfrom the ledgers, so none of it can drift. Then the loop goes round again:\nwhat the wall shows becomes the next round's measure."
          },
          {
            "type": "markdown",
            "id": "7b16bc59eee7f72f",
            "text": "## Choose your adventure\n\nThe corpus this harness came from runs the same model at every register,\nfrom formal papers to narrative myth — and the harness carries that whole\nspan, because the discipline is register-invariant: **many tellings, one\ninvariant, and a gate that catches them drifting.**\n\n| register | path | what you run |\n|---|---|---|\n| most academic 🎓 | **autoresearch** — claims that survive an adversary | the litreview pattern: sweep ⊥ refute ⊥ judge, refuters blind to the prover; absence is never novelty; an all-clear run indicts itself (`HARNESS_PATHS.md` §15, `RESEARCH.md`) |\n| operational 🤺 | **the spar → your own instance** | the loop above — the wizard, the Gap, the census |\n| interop 🔗 | **acceptance & registries** | the DTG pattern: digest-manifest match, human gates, disclosure (§14); the descendant-lane pattern: inherit the constitution whole (§16) |\n| federated 🕸️ | **the Observe lane** | `WIKI.md` — wikis auto-populated per instance, `examples/wiki-farm/` in the box |\n| geometric ⭐ | **the lattice** | `star.mjs` (vertex ⊥ anchor, results at κ mod 64) · `spellweb.mjs --workshop` · `emit_feed.mjs` → /star, game42 |\n| most myth 📖 | **spells & chronicles** | `SPECIALISATION.md` personas and spells; chronicles read in date order — the same truths as the papers, told as story |"
          },
          {
            "type": "markdown",
            "id": "35d5b3bc3177dce0",
            "text": "## BYO interface, BYO experience\n\nEvery surface below is a **stable, derived, read-only projection**. Build\nany UI you like against them — a terminal, a game, a gallery, a voice — and\nyou inherit the discipline for free, because interfaces read projections and\n**never write ledgers**. The write path stays what it always was: seats\nwrite runs, the keystone folds, the First Person opens doors.\n\n| surface | shape | derived by | feeds |\n|---|---|---|---|\n| `frontier.json` | the numbers — sole authority (GR-1) | the keystone, by hand | anything that shows progress |\n| `runs/<id>/` | proposal_canon · gap · verdict, per lever | the loop | audit UIs, replays — every seed re-derivable from bytes |\n| `graph.json` | node `{id,type,label,domain,layer,desc}` · edge `{source,target,type}` | `spellweb.mjs` | knowledge-graph UIs, agent memory |\n| `star.json` (`star.v1`) | vertex ⊥ anchor + results at κ mod 64 | `star.mjs` | lattice UIs, game42, City-Key work |\n| `runtime-feed.v1` | moving ceiling R(t) · lattice · κ artefacts | `emit_feed.mjs` | /star instruments, dashboards |\n| wiki pages | FedWiki page JSON, slug-bijective | `wiki_emit.mjs` | any FedWiki client; fork-based federation |\n| artefact bundles | κ-addressed, evidence hash-manifest, `DOOR.md` | `mint_artefact.mjs` | anything that carries results across a boundary |\n| VRC edges | ed25519-signed κ→κ, signer `did:key` | `vrc.mjs` | cross-party trust graphs |\n\nTwo rules keep a BYO UI honest: cite numbers from `frontier.json`, never\nrestate them (GR-1); and render doors as doors — a UI may show the\npublish/serve/submit action, never perform it (T6)."
          },
          {
            "type": "markdown",
            "id": "636080f31fd86c8e",
            "text": "## Interoperability — how the work leaves home\n\n- **κ / UOR** — every sealed result is content-addressed by one κ law\n  (`tools/kappa.mjs`, `HOLONS.md`). κ's lineage is *from* UOR, so a\n  κ-address meets the UOR/kappa-registry substrate as shared lineage — the\n  uor_kappa lane (§16) is that meeting, run as research.\n- **VRC / credential specs** — *a reference proposes; a signature mints.*\n  A signed κ→κ edge with a `did:key` signer is the shape verifiable-\n  credential ecosystems already speak; the DTG cred-spec work maps onto it,\n  and `did:cid` identity is this layer named for people (hearthold, §11).\n- **FedWiki / OASIS** — federation by forking: every page carries its\n  journal, every site can fork any page it can reach, and cross-site links\n  are explicit references. The OASIS pattern (consented pages spooling to a\n  shared federation) rides the same rails — outward legs at the door.\n- **Acceptance flows** — when a counterparty must trust a result they\n  didn't watch happen: pin a manifest, re-run, byte-match, human-gate the\n  admission and the publication, disclose the agent (§14)."
          },
          {
            "type": "markdown",
            "id": "d0b6eebdb5f939c6",
            "text": "## The small-machine promise\n\nEverything in this table runs offline on modest hardware: the engine and\nevery gate (`check.mjs`), the data projections (`spellweb`, `star`,\n`emit_feed` — data only, views live with the consumer; `render_run` — one\nstatic audit page, no CDN), the wiki farm (one Node process; a Raspberry Pi\nserves a federation), and the loop itself under a local model driver. The\nonly thing that ever needs the network is the door — and that is exactly\nwhere a person is standing.\n\n```\n(⚔️⊥⿻⊥🧙)😊 = neg ⊕ bnot → succ\n```"
          },
          {
            "type": "markdown",
            "id": "ac010d8fbcfa5a6c",
            "text": "# Assets"
          },
          {
            "id": "b3707e65e04da9ea",
            "type": "assets",
            "text": "the-operators-loop"
          },
          {
            "type": "markdown",
            "id": "0b61e06b3cecf5e2",
            "text": "## Navigation\n\n← [[Welcome Visitors]] · [[The Dual-Agent Harness]]"
          },
          {
            "type": "markdown",
            "id": "0a9f6529d75320bd",
            "text": "---\n*the wiki is a projection; `~/dual-agent-harness` (git) is the source of truth · (⚔️⊥⿻⊥🧙)😊 = neg ⊕ bnot → succ*"
          }
        ]
      },
      "date": 1787093563942
    }
  ]
}