{
  "name": "agrifusion",
  "host": "agrifusion.coorior.io",
  "spec": "agrifusion.registry/0",
  "doctrine": {
    "root_metaphor": "remixing systems — collective design through modification (Nickerson, ch7, Handbook of Digital Innovation, 2020)",
    "triad": [
      "non_specificity",
      "inter_operability",
      "re_contextualisability"
    ],
    "registry_rule": "registered by capability, never purpose",
    "catadexis": {
      "breed": "Kitano topology x catadexis dynamics",
      "mapping": {
        "fan_in": "receptive face",
        "knot": "conversion",
        "fan_out": "catalytic face"
      },
      "bias": "100*(reception-catalysis)/(reception+catalysis); < -35 hyper-catalysis (theatre), > +35 hyper-reception (stasis), band = catadectic",
      "rule": "a composition is eligible only in the catadectic band: its claims-of-use must be matched by what it can actually absorb",
      "warning": "catadexis_optimal is not safety - HOT says every optimised system is fragile to what it did not model"
    },
    "bowtie": {
      "source": "Kitano, Biological robustness, Nat Rev Genet 5:826-837 (2004)",
      "shape": "fan-in (many callers/purposes) -> conserved knot -> fan-out (many recontextualisations)",
      "knot": [
        "module descriptor schema",
        "MCP transport",
        "claim-tier algebra"
      ],
      "fans": [
        "callers/purposes (fan-in)",
        "recontextualisations (fan-out)"
      ],
      "rule": "guard the knot, free the fans: a change at the knot breaks every composition; a change at a fan breaks one",
      "buffering": "capability classes are buffering units - two modules with one capability = a genetic buffer against upstream perturbation",
      "honest_limit": "robust-yet-fragile (HOT): optimised for designed compositions, fragile to unmodelled ones; probe with adversarial compositions that type-check and should not"
    }
  },
  "count": 8,
  "modules": [
    {
      "id": "strata.pedon.carbon-baseline",
      "version": "0.2.0",
      "capability": "spatial.soil.carbon.stock.estimate",
      "status": "live",
      "transport": "mcp",
      "endpoint": "https://studio-harness.alex-sull.workers.dev/mcp",
      "claim_tier": "L1",
      "non_specificity": "Takes a place (lat/lon) and an area (ha). Returns a quantile envelope of organic carbon stock. It does not know or care whether that number is being used for natural-capital banking, provenance, or compliance.",
      "recontextualisations": [
        "natural-capital baseline (bankable soil carbon)",
        "3N provenance (Nutrient/Nature/Net-zero mark)",
        "compliance evidence (audit pack)"
      ],
      "inputs": [
        {
          "name": "lat",
          "mime": "application/json",
          "schema": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          }
        },
        {
          "name": "lon",
          "mime": "application/json",
          "schema": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          }
        },
        {
          "name": "area_ha",
          "mime": "application/json",
          "schema": {
            "type": "number",
            "exclusiveMinimum": 0
          }
        }
      ],
      "outputs": [
        {
          "name": "envelope",
          "mime": "application/json",
          "schema": {
            "type": "object",
            "properties": {
              "baseline_tCO2e": {
                "type": "number"
              },
              "conservative_deduction": {
                "type": "number"
              },
              "envelope_tCO2e_per_ha": {
                "type": "object",
                "properties": {
                  "q05": {
                    "type": "number"
                  },
                  "q50": {
                    "type": "number"
                  },
                  "q95": {
                    "type": "number"
                  }
                }
              },
              "claim_tier": {
                "type": "string"
              }
            }
          }
        }
      ],
      "provenance": {
        "source": "ISRIC SoilGrids v2.0",
        "license": "CC-BY-4.0",
        "notes": "claimed L1: spatial interpolation, not a measured attribute"
      },
      "echo": [
        "validation",
        "upstream_error"
      ],
      "echo_missing": [
        "timeout_partial",
        "correction"
      ]
    },
    {
      "id": "strata.pedon.carbon-stock-slga",
      "version": "0.0.1",
      "capability": "spatial.soil.carbon.stock.estimate",
      "status": "planned",
      "transport": "mcp",
      "endpoint": null,
      "claim_tier": "L1",
      "non_specificity": "Identical capability to the SoilGrids twin: a place + an area in, a quantile envelope out. It knows nothing of purpose. It exists so the capability survives one upstream pausing.",
      "recontextualisations": [
        "natural-capital baseline (AU primary)",
        "3N provenance",
        "compliance evidence"
      ],
      "inputs": [],
      "outputs": [],
      "provenance": {
        "source": "TERN SLGA v2 (CSIRO)",
        "license": "see upstream",
        "notes": "GENETIC BUFFER for strata.pedon.carbon-baseline — same capability class, independent provenance, so the function survives a SoilGrids pause (DiscorsConcordia C2)"
      },
      "echo": [],
      "echo_missing": [
        "validation",
        "upstream_error",
        "timeout_partial",
        "correction"
      ]
    },
    {
      "id": "strata.pedon.point-envelope",
      "version": "0.2.0",
      "capability": "spatial.soil.property.envelope",
      "status": "live",
      "transport": "mcp",
      "endpoint": "https://studio-harness.alex-sull.workers.dev/mcp",
      "claim_tier": "L1",
      "non_specificity": "Takes a place and a depth interval. Returns per-property quantiles plus a joint copula envelope on carbon stock. Purpose-agnostic.",
      "recontextualisations": [
        "paddock reconnaissance",
        "zone delineation",
        "baseline inventory"
      ],
      "inputs": [
        {
          "name": "lat",
          "mime": "application/json",
          "schema": {
            "type": "number"
          }
        },
        {
          "name": "lon",
          "mime": "application/json",
          "schema": {
            "type": "number"
          }
        },
        {
          "name": "depth_interval_cm",
          "mime": "application/json",
          "schema": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 2,
            "maxItems": 2
          }
        }
      ],
      "outputs": [
        {
          "name": "properties+envelope",
          "mime": "application/json",
          "schema": {
            "type": "object"
          }
        }
      ],
      "provenance": {
        "source": "ISRIC SoilGrids v2.0",
        "license": "CC-BY-4.0"
      },
      "echo": [
        "validation",
        "upstream_error"
      ],
      "echo_missing": [
        "timeout_partial",
        "correction"
      ]
    },
    {
      "id": "volta.clearing.x402-challenge",
      "version": "0.1.0",
      "capability": "machine.payment.challenge",
      "status": "live",
      "transport": "http",
      "endpoint": "https://studio-harness.alex-sull.workers.dev/mcp",
      "claim_tier": "L1",
      "non_specificity": "Emits a 402 payment requirement for a resource and accepts a settlement proof. It does not know what is being sold.",
      "recontextualisations": [
        "data vend",
        "carrier fee (never wages — award requires EFT)",
        "API metering"
      ],
      "inputs": [
        {
          "name": "resource",
          "mime": "text/plain",
          "schema": {
            "type": "string"
          }
        }
      ],
      "outputs": [
        {
          "name": "402-requirement",
          "mime": "application/json",
          "schema": {
            "type": "object"
          }
        }
      ],
      "provenance": {
        "source": "x402 specification v2",
        "license": "see upstream",
        "notes": "rail decision: x402, not L402 — pending a US-entity question per DiscorsConcordia D1"
      },
      "echo": [
        "payment_required",
        "settlement"
      ],
      "echo_missing": [
        "dispute"
      ]
    },
    {
      "id": "volta.nonce.coordinator",
      "version": "0.1.0",
      "capability": "replay.single-use.attestation",
      "status": "live",
      "transport": "http",
      "endpoint": "https://studio-harness.alex-sull.workers.dev/mcp",
      "claim_tier": "L1",
      "non_specificity": "Given a nonce, atomically records that it has been spent and reports whether this call is the first. Rail-agnostic and content-agnostic.",
      "recontextualisations": [
        "payment receipt anti-replay",
        "idempotency key",
        "one-shot dispatch guard"
      ],
      "inputs": [
        {
          "name": "nonce",
          "mime": "application/json",
          "schema": {
            "type": "string",
            "minLength": 8,
            "maxLength": 128
          }
        }
      ],
      "outputs": [
        {
          "name": "spent",
          "mime": "application/json",
          "schema": {
            "type": "object",
            "properties": {
              "spent": {
                "type": "boolean"
              },
              "replay": {
                "type": "boolean"
              }
            }
          }
        }
      ],
      "provenance": {
        "source": "coorior (SQLite Durable Object)",
        "license": "private"
      },
      "echo": [
        "replay",
        "validation"
      ],
      "echo_missing": []
    },
    {
      "id": "aletheia.truth.refusal",
      "version": "0.2.0",
      "capability": "epistemic.boundary.enforcement",
      "status": "live",
      "transport": "mcp",
      "endpoint": "https://studio-harness.alex-sull.workers.dev/mcp",
      "claim_tier": "L1",
      "non_specificity": "Accepts a request for causal output derived from descriptive data and refuses it in code, keeping the session alive. Domain-agnostic: it enforces whatever truth-chain boundary it is configured with.",
      "recontextualisations": [
        "fertilizer dosing refusal",
        "yield prediction refusal",
        "any prescriptive ask on L1 evidence"
      ],
      "inputs": [
        {
          "name": "request",
          "mime": "application/json",
          "schema": {
            "type": "object"
          }
        }
      ],
      "outputs": [
        {
          "name": "refusal",
          "mime": "application/json",
          "schema": {
            "type": "object",
            "properties": {
              "code": {
                "type": "number"
              },
              "message": {
                "type": "string"
              }
            }
          }
        }
      ],
      "provenance": {
        "source": "coorior (Agrarian Truth Chain)",
        "license": "private"
      },
      "echo": [
        "refusal",
        "validation"
      ],
      "echo_missing": [
        "correction"
      ]
    },
    {
      "id": "nomad.eor.wage-ledger",
      "version": "0.0.1",
      "capability": "labour.hours.award-floor.reconciliation",
      "status": "planned",
      "transport": "mcp",
      "endpoint": null,
      "claim_tier": "L1",
      "non_specificity": "Takes hours and a piece tally; returns the reconciled payable amount against a configurable award floor. It is not built for one award or one crop.",
      "recontextualisations": [
        "Horticulture Award MA000028 casual L1",
        "piecework clause 15.2(f) top-up",
        "audit evidence pack"
      ],
      "inputs": [],
      "outputs": [],
      "provenance": {
        "source": "pending Draft 2 audit evidence base",
        "license": "private",
        "notes": "gated: margin at $40.59 is 0.44–1.3% FY26/27 — reprice before build"
      },
      "echo": [],
      "echo_missing": [
        "validation",
        "refusal",
        "correction"
      ]
    },
    {
      "id": "vektor.mesh.harvest-mark",
      "version": "0.0.1",
      "capability": "biomass.state.attestation",
      "status": "planned",
      "transport": "mcp",
      "endpoint": null,
      "claim_tier": "L1",
      "non_specificity": "Takes a volume, a place, and a temperature; emits a signed mark attesting the state of a perishable mass at a moment. Purpose-agnostic.",
      "recontextualisations": [
        "senescence-aware dispatch",
        "cold-chain provenance",
        "3N mark provenance"
      ],
      "inputs": [],
      "outputs": [],
      "provenance": {
        "source": "pending",
        "license": "private",
        "notes": "transport decision: custom MCP/HTTP, NOT NIP-90/NIP-15 (both unrecommended)"
      },
      "echo": [],
      "echo_missing": [
        "validation",
        "upstream_error"
      ]
    }
  ]
}