{
  "spec": "autocatalog/graph-v1",
  "resources": [
    {
      "ref": {
        "kind": "collection",
        "namespace": "default/default",
        "id": "statements"
      },
      "title": "statements",
      "tags": [],
      "provenance": {
        "default": "extracted",
        "fields": {}
      },
      "needsReview": false,
      "attributes": {
        "adapter": "mongoose",
        "schema": {
          "type": "object",
          "properties": {
            "customerId": {
              "type": "string"
            },
            "amount": {
              "type": "number"
            }
          },
          "required": [
            "customerId",
            "amount"
          ]
        },
        "fields": [
          {
            "name": "customerId",
            "type": "String"
          },
          {
            "name": "amount",
            "type": "Number"
          }
        ]
      },
      "source": {
        "type": "code",
        "file": "fixtures/brownfield-repo/statements.ts",
        "symbol": "Statement",
        "line": 8
      },
      "url": "data/autocatalog/statement/"
    },
    {
      "ref": {
        "kind": "command",
        "namespace": "default",
        "id": "generate-statement",
        "version": "1.0.0"
      },
      "title": "Generate statement",
      "tags": [],
      "provenance": {
        "default": "declared",
        "fields": {}
      },
      "needsReview": false,
      "attributes": {
        "schema": {
          "type": "object",
          "properties": {
            "customerId": {
              "type": "string"
            }
          },
          "required": [
            "customerId"
          ]
        },
        "transport": [
          {
            "address": "statement-jobs",
            "protocols": [
              "sqs"
            ]
          }
        ],
        "outcome": {
          "type": "completion"
        },
        "outcomeSchema": null
      },
      "summary": "Generate a customer's monthly statement",
      "source": {
        "type": "code",
        "file": "fixtures/brownfield-repo/commands/generate-statement/autocatalog.json"
      }
    },
    {
      "ref": {
        "kind": "command",
        "namespace": "payments",
        "id": "refund-payment",
        "version": "1.0.0"
      },
      "title": "Refund payment",
      "tags": [],
      "provenance": {
        "default": "declared",
        "fields": {}
      },
      "needsReview": false,
      "attributes": {
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "title": "RefundPayment",
          "type": "object",
          "properties": {
            "paymentId": {
              "type": "string"
            },
            "reason": {
              "type": "string"
            }
          },
          "required": [
            "paymentId"
          ]
        },
        "transport": [
          {
            "address": "payments.refund",
            "protocols": [
              "amqp"
            ]
          }
        ],
        "outcome": null,
        "outcomeSchema": null
      },
      "summary": "Give a customer their money back when an order is cancelled.",
      "source": {
        "type": "code",
        "file": "examples/federation/payments/commands/refund-payment/autocatalog.json"
      }
    },
    {
      "ref": {
        "kind": "command",
        "namespace": "payments",
        "id": "RefundPayment",
        "version": "1.0.0"
      },
      "title": "Refund payment",
      "tags": [],
      "provenance": {
        "default": "declared",
        "fields": {}
      },
      "needsReview": false,
      "attributes": {
        "schema": {
          "type": "object",
          "required": [
            "paymentId"
          ],
          "properties": {
            "paymentId": {
              "type": "string"
            },
            "reason": {
              "type": "string"
            }
          }
        },
        "transport": [
          {
            "address": "payments.refund",
            "protocols": [
              "sqs"
            ]
          }
        ],
        "outcome": {
          "type": "result",
          "schema": "./reply.json",
          "replyTo": "payments.refund-replies"
        },
        "outcomeSchema": {
          "type": "object",
          "required": [
            "refunded"
          ],
          "properties": {
            "refunded": {
              "type": "boolean"
            },
            "refundId": {
              "type": "string"
            }
          }
        }
      },
      "summary": "Give a customer their money back when an order cannot ship.",
      "source": {
        "type": "code",
        "file": "examples/docs-demo/repos/payments-service/commands/RefundPayment/autocatalog.json"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "agents"
      },
      "title": "Agent catalogs",
      "summary": "The same idea applied to AI agents — what they call, what they cost, and what they actually did.",
      "url": "/docs/agents",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "agents"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/agents.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-04T13:14:24Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "brownfield-resources"
      },
      "title": "Brownfield resources",
      "summary": "Discover datastore access, commands and services, then import ownership and registry contracts.",
      "url": "/docs/brownfield-resources",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "guide"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/brownfield-resources.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-04T13:14:24Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "cli"
      },
      "title": "CLI reference",
      "summary": "Every `ac` command, what it does, and the flags worth knowing.",
      "url": "/docs/cli",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "reference"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/cli.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-04T13:14:24Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "comparison"
      },
      "title": "autocatalog and EventCatalog",
      "summary": "How the two tools relate, what each one starts from, and how to run them together.",
      "url": "/docs/comparison",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "overview"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/comparison.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-04T13:14:24Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "cross-domain-delivery"
      },
      "title": "Cross-domain delivery",
      "summary": "What autocatalog enforces when work crosses a domain boundary, step by step, and what it leaves to people.",
      "url": "/docs/cross-domain-delivery",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "ci",
        "governance"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/cross-domain-delivery.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-30T08:47:34Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "delivery"
      },
      "title": "Delivery",
      "summary": "How an event reaches each consumer, read from the broker configuration, checked in pull requests and proven against a test broker.",
      "url": "/docs/delivery",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "ci",
        "guide"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/delivery.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-03T12:08:23Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "docs-convention"
      },
      "title": "The docs convention",
      "summary": "Every repository owns its docs/; one site aggregates them. This site is the proof.",
      "url": "/docs/docs-convention",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "docs"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/docs-convention.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-04T13:14:24Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "title": "Drift gating in CI",
      "summary": "Fail the pull request that breaks a consumer, not the release that ships it.",
      "url": "/docs/drift-ci",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "ci"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/drift-ci.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-04T13:14:24Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/avro-protobuf"
      },
      "title": "Events from Avro and protobuf",
      "summary": "Passive discovery over .avsc and .proto files, with the wire-format semantics kept intact.",
      "url": "/docs/events/avro-protobuf",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "events"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/events/avro-protobuf.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-12T21:27:21+01:00"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/fields"
      },
      "title": "Fields",
      "summary": "Which events carry a field, which consumers it reaches, and where it disagrees with itself.",
      "url": "/docs/events/fields",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "events"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/events/fields.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-12T21:27:21+01:00"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/importing"
      },
      "title": "Importing an existing catalog",
      "summary": "Bring in events from GitHub, AsyncAPI, or an EventCatalog project.",
      "url": "/docs/events/importing",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "events",
        "migration"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/events/importing.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-12T21:27:21+01:00"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/json-schema"
      },
      "title": "Events from JSON Schema",
      "summary": "Passive discovery over the schema files already in a repository.",
      "url": "/docs/events/json-schema",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "events"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/events/json-schema.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-04T13:14:24Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/message-contracts"
      },
      "title": "Events from autotel-message-contract",
      "summary": "Approved message contracts become catalog events; the contract tests pin the bytes, autocatalog catalogs them and gates their drift.",
      "url": "/docs/events/message-contracts",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "events"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/events/message-contracts.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-12T21:27:21+01:00"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/openapi"
      },
      "title": "Events from OpenAPI",
      "summary": "Passive discovery over the OpenAPI specs already in a repository — webhooks and callbacks, not every endpoint.",
      "url": "/docs/events/openapi",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "events"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/events/openapi.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-12T21:27:21+01:00"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/other-languages"
      },
      "title": "Events from Rust, Go, Java and .NET",
      "summary": "Write the schemas from a test with each language's own generator, commit them, and scan them like any JSON Schema.",
      "url": "/docs/events/other-languages",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "events"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/events/other-languages.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-03T12:08:23Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/pydantic"
      },
      "title": "Events from Pydantic",
      "summary": "The same catalog, extracted from Python models.",
      "url": "/docs/events/pydantic",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "events",
        "python"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/events/pydantic.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-04T13:14:24Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/validation"
      },
      "title": "Validation",
      "summary": "What `ac validate` and `ac health` check, and how to make them fail a build.",
      "url": "/docs/events/validation",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "ci",
        "events"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/events/validation.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-12T21:27:21+01:00"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/versioning"
      },
      "title": "Versioning",
      "summary": "How versions are stored, ordered, and diffed.",
      "url": "/docs/events/versioning",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "events"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/events/versioning.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-12T21:27:21+01:00"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/zod"
      },
      "title": "Events from Zod",
      "summary": "Define an event once in TypeScript; the catalog, graph and service pages derive from it.",
      "url": "/docs/events/zod",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "events",
        "typescript"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/events/zod.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-04T13:14:24Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "federation"
      },
      "title": "Federation",
      "summary": "One company catalog from catalogs each team owns, EventCatalog projects included, pinned to reviewed commits.",
      "url": "/docs/federation",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "guide",
        "reference"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/federation.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-03T12:08:23Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "introduction"
      },
      "title": "Introduction",
      "summary": "One provenance-aware catalog, discovered by convention from the repositories you already have.",
      "url": "/docs/introduction",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "overview"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/introduction.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-19T07:45:54+01:00"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "mcp"
      },
      "title": "MCP for coding agents",
      "summary": "Fourteen tools that let an AI coding agent query the catalog, ask what a change breaks, and draw the architecture in the conversation.",
      "url": "/docs/mcp",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "agents",
        "reference"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/mcp.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-31T19:32:58Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "plugins"
      },
      "title": "Writing a plugin",
      "summary": "Teach ac scan and ac drift to read events from a format of your own.",
      "url": "/docs/plugins",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "plugins"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/plugins.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-04T13:14:24Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "production"
      },
      "title": "Production operation",
      "summary": "The trust model, artifact integrity, transactional publication, and crash recovery.",
      "url": "/docs/production",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "ci",
        "reference"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/production.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-04T13:14:24Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "quick-start"
      },
      "title": "Quick start",
      "summary": "One command from a repository with contracts/ and docs/ to a site.",
      "url": "/docs/quick-start",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "overview"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/quick-start.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-03T12:08:23Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "retire"
      },
      "title": "Retiring a field",
      "summary": "Whether you can remove a field or an event yet, consumer by consumer, with the evidence for each.",
      "url": "/docs/retire",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "ci"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/retire.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-21T07:41:08+01:00"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "rules"
      },
      "title": "Catalog rules",
      "summary": "Your own architecture checks, run by the drift gate on what each pull request changes.",
      "url": "/docs/rules",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "ci"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/rules.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-21T07:41:08+01:00"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "runtime-evidence"
      },
      "title": "Runtime evidence with autotel",
      "summary": "The contracts say what a service promises; a snapshot from its tests says what it sent.",
      "url": "/docs/runtime-evidence",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "autotel",
        "ci"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/runtime-evidence.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-10-30T08:47:34Z"
      }
    },
    {
      "ref": {
        "kind": "document",
        "namespace": "docs",
        "id": "site"
      },
      "title": "The company site",
      "summary": "One command builds one site from every enrolled repository.",
      "url": "/docs/site",
      "owner": {
        "team": "Maintainers"
      },
      "tags": [
        "reference"
      ],
      "provenance": {
        "default": "declared",
        "fields": {
          "id": "extracted",
          "repository": "extracted",
          "url": "extracted"
        }
      },
      "needsReview": false,
      "source": {
        "file": "docs/site.md",
        "repo": "autocatalog"
      },
      "attributes": {
        "repository": "autocatalog",
        "updated": "2026-11-04T13:14:24Z"
      }
    },
    {
      "ref": {
        "kind": "event",
        "namespace": "autocatalog/payments",
        "id": "payment.captured",
        "version": "2.0.0"
      },
      "title": "PaymentCaptured",
      "summary": "A card payment was captured.",
      "tags": [],
      "provenance": {
        "default": "inferred",
        "fields": {
          "domain": "inferred",
          "examples": "extracted",
          "id": "declared",
          "schema": "inferred",
          "summary": "declared",
          "version": "declared"
        }
      },
      "confidence": 0.25,
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "experiments/04-message-contracts/repos/payments-service/src/payments/__contracts__/PaymentCaptured.approved.txt",
        "symbol": "PaymentCaptured",
        "line": 1
      },
      "attributes": {
        "domain": "payments",
        "status": "active",
        "schema": "./schema.json",
        "examples": 1
      }
    },
    {
      "ref": {
        "kind": "queue",
        "namespace": "payments",
        "id": "payments.refund-replies"
      },
      "title": "payments.refund-replies",
      "tags": [],
      "provenance": {
        "default": "inferred",
        "fields": {}
      },
      "needsReview": true,
      "attributes": {}
    },
    {
      "ref": {
        "kind": "queue",
        "namespace": "rabbitmq-exchange",
        "id": "ledger.dead-letter"
      },
      "title": "ledger.dead-letter",
      "tags": [],
      "provenance": {
        "default": "extracted",
        "fields": {}
      },
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "examples/federation/infra/rabbitmq/definitions.json",
        "line": 14
      },
      "attributes": {
        "system": "rabbitmq",
        "entity": "exchange",
        "role": "router",
        "type": "fanout",
        "vhost": "/",
        "unevaluated": []
      }
    },
    {
      "ref": {
        "kind": "queue",
        "namespace": "rabbitmq-exchange",
        "id": "payments"
      },
      "title": "payments",
      "tags": [],
      "provenance": {
        "default": "extracted",
        "fields": {}
      },
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "examples/federation/infra/rabbitmq/definitions.json",
        "line": 5
      },
      "attributes": {
        "system": "rabbitmq",
        "entity": "exchange",
        "role": "router",
        "type": "headers",
        "vhost": "/",
        "unevaluated": []
      }
    },
    {
      "ref": {
        "kind": "queue",
        "namespace": "rabbitmq",
        "id": "ledger.dead-letter"
      },
      "title": "ledger.dead-letter",
      "tags": [],
      "provenance": {
        "default": "extracted",
        "fields": {}
      },
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "examples/federation/infra/rabbitmq/definitions.json",
        "line": 32
      },
      "attributes": {
        "system": "rabbitmq",
        "entity": "queue",
        "role": "store",
        "vhost": "/",
        "retentionUnbounded": true,
        "unevaluated": []
      }
    },
    {
      "ref": {
        "kind": "queue",
        "namespace": "rabbitmq",
        "id": "ledger.payments"
      },
      "title": "ledger.payments",
      "tags": [],
      "provenance": {
        "default": "extracted",
        "fields": {}
      },
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "examples/federation/infra/rabbitmq/definitions.json",
        "line": 25
      },
      "attributes": {
        "system": "rabbitmq",
        "entity": "queue",
        "role": "store",
        "vhost": "/",
        "deadLetter": {
          "target": "ledger.dead-letter"
        },
        "retentionUnbounded": true,
        "unevaluated": []
      }
    },
    {
      "ref": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "title": "autocatalog",
      "summary": "Repository inferred from the catalog layout.",
      "tags": [],
      "provenance": {
        "default": "inferred",
        "fields": {}
      },
      "needsReview": false,
      "attributes": {},
      "source": {
        "repo": "autocatalog",
        "ref": "4f8a70a762d18906f7713fd0862174a05e6fe868"
      }
    },
    {
      "ref": {
        "kind": "service",
        "id": "autocatalog-monorepo"
      },
      "title": "autocatalog-monorepo",
      "tags": [],
      "provenance": {
        "default": "inferred",
        "fields": {}
      },
      "needsReview": true,
      "attributes": {
        "domains": []
      }
    },
    {
      "ref": {
        "kind": "service",
        "id": "billing"
      },
      "title": "billing",
      "tags": [],
      "provenance": {
        "default": "inferred",
        "fields": {}
      },
      "needsReview": true,
      "attributes": {
        "domains": []
      }
    },
    {
      "ref": {
        "kind": "service",
        "id": "EmailService"
      },
      "title": "EmailService",
      "summary": "Service inferred from Event producer and consumer declarations.",
      "tags": [],
      "provenance": {
        "default": "inferred",
        "fields": {}
      },
      "confidence": 0.25,
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "experiments/04-message-contracts/repos/payments-service/src/payments/__contracts__/PaymentCaptured.approved.txt",
        "symbol": "PaymentCaptured",
        "line": 1
      },
      "attributes": {
        "domains": [
          "payments"
        ]
      }
    },
    {
      "ref": {
        "kind": "service",
        "id": "LedgerService"
      },
      "title": "LedgerService",
      "summary": "Service inferred from Event producer and consumer declarations.",
      "tags": [],
      "provenance": {
        "default": "inferred",
        "fields": {}
      },
      "confidence": 0.25,
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "experiments/04-message-contracts/repos/payments-service/src/payments/__contracts__/PaymentCaptured.approved.txt",
        "symbol": "PaymentCaptured",
        "line": 1
      },
      "attributes": {
        "domains": [
          "payments"
        ]
      }
    },
    {
      "ref": {
        "kind": "service",
        "id": "OrderService"
      },
      "title": "OrderService",
      "tags": [],
      "provenance": {
        "default": "inferred",
        "fields": {}
      },
      "needsReview": true,
      "attributes": {
        "domains": []
      }
    },
    {
      "ref": {
        "kind": "service",
        "id": "PaymentService"
      },
      "title": "PaymentService",
      "tags": [],
      "provenance": {
        "default": "inferred",
        "fields": {}
      },
      "needsReview": false,
      "attributes": {
        "domains": [
          "payments"
        ]
      },
      "summary": "Service inferred from Event producer and consumer declarations.",
      "confidence": 0.25,
      "source": {
        "type": "code",
        "file": "experiments/04-message-contracts/repos/payments-service/src/payments/__contracts__/PaymentCaptured.approved.txt",
        "symbol": "PaymentCaptured",
        "line": 1
      }
    },
    {
      "ref": {
        "kind": "service",
        "id": "statement-worker"
      },
      "title": "statement-worker",
      "tags": [],
      "provenance": {
        "default": "inferred",
        "fields": {}
      },
      "needsReview": true,
      "attributes": {
        "domains": []
      }
    }
  ],
  "relationships": [
    {
      "type": "repliesTo",
      "from": {
        "kind": "command",
        "namespace": "payments",
        "id": "RefundPayment",
        "version": "1.0.0"
      },
      "to": {
        "kind": "queue",
        "namespace": "payments",
        "id": "payments.refund-replies"
      },
      "provenance": "declared",
      "needsReview": false
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "agents"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "cli"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/agents.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "agents"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "mcp"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/agents.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "cli"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/cli.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "cli"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/validation"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/cli.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "comparison"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/importing"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/comparison.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "comparison"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "introduction"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/comparison.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "cross-domain-delivery"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/cross-domain-delivery.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "cross-domain-delivery"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/json-schema"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/cross-domain-delivery.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "cross-domain-delivery"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/validation"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/cross-domain-delivery.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "delivery"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "brownfield-resources"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/delivery.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "delivery"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "cross-domain-delivery"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/delivery.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "delivery"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/delivery.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "docs-convention"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "cli"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/docs-convention.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "docs-convention"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "mcp"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/docs-convention.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/versioning"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/drift-ci.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "production"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/drift-ci.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/avro-protobuf"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/avro-protobuf.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/avro-protobuf"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/json-schema"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/avro-protobuf.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/fields"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/fields.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/fields"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/validation"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/fields.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/importing"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "cli"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/importing.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/importing"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "comparison"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/importing.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/json-schema"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/zod"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/json-schema.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/json-schema"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "production"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/json-schema.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/message-contracts"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/message-contracts.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/message-contracts"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/json-schema"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/message-contracts.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/openapi"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/importing"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/openapi.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/openapi"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/json-schema"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/openapi.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/other-languages"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/other-languages.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/other-languages"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/json-schema"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/other-languages.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/other-languages"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/openapi"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/other-languages.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/pydantic"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/json-schema"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/pydantic.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/pydantic"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/zod"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/pydantic.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/validation"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "cli"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/validation.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/validation"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/validation.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/versioning"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/versioning.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/versioning"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/validation"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/versioning.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/zod"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/validation"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/zod.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/zod"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "quick-start"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/events/zod.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "federation"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/federation.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "federation"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/importing"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/federation.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "federation"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "site"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/federation.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "introduction"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "comparison"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/introduction.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "introduction"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "quick-start"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/introduction.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "mcp"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "agents"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/mcp.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "mcp"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "docs-convention"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/mcp.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "plugins"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "cli"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/plugins.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "plugins"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/zod"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/plugins.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "production"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/production.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "production"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/json-schema"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/production.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "quick-start"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/zod"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/quick-start.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "quick-start"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "introduction"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/quick-start.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "retire"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/retire.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "retire"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "rules"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/retire.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "retire"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "runtime-evidence"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/retire.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "rules"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/rules.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "rules"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "runtime-evidence"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/rules.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "runtime-evidence"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/runtime-evidence.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "runtime-evidence"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "mcp"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/runtime-evidence.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "runtime-evidence"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "site"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/runtime-evidence.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "site"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "cli"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/site.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "site"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "docs-convention"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/site.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "relatesTo",
      "from": {
        "kind": "document",
        "namespace": "docs",
        "id": "site"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "quick-start"
      },
      "provenance": "declared",
      "needsReview": false,
      "source": {
        "file": "docs/site.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "consumes",
      "from": {
        "kind": "event",
        "namespace": "autocatalog/payments",
        "id": "payment.captured",
        "version": "2.0.0"
      },
      "to": {
        "kind": "service",
        "id": "EmailService"
      },
      "provenance": "inferred",
      "confidence": 0.25,
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "experiments/04-message-contracts/repos/payments-service/src/payments/__contracts__/PaymentCaptured.approved.txt",
        "symbol": "PaymentCaptured",
        "line": 1
      }
    },
    {
      "type": "consumes",
      "from": {
        "kind": "event",
        "namespace": "autocatalog/payments",
        "id": "payment.captured",
        "version": "2.0.0"
      },
      "to": {
        "kind": "service",
        "id": "LedgerService"
      },
      "provenance": "inferred",
      "confidence": 0.25,
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "experiments/04-message-contracts/repos/payments-service/src/payments/__contracts__/PaymentCaptured.approved.txt",
        "symbol": "PaymentCaptured",
        "line": 1
      }
    },
    {
      "type": "routesTo",
      "from": {
        "kind": "queue",
        "namespace": "rabbitmq-exchange",
        "id": "ledger.dead-letter"
      },
      "to": {
        "kind": "queue",
        "namespace": "rabbitmq",
        "id": "ledger.dead-letter"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "examples/federation/infra/rabbitmq/definitions.json",
        "line": 49
      },
      "attributes": {
        "bindings": [
          {
            "routingKey": "",
            "arguments": {},
            "line": 49
          }
        ]
      }
    },
    {
      "type": "routesTo",
      "from": {
        "kind": "queue",
        "namespace": "rabbitmq-exchange",
        "id": "payments"
      },
      "to": {
        "kind": "queue",
        "namespace": "rabbitmq",
        "id": "ledger.payments"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "examples/federation/infra/rabbitmq/definitions.json",
        "line": 41
      },
      "attributes": {
        "bindings": [
          {
            "routingKey": "",
            "arguments": {
              "x-match": "all",
              "currency": "GBP"
            },
            "line": 41
          }
        ]
      }
    },
    {
      "type": "deadLettersTo",
      "from": {
        "kind": "queue",
        "namespace": "rabbitmq",
        "id": "ledger.payments"
      },
      "to": {
        "kind": "queue",
        "namespace": "rabbitmq-exchange",
        "id": "ledger.dead-letter"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "examples/federation/infra/rabbitmq/definitions.json",
        "line": 25
      },
      "attributes": {}
    },
    {
      "type": "defines",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "event",
        "namespace": "autocatalog/payments",
        "id": "payment.captured",
        "version": "2.0.0"
      },
      "provenance": "inferred",
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "experiments/04-message-contracts/repos/payments-service/src/payments/__contracts__/PaymentCaptured.approved.txt",
        "symbol": "PaymentCaptured",
        "line": 1
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "agents"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/agents.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "brownfield-resources"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/brownfield-resources.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "cli"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/cli.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "comparison"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/comparison.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "cross-domain-delivery"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/cross-domain-delivery.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "delivery"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/delivery.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "docs-convention"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/docs-convention.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "drift-ci"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/drift-ci.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/avro-protobuf"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/events/avro-protobuf.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/fields"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/events/fields.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/importing"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/events/importing.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/json-schema"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/events/json-schema.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/message-contracts"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/events/message-contracts.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/openapi"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/events/openapi.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/other-languages"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/events/other-languages.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/pydantic"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/events/pydantic.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/validation"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/events/validation.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/versioning"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/events/versioning.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "events/zod"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/events/zod.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "federation"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/federation.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "introduction"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/introduction.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "mcp"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/mcp.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "plugins"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/plugins.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "production"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/production.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "quick-start"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/quick-start.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "retire"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/retire.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "rules"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/rules.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "runtime-evidence"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/runtime-evidence.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "publishes",
      "from": {
        "kind": "repository",
        "id": "autocatalog"
      },
      "to": {
        "kind": "document",
        "namespace": "docs",
        "id": "site"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "file": "docs/site.md",
        "repo": "autocatalog"
      }
    },
    {
      "type": "writes",
      "from": {
        "kind": "service",
        "id": "autocatalog-monorepo"
      },
      "to": {
        "kind": "collection",
        "namespace": "default/default",
        "id": "statements"
      },
      "provenance": "extracted",
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "fixtures/brownfield-repo/statements.ts",
        "line": 11
      }
    },
    {
      "type": "sends",
      "from": {
        "kind": "service",
        "id": "billing"
      },
      "to": {
        "kind": "command",
        "namespace": "default",
        "id": "generate-statement",
        "version": "1.0.0"
      },
      "provenance": "declared",
      "needsReview": false
    },
    {
      "type": "sends",
      "from": {
        "kind": "service",
        "id": "OrderService"
      },
      "to": {
        "kind": "command",
        "namespace": "payments",
        "id": "RefundPayment",
        "version": "1.0.0"
      },
      "provenance": "declared",
      "needsReview": false
    },
    {
      "type": "handles",
      "from": {
        "kind": "service",
        "id": "PaymentService"
      },
      "to": {
        "kind": "command",
        "namespace": "payments",
        "id": "refund-payment",
        "version": "1.0.0"
      },
      "provenance": "declared",
      "needsReview": false
    },
    {
      "type": "handles",
      "from": {
        "kind": "service",
        "id": "PaymentService"
      },
      "to": {
        "kind": "command",
        "namespace": "payments",
        "id": "RefundPayment",
        "version": "1.0.0"
      },
      "provenance": "declared",
      "needsReview": false
    },
    {
      "type": "produces",
      "from": {
        "kind": "service",
        "id": "PaymentService"
      },
      "to": {
        "kind": "event",
        "namespace": "autocatalog/payments",
        "id": "payment.captured",
        "version": "2.0.0"
      },
      "provenance": "inferred",
      "confidence": 0.25,
      "needsReview": false,
      "source": {
        "type": "code",
        "file": "experiments/04-message-contracts/repos/payments-service/src/payments/__contracts__/PaymentCaptured.approved.txt",
        "symbol": "PaymentCaptured",
        "line": 1
      }
    },
    {
      "type": "handles",
      "from": {
        "kind": "service",
        "id": "statement-worker"
      },
      "to": {
        "kind": "command",
        "namespace": "default",
        "id": "generate-statement",
        "version": "1.0.0"
      },
      "provenance": "declared",
      "needsReview": false
    }
  ]
}
