{
  "schemaVersion": "decide_discoverability_catalog_v1",
  "reviewedAt": "2026-08-01",
  "canonicalOrigin": "https://www.decide.fyi",
  "developerEntry": "/developers",
  "protocols": [
    {
      "id": "decision_api_v1",
      "name": "Decision API",
      "maturity": "production_protocol",
      "docsPath": "/resources/docs",
      "referencePath": "/resources/docs/api-reference",
      "openApiPath": "/openapi.json",
      "description": "Create a deterministic yes, no, or review Decision Record before software changes state."
    },
    {
      "id": "decision_record_v1",
      "name": "Decision Record v1",
      "maturity": "production_protocol",
      "docsPath": "/resources/docs/verification",
      "verifyPath": "/verify",
      "description": "Replayable decision proof with hashes, evidence, policy version, and verification material."
    },
    {
      "id": "rulebook_v1",
      "name": "Rulebook v1",
      "maturity": "production_protocol",
      "docsPath": "/resources/docs#application-binding",
      "description": "Versioned declarative rules that bind request facts to deterministic application verdicts."
    }
  ],
  "patterns": [
    {
      "id": "pricing_exception",
      "name": "Pricing Exception Gate",
      "maturity": "reference_pattern",
      "path": "/resources/patterns#pricing_exception",
      "examplePath": "/resources/examples#policy-patterns",
      "integrationPaths": [
        "/resources/integrations#crm",
        "/resources/integrations#billing"
      ],
      "actionBoundary": "Approve or review a discount before CRM or billing mutation."
    },
    {
      "id": "refund_review",
      "name": "Refund Review Gate",
      "maturity": "reference_pattern",
      "path": "/resources/patterns#refund_review",
      "examplePath": "/resources/examples#policy-patterns",
      "integrationPaths": [
        "/resources/integrations#billing",
        "/resources/integrations#automation"
      ],
      "actionBoundary": "Route a refund before billing or account tooling issues a credit."
    },
    {
      "id": "agent_action_gate",
      "name": "Agent Action Gate",
      "maturity": "reference_pattern",
      "path": "/resources/patterns#agent_action_gate",
      "examplePath": "/resources/examples#routing",
      "integrationPaths": [
        "/resources/integrations#agents",
        "/resources/integrations#queues"
      ],
      "actionBoundary": "Authorize an agent-proposed tool action before execution."
    },
    {
      "id": "crm_writeback_gate",
      "name": "CRM Write-Back Gate",
      "maturity": "reference_pattern",
      "path": "/resources/patterns#crm_writeback_gate",
      "examplePath": "/resources/examples#crm-sync",
      "integrationPaths": [
        "/resources/integrations#crm"
      ],
      "actionBoundary": "Record a verdict before a CRM update and attach its write-back receipt."
    }
  ],
  "integrations": [
    {
      "id": "crm",
      "name": "CRM",
      "maturity": "reference_integration",
      "path": "/resources/integrations#crm",
      "description": "Gate field mutations and store the Decision Record beside the source object."
    },
    {
      "id": "billing",
      "name": "Billing",
      "maturity": "reference_integration",
      "path": "/resources/integrations#billing",
      "description": "Gate credits, discounts, and plan changes before money or billing state moves."
    },
    {
      "id": "automation",
      "name": "Automation and webhooks",
      "maturity": "reference_integration",
      "path": "/resources/integrations#automation",
      "description": "Place a fail-closed decision boundary before an automation mutates another system."
    },
    {
      "id": "queues",
      "name": "Queues and workers",
      "maturity": "reference_integration",
      "path": "/resources/integrations#queues",
      "description": "Preserve idempotency and Decision Record context across asynchronous execution."
    },
    {
      "id": "agents",
      "name": "Agents and tools",
      "maturity": "reference_integration",
      "path": "/resources/integrations#agents",
      "description": "Separate an agent proposal from the deterministic verdict that authorizes execution."
    }
  ],
  "sdk": {
    "package": "@decide-fyi/sdk",
    "version": "0.1.19",
    "maturity": "public_package",
    "docsPath": "/sdk",
    "npmUrl": "https://www.npmjs.com/package/@decide-fyi/sdk",
    "registryUrl": "https://registry.npmjs.org/@decide-fyi/sdk",
    "tarballUrl": "https://registry.npmjs.org/@decide-fyi/sdk/-/sdk-0.1.19.tgz",
    "sourceUrl": "https://github.com/decidefyi/decide/tree/main/sdk",
    "provenanceUrl": "https://github.com/decidefyi/decide/blob/main/sdk/SOURCE_PROVENANCE.md",
    "node": ">=18",
    "license": "Apache-2.0",
    "licenseReview": "approved_open_source",
    "cliCommands": [
      "verify",
      "verify-packet",
      "rulebook-conformance"
    ]
  },
  "mcp": [
    {
      "id": "policy_notaries",
      "name": "Decide Policy Notaries",
      "maturity": "public_read_only",
      "visibility": "public",
      "docsPath": "/mcp#policy-notaries",
      "productPath": "/resources/policy-notaries",
      "endpoint": "https://policy.decide.fyi/api/mcp",
      "tools": [
        "refund_eligibility",
        "cancellation_penalty",
        "return_eligibility",
        "trial_terms"
      ]
    },
    {
      "id": "decision_runtime",
      "name": "Decision Runtime MCP",
      "maturity": "private_preview",
      "visibility": "private",
      "docsPath": "/mcp#decision-runtime",
      "accessPath": "/?start_intake=1&plan=api_starter#api-decision-api-path",
      "tools": []
    }
  ],
  "verification": [
    {
      "id": "hosted_verifier",
      "name": "Hosted verifier",
      "maturity": "public_utility",
      "path": "/verify"
    },
    {
      "id": "verification_docs",
      "name": "Verification docs",
      "maturity": "public_reference",
      "path": "/resources/docs/verification"
    },
    {
      "id": "live_proof",
      "name": "Live proof artifact",
      "maturity": "public_reference",
      "path": "/resources/live-proof"
    }
  ],
  "links": {
    "self": "/api/public/catalog",
    "static": "/catalog/decide-public-catalog.json",
    "developerHub": "/developers",
    "docs": "/resources/docs",
    "openApi": "/openapi.json",
    "status": "/resources/status",
    "changelog": "/resources/changelog"
  }
}
