{
  "handle": "AgentDiscover",
  "mechanism": "Macro for {{discover}}({{agent}}). A protocol for agents to advertise their capabilities and discover other agents dynamically. Each agent publishes a capability {{card}} describing what it can do, its input/output schemas, and trust requirements. Agents query a registry (or broadcast) to find collaborators for subtasks. Enables dynamic multi-agent composition without hardcoded agent references. It instantiates the abstract {{discover}} primitive on the {{agent}} type, specifically querying capability registries rather than passive data stores.",
  "gloss": "Advertise capabilities and discover collaborating agents",
  "failure_modes": [
    "Capability Inflation: Agents over-claiming abilities.",
    "Discovery Spam: Too many irrelevant agents matching queries.",
    "Trust Bootstrap: No basis for trusting newly discovered agents."
  ],
  "invariants": [
    "Discovery protocol must be public/standard",
    "No sensitive state leaked during handshake"
  ],
  "preconditions": [
    "Broadcast capability",
    "Listener on known channel"
  ],
  "postconditions": [
    "{{agent}} ID and capabilities exchanged"
  ],
  "_meta": {
    "tier": 2,
    "ring": 1,
    "supersedes": [
      "sema:AgentDiscover#mh:SHA-256:34b6d87b981ecbdcbd082e7316de5a8b5b98899eb35dff4747a48bdaadbe5424",
      "sema:AgentDiscover#mh:SHA-256:d88a7f9c1d65eda254b0cb54552da55832d849a23049c48a045059d9d24c2bf2",
      "sema:AgentDiscover#mh:SHA-256:73ca095c570d4eae2bb90aa8f768e5aa3f332f8c97005980f3fdf330a63a1845",
      "sema:AgentDiscover#mh:SHA-256:6b8cae26b93749bbe65084b1a0e93266cbbf1e83cc2bd366d3500cac2974d8a4"
    ],
    "path": [
      "Society",
      "Protocols"
    ]
  },
  "sema_id": "sema:AgentDiscover#mh:SHA-256:b784015934d1ccca13707ea806a03a3c7951a8de87bdd7a5c7a1d8bd5d93ce5e",
  "sema_ref": "AgentDiscover#b784",
  "sema_stub": "b784",
  "signature": [
    "Discover(Agent)"
  ],
  "dependencies": {
    "references": {
      "agent": "sema:Agent#mh:SHA-256:e127459069739fffc96a71d54ef6e8c97ca53471d5349c16aa72a092a33756cd",
      "card": "sema:Card#mh:SHA-256:e4b2ca76f43a691e7bd7932362512a5e929c62efc6c3d2eb4a9369e5108fa074",
      "discover": "sema:Discover#mh:SHA-256:f6e09de2a5b38c031651d22539fafaa46e32869b06dae8009bde18cb249da69b"
    }
  },
  "sema_layer": "Society",
  "sema_category": "Protocols",
  "used_by": {}
}
