{
  "title": "Dual Agent Harness",
  "story": [
    {
      "type": "markdown",
      "id": "629cb9ceaeeb1199",
      "text": "# Dual Agent Harness\n\n**Category** meta · **Version** 1.1\n\n**Equation term** `the loop that turns Φ(Σ) separation + the held-out gate into validated progress; R(t)=(C_S+C_M)/H(X) operationalised`\n\nThe operational Swordsman ⊥ Mage autoresearch loop: how to actually RUN dual-agent separation as a self-improvement harness against a concrete optimization target. The Mage (bnot · proposer) conceals/reduces; the Swordsman (neg · prover) signs only what survives an un-tuneable held-out gate; the Gap between them is the non-collusion precondition, physically realized as a Fiat-Shamir witness set the proposer cannot see. Activates when building or driving an agent loop that must produce VALIDATED improvements (circuit/gate/qubit reduction, cost optimization, any \"make it cheaper and prove it\" task) without fooling itself with mirages. Triggers: \"dual-agent loop\", \"swordsman mage harness\", \"autoresearch\", \"proposer prover loop\", \"reduce gates or qubits\", \"ecdsa.fail\", \"circuit co-evolution\", \"held-apart agents\", \"neg bnot succ\". V6 register note (2026-07-11): conjecture/version citations resolve to agentprivacy-docs/research/CONJECTURE_REGISTER_V6.md (head C96); model head: privacy_value_v6_formal_specification.md."
    },
    {
      "type": "markdown",
      "id": "b1a6721c787669ab",
      "text": "**Separation is a guarantee; this skill makes it a method.** It takes two skills you already\nhave — `separation-enforcement` (why the Swordsman and Mage must be held apart) and\n`horizon-gate` (why a claim is worth nothing until it survives an un-tuneable gate) — and\nturns them into a running loop that produces *validated* improvements on a real target.\n\n> **Canonical home:** this method now lives in **`~/dual-agent-harness/`** — the generic,\n> domain-free soulbis ⊥ soulbae skeleton (six-phase loop, seven seats, the six PVM trusts,\n> `conform.mjs` proving the algebra on every run, `tools/new_instance.mjs` for cold starts,\n> `HARNESS_PATHS.md` cataloguing every fitted instance). Your harness is a config, not a fork.\n> The earlier `agentprivacy-dual-agent-harness/` directory is SUPERSEDED. This plugin skill is\n> the registered mirror. To *build or run* a harness, work from that framework; use this skill\n> to recognise when the pattern applies and to recall the discipline.\n\n> \"The proposer that grades itself builds mirages; only what the Gap could not tune to is a result.\"\n\n**Spell:** `measure → propose(held-apart) → hunt → assay(held-out) → critic → accept-only-on-validated-product`"
    },
    {
      "type": "markdown",
      "id": "0684b78bef2f1cfc",
      "text": "## 1. The algebra it runs on\n\nThe V6 master inscription is the harness:\n\n```\n(⚔️ ⊥ ⿻ ⊥ 🧙) 😊  =  neg ⊕ bnot → succ\n```\n\nProven on Z/64Z (V6 formal spec): `neg(x) = (64−x) mod 64` (the **Swordsman**),\n`bnot(x) = 63−x` (the **Mage**), and **`neg(bnot(x)) = succ(x)`** — the successor is not\nprimitive; it emerges from the two free involutions composed across the Gap. Operationally:\nthe **result advances one step only when a reduction (Mage) is signed by a proof (Swordsman)\nheld apart from it.** Neither agent alone produces `succ`.\n\n## 2. Role assignment (map your target onto the three seats)\n\n| Seat | Algebra | Mandate | Must NOT |\n|---|---|---|---|\n| **🧙 Mage — proposer** | `bnot` (conceal/reduce) | propose the smallest bounded change that makes the artifact cheaper; re-express paid work as free operations where the structure permits | see or reason about the held-out test derivation (that is collusion → mirage) |\n| **⿻ the Gap — separation** | `⊕` | reseed/derive the witnesses from the proposer's OWN output (Fiat-Shamir) so they cannot be tuned to | leak the proposer's draft into the witness choice, or vice versa |\n| **⚔️ Swordsman — prover** | `neg` (sign/commit) | run the full held-out gate; arbitrate on the true objective; sign only a validated win; name and reject mirages | propose changes itself, or accept a probe pass as a result |\n\nThis is `Φ(Σ)` with `det(Σ) ≠ 0` put in motion: if the proposer can grade itself, the rows\ncollapse and the loop becomes a mirage factory (the `I(Y_S; Y_M | X) = 0` precondition broken).\n\n## 3. The loop\n\n1. **Measure (don't guess).** Sync the real frontier; meter every candidate lever's *true* cost;\n   rank by the true objective (for a product objective, the product — see §4), preferring the\n   biggest plausibly-findable, *structural* win. (City: Eos 🌅.)\n2. **Propose (Mage, held apart).** Run a panel of finders, each a distinct lens, blind to one\n   another and to the witnesses. One bounded change each, with a source-backed rationale and the\n   single smallest fix (RCI Before-step).\n3. **Hunt (the Gap).** Reseed the held-out witnesses from each proposal; cheap pre-screen\n   produces *candidates*, never results.\n4. **Assay (Swordsman).** Arbitrate on the true objective; run the **full** held-out gate; only a\n   clean full pass is validated. A candidate that pleased the probe and fails the full set is a\n   **mirage** — name it, reject it, however cheap it looked. (City: Dokimé 🪨, the 9024.)\n5. **Critic.** Classify the round *structural / probe-limited / noise*; feed one source-backed\n   lead to the next Measure. Stop sweeping the moment failures repeat without a reason. (City: Poros.)\n6. **Accept** only a validated improvement of the true objective (SkillOpt: a bounded edit accepted\n   only on strict held-out improvement). Bake/submit are **human-triggered, outward-facing.**\n\n## 4. The complement pair (when the objective is a product)\n\nIf the cost is a *product of two factors* (e.g. `Toffoli × qubits`), do not optimise it with one\nproposer. The model's complement-pair primitive says: split the Mage into **Factor-A-Minimiser ⊥\nFactor-B-Minimiser** (genuinely opposed — cutting one can blow up the other), and add a\n**Cliff-Watcher** that scores `Δ(product)` and kills any move that wins one factor at the other's\nexpense (the break-even cliff). The reduction comes from the *team structure*, not one agent\ntrying harder.\n\n## 5. The worked instance — ecdsa.fail (PQC durability)\n\nThe canonical target is the ecdsa.fail benchmark: the cheapest reversible secp256k1 point-add,\n`score = avg_Toffoli × peak_qubits`, lower better, validated on **9024 = 141×64** Fiat-Shamir\nwitnesses. Honest framing (hold it always): **quantum resource estimation / a durability signal,\nnot an attack.** Nothing here breaks ECDSA; nothing is \"fully post-quantum safe.\"\n\nThe Mage's reduction discipline there *is* `neg(bnot(x)) = succ(x)`: two's complement\n(`subtract = complement, add, complement back`) builds the adder step from free X gates, paying\nToffoli only for carries. The runnable harness is\n`shor_mage/harness/swordsman_mage_harness.mjs` (a Workflow script); the GPU island toolkit is the\nGap's pre-screen; Dokimé's `validate` is the full gate. Registered as conjectures C67–C71\n(Horizon District) and C82/C83 (the moving ceiling + non-collusion).\n\n## 6. Decision patterns\n\n- **Building a self-improvement loop?** → assign the three seats first; if you can't name a Gap the\n  proposer can't tune to, you don't have a harness, you have a mirage generator.\n- **A proposal \"looks cheaper\"?** → it's a candidate. Reseed the witnesses, run the full gate.\n- **Objective is a product/multi-factor?** → split the proposer into a complement pair + a\n  cliff-watcher on the product.\n- **Tempted to let the Mage peek at the test set \"just to speed things up\"?** → that is collusion;\n  `det(Σ) → 0`; every result after it is suspect. Don't.\n- **A win you can't explain structurally?** → label it probe-limited; hold for the full gate."
    },
    {
      "type": "markdown",
      "id": "80fc81f65141ea82",
      "text": "*Authored 2026-06-10. Composes `separation-enforcement` (the held-apart law) and `horizon-gate`\n(the un-tuneable gate) into a running method, grounded in the PVM V6 algebra. Verify:*\n[agentprivacy.ai](https://agentprivacy.ai) · [github.com/mitchuski/agentprivacy-docs](https://github.com/mitchuski/agentprivacy-docs)"
    },
    {
      "type": "markdown",
      "id": "07f65c57c171e87f",
      "text": "## Provenance\nForkable skill page migrated from the agentprivacy skills repo (`persona/agentprivacy-dual-agent-harness`, v1.1).\nSource of truth: `agentprivacy-skills-v5`. Fork this page to materialize a local `SKILL.md` via `fedwiki-to-skill`.\n\n*origin: 0xagentprivacy · author: Mitchell Travers*"
    },
    {
      "type": "markdown",
      "id": "c6a92d01aa606213",
      "text": "# Assets"
    },
    {
      "type": "assets",
      "id": "05a3c72b2b8e05a1",
      "text": "dual-agent-harness"
    },
    {
      "type": "markdown",
      "id": "9bae2c055bd0fce7",
      "text": "## Navigation\n\n← [[Welcome Visitors]] · [[Meta Skills]]"
    }
  ],
  "journal": [
    {
      "type": "create",
      "item": {
        "title": "Dual Agent Harness",
        "story": [
          {
            "type": "markdown",
            "id": "629cb9ceaeeb1199",
            "text": "# Dual Agent Harness\n\n**Category** meta · **Version** 1.1\n\n**Equation term** `the loop that turns Φ(Σ) separation + the held-out gate into validated progress; R(t)=(C_S+C_M)/H(X) operationalised`\n\nThe operational Swordsman ⊥ Mage autoresearch loop: how to actually RUN dual-agent separation as a self-improvement harness against a concrete optimization target. The Mage (bnot · proposer) conceals/reduces; the Swordsman (neg · prover) signs only what survives an un-tuneable held-out gate; the Gap between them is the non-collusion precondition, physically realized as a Fiat-Shamir witness set the proposer cannot see. Activates when building or driving an agent loop that must produce VALIDATED improvements (circuit/gate/qubit reduction, cost optimization, any \"make it cheaper and prove it\" task) without fooling itself with mirages. Triggers: \"dual-agent loop\", \"swordsman mage harness\", \"autoresearch\", \"proposer prover loop\", \"reduce gates or qubits\", \"ecdsa.fail\", \"circuit co-evolution\", \"held-apart agents\", \"neg bnot succ\". V6 register note (2026-07-11): conjecture/version citations resolve to agentprivacy-docs/research/CONJECTURE_REGISTER_V6.md (head C96); model head: privacy_value_v6_formal_specification.md."
          },
          {
            "type": "markdown",
            "id": "b1a6721c787669ab",
            "text": "**Separation is a guarantee; this skill makes it a method.** It takes two skills you already\nhave — `separation-enforcement` (why the Swordsman and Mage must be held apart) and\n`horizon-gate` (why a claim is worth nothing until it survives an un-tuneable gate) — and\nturns them into a running loop that produces *validated* improvements on a real target.\n\n> **Canonical home:** this method now lives in **`~/dual-agent-harness/`** — the generic,\n> domain-free soulbis ⊥ soulbae skeleton (six-phase loop, seven seats, the six PVM trusts,\n> `conform.mjs` proving the algebra on every run, `tools/new_instance.mjs` for cold starts,\n> `HARNESS_PATHS.md` cataloguing every fitted instance). Your harness is a config, not a fork.\n> The earlier `agentprivacy-dual-agent-harness/` directory is SUPERSEDED. This plugin skill is\n> the registered mirror. To *build or run* a harness, work from that framework; use this skill\n> to recognise when the pattern applies and to recall the discipline.\n\n> \"The proposer that grades itself builds mirages; only what the Gap could not tune to is a result.\"\n\n**Spell:** `measure → propose(held-apart) → hunt → assay(held-out) → critic → accept-only-on-validated-product`"
          },
          {
            "type": "markdown",
            "id": "0684b78bef2f1cfc",
            "text": "## 1. The algebra it runs on\n\nThe V6 master inscription is the harness:\n\n```\n(⚔️ ⊥ ⿻ ⊥ 🧙) 😊  =  neg ⊕ bnot → succ\n```\n\nProven on Z/64Z (V6 formal spec): `neg(x) = (64−x) mod 64` (the **Swordsman**),\n`bnot(x) = 63−x` (the **Mage**), and **`neg(bnot(x)) = succ(x)`** — the successor is not\nprimitive; it emerges from the two free involutions composed across the Gap. Operationally:\nthe **result advances one step only when a reduction (Mage) is signed by a proof (Swordsman)\nheld apart from it.** Neither agent alone produces `succ`.\n\n## 2. Role assignment (map your target onto the three seats)\n\n| Seat | Algebra | Mandate | Must NOT |\n|---|---|---|---|\n| **🧙 Mage — proposer** | `bnot` (conceal/reduce) | propose the smallest bounded change that makes the artifact cheaper; re-express paid work as free operations where the structure permits | see or reason about the held-out test derivation (that is collusion → mirage) |\n| **⿻ the Gap — separation** | `⊕` | reseed/derive the witnesses from the proposer's OWN output (Fiat-Shamir) so they cannot be tuned to | leak the proposer's draft into the witness choice, or vice versa |\n| **⚔️ Swordsman — prover** | `neg` (sign/commit) | run the full held-out gate; arbitrate on the true objective; sign only a validated win; name and reject mirages | propose changes itself, or accept a probe pass as a result |\n\nThis is `Φ(Σ)` with `det(Σ) ≠ 0` put in motion: if the proposer can grade itself, the rows\ncollapse and the loop becomes a mirage factory (the `I(Y_S; Y_M | X) = 0` precondition broken).\n\n## 3. The loop\n\n1. **Measure (don't guess).** Sync the real frontier; meter every candidate lever's *true* cost;\n   rank by the true objective (for a product objective, the product — see §4), preferring the\n   biggest plausibly-findable, *structural* win. (City: Eos 🌅.)\n2. **Propose (Mage, held apart).** Run a panel of finders, each a distinct lens, blind to one\n   another and to the witnesses. One bounded change each, with a source-backed rationale and the\n   single smallest fix (RCI Before-step).\n3. **Hunt (the Gap).** Reseed the held-out witnesses from each proposal; cheap pre-screen\n   produces *candidates*, never results.\n4. **Assay (Swordsman).** Arbitrate on the true objective; run the **full** held-out gate; only a\n   clean full pass is validated. A candidate that pleased the probe and fails the full set is a\n   **mirage** — name it, reject it, however cheap it looked. (City: Dokimé 🪨, the 9024.)\n5. **Critic.** Classify the round *structural / probe-limited / noise*; feed one source-backed\n   lead to the next Measure. Stop sweeping the moment failures repeat without a reason. (City: Poros.)\n6. **Accept** only a validated improvement of the true objective (SkillOpt: a bounded edit accepted\n   only on strict held-out improvement). Bake/submit are **human-triggered, outward-facing.**\n\n## 4. The complement pair (when the objective is a product)\n\nIf the cost is a *product of two factors* (e.g. `Toffoli × qubits`), do not optimise it with one\nproposer. The model's complement-pair primitive says: split the Mage into **Factor-A-Minimiser ⊥\nFactor-B-Minimiser** (genuinely opposed — cutting one can blow up the other), and add a\n**Cliff-Watcher** that scores `Δ(product)` and kills any move that wins one factor at the other's\nexpense (the break-even cliff). The reduction comes from the *team structure*, not one agent\ntrying harder.\n\n## 5. The worked instance — ecdsa.fail (PQC durability)\n\nThe canonical target is the ecdsa.fail benchmark: the cheapest reversible secp256k1 point-add,\n`score = avg_Toffoli × peak_qubits`, lower better, validated on **9024 = 141×64** Fiat-Shamir\nwitnesses. Honest framing (hold it always): **quantum resource estimation / a durability signal,\nnot an attack.** Nothing here breaks ECDSA; nothing is \"fully post-quantum safe.\"\n\nThe Mage's reduction discipline there *is* `neg(bnot(x)) = succ(x)`: two's complement\n(`subtract = complement, add, complement back`) builds the adder step from free X gates, paying\nToffoli only for carries. The runnable harness is\n`shor_mage/harness/swordsman_mage_harness.mjs` (a Workflow script); the GPU island toolkit is the\nGap's pre-screen; Dokimé's `validate` is the full gate. Registered as conjectures C67–C71\n(Horizon District) and C82/C83 (the moving ceiling + non-collusion).\n\n## 6. Decision patterns\n\n- **Building a self-improvement loop?** → assign the three seats first; if you can't name a Gap the\n  proposer can't tune to, you don't have a harness, you have a mirage generator.\n- **A proposal \"looks cheaper\"?** → it's a candidate. Reseed the witnesses, run the full gate.\n- **Objective is a product/multi-factor?** → split the proposer into a complement pair + a\n  cliff-watcher on the product.\n- **Tempted to let the Mage peek at the test set \"just to speed things up\"?** → that is collusion;\n  `det(Σ) → 0`; every result after it is suspect. Don't.\n- **A win you can't explain structurally?** → label it probe-limited; hold for the full gate."
          },
          {
            "type": "markdown",
            "id": "80fc81f65141ea82",
            "text": "*Authored 2026-06-10. Composes `separation-enforcement` (the held-apart law) and `horizon-gate`\n(the un-tuneable gate) into a running method, grounded in the PVM V6 algebra. Verify:*\n[agentprivacy.ai](https://agentprivacy.ai) · [github.com/mitchuski/agentprivacy-docs](https://github.com/mitchuski/agentprivacy-docs)"
          },
          {
            "type": "markdown",
            "id": "07f65c57c171e87f",
            "text": "## Provenance\nForkable skill page migrated from the agentprivacy skills repo (`persona/agentprivacy-dual-agent-harness`, v1.1).\nSource of truth: `agentprivacy-skills-v5`. Fork this page to materialize a local `SKILL.md` via `fedwiki-to-skill`.\n\n*origin: 0xagentprivacy · author: Mitchell Travers*"
          },
          {
            "type": "markdown",
            "id": "c6a92d01aa606213",
            "text": "# Assets"
          },
          {
            "type": "assets",
            "id": "05a3c72b2b8e05a1",
            "text": "dual-agent-harness"
          },
          {
            "type": "markdown",
            "id": "9bae2c055bd0fce7",
            "text": "## Navigation\n\n← [[Welcome Visitors]] · [[Meta Skills]]"
          }
        ]
      },
      "date": 1787093608154
    }
  ]
}