{
  "schemaVersion": 1,
  "generatedAt": "2026-08-17T18:32:22.397Z",
  "generationKey": "9b760951e4a0c609b11e19a4dec61ef58e5c2282e2c766da50b14a0ee7a092aa",
  "metadataPayloadSha256": "051fc109f6e5d62cc8e3d14b2bba913ad54485dec8fa76e75d8ab635e1aeda89",
  "diagram": {
    "id": "crucible-system-architecture-8b71cd97",
    "title": "Crucible — system architecture",
    "description": "Rectangles are API routes and services, the rounded node is the judge model, and cylinders are workspace tables under row-level security. The runner exercises the real answer pipeline and persists everything the read-side aggregation later serves.",
    "status": "current",
    "canonicalAppearanceKey": "tsx:src/app/(docs)/docs/modules/crucible/page.tsx:systemArchitectureChart#1"
  },
  "aliases": [],
  "concepts": [
    "System architecture",
    "Public surface",
    "Scoring services",
    "Run production (workspace app + scheduler)",
    "Modules",
    "Crucible"
  ],
  "keywords": [
    "GET {id}/metrics (API)",
    "GET (API)",
    "POST (API)",
    "Eval runner (service)",
    "model: judge",
    "store, append-only",
    "Scheduled runs + drift scans (service)",
    "Drift + freshness monitor (service)",
    "Run aggregation + paired significance (service)",
    "Real retrieval + answer pipeline under test (service)",
    "Metric math: retrieval, abstention, RAGAS (service)",
    "/api/v1/evals/runs",
    "/api/v1/qrels",
    "id",
    "/api/v1/evals/runs/compare",
    "store"
  ],
  "mermaid": {
    "type": "flowchart",
    "direction": "TB",
    "sourceSha256": "8b71cd979f407554e9aca770e4912be31e2342e0e6bebb7b062a9e1c3ec63ce1"
  },
  "provenance": [
    {
      "appearanceKey": "tsx:src/app/(docs)/docs/modules/crucible/page.tsx:systemArchitectureChart#1",
      "surface": "route",
      "sourcePath": "src/app/(docs)/docs/modules/crucible/page.tsx",
      "line": 65,
      "route": "/docs/modules/crucible",
      "symbol": "systemArchitectureChart",
      "caption": "Rectangles are API routes and services, the rounded node is the judge model, and cylinders are workspace tables under row-level security. The runner exercises the real answer pipeline and persists everything the read-side aggregation later serves."
    }
  ],
  "embeddedMetadata": [
    {
      "sourcePath": "src/app/(docs)/docs/modules/crucible/page.tsx",
      "caption": "Rectangles are API routes and services, the rounded node is the judge model, and cylinders are workspace tables under row-level security. The runner exercises the real answer pipeline and persists everything the read-side aggregation later serves."
    }
  ],
  "generation": {
    "application": {
      "name": "eli-ai",
      "version": "0.1.0"
    },
    "environment": {
      "node": "v26.3.1",
      "yarn": "4.17.1",
      "platform": "linux",
      "architecture": "x64",
      "containerImage": "playwright:v1.62.1-noble@sha256:c091b21d9fae78c76e85cd4356431e9b018402f172a214fc7d7a5e9a7e29d8ac+node:26.3.1-bookworm-slim@sha256:209558c3e5e40e8adff68959d3c2ba7cd73723e716d89196878a0c362fa1e109"
    },
    "packages": {
      "mermaid": "11.16.0",
      "mermaidCli": "11.16.0",
      "playwright": "1.62.1",
      "playwrightCore": "1.62.1",
      "puppeteer": "25.6.0",
      "puppeteerCore": "25.6.0"
    },
    "renderer": {
      "mermaidConfigSha256": "68c10966fe84406ee626034d58bfabd555df9f65f691204b7c46db24038da101",
      "themeCssSha256": "c80287a78d80ad63d27bd5ca348b2ef9a7e2f44da289e436be6484ea28a1b033",
      "browser": {
        "name": "chromium",
        "revision": "1234",
        "version": "151.0.7922.34",
        "executableSha256": "0b20b130e7edd9dd51873be867761295fe0cfad490c2b9a64f95bd3cfc08fa71"
      },
      "font": {
        "family": "Eli Diagram Inter Variable",
        "fileSha256": "3100e775e8616cd2611beecfa23a4263d7037586789b43f035236a2e6fbd4c62",
        "licenseSha256": "3b0a5fca3d17942cde889069889dedbbbd075e9b599968c82a95f4d944e9b345"
      }
    },
    "adapterVersions": {
      "diagramGenerator": "2",
      "drawioFlowchart": "1",
      "drawioSequence": "1",
      "drawioState": "1",
      "drawioGantt": "1"
    }
  },
  "artifacts": {
    "mmd": "/diagrams/crucible-system-architecture-8b71cd97/crucible-system-architecture-8b71cd97.mmd",
    "svg": "/diagrams/crucible-system-architecture-8b71cd97/crucible-system-architecture-8b71cd97.svg",
    "png": "/diagrams/crucible-system-architecture-8b71cd97/crucible-system-architecture-8b71cd97.png",
    "drawio": "/diagrams/crucible-system-architecture-8b71cd97/crucible-system-architecture-8b71cd97.drawio",
    "json": "/diagrams/crucible-system-architecture-8b71cd97/crucible-system-architecture-8b71cd97.json"
  },
  "artifactSha256": {
    "mmd": "70f92333d11c8df9d44c0848165de7a9338ceec721020f7cfe2ca7e42453010a",
    "svg": "c9f3ccb03f1b62e7d95321681c7aa5ce996dd68241d6a7b4a02839a501efba8d",
    "png": "62d1b120a6f7f8d8dde6aa50eb276e39c5b746a9c0a44c378c843ea48adb2858",
    "drawio": "db203d2a8a408b55e16cd5aaa145760418dd91aec2b78fd5e08424aad852fa8d"
  }
}
