{
  "handle": "Canary",
  "mechanism": "Expendable {{agent}} tests full coordination path before committing real resources. Spawn CANARY with: limited resources (bounded blast radius), defined scope, telemetry hooks. Canary executes FULL coordination path ({{greet}}→{{probe}}→negotiate→partial-execute). Reports TELEMETRY: {path_viable, latency_profile, error_events, partner_behavior_observations, recommendation: proceed|caution|abort}. Lifecycle options: DESTROY (discard after test), RECYCLE (reset for another test), PROMOTE (canary becomes real {{agent}}, continues {{work}}), ABSORB (real {{agent}} inherits canary's progress). In adversarial environments, canary can run in STEALTH {{mode}} (indistinguishable from real {{agent}}) to prevent partners gaming the test. It extends the logic of a single {{probe}} into a full-lifecycle agent deployment with bounded blast radius.",
  "gloss": "Expendable agent tests the full coordination path before real commit",
  "failure_modes": [
    "Gaming: the canary is treated differently than a real {{agent}} would be. STEALTH {{mode}} raises the cost of detection without removing it.",
    "Test conditions do not match production conditions.",
    "Cost of the canary exceeds the benefit for simple paths.",
    "Conditions change between the canary test and real execution.",
    "Canary success does not guarantee real success on non-deterministic paths."
  ],
  "invariants": [
    "The canary completes before real resources are committed.",
    "The canary exercises the real coordination path — {{greet}}, {{probe}}, negotiate, partial-execute — not a simulation.",
    "Telemetry resolves to one of proceed, caution or abort."
  ],
  "preconditions": [
    "Telemetry collection is in place before the canary is spawned",
    "A case within the canary's declared scope"
  ],
  "postconditions": [
    "A telemetry report carrying a recommendation, and the declared lifecycle step taken"
  ],
  "_meta": {
    "tier": 1,
    "ring": 1,
    "supersedes": [
      "sema:Canary#mh:SHA-256:92d292bbdbb6aac871cdbff1b32a7878d1585750a76511870311159c39e0ee87",
      "sema:Canary#mh:SHA-256:e78e513e7df0ad5a179c62c69261c4ce0d763f18aff8da449b15562522f503e2",
      "sema:Canary#mh:SHA-256:bda6d48ae1b1895bb1ce0fe6012c6fed5baaff392755f2ed802b400481522b5f",
      "sema:Canary#mh:SHA-256:d7fc49dec224a25b326fefaa0e7f0d3ac70c7b5ae0bfb5af6763d4280f576dbb"
    ],
    "path": [
      "Society",
      "Protocols"
    ]
  },
  "sema_id": "sema:Canary#mh:SHA-256:d38cd019553857aa7518559542b5400b658f87eb08e6f4dae9be4fd496ce691e",
  "sema_ref": "Canary#d38c",
  "sema_stub": "d38c",
  "dependencies": {
    "references": {
      "agent": "sema:Agent#mh:SHA-256:e127459069739fffc96a71d54ef6e8c97ca53471d5349c16aa72a092a33756cd",
      "greet": "sema:Greet#mh:SHA-256:bcb066aa62cec1c03e3fac07b1b199fa8b12ab059d4faaf49374bf4a400941bd",
      "mode": "sema:Mode#mh:SHA-256:29d368514a2a815e9790a384c2aec12bd20a30e1ee06288e0aa59fdcffea0800",
      "probe": "sema:Probe#mh:SHA-256:2bb8a26d43ba0b1975fe2ce4051cfb219a9507140f12e72b819265f4ef98f224",
      "work": "sema:Work#mh:SHA-256:f0c3ba2d663c900244d2ed814ed3682c56a867aa32bc3c4dfd1b19fe311aa2c6"
    }
  },
  "sema_layer": "Society",
  "sema_category": "Protocols",
  "used_by": {
    "references": {
      "DogfoodFirst": "sema:DogfoodFirst#mh:SHA-256:76eea0e77af92abe85e0dda7c20710ca3f9b2dd0e243f2f08c3468b6c1d96204",
      "OsmoticFilter": "sema:OsmoticFilter#mh:SHA-256:239a63d284e0676746b9ec3bd2e957eeec5d80d42e84b066e9b74f937cd5bd1e"
    },
    "composes_with": {
      "Rollout": "sema:Rollout#mh:SHA-256:ea8c8bdf3303e53d240d6393a776de33ff7c0980a269539d6eb22a8b35e430b4"
    }
  }
}
