{
  "schemaVersion": "1.0.0",
  "taskId": "1.1",
  "initiative": "eve-sota-gap-closure-2026-09-01",
  "surveyedAt": "2026-09-01T21:20:30Z",
  "scope": {
    "statement": "apps/metis/web plus its default Metis HTTP path and authoritative FastAPI contract",
    "webPageRoot": "apps/metis/web/src/app",
    "pageCount": 65,
    "routeHandlerCount": 6,
    "excludedSurfaces": [
      "apps/metis/admin pages are a separate institutional/operator surface",
      "apps/oshun/web Metis routes are not owned by the apps/metis/web page tree"
    ]
  },
  "sourceEvidence": {
    "coreSources": [
      {
        "path": "apps/metis/web/src/middleware.ts",
        "sha256": "02e7ac130eb9b14c8a7d8b5d551eaa03f48498dc21eb382ec07274129bc470af",
        "bytes": 1166
      },
      {
        "path": "apps/metis/web/src/lib/auth-session.ts",
        "sha256": "bb29fa89b4ba4d56af59744adf880dae0597e2304e0babb8030fb10085ed5823",
        "bytes": 908
      },
      {
        "path": "apps/metis/web/src/lib/server/endpoints.ts",
        "sha256": "6d471365580fd49bcc1b91f18564d938b76520ee0260a4bf65b3814c217a0e34",
        "bytes": 1205
      },
      {
        "path": "apps/metis/web/src/lib/server/metis-proxy.ts",
        "sha256": "266f9e8e0167441681cf6ee5d7a05837d9627a5429f48823af82d510eecfb4fa",
        "bytes": 1747
      },
      {
        "path": "apps/metis/web/src/app/api/metis/[...path]/route.ts",
        "sha256": "3c4b569eb4108a6df760d5cd0504e99c51faf1629e7b243239b3ef56e73058e2",
        "bytes": 1206
      },
      {
        "path": "apps/metis/api-gateway/src/config.ts",
        "sha256": "be9f7c1814c5673a9dd9e615f1b84ce0b096ba2a76baec6c1aa3fd8eee25a364",
        "bytes": 10074
      },
      {
        "path": "apps/metis/api-gateway/src/app.ts",
        "sha256": "41dfc18d3a4bb49e2ef7fb8f406fcbdea0478e8c0d4690131dbfb9baca9d93b5",
        "bytes": 23763
      },
      {
        "path": "apps/metis/service/src/metis/main.py",
        "sha256": "d58e087f98e5f5523f90ed4c848a4ed35bebffd5fc5131a41b4f16dd7e4591d6",
        "bytes": 14515
      },
      {
        "path": "apps/metis/service/src/metis/api/__init__.py",
        "sha256": "9aa8bd2412098fb2e2404a146b5235b651149d7416239d8fff3f07f0752be79b",
        "bytes": 21043
      },
      {
        "path": "apps/metis/service/src/metis/deps.py",
        "sha256": "e157e9a76fa8fef1e302da8cb663ebb420b3e7f5dd426551118e9cfeddb215a6",
        "bytes": 15214
      },
      {
        "path": "apps/metis/service/alembic.ini",
        "sha256": "b5fa4c0d5081a060d7df592d72a3fc73cf78a67bb23f132133cb6453864692d1",
        "bytes": 1589
      },
      {
        "path": "apps/metis/service/alembic/env.py",
        "sha256": "9eb0443c74956dcea18902c915f231efd108c849b48094e028423f6b880b8c57",
        "bytes": 3693
      },
      {
        "path": "docs/adr/ADR-M0.5-metis-persistence-ownership.md",
        "sha256": "8aada7b6f633388c77aae2b9cd4b27816b6f0e107c6a56020e2075e445d4eeb3",
        "bytes": 30540
      },
      {
        "path": "evidence/v1-workbenches/metis-data-ownership-boundary.json",
        "sha256": "828480067f3b68bef2035c03ad3f032b56dfffc3ef302b2570b622622c31ce65",
        "bytes": 9854
      }
    ],
    "implementationSources": [
      {
        "path": "tools/eve-everywhere/generate-metis-seam-survey.mjs",
        "sha256": "094852536c75a233e09caaf8c2d5d74f10d66b6f85ec653893b9ede49c0b362b",
        "bytes": 43874
      },
      {
        "path": "tools/eve-everywhere/verify-metis-seam-survey.mjs",
        "sha256": "9bb6473793f0b9894eff8723226aa5a3699767dc9cae635bfd92fed20c7b95ef",
        "bytes": 13777
      },
      {
        "path": "tools/eve-everywhere/verify-metis-seam-survey.test.mjs",
        "sha256": "99ccd8b8907963fc9c07298abf96e42ac4b93277344b4ce0f75c8a3b7185f0b2",
        "bytes": 9663
      },
      {
        "path": "docs/audits/eve-sota-metis-seam-survey.schema.json",
        "sha256": "5322022314a265ca4b65e22be68d54b93e2b678051a84f0942d7d366f485d74f",
        "bytes": 15648
      }
    ],
    "sourceTrees": [
      {
        "root": "apps/metis/web/src",
        "fileCount": 283,
        "manifestSha256": "d60d90005406e6a73b998d2771752f9df881cd913f3e65d95bf5122c58759954"
      },
      {
        "root": "apps/metis/api-gateway/src",
        "fileCount": 29,
        "manifestSha256": "ecca4e72d547dede4b30792a83b60fc74bfdf9392489986b2ee91f6f61629c1e"
      },
      {
        "root": "apps/metis/service/src/metis",
        "fileCount": 802,
        "manifestSha256": "0dc3695795659e1ec9fa23c47b5aa09f66efa602ef500a45788098fdf6d2e370"
      },
      {
        "root": "apps/metis/service/alembic/versions",
        "fileCount": 67,
        "manifestSha256": "61d6d008f5f57f78d6ac762fc56e5acc31da48d3702d7837fec67fb62e55da28"
      }
    ],
    "pageRouteHandlers": [
      {
        "path": "apps/metis/web/src/app/activity-sandbox/route.ts",
        "sha256": "dbcc73a35c567cd186768d97aa304b573713c73940717032eccc5f17eb133248",
        "bytes": 1927
      },
      {
        "path": "apps/metis/web/src/app/api/auth/login/route.ts",
        "sha256": "67efed0d907214e3eb7e07c5456d22dc04b5cb2bbee19b6e31373e3474c4fb00",
        "bytes": 1195
      },
      {
        "path": "apps/metis/web/src/app/api/auth/logout/route.ts",
        "sha256": "70784e29d050bdf86e796642f7f5f96e06733d2d6dd4fb29348f898e4b5e37f4",
        "bytes": 1253
      },
      {
        "path": "apps/metis/web/src/app/api/auth/session/route.ts",
        "sha256": "9f2360296c01f7fd8aee2ec9c0f75f63b0e9ea1002a53b317d35451ec93cec22",
        "bytes": 1056
      },
      {
        "path": "apps/metis/web/src/app/api/auth/signup/route.ts",
        "sha256": "8a6a24bfc1234502be098b731306654faa2d1a9a8587c52eb98bc60fed159709",
        "bytes": 1364
      },
      {
        "path": "apps/metis/web/src/app/api/metis/[...path]/route.ts",
        "sha256": "3c4b569eb4108a6df760d5cd0504e99c51faf1629e7b243239b3ef56e73058e2",
        "bytes": 1206
      }
    ]
  },
  "openApi": {
    "artifact": "apps/metis/service/openapi/metis.openapi.json",
    "sha256": "c89749f7cadb7adea01931dcd39bc0b11a36c94fbf3a03fc8eec6e92544642af",
    "openApiVersion": "3.1.0",
    "title": "Metis API",
    "serviceVersion": "0.1.0",
    "pathCount": 803,
    "operationCount": 870,
    "schemaCount": 3665,
    "pathPrefix": "/api",
    "runtimeParityObservation": {
      "observedAt": "2026-09-01T21:20:14Z",
      "command": "cd apps/metis/service && PYTHONPATH=src .venv/bin/python scripts/export_openapi.py --check",
      "exitCode": 0,
      "outcome": "checked-artifact-matched-live-fastapi-output"
    }
  },
  "transport": {
    "browserPrefix": "/api/metis/v1",
    "nextProxyMapping": "/api/metis/<path> -> configured Metis base URL /api/<path>",
    "defaultMetisBaseUrl": "http://localhost:4020",
    "gatewayPrefix": "/api/v1",
    "fastApiPrefix": "/api",
    "gatewayHasCatchAllProxy": false,
    "gatewayUnknownRouteOutcome": "404 NOT_FOUND before auth or FastAPI",
    "configuredFamilies": [
      "gateway-status",
      "courses",
      "assessments",
      "tutoring",
      "content",
      "users",
      "analytics",
      "admin",
      "search",
      "recommendations",
      "notifications"
    ],
    "handlerFamilies": ["analytics", "assessments", "courses", "tutoring"],
    "registeredPatterns": [
      {
        "method": "GET",
        "path": "/api/v1/analytics/assessments",
        "source": "apps/metis/api-gateway/src/routes/analytics.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/analytics/courses/:courseId",
        "source": "apps/metis/api-gateway/src/routes/analytics.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/analytics/engagement",
        "source": "apps/metis/api-gateway/src/routes/analytics.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/analytics/learner-progress",
        "source": "apps/metis/api-gateway/src/routes/analytics.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/analytics/learner-progress/:learnerId",
        "source": "apps/metis/api-gateway/src/routes/analytics.ts"
      },
      {
        "method": "POST",
        "path": "/api/v1/analytics/reports/export",
        "source": "apps/metis/api-gateway/src/routes/analytics.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/analytics/retention",
        "source": "apps/metis/api-gateway/src/routes/analytics.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/assessments",
        "source": "apps/metis/api-gateway/src/routes/assessments.ts"
      },
      {
        "method": "POST",
        "path": "/api/v1/assessments",
        "source": "apps/metis/api-gateway/src/routes/assessments.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/assessments/:assessmentId",
        "source": "apps/metis/api-gateway/src/routes/assessments.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/assessments/:assessmentId/analytics",
        "source": "apps/metis/api-gateway/src/routes/assessments.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/assessments/:assessmentId/results",
        "source": "apps/metis/api-gateway/src/routes/assessments.ts"
      },
      {
        "method": "POST",
        "path": "/api/v1/assessments/:assessmentId/submissions/:submissionId/grade",
        "source": "apps/metis/api-gateway/src/routes/assessments.ts"
      },
      {
        "method": "POST",
        "path": "/api/v1/assessments/:assessmentId/submit",
        "source": "apps/metis/api-gateway/src/routes/assessments.ts"
      },
      {
        "method": "POST",
        "path": "/api/v1/assessments/generate",
        "source": "apps/metis/api-gateway/src/routes/assessments.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/courses",
        "source": "apps/metis/api-gateway/src/routes/courses.ts"
      },
      {
        "method": "POST",
        "path": "/api/v1/courses",
        "source": "apps/metis/api-gateway/src/routes/courses.ts"
      },
      {
        "method": "DELETE",
        "path": "/api/v1/courses/:courseId",
        "source": "apps/metis/api-gateway/src/routes/courses.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/courses/:courseId",
        "source": "apps/metis/api-gateway/src/routes/courses.ts"
      },
      {
        "method": "PATCH",
        "path": "/api/v1/courses/:courseId",
        "source": "apps/metis/api-gateway/src/routes/courses.ts"
      },
      {
        "method": "DELETE",
        "path": "/api/v1/courses/:courseId/enroll",
        "source": "apps/metis/api-gateway/src/routes/courses.ts"
      },
      {
        "method": "POST",
        "path": "/api/v1/courses/:courseId/enroll",
        "source": "apps/metis/api-gateway/src/routes/courses.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/courses/:courseId/progress",
        "source": "apps/metis/api-gateway/src/routes/courses.ts"
      },
      {
        "method": "POST",
        "path": "/api/v1/courses/:courseId/publish",
        "source": "apps/metis/api-gateway/src/routes/courses.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/courses/:courseId/syllabus",
        "source": "apps/metis/api-gateway/src/routes/courses.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/courses/search",
        "source": "apps/metis/api-gateway/src/routes/courses.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/tutoring/sessions",
        "source": "apps/metis/api-gateway/src/routes/tutoring.ts"
      },
      {
        "method": "POST",
        "path": "/api/v1/tutoring/sessions",
        "source": "apps/metis/api-gateway/src/routes/tutoring.ts"
      },
      {
        "method": "POST",
        "path": "/api/v1/tutoring/sessions/:sessionId/end",
        "source": "apps/metis/api-gateway/src/routes/tutoring.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/tutoring/sessions/:sessionId/messages",
        "source": "apps/metis/api-gateway/src/routes/tutoring.ts"
      },
      {
        "method": "POST",
        "path": "/api/v1/tutoring/sessions/:sessionId/messages",
        "source": "apps/metis/api-gateway/src/routes/tutoring.ts"
      },
      {
        "method": "POST",
        "path": "/api/v1/tutoring/sessions/:sessionId/rate",
        "source": "apps/metis/api-gateway/src/routes/tutoring.ts"
      },
      {
        "method": "GET",
        "path": "/api/v1/tutoring/topics/suggested",
        "source": "apps/metis/api-gateway/src/routes/tutoring.ts"
      }
    ],
    "distinctBrowserMetisPathCount": 244,
    "gatewayMatchedBrowserPathCount": 8,
    "gatewayUnmatchedBrowserPathCount": 236,
    "serviceContractMatchedBrowserPathCount": 244,
    "limitation": "Playwright route mocks under /api/metis/v1 do not prove that the default port-4020 gateway registers or proxies those paths."
  },
  "migrations": {
    "root": "apps/metis/service/alembic/versions",
    "revisionCount": 67,
    "heads": ["067"],
    "roots": ["001"],
    "linear": true,
    "missingParents": [],
    "revisions": [
      {
        "revision": "001",
        "downRevision": null,
        "path": "apps/metis/service/alembic/versions/001_initial.py",
        "sha256": "c4fd5d59a943a67af80d65965699c8f779dddabd7c4c102e592205d09a333ce8"
      },
      {
        "revision": "002",
        "downRevision": "001",
        "path": "apps/metis/service/alembic/versions/002_institutional_delivery_xapi.py",
        "sha256": "3c7a7785caaa591a3010564e86e82d82a6e1d04b3f9a64f87d546b8c27a241f9"
      },
      {
        "revision": "003",
        "downRevision": "002",
        "path": "apps/metis/service/alembic/versions/003_course_module_boards.py",
        "sha256": "185ab26d9af9b76f0ec11e0ca4032f93e9c038ac68b02a42bd69c6f477155247"
      },
      {
        "revision": "004",
        "downRevision": "003",
        "path": "apps/metis/service/alembic/versions/004_lesson_dossiers.py",
        "sha256": "2dac4750cc635c728af30e12d6b092529c0c66ebb9168b0e842cac33cca1c367"
      },
      {
        "revision": "005",
        "downRevision": "004",
        "path": "apps/metis/service/alembic/versions/005_lesson_delivery_preview_reports.py",
        "sha256": "4af7e3a235c98825d71d154c05f4e1ea957482af8c85da4b0e8d711a6e311060"
      },
      {
        "revision": "006",
        "downRevision": "005",
        "path": "apps/metis/service/alembic/versions/006_lesson_authoring_drafts.py",
        "sha256": "213316c6aa22f7c890397cea17ba7950283ffbcfcac36631fa687467451589e6"
      },
      {
        "revision": "007",
        "downRevision": "006",
        "path": "apps/metis/service/alembic/versions/007_lesson_assist_proposals.py",
        "sha256": "06ec7910d0a21939a8ba1f3f879e2cb6d6ee87f2dda4cd481fb4c71723240414"
      },
      {
        "revision": "008",
        "downRevision": "007",
        "path": "apps/metis/service/alembic/versions/008_lesson_templates.py",
        "sha256": "345b519d34a53154ebdb2890cce1b43065997ccd7706435b7858db63fd047a21"
      },
      {
        "revision": "009",
        "downRevision": "008",
        "path": "apps/metis/service/alembic/versions/009_teaching_media.py",
        "sha256": "7b84067791bea44e5d9fba4e7a11e01420e82f487aff9121aecee53f984a1918"
      },
      {
        "revision": "010",
        "downRevision": "009",
        "path": "apps/metis/service/alembic/versions/010_teaching_media_loops.py",
        "sha256": "ab7610b592cb74d6ca020a03b6b5087ee9322b927f4edd33789cf9c5a6710069"
      },
      {
        "revision": "011",
        "downRevision": "010",
        "path": "apps/metis/service/alembic/versions/011_lecture_package_authoring.py",
        "sha256": "674821cce3204f58aebc72470b1c83518791e78ebf44cdd42a6faad075b39d17"
      },
      {
        "revision": "012",
        "downRevision": "011",
        "path": "apps/metis/service/alembic/versions/012_lecture_replacement_lifecycle.py",
        "sha256": "77255dc01f1d56d617dab53652ccaa502e0268080732bf49f38d6dc6e1333231"
      },
      {
        "revision": "013",
        "downRevision": "012",
        "path": "apps/metis/service/alembic/versions/013_item_bank_search_projection.py",
        "sha256": "ac3257066ffe8a09294e1c0d1bc3ea7dc24c57c17dfa4f0e8c57d2e5406f39a5"
      },
      {
        "revision": "014",
        "downRevision": "013",
        "path": "apps/metis/service/alembic/versions/014_item_draft_capture.py",
        "sha256": "b662a3479271ffa645e9c1d648e50d6b4bbc90a4f92c4e9097d739628694f48c"
      },
      {
        "revision": "015",
        "downRevision": "014",
        "path": "apps/metis/service/alembic/versions/015_item_variant_generation.py",
        "sha256": "f1430593c05d63b5b67715a20853794f10800deb288750fc84b8f505c6115c15"
      },
      {
        "revision": "016",
        "downRevision": "015",
        "path": "apps/metis/service/alembic/versions/016_selected_response_authoring.py",
        "sha256": "220cccf863799b09d71c0efa23421d2683804c8aa4df87f0beae435d64f5f976"
      },
      {
        "revision": "017",
        "downRevision": "016",
        "path": "apps/metis/service/alembic/versions/017_written_response_authoring.py",
        "sha256": "4e8666175dce3a503574be7e6d4e440608561f7f8c35a4c56e5f44e9069ce637"
      },
      {
        "revision": "018",
        "downRevision": "017",
        "path": "apps/metis/service/alembic/versions/018_math_code_item_authoring.py",
        "sha256": "e157da91b4f66d80940bdb586d5b9c24e395924283e379d4824628d43df05250"
      },
      {
        "revision": "019",
        "downRevision": "018",
        "path": "apps/metis/service/alembic/versions/019_media_interactive_item_authoring.py",
        "sha256": "76e1dd849d3cfc243dc3bee5df45ff20206ef87f3d4b89e6d1d1b892cb30f6bb"
      },
      {
        "revision": "020",
        "downRevision": "019",
        "path": "apps/metis/service/alembic/versions/020_stimulus_set_authoring.py",
        "sha256": "ea0e43bba1725e3d7a0b13b6cf4279b0ecfa2b95f8a918618bc91c63db435df5"
      },
      {
        "revision": "021",
        "downRevision": "020",
        "path": "apps/metis/service/alembic/versions/021_item_learning_links.py",
        "sha256": "b98319f3e4cb628b30ca14e9d94f52a8fd202016ab40e9c67cad7abb576001b1"
      },
      {
        "revision": "022",
        "downRevision": "021",
        "path": "apps/metis/service/alembic/versions/022_item_estimates.py",
        "sha256": "a30cc96cd24d30481b0a981a15bbad6c6b393370547844fda4d4f640b965ab55"
      },
      {
        "revision": "023",
        "downRevision": "022",
        "path": "apps/metis/service/alembic/versions/023_distractor_mapping.py",
        "sha256": "4458f83801a032da5430c7fe62c5d3bffd4514573e00a9dd041b9f5533a2d487"
      },
      {
        "revision": "024",
        "downRevision": "023",
        "path": "apps/metis/service/alembic/versions/024_answer_ambiguity.py",
        "sha256": "a717d7f9e6d23c0a0c61b66d2be990bf196695a533d743ce0efed8beb87165e6"
      },
      {
        "revision": "025",
        "downRevision": "024",
        "path": "apps/metis/service/alembic/versions/025_answer_leakage.py",
        "sha256": "c9e10a24f9b2fe8f4e251fa17514e6ab4b324a83b7c6d89688eefb13f3e8c602"
      },
      {
        "revision": "026",
        "downRevision": "025",
        "path": "apps/metis/service/alembic/versions/026_item_accessibility.py",
        "sha256": "729c97e380404c9a6021b353f3fa04451353d9ba121b97db08801a42274a37e5"
      },
      {
        "revision": "027",
        "downRevision": "026",
        "path": "apps/metis/service/alembic/versions/027_item_comparison.py",
        "sha256": "d31a343b43d440758a34c8c5ed9f8d1dde33e28382498c460da65e6fd13730d0"
      },
      {
        "revision": "028",
        "downRevision": "027",
        "path": "apps/metis/service/alembic/versions/028_item_assembly.py",
        "sha256": "fc768d6dc2a8d4d6363449c64d990cb8eb828098d65ccebca0999aba9ec4aaa6"
      },
      {
        "revision": "029",
        "downRevision": "028",
        "path": "apps/metis/service/alembic/versions/029_item_import.py",
        "sha256": "ae044f01cba1d2036505c2a2dc3738723d5c70599a368fcb1c65291d4fb30414"
      },
      {
        "revision": "030",
        "downRevision": "029",
        "path": "apps/metis/service/alembic/versions/030_objective_alignment_gate.py",
        "sha256": "0b9b17754c5e88a947632e9096d28028b09f0dbcb540024917971ca5f2e941d0"
      },
      {
        "revision": "031",
        "downRevision": "030",
        "path": "apps/metis/service/alembic/versions/031_item_clarity.py",
        "sha256": "0b7c91ef6a2e347f1424b3bd2af1eb6f7b7e72fdc16058452549bc2eac8d41e3"
      },
      {
        "revision": "032",
        "downRevision": "031",
        "path": "apps/metis/service/alembic/versions/032_distractor_quality.py",
        "sha256": "87d0a3b0bc5e4a9b0fff920979d3c7f0969cfd5dd4c9d76191ffe0df1b71a260"
      },
      {
        "revision": "033",
        "downRevision": "032",
        "path": "apps/metis/service/alembic/versions/033_answer_consistency.py",
        "sha256": "660e3307994849d12807fe727bd985fad9922dc4f5c235baeef6c861eb086420"
      },
      {
        "revision": "034",
        "downRevision": "033",
        "path": "apps/metis/service/alembic/versions/034_rubric_quality.py",
        "sha256": "1c09bdb1f3574c24b37886f98d02de7165095f72e325c6908e1084c20dd56165"
      },
      {
        "revision": "035",
        "downRevision": "034",
        "path": "apps/metis/service/alembic/versions/035_accessibility_completeness.py",
        "sha256": "b9fc0c766520f3d8122b72f595ef6f4962b9e79e48bcf394f181af416e896fb2"
      },
      {
        "revision": "036",
        "downRevision": "035",
        "path": "apps/metis/service/alembic/versions/036_item_irt_diagnostics.py",
        "sha256": "61ec90acae2320e44f361de60ff835747ace77d8810afe349e530e42d08f4c31"
      },
      {
        "revision": "037",
        "downRevision": "036",
        "path": "apps/metis/service/alembic/versions/037_calibration_promotion_eligibility.py",
        "sha256": "52ac4f90e22fe44e28bb2865d5a551e63c9e612f9853046aeef9ab4d74adcee3"
      },
      {
        "revision": "038",
        "downRevision": "037",
        "path": "apps/metis/service/alembic/versions/038_dif_analysis.py",
        "sha256": "142ea3df3c84ccfcc6943b1e88087e7901a730187ee3a37e6e2739c2191356f1"
      },
      {
        "revision": "039",
        "downRevision": "038",
        "path": "apps/metis/service/alembic/versions/039_exposure_control.py",
        "sha256": "c0ecfcb39586ca088160657a1840770a68eee8f379ea87c2cdc09b77e5e0c0ad"
      },
      {
        "revision": "040",
        "downRevision": "039",
        "path": "apps/metis/service/alembic/versions/040_content_freshness.py",
        "sha256": "fc57fc9e684d9d24f7f97fc166427e58c5145efbb118efaac9cc3365fcd5cd80"
      },
      {
        "revision": "041",
        "downRevision": "040",
        "path": "apps/metis/service/alembic/versions/041_cultural_review.py",
        "sha256": "cdc4e77b77c6f26b3eeaf2f52ec96e4cfb69bff106ff1a622d2da377b9482d2b"
      },
      {
        "revision": "042",
        "downRevision": "041",
        "path": "apps/metis/service/alembic/versions/042_measurement_ledger.py",
        "sha256": "f8bb7915b4298d4bce7957e690cdb1628c98326231c9e22097d82f77b6020929"
      },
      {
        "revision": "043",
        "downRevision": "042",
        "path": "apps/metis/service/alembic/versions/043_measurement_provenance_registry.py",
        "sha256": "ce3899bb7174908b469f653b7e301f1247e03d3ac939760319da79dcfb4a3804"
      },
      {
        "revision": "044",
        "downRevision": "043",
        "path": "apps/metis/service/alembic/versions/044_persistence_expand.py",
        "sha256": "9a249ec916f5b6d3cfa4314ae7bde5d1cb956389322443bb960caf2425a259c5"
      },
      {
        "revision": "045",
        "downRevision": "044",
        "path": "apps/metis/service/alembic/versions/045_operational_columns.py",
        "sha256": "d55762ff5d89b14895f4cfdd0ded7a44165706277c0eb2c79cff810626f866b0"
      },
      {
        "revision": "046",
        "downRevision": "045",
        "path": "apps/metis/service/alembic/versions/046_aggregate_stores.py",
        "sha256": "19c5a4c58f1243c0b2e7f1add2da462d37c7fac84c7ab73977386f71790ece23"
      },
      {
        "revision": "047",
        "downRevision": "046",
        "path": "apps/metis/service/alembic/versions/047_revision_immutability.py",
        "sha256": "99e22efdf373644686c0492db9347ce5ac440206ee0759d4b0e75dc73c74d192"
      },
      {
        "revision": "048",
        "downRevision": "047",
        "path": "apps/metis/service/alembic/versions/048_source_propagation.py",
        "sha256": "b4dd314a8bea84862ff5e34ccf6b9c69b0b858966bf3d39c89e39431dec90876"
      },
      {
        "revision": "049",
        "downRevision": "048",
        "path": "apps/metis/service/alembic/versions/049_aggregate_archive.py",
        "sha256": "75bf3daf940831edd9e69eeb647db6f76db8fa9e186a0fa84c13458548615ab2"
      },
      {
        "revision": "050",
        "downRevision": "049",
        "path": "apps/metis/service/alembic/versions/050_generation_jobs.py",
        "sha256": "b396d54e258259cbacd3ab1d5ffd7a6bed1a837b3c879b5b910a1a09de301972"
      },
      {
        "revision": "051",
        "downRevision": "050",
        "path": "apps/metis/service/alembic/versions/051_gate_jobs.py",
        "sha256": "438750643e397b65d5ba344eec82f0214286d5abf04f9a7b7ffd8a3053ff0b0a"
      },
      {
        "revision": "052",
        "downRevision": "051",
        "path": "apps/metis/service/alembic/versions/052_publication_sagas.py",
        "sha256": "28e8f00e7b5874244d5355466f52066e5cdd73e6d0a07ea6278b8bdbec01888d"
      },
      {
        "revision": "053",
        "downRevision": "052",
        "path": "apps/metis/service/alembic/versions/053_grade_ledger.py",
        "sha256": "4fbc721899d8702ef109589267597474d8f5d3fecb17f30abc812e5f095eead0"
      },
      {
        "revision": "054",
        "downRevision": "053",
        "path": "apps/metis/service/alembic/versions/054_themis_linkage.py",
        "sha256": "0a0f417c4eacc8ed2299f7fb7f219d9d704829538d0e6f1cf8e5ef4a487fb57b"
      },
      {
        "revision": "055",
        "downRevision": "054",
        "path": "apps/metis/service/alembic/versions/055_inbox_capture.py",
        "sha256": "36511ce2e45221a2aecc232ff41e1b941740034ba16e143787eba8513d0aee7a"
      },
      {
        "revision": "056",
        "downRevision": "055",
        "path": "apps/metis/service/alembic/versions/056_grounding_record.py",
        "sha256": "a3abd05dbfc3888fc00dad97dc3e44711b469d8f6e2c047ee1e8424f09b0b54e"
      },
      {
        "revision": "057",
        "downRevision": "056",
        "path": "apps/metis/service/alembic/versions/057_learning_graph_record.py",
        "sha256": "d95790cd31e3894bb1355ab39be5333ccb428fcabf6861f7568f2a7b6652c7ed"
      },
      {
        "revision": "058",
        "downRevision": "057",
        "path": "apps/metis/service/alembic/versions/058_psychometric_decision.py",
        "sha256": "c9d791f22a29bd382c048a1bbf9afb06968c21738d74b94a35691b8fe06d60b5"
      },
      {
        "revision": "059",
        "downRevision": "058",
        "path": "apps/metis/service/alembic/versions/059_calendar_record.py",
        "sha256": "869a84e8ac887b170d97fd556440a75edc010464d88e6d2b0cbcde2145692fd6"
      },
      {
        "revision": "060",
        "downRevision": "059",
        "path": "apps/metis/service/alembic/versions/060_taxonomy_record.py",
        "sha256": "c7a880f62bc1f2918c010813c7ea0e0cdb761f8910c553e9ccfb1f27968793aa"
      },
      {
        "revision": "061",
        "downRevision": "060",
        "path": "apps/metis/service/alembic/versions/061_localization_record.py",
        "sha256": "f30a187d11640697a9da1b38fa9d5c1ccf822db9b2fdca8f26a026e2c29600d2"
      },
      {
        "revision": "062",
        "downRevision": "061",
        "path": "apps/metis/service/alembic/versions/062_catalog_bundle_record.py",
        "sha256": "183bdd33284b07907d49b5797aa015c0f596ff54ba2b3a9e2015004b47cfeeaa"
      },
      {
        "revision": "063",
        "downRevision": "062",
        "path": "apps/metis/service/alembic/versions/063_publication_candidate_record.py",
        "sha256": "c8a9c5bed93229ddbcac93d7f0a294375f17fedd99cc97271b846721028f9d8e"
      },
      {
        "revision": "064",
        "downRevision": "063",
        "path": "apps/metis/service/alembic/versions/064_export_diagnostic_record.py",
        "sha256": "ca87df6617d8a4baee25d630b7c30cc0d67716275801525e165626505bd6cced"
      },
      {
        "revision": "065",
        "downRevision": "064",
        "path": "apps/metis/service/alembic/versions/065_review_subject_record.py",
        "sha256": "a5ec279d0057c5681712fd98ee376b18d4af6e10bb0ce4f8c7cb7559c1ca0931"
      },
      {
        "revision": "066",
        "downRevision": "065",
        "path": "apps/metis/service/alembic/versions/066_media_workspace_record.py",
        "sha256": "6ae80622bd7ed0da5f38585e91009409b630e017ec7ef0520c4911220c6e5662"
      },
      {
        "revision": "067",
        "downRevision": "066",
        "path": "apps/metis/service/alembic/versions/067_credential_workspace_record.py",
        "sha256": "1a2042c5ff953a46903ba2a9fe0381a6409cbd55694f283b176098ba7b65c659"
      }
    ],
    "databaseObservation": {
      "observedAt": "2026-09-02T04:55:09Z",
      "boundary": "local oshun_dev PostgreSQL selected by apps/metis/service/alembic/env.py",
      "revisionQueryCommand": "docker exec oshun-dev-postgres psql -U oshun -d oshun_dev -Atc 'SELECT version_num FROM alembic_version;'",
      "revisionQueryExitCode": 0,
      "observedRevision": "043",
      "graphResolutionCommand": "cd apps/metis/service && PYTHONPATH=src .venv/bin/python -m alembic current",
      "graphResolutionExitCode": 0,
      "outcome": "code-database-head-aligned",
      "diagnostic": "043 (head)",
      "limitation": "This is a dated local-host observation, not staging or production state; the code graph is re-derived on every verification."
    }
  },
  "stores": [
    {
      "id": "postgresql-shared-public",
      "kind": "relational-database",
      "authority": "current durable service store; proposed bounded-hybrid cutover is not ratified",
      "source": "apps/metis/service/src/metis/deps.py"
    },
    {
      "id": "filesystem-json-ledger",
      "kind": "host-filesystem",
      "authority": "durable append-only JSON/filesystem state below source_ingestion_storage_dir for current curriculum services",
      "source": "apps/metis/service/src/metis/services/curriculum_brief_service.py"
    },
    {
      "id": "code-owned-registry",
      "kind": "repository-constant",
      "authority": "read-only policy, taxonomy, template, or seed-pack definitions owned in service code",
      "source": "apps/metis/service/src/metis/api/curriculum.py"
    },
    {
      "id": "redis-runtime-cache",
      "kind": "ephemeral-key-value",
      "authority": "namespaced cache/runtime acceleration; not canonical durable learner state",
      "source": "apps/metis/service/src/metis/deps.py"
    },
    {
      "id": "s3-minio-object-store",
      "kind": "object-store",
      "authority": "configured binary/source object storage behind presigned operations",
      "source": "apps/metis/service/src/metis/deps.py"
    },
    {
      "id": "service-local-media-files",
      "kind": "host-filesystem",
      "authority": "rendered lecture/media artifacts resolved by service settings",
      "source": "apps/metis/service/src/metis/api/courses.py"
    },
    {
      "id": "browser-local-storage",
      "kind": "browser-storage",
      "authority": "client continuity draft only; never authoritative service state",
      "source": "apps/metis/web/src/app"
    },
    {
      "id": "browser-memory",
      "kind": "browser-memory",
      "authority": "ephemeral rendered/client state only",
      "source": "apps/metis/web/src/app"
    },
    {
      "id": "oshun-bff-session",
      "kind": "external-http-and-cookie",
      "authority": "platform identity/session boundary; refresh token retained only in an HTTP-only cookie",
      "source": "apps/metis/web/src/lib/server/auth-proxy.ts"
    },
    {
      "id": "isis-http-gallery-authority",
      "kind": "external-http-authority",
      "authority": "fail-closed current Isis gallery state for selected lesson media operations",
      "source": "apps/metis/service/src/metis/deps.py"
    },
    {
      "id": "request-only-computation",
      "kind": "stateless-compute",
      "authority": "response computed from the submitted request; no durable store claimed by the endpoint",
      "source": "apps/metis/service/src/metis/api/media_readiness.py"
    }
  ],
  "classifications": [
    {
      "id": "public-authentication-input",
      "status": "survey-derived",
      "meaning": "credentials/session input sent to the platform identity boundary"
    },
    {
      "id": "published-learning-content",
      "status": "survey-derived",
      "meaning": "course and lesson delivery content exposed on learner surfaces"
    },
    {
      "id": "internal-authoring-data",
      "status": "proposed-adr",
      "meaning": "course, curriculum, lesson, and review authoring records"
    },
    {
      "id": "confidential-assessment-material",
      "status": "proposed-adr",
      "meaning": "assessment instruments, questions, answer keys, rubrics, and item-bank evidence"
    },
    {
      "id": "protected-learner-data",
      "status": "proposed-adr",
      "meaning": "enrollment, progress, mastery input, achievement, preference, and continuity state"
    },
    {
      "id": "protected-learner-conversation",
      "status": "proposed-adr",
      "meaning": "tutoring sessions and ordered messages"
    },
    {
      "id": "restricted-assessment-evidence",
      "status": "proposed-adr",
      "meaning": "attempt answers, provenance, submission, and grading evidence"
    },
    {
      "id": "restricted-education-record",
      "status": "proposed-adr",
      "meaning": "score and grade outcomes"
    },
    {
      "id": "restricted-identity-authorization-projection",
      "status": "proposed-adr",
      "meaning": "minimal user, tenant, entitlement, and session projection"
    },
    {
      "id": "unratified-mixed-boundary",
      "status": "explicit-gap",
      "meaning": "current data may cross proposed ownership classes; Data Governance and named ADR reviewers remain pending"
    }
  ],
  "pages": [
    {
      "page": "/",
      "source": "apps/metis/web/src/app/page.tsx",
      "sourceSha256": "ae1115e08f9497ca386ebdc5f9985d9a9b9010ac5aff8da93637ac0299d3c59e",
      "reachableSourceCount": 13,
      "audience": "public-landing-with-optional-learner-context",
      "pageAccess": "public-optional-session",
      "apiFamilies": ["/analytics", "/auth", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": ["/api/metis/v1/analytics/reminders", "/api/metis/v1/auth/me"],
      "serviceContractMatchedPaths": ["/api/metis/v1/analytics/reminders", "/api/metis/v1/auth/me"],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Public page; optional in-memory bearer token is used for profile/reminder calls. Default gateway does not register either current API path.",
      "classifications": [
        "published-learning-content",
        "protected-learner-data",
        "restricted-identity-authorization-projection"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/assessments",
      "source": "apps/metis/web/src/app/assessments/page.tsx",
      "sourceSha256": "c12f588ffb1d0346c1d255e4b880742f3b9cfb5d65f22a2629ec81e75ea58573",
      "reachableSourceCount": 16,
      "audience": "learner-assessment",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/assessments", "/courses", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/assessments",
        "/api/metis/v1/assessments/:dynamic/submissions",
        "/api/metis/v1/courses"
      ],
      "gatewayMatchedPaths": ["/api/metis/v1/assessments", "/api/metis/v1/courses"],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/assessments/:dynamic/submissions"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/assessments",
        "/api/metis/v1/assessments/:dynamic/submissions",
        "/api/metis/v1/courses"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "mixed-gateway-coverage",
      "stores": [
        "browser-local-storage",
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; service list/detail reads are public, while submission/history requires bearer user. Gateway permission policy also applies where a handler exists.",
      "classifications": [
        "confidential-assessment-material",
        "restricted-assessment-evidence",
        "restricted-education-record",
        "protected-learner-data"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/assessments/[assessmentId]",
      "source": "apps/metis/web/src/app/assessments/[assessmentId]/page.tsx",
      "sourceSha256": "373e1ae1b79aee89c0fc8e7dd50f9a6c48d861aff0710687c6447578a6337661",
      "reachableSourceCount": 21,
      "audience": "learner-assessment",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/assessments", "/courses", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/assessments/:dynamic",
        "/api/metis/v1/assessments/:dynamic/submissions",
        "/api/metis/v1/assessments/:dynamic/submit",
        "/api/metis/v1/courses/:dynamic"
      ],
      "gatewayMatchedPaths": [
        "/api/metis/v1/assessments/:dynamic",
        "/api/metis/v1/assessments/:dynamic/submit",
        "/api/metis/v1/courses/:dynamic"
      ],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/assessments/:dynamic/submissions"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/assessments/:dynamic",
        "/api/metis/v1/assessments/:dynamic/submissions",
        "/api/metis/v1/assessments/:dynamic/submit",
        "/api/metis/v1/courses/:dynamic"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "mixed-gateway-coverage",
      "stores": [
        "browser-local-storage",
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; service list/detail reads are public, while submission/history requires bearer user. Gateway permission policy also applies where a handler exists.",
      "classifications": [
        "confidential-assessment-material",
        "restricted-assessment-evidence",
        "restricted-education-record",
        "protected-learner-data"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/courses",
      "source": "apps/metis/web/src/app/courses/page.tsx",
      "sourceSha256": "ae7b0d125f475a0b634c8f42de9ab0552bd46dfcef035f059b6475687abf63f0",
      "reachableSourceCount": 20,
      "audience": "learner-content",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/auth", "/courses", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me",
        "/api/metis/v1/courses"
      ],
      "gatewayMatchedPaths": ["/api/metis/v1/courses"],
      "gatewayUnmatchedPaths": ["/api/metis/v1/analytics/reminders", "/api/metis/v1/auth/me"],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me",
        "/api/metis/v1/courses"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "mixed-gateway-coverage",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; gateway courses:read permission applies to registered paths, while direct FastAPI catalog reads are public and learner mutations require bearer user.",
      "classifications": ["published-learning-content", "protected-learner-data"],
      "seamAdmission": "parked"
    },
    {
      "page": "/courses/[courseId]",
      "source": "apps/metis/web/src/app/courses/[courseId]/page.tsx",
      "sourceSha256": "a531fb7460d65405b436817ec4c2734a67eadbc85ff857c89289d3611c87600b",
      "reachableSourceCount": 27,
      "audience": "learner-content",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/courses", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/courses/:dynamic",
        "/api/metis/v1/courses/:dynamic/enroll"
      ],
      "gatewayMatchedPaths": [
        "/api/metis/v1/courses/:dynamic",
        "/api/metis/v1/courses/:dynamic/enroll"
      ],
      "gatewayUnmatchedPaths": ["/api/metis/v1/analytics/reminders"],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/courses/:dynamic",
        "/api/metis/v1/courses/:dynamic/enroll"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "mixed-gateway-coverage",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; gateway courses:read permission applies to registered paths, while direct FastAPI catalog reads are public and learner mutations require bearer user.",
      "classifications": ["published-learning-content", "protected-learner-data"],
      "seamAdmission": "parked"
    },
    {
      "page": "/courses/[courseId]/play",
      "source": "apps/metis/web/src/app/courses/[courseId]/play/page.tsx",
      "sourceSha256": "0ea5fb1119e9360a4bb6451af14655a89a07e50c1ac8b14a51050f528e44c6f1",
      "reachableSourceCount": 37,
      "audience": "learner-content",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": [
        "/analytics",
        "/courses",
        "/lesson-dossiers",
        "/teaching-media",
        "oshun-bff-auth"
      ],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/courses/:dynamic",
        "/api/metis/v1/courses/:dynamic/lecture-package",
        "/api/metis/v1/courses/:dynamic/lecture-package/assets/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/delivery",
        "/api/metis/v1/teaching-media/lecture-packages/by-lesson/:dynamic/playback"
      ],
      "gatewayMatchedPaths": ["/api/metis/v1/courses/:dynamic"],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/courses/:dynamic/lecture-package",
        "/api/metis/v1/courses/:dynamic/lecture-package/assets/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/delivery",
        "/api/metis/v1/teaching-media/lecture-packages/by-lesson/:dynamic/playback"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/courses/:dynamic",
        "/api/metis/v1/courses/:dynamic/lecture-package",
        "/api/metis/v1/courses/:dynamic/lecture-package/assets/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/delivery",
        "/api/metis/v1/teaching-media/lecture-packages/by-lesson/:dynamic/playback"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "mixed-gateway-coverage",
      "stores": [
        "browser-memory",
        "isis-http-gallery-authority",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache",
        "service-local-media-files"
      ],
      "authz": "Next middleware checks cookie presence; gateway courses:read permission applies to registered paths, while direct FastAPI catalog reads are public and learner mutations require bearer user.",
      "classifications": ["published-learning-content", "protected-learner-data"],
      "seamAdmission": "parked"
    },
    {
      "page": "/create",
      "source": "apps/metis/web/src/app/create/page.tsx",
      "sourceSha256": "660e344638dff1e6608461c871f8bdfeb34dcca117dddc7097e524be0ee5857d",
      "reachableSourceCount": 19,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/assessments", "/courses", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/assessments",
        "/api/metis/v1/assessments/:dynamic",
        "/api/metis/v1/assessments/:dynamic/questions",
        "/api/metis/v1/courses",
        "/api/metis/v1/courses/:dynamic/modules",
        "/api/metis/v1/courses/:dynamic/modules/:dynamic",
        "/api/metis/v1/courses/:dynamic/modules/:dynamic/lessons",
        "/api/metis/v1/courses/:dynamic/modules/:dynamic/lessons/:dynamic"
      ],
      "gatewayMatchedPaths": [
        "/api/metis/v1/assessments",
        "/api/metis/v1/assessments/:dynamic",
        "/api/metis/v1/courses"
      ],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/assessments/:dynamic/questions",
        "/api/metis/v1/courses/:dynamic/modules",
        "/api/metis/v1/courses/:dynamic/modules/:dynamic",
        "/api/metis/v1/courses/:dynamic/modules/:dynamic/lessons",
        "/api/metis/v1/courses/:dynamic/modules/:dynamic/lessons/:dynamic"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/assessments",
        "/api/metis/v1/assessments/:dynamic",
        "/api/metis/v1/assessments/:dynamic/questions",
        "/api/metis/v1/courses",
        "/api/metis/v1/courses/:dynamic/modules",
        "/api/metis/v1/courses/:dynamic/modules/:dynamic",
        "/api/metis/v1/courses/:dynamic/modules/:dynamic/lessons",
        "/api/metis/v1/courses/:dynamic/modules/:dynamic/lessons/:dynamic"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "mixed-gateway-coverage",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/alignment-gates",
      "source": "apps/metis/web/src/app/create/alignment-gates/page.tsx",
      "sourceSha256": "f027d50efda4df914d5fd020c22d477c3dbe738733388e51e51660208166cc77",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/objective-alignment-gates", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/objective-alignment-gates/policy",
        "/api/metis/v1/objective-alignment-gates/runs",
        "/api/metis/v1/objective-alignment-gates/runs/:dynamic"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/objective-alignment-gates/policy",
        "/api/metis/v1/objective-alignment-gates/runs",
        "/api/metis/v1/objective-alignment-gates/runs/:dynamic"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/objective-alignment-gates/policy",
        "/api/metis/v1/objective-alignment-gates/runs",
        "/api/metis/v1/objective-alignment-gates/runs/:dynamic"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/alignments",
      "source": "apps/metis/web/src/app/create/alignments/page.tsx",
      "sourceSha256": "7095452d52c742d612bd38b55897ff7d7f4ecd9128c739defd795a20aa271ef6",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/curriculum", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/alignment-proposals/:dynamic/reviews",
        "/api/metis/v1/curriculum/alignment-suggestion-runs",
        "/api/metis/v1/curriculum/alignment-workspace",
        "/api/metis/v1/curriculum/objective-maps",
        "/api/metis/v1/curriculum/standards-registry"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/alignment-proposals/:dynamic/reviews",
        "/api/metis/v1/curriculum/alignment-suggestion-runs",
        "/api/metis/v1/curriculum/alignment-workspace",
        "/api/metis/v1/curriculum/objective-maps",
        "/api/metis/v1/curriculum/standards-registry"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/alignment-proposals/:dynamic/reviews",
        "/api/metis/v1/curriculum/alignment-suggestion-runs",
        "/api/metis/v1/curriculum/alignment-workspace",
        "/api/metis/v1/curriculum/objective-maps",
        "/api/metis/v1/curriculum/standards-registry"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "code-owned-registry",
        "filesystem-json-ledger",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/boards",
      "source": "apps/metis/web/src/app/create/boards/page.tsx",
      "sourceSha256": "e1ba9fb30169593b0107cb5d8ec99ace49ec145da3d0a09d66942228f320b222",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/course-boards", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/course-boards",
        "/api/metis/v1/course-boards/courses",
        "/api/metis/v1/course-boards/courses/:dynamic/modules",
        "/api/metis/v1/course-boards/group",
        "/api/metis/v1/course-boards/history/:dynamic/:dynamic",
        "/api/metis/v1/course-boards/reorder",
        "/api/metis/v1/course-boards/transitions"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/course-boards",
        "/api/metis/v1/course-boards/courses",
        "/api/metis/v1/course-boards/courses/:dynamic/modules",
        "/api/metis/v1/course-boards/group",
        "/api/metis/v1/course-boards/history/:dynamic/:dynamic",
        "/api/metis/v1/course-boards/reorder",
        "/api/metis/v1/course-boards/transitions"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/course-boards",
        "/api/metis/v1/course-boards/courses",
        "/api/metis/v1/course-boards/courses/:dynamic/modules",
        "/api/metis/v1/course-boards/group",
        "/api/metis/v1/course-boards/history/:dynamic/:dynamic",
        "/api/metis/v1/course-boards/reorder",
        "/api/metis/v1/course-boards/transitions"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/brief",
      "source": "apps/metis/web/src/app/create/brief/page.tsx",
      "sourceSha256": "8764ebdc0b71324cbf1d4445032837f382ce32e6587db6d68f55a9f847d6cf30",
      "reachableSourceCount": 12,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/curriculum", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/brief-policy",
        "/api/metis/v1/curriculum/briefs",
        "/api/metis/v1/curriculum/briefs/:dynamic/revisions",
        "/api/metis/v1/curriculum/briefs/:dynamic/revisions/:dynamic/reviews"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/brief-policy",
        "/api/metis/v1/curriculum/briefs",
        "/api/metis/v1/curriculum/briefs/:dynamic/revisions",
        "/api/metis/v1/curriculum/briefs/:dynamic/revisions/:dynamic/reviews"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/brief-policy",
        "/api/metis/v1/curriculum/briefs",
        "/api/metis/v1/curriculum/briefs/:dynamic/revisions",
        "/api/metis/v1/curriculum/briefs/:dynamic/revisions/:dynamic/reviews"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "code-owned-registry",
        "filesystem-json-ledger",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/coverage",
      "source": "apps/metis/web/src/app/create/coverage/page.tsx",
      "sourceSha256": "be782a80268100bccf2efea1dc191d676a4d2f417d86066040a0504718a65d35",
      "reachableSourceCount": 15,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/curriculum", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/coverage-policy",
        "/api/metis/v1/curriculum/coverage-reports",
        "/api/metis/v1/curriculum/coverage-reports/:dynamic/recomputations",
        "/api/metis/v1/curriculum/objective-maps",
        "/api/metis/v1/curriculum/outline-variant-sets"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/coverage-policy",
        "/api/metis/v1/curriculum/coverage-reports",
        "/api/metis/v1/curriculum/coverage-reports/:dynamic/recomputations",
        "/api/metis/v1/curriculum/objective-maps",
        "/api/metis/v1/curriculum/outline-variant-sets"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/coverage-policy",
        "/api/metis/v1/curriculum/coverage-reports",
        "/api/metis/v1/curriculum/coverage-reports/:dynamic/recomputations",
        "/api/metis/v1/curriculum/objective-maps",
        "/api/metis/v1/curriculum/outline-variant-sets"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "code-owned-registry",
        "filesystem-json-ledger",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/decisions",
      "source": "apps/metis/web/src/app/create/decisions/page.tsx",
      "sourceSha256": "6125bd2841d8f479032627cbeffcb5901a74ca8593b1f035fe144f9c85354ce0",
      "reachableSourceCount": 17,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/curriculum", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/coverage-reports",
        "/api/metis/v1/curriculum/decision-workspaces",
        "/api/metis/v1/curriculum/decision-workspaces/:dynamic/decisions",
        "/api/metis/v1/curriculum/outline-variant-sets",
        "/api/metis/v1/curriculum/workload-estimates"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/coverage-reports",
        "/api/metis/v1/curriculum/decision-workspaces",
        "/api/metis/v1/curriculum/decision-workspaces/:dynamic/decisions",
        "/api/metis/v1/curriculum/outline-variant-sets",
        "/api/metis/v1/curriculum/workload-estimates"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/coverage-reports",
        "/api/metis/v1/curriculum/decision-workspaces",
        "/api/metis/v1/curriculum/decision-workspaces/:dynamic/decisions",
        "/api/metis/v1/curriculum/outline-variant-sets",
        "/api/metis/v1/curriculum/workload-estimates"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "code-owned-registry",
        "filesystem-json-ledger",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/disciplines",
      "source": "apps/metis/web/src/app/create/disciplines/page.tsx",
      "sourceSha256": "7d1c85cf1e1873014b91ad1a2eae33c7f0af0fe902b1f3b42450e32bc49989fd",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/curriculum", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/discipline-plans/exports",
        "/api/metis/v1/curriculum/discipline-plans/validate",
        "/api/metis/v1/curriculum/discipline-templates"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/discipline-plans/exports",
        "/api/metis/v1/curriculum/discipline-plans/validate",
        "/api/metis/v1/curriculum/discipline-templates"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/discipline-plans/exports",
        "/api/metis/v1/curriculum/discipline-plans/validate",
        "/api/metis/v1/curriculum/discipline-templates"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "code-owned-registry",
        "filesystem-json-ledger",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/discovery",
      "source": "apps/metis/web/src/app/create/discovery/page.tsx",
      "sourceSha256": "1f8967d552b47ec6794139c9203e7c837dbcb72d159812b52eb92c42cfcd9d36",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/curriculum", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/discovery/actions",
        "/api/metis/v1/curriculum/discovery/connectors",
        "/api/metis/v1/curriculum/discovery/items/:dynamic/actions",
        "/api/metis/v1/curriculum/discovery/search"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/discovery/actions",
        "/api/metis/v1/curriculum/discovery/connectors",
        "/api/metis/v1/curriculum/discovery/items/:dynamic/actions",
        "/api/metis/v1/curriculum/discovery/search"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/discovery/actions",
        "/api/metis/v1/curriculum/discovery/connectors",
        "/api/metis/v1/curriculum/discovery/items/:dynamic/actions",
        "/api/metis/v1/curriculum/discovery/search"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "code-owned-registry",
        "filesystem-json-ledger",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank",
      "source": "apps/metis/web/src/app/create/item-bank/page.tsx",
      "sourceSha256": "3b8b37260f5e51901bd63c8974dac8c4884f9fad3ee46e1c774aadf9f6af43d1",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/items/:dynamic/revisions/:dynamic/preview",
        "/api/metis/v1/item-bank/search"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/items/:dynamic/revisions/:dynamic/preview",
        "/api/metis/v1/item-bank/search"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/items/:dynamic/revisions/:dynamic/preview",
        "/api/metis/v1/item-bank/search"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/accessibility",
      "source": "apps/metis/web/src/app/create/item-bank/accessibility/page.tsx",
      "sourceSha256": "422dd33c6be5f6261e56045a902c25fbd2dc9de40633facb170acf3c78346987",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/accessibility/items/:dynamic/audits",
        "/api/metis/v1/item-bank/accessibility/items/:dynamic/history",
        "/api/metis/v1/item-bank/accessibility/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/accessibility/items/:dynamic/release-gates"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/accessibility/items/:dynamic/audits",
        "/api/metis/v1/item-bank/accessibility/items/:dynamic/history",
        "/api/metis/v1/item-bank/accessibility/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/accessibility/items/:dynamic/release-gates"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/accessibility/items/:dynamic/audits",
        "/api/metis/v1/item-bank/accessibility/items/:dynamic/history",
        "/api/metis/v1/item-bank/accessibility/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/accessibility/items/:dynamic/release-gates"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/accessibility/completeness",
      "source": "apps/metis/web/src/app/create/item-bank/accessibility/completeness/page.tsx",
      "sourceSha256": "12fa56d856c25f228ad938cf1316f42646fbe1e532edf7dba9dc494aa3beea4f",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/accessibility-completeness/items/:dynamic/assessments",
        "/api/metis/v1/item-bank/accessibility-completeness/items/:dynamic/history",
        "/api/metis/v1/item-bank/accessibility-completeness/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/accessibility-completeness/items/:dynamic/publication-gates"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/accessibility-completeness/items/:dynamic/assessments",
        "/api/metis/v1/item-bank/accessibility-completeness/items/:dynamic/history",
        "/api/metis/v1/item-bank/accessibility-completeness/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/accessibility-completeness/items/:dynamic/publication-gates"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/accessibility-completeness/items/:dynamic/assessments",
        "/api/metis/v1/item-bank/accessibility-completeness/items/:dynamic/history",
        "/api/metis/v1/item-bank/accessibility-completeness/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/accessibility-completeness/items/:dynamic/publication-gates"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/accessibility/media-readiness",
      "source": "apps/metis/web/src/app/create/item-bank/accessibility/media-readiness/page.tsx",
      "sourceSha256": "b006a1b8c96443e59b851a25739238018cdd8b3f37fe8f3e4528b11d61513fa6",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/media-readiness", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/media-readiness/evaluations"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/media-readiness/evaluations"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/media-readiness/evaluations"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache",
        "request-only-computation"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/answer-leakage",
      "source": "apps/metis/web/src/app/create/item-bank/answer-leakage/page.tsx",
      "sourceSha256": "a2e63542373b907aff1fb097423497ae3dc4da7a5f1aed12361856a66be3241e",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/history",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/release-gates",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/scans"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/history",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/release-gates",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/scans"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/history",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/release-gates",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/answer-leakage/items/:dynamic/scans"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/answer-verification",
      "source": "apps/metis/web/src/app/create/item-bank/answer-verification/page.tsx",
      "sourceSha256": "b0a401c58dacd42bca8f6e6b36a82a4d716065c829ae77434384d4f22ebfea1e",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/history",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/publication-gates",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/verifications"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/history",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/publication-gates",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/verifications"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/history",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/publication-gates",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/answer-verification/items/:dynamic/verifications"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/answer-verification/consistency",
      "source": "apps/metis/web/src/app/create/item-bank/answer-verification/consistency/page.tsx",
      "sourceSha256": "403497f1a3937a56573c75a475d228e05ceb93e0354b5cc7df03cbbf2d7ce6ac",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/history",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/release-gates",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/scans"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/history",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/release-gates",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/scans"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/history",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/release-gates",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/answer-consistency/items/:dynamic/scans"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/assemblies",
      "source": "apps/metis/web/src/app/create/item-bank/assemblies/page.tsx",
      "sourceSha256": "6c262332bf903b48314b23a7499a80fd59bfd6aa0da1c4169d8f06b568df327f",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/assemblies",
        "/api/metis/v1/item-bank/assemblies/:dynamic/decisions"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/assemblies",
        "/api/metis/v1/item-bank/assemblies/:dynamic/decisions"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/assemblies",
        "/api/metis/v1/item-bank/assemblies/:dynamic/decisions"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/capture",
      "source": "apps/metis/web/src/app/create/item-bank/capture/page.tsx",
      "sourceSha256": "71fd0b65dff65681c65b3440d351b29fcc0e8fdc9433e0dad64f645f9e52832f",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts",
        "/api/metis/v1/item-bank/drafts/:dynamic",
        "/api/metis/v1/item-bank/drafts/:dynamic/structured",
        "/api/metis/v1/item-bank/drafts/:dynamic/validate"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts",
        "/api/metis/v1/item-bank/drafts/:dynamic",
        "/api/metis/v1/item-bank/drafts/:dynamic/structured",
        "/api/metis/v1/item-bank/drafts/:dynamic/validate"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts",
        "/api/metis/v1/item-bank/drafts/:dynamic",
        "/api/metis/v1/item-bank/drafts/:dynamic/structured",
        "/api/metis/v1/item-bank/drafts/:dynamic/validate"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-local-storage",
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/capture/math-code",
      "source": "apps/metis/web/src/app/create/item-bank/capture/math-code/page.tsx",
      "sourceSha256": "28e0d99700e1bc052640974596640b081248707ec9a94e042d2d8bc2f24277c5",
      "reachableSourceCount": 14,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/math-code/execute-preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/math-code/prepare",
        "/api/metis/v1/item-bank/drafts/:dynamic/math-code/preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/math-code/revisions"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/math-code/execute-preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/math-code/prepare",
        "/api/metis/v1/item-bank/drafts/:dynamic/math-code/preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/math-code/revisions"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/math-code/execute-preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/math-code/prepare",
        "/api/metis/v1/item-bank/drafts/:dynamic/math-code/preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/math-code/revisions"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-local-storage",
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/capture/media-interactive",
      "source": "apps/metis/web/src/app/create/item-bank/capture/media-interactive/page.tsx",
      "sourceSha256": "609c1358fb64eacbdbcf1c6021d5994e8f657b365d89afc8cd292ee1712ade3d",
      "reachableSourceCount": 17,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/capture-preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/prepare",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/qti-report",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/revisions"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/capture-preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/prepare",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/qti-report",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/revisions"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/capture-preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/prepare",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/qti-report",
        "/api/metis/v1/item-bank/drafts/:dynamic/media-interactive/revisions"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-local-storage",
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/capture/selected-response",
      "source": "apps/metis/web/src/app/create/item-bank/capture/selected-response/page.tsx",
      "sourceSha256": "553be6d743f8da5a468ebd3508229cf5d89a6bb84614b23d437e8bf8de407d94",
      "reachableSourceCount": 14,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/selected-response/prepare",
        "/api/metis/v1/item-bank/drafts/:dynamic/selected-response/preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/selected-response/revisions"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/selected-response/prepare",
        "/api/metis/v1/item-bank/drafts/:dynamic/selected-response/preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/selected-response/revisions"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/selected-response/prepare",
        "/api/metis/v1/item-bank/drafts/:dynamic/selected-response/preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/selected-response/revisions"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-local-storage",
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/capture/variants",
      "source": "apps/metis/web/src/app/create/item-bank/capture/variants/page.tsx",
      "sourceSha256": "a9469ef0d6477fcf25e28fb0c89bb4c34498f76baaa1ac1bd096e76521b0e2ac",
      "reachableSourceCount": 14,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/variant-proposals/:dynamic/decision",
        "/api/metis/v1/item-bank/drafts/:dynamic/variants",
        "/api/metis/v1/item-bank/drafts/:dynamic/variants/prepare"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/variant-proposals/:dynamic/decision",
        "/api/metis/v1/item-bank/drafts/:dynamic/variants",
        "/api/metis/v1/item-bank/drafts/:dynamic/variants/prepare"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/variant-proposals/:dynamic/decision",
        "/api/metis/v1/item-bank/drafts/:dynamic/variants",
        "/api/metis/v1/item-bank/drafts/:dynamic/variants/prepare"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-local-storage",
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/capture/written-response",
      "source": "apps/metis/web/src/app/create/item-bank/capture/written-response/page.tsx",
      "sourceSha256": "02b42e5ff30a6348b50804748f2fab445dbd2d32c550cd7ee8cefdae0af8a405",
      "reachableSourceCount": 14,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/written-response/prepare",
        "/api/metis/v1/item-bank/drafts/:dynamic/written-response/preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/written-response/revisions"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/written-response/prepare",
        "/api/metis/v1/item-bank/drafts/:dynamic/written-response/preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/written-response/revisions"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/drafts/:dynamic/written-response/prepare",
        "/api/metis/v1/item-bank/drafts/:dynamic/written-response/preview",
        "/api/metis/v1/item-bank/drafts/:dynamic/written-response/revisions"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-local-storage",
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/clarity",
      "source": "apps/metis/web/src/app/create/item-bank/clarity/page.tsx",
      "sourceSha256": "4c4607c952bf347f216b18d557929f7890cda38ab15d77f99f60cb2795822cf1",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/history",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/release-gates",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/scans"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/history",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/release-gates",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/scans"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/history",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/release-gates",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/clarity/items/:dynamic/scans"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/comparisons",
      "source": "apps/metis/web/src/app/create/item-bank/comparisons/page.tsx",
      "sourceSha256": "68888aef93409a5e49a4e6bcb9bf49860d22327e1c3687203639f013659b1f07",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/comparisons",
        "/api/metis/v1/item-bank/comparisons/:dynamic/decisions"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/comparisons",
        "/api/metis/v1/item-bank/comparisons/:dynamic/decisions"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/comparisons",
        "/api/metis/v1/item-bank/comparisons/:dynamic/decisions"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/distractors",
      "source": "apps/metis/web/src/app/create/item-bank/distractors/page.tsx",
      "sourceSha256": "d3edf34f8db2a62bc99472bd5f46df35595cedecf59c9cb478407ba6e9bf130e",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/distractors/concepts",
        "/api/metis/v1/item-bank/distractors/concepts/revisions",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/analyses",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/history",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/statistics"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/distractors/concepts",
        "/api/metis/v1/item-bank/distractors/concepts/revisions",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/analyses",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/history",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/statistics"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/distractors/concepts",
        "/api/metis/v1/item-bank/distractors/concepts/revisions",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/analyses",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/history",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/distractors/items/:dynamic/statistics"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/distractors/quality",
      "source": "apps/metis/web/src/app/create/item-bank/distractors/quality/page.tsx",
      "sourceSha256": "86cfe29ceea536d43219c42489396911a635d868f97aeb7311d4292e496776b3",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/history",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/release-gates",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/scans"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/history",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/release-gates",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/scans"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/history",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/prepare",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/release-gates",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/reviews",
        "/api/metis/v1/item-bank/distractor-quality/items/:dynamic/scans"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/estimates",
      "source": "apps/metis/web/src/app/create/item-bank/estimates/page.tsx",
      "sourceSha256": "3d6fc591701172976d2b7f036107dab33125d1edbe750ecb0b99929b37659100",
      "reachableSourceCount": 14,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/estimates/contexts",
        "/api/metis/v1/item-bank/estimates/difficulty-checks/evaluations",
        "/api/metis/v1/item-bank/estimates/predict",
        "/api/metis/v1/item-bank/estimates/revisions",
        "/api/metis/v1/item-bank/estimates/sets",
        "/api/metis/v1/item-bank/estimates/sets/:dynamic/audit"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/estimates/contexts",
        "/api/metis/v1/item-bank/estimates/difficulty-checks/evaluations",
        "/api/metis/v1/item-bank/estimates/predict",
        "/api/metis/v1/item-bank/estimates/revisions",
        "/api/metis/v1/item-bank/estimates/sets",
        "/api/metis/v1/item-bank/estimates/sets/:dynamic/audit"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/estimates/contexts",
        "/api/metis/v1/item-bank/estimates/difficulty-checks/evaluations",
        "/api/metis/v1/item-bank/estimates/predict",
        "/api/metis/v1/item-bank/estimates/revisions",
        "/api/metis/v1/item-bank/estimates/sets",
        "/api/metis/v1/item-bank/estimates/sets/:dynamic/audit"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/estimates/calibration-eligibility",
      "source": "apps/metis/web/src/app/create/item-bank/estimates/calibration-eligibility/page.tsx",
      "sourceSha256": "a7752eade2767672e82915f164c5d88d31420f3b2895392f82d65f0147fa358b",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/estimates/calibration-promotions/assessments",
        "/api/metis/v1/item-bank/estimates/calibration-promotions/assessments/:dynamic",
        "/api/metis/v1/item-bank/estimates/calibration-promotions/policy"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/estimates/calibration-promotions/assessments",
        "/api/metis/v1/item-bank/estimates/calibration-promotions/assessments/:dynamic",
        "/api/metis/v1/item-bank/estimates/calibration-promotions/policy"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/estimates/calibration-promotions/assessments",
        "/api/metis/v1/item-bank/estimates/calibration-promotions/assessments/:dynamic",
        "/api/metis/v1/item-bank/estimates/calibration-promotions/policy"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/estimates/dif-review",
      "source": "apps/metis/web/src/app/create/item-bank/estimates/dif-review/page.tsx",
      "sourceSha256": "e9f9a7624d05cbb4be5a1082718a5403d9fd16cf7fc7dfb353017ef441505925",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/estimates/dif-analyses/policy",
        "/api/metis/v1/item-bank/estimates/dif-analyses/runs",
        "/api/metis/v1/item-bank/estimates/dif-analyses/runs/:dynamic",
        "/api/metis/v1/item-bank/estimates/dif-analyses/runs/:dynamic/results/:dynamic/decisions"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/estimates/dif-analyses/policy",
        "/api/metis/v1/item-bank/estimates/dif-analyses/runs",
        "/api/metis/v1/item-bank/estimates/dif-analyses/runs/:dynamic",
        "/api/metis/v1/item-bank/estimates/dif-analyses/runs/:dynamic/results/:dynamic/decisions"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/estimates/dif-analyses/policy",
        "/api/metis/v1/item-bank/estimates/dif-analyses/runs",
        "/api/metis/v1/item-bank/estimates/dif-analyses/runs/:dynamic",
        "/api/metis/v1/item-bank/estimates/dif-analyses/runs/:dynamic/results/:dynamic/decisions"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/estimates/exposure-control",
      "source": "apps/metis/web/src/app/create/item-bank/estimates/exposure-control/page.tsx",
      "sourceSha256": "c9e77c2fa0fecedb040034ab02a67eb485ac470e118ee0595a2f56e8be7f2991",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/exposure-control/assessments",
        "/api/metis/v1/item-bank/exposure-control/assessments/:dynamic",
        "/api/metis/v1/item-bank/exposure-control/assessments/:dynamic/appeals",
        "/api/metis/v1/item-bank/exposure-control/policy"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/exposure-control/assessments",
        "/api/metis/v1/item-bank/exposure-control/assessments/:dynamic",
        "/api/metis/v1/item-bank/exposure-control/assessments/:dynamic/appeals",
        "/api/metis/v1/item-bank/exposure-control/policy"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/exposure-control/assessments",
        "/api/metis/v1/item-bank/exposure-control/assessments/:dynamic",
        "/api/metis/v1/item-bank/exposure-control/assessments/:dynamic/appeals",
        "/api/metis/v1/item-bank/exposure-control/policy"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/estimates/freshness-control",
      "source": "apps/metis/web/src/app/create/item-bank/estimates/freshness-control/page.tsx",
      "sourceSha256": "b9b841ea5184c9495721bcc2ca1842e2bd41087434026cb080de1667ca61c786",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": [
        "/analytics",
        "/content-freshness/dependency-signals",
        "/content-freshness/policy",
        "/content-freshness/verdicts",
        "/content-freshness/verdicts/:dynamic",
        "oshun-bff-auth"
      ],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/content-freshness/dependency-signals",
        "/api/metis/v1/content-freshness/policy",
        "/api/metis/v1/content-freshness/verdicts",
        "/api/metis/v1/content-freshness/verdicts/:dynamic"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/content-freshness/dependency-signals",
        "/api/metis/v1/content-freshness/policy",
        "/api/metis/v1/content-freshness/verdicts",
        "/api/metis/v1/content-freshness/verdicts/:dynamic"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/content-freshness/dependency-signals",
        "/api/metis/v1/content-freshness/policy",
        "/api/metis/v1/content-freshness/verdicts",
        "/api/metis/v1/content-freshness/verdicts/:dynamic"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/estimates/irt-diagnostics",
      "source": "apps/metis/web/src/app/create/item-bank/estimates/irt-diagnostics/page.tsx",
      "sourceSha256": "e7f9ce2851f7c82b6fb28c34bc9cda8b87285865f0df71f95e2760005e17253d",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/estimates/irt-diagnostics/policy",
        "/api/metis/v1/item-bank/estimates/irt-diagnostics/runs",
        "/api/metis/v1/item-bank/estimates/irt-diagnostics/runs/:dynamic"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/estimates/irt-diagnostics/policy",
        "/api/metis/v1/item-bank/estimates/irt-diagnostics/runs",
        "/api/metis/v1/item-bank/estimates/irt-diagnostics/runs/:dynamic"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/estimates/irt-diagnostics/policy",
        "/api/metis/v1/item-bank/estimates/irt-diagnostics/runs",
        "/api/metis/v1/item-bank/estimates/irt-diagnostics/runs/:dynamic"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/imports",
      "source": "apps/metis/web/src/app/create/item-bank/imports/page.tsx",
      "sourceSha256": "b2211c285046f1a0c99195a05a83b20ff256692a401a3b0293ea267ec2dd74fb",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/imports/:dynamic/commits",
        "/api/metis/v1/item-bank/imports/catalog",
        "/api/metis/v1/item-bank/imports/previews"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/imports/:dynamic/commits",
        "/api/metis/v1/item-bank/imports/catalog",
        "/api/metis/v1/item-bank/imports/previews"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/imports/:dynamic/commits",
        "/api/metis/v1/item-bank/imports/catalog",
        "/api/metis/v1/item-bank/imports/previews"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/learning-links",
      "source": "apps/metis/web/src/app/create/item-bank/learning-links/page.tsx",
      "sourceSha256": "e7e501543073ed879237b11feba8ac55f73f959027ef5955990895f5356965ed",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/learning-links/revisions",
        "/api/metis/v1/item-bank/learning-links/sets",
        "/api/metis/v1/item-bank/learning-links/sets/:dynamic/audit",
        "/api/metis/v1/item-bank/learning-links/sets/:dynamic/projections",
        "/api/metis/v1/item-bank/learning-links/targets"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/learning-links/revisions",
        "/api/metis/v1/item-bank/learning-links/sets",
        "/api/metis/v1/item-bank/learning-links/sets/:dynamic/audit",
        "/api/metis/v1/item-bank/learning-links/sets/:dynamic/projections",
        "/api/metis/v1/item-bank/learning-links/targets"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/learning-links/revisions",
        "/api/metis/v1/item-bank/learning-links/sets",
        "/api/metis/v1/item-bank/learning-links/sets/:dynamic/audit",
        "/api/metis/v1/item-bank/learning-links/sets/:dynamic/projections",
        "/api/metis/v1/item-bank/learning-links/targets"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/previews",
      "source": "apps/metis/web/src/app/create/item-bank/previews/page.tsx",
      "sourceSha256": "50a9fe9a77a187f107e94a29a0d57587a2e0fa2dd2fc19e1a229cd84f2ed8e47",
      "reachableSourceCount": 15,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/previews",
        "/api/metis/v1/item-bank/previews/author-overlays",
        "/api/metis/v1/item-bank/previews/simulations"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/previews",
        "/api/metis/v1/item-bank/previews/author-overlays",
        "/api/metis/v1/item-bank/previews/simulations"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/previews",
        "/api/metis/v1/item-bank/previews/author-overlays",
        "/api/metis/v1/item-bank/previews/simulations"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/item-bank/stimulus-sets",
      "source": "apps/metis/web/src/app/create/item-bank/stimulus-sets/page.tsx",
      "sourceSha256": "3acecd59e6a88f3572b51a24278c2be50ff698841eb49318120a17b8cd931a8c",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/item-bank", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/stimulus-authoring/sets",
        "/api/metis/v1/item-bank/stimulus-authoring/sets/:dynamic/preview",
        "/api/metis/v1/item-bank/stimulus-authoring/sets/revisions",
        "/api/metis/v1/item-bank/stimulus-authoring/stimuli",
        "/api/metis/v1/item-bank/stimulus-authoring/stimuli/revisions"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/stimulus-authoring/sets",
        "/api/metis/v1/item-bank/stimulus-authoring/sets/:dynamic/preview",
        "/api/metis/v1/item-bank/stimulus-authoring/sets/revisions",
        "/api/metis/v1/item-bank/stimulus-authoring/stimuli",
        "/api/metis/v1/item-bank/stimulus-authoring/stimuli/revisions"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/item-bank/stimulus-authoring/sets",
        "/api/metis/v1/item-bank/stimulus-authoring/sets/:dynamic/preview",
        "/api/metis/v1/item-bank/stimulus-authoring/sets/revisions",
        "/api/metis/v1/item-bank/stimulus-authoring/stimuli",
        "/api/metis/v1/item-bank/stimulus-authoring/stimuli/revisions"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family.",
      "classifications": [
        "confidential-assessment-material",
        "internal-authoring-data",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/lessons/[lessonId]",
      "source": "apps/metis/web/src/app/create/lessons/[lessonId]/page.tsx",
      "sourceSha256": "d9ee6cabc270c841efd2204425f11c4f6f8d68be97d9ea3a6215de0fdad26b78",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/lesson-dossiers", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/history-artifacts",
        "/api/metis/v1/lesson-dossiers/:dynamic/preview",
        "/api/metis/v1/lesson-dossiers/:dynamic/reviews"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/history-artifacts",
        "/api/metis/v1/lesson-dossiers/:dynamic/preview",
        "/api/metis/v1/lesson-dossiers/:dynamic/reviews"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/history-artifacts",
        "/api/metis/v1/lesson-dossiers/:dynamic/preview",
        "/api/metis/v1/lesson-dossiers/:dynamic/reviews"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "isis-http-gallery-authority",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family.",
      "classifications": [
        "internal-authoring-data",
        "published-learning-content",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/lessons/[lessonId]/blocks",
      "source": "apps/metis/web/src/app/create/lessons/[lessonId]/blocks/page.tsx",
      "sourceSha256": "cd50ca66b66808583cd01373b77de3a8168bebc873b4cc3bee8f077d15390142",
      "reachableSourceCount": 42,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": [
        "/analytics",
        "/lesson-dossiers",
        "/lesson-templates",
        "/teaching-media",
        "oshun-bff-auth"
      ],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/assist-proposals/:dynamic/decisions",
        "/api/metis/v1/lesson-dossiers/:dynamic/block-operations",
        "/api/metis/v1/lesson-dossiers/:dynamic/blocks/:dynamic/assist-preparation",
        "/api/metis/v1/lesson-dossiers/:dynamic/blocks/:dynamic/assist-proposals",
        "/api/metis/v1/lesson-dossiers/:dynamic/gallery-assets",
        "/api/metis/v1/lesson-dossiers/:dynamic/interaction-previews",
        "/api/metis/v1/lesson-dossiers/:dynamic/media-attachments",
        "/api/metis/v1/lesson-dossiers/:dynamic/preview",
        "/api/metis/v1/lesson-dossiers/:dynamic/technical-exports",
        "/api/metis/v1/lesson-templates",
        "/api/metis/v1/lesson-templates/:dynamic/versions/:dynamic/lifecycle-events",
        "/api/metis/v1/lesson-templates/consumers/:dynamic",
        "/api/metis/v1/lesson-templates/consumers/:dynamic/pins",
        "/api/metis/v1/lesson-templates/previews",
        "/api/metis/v1/teaching-media/lecture-packages",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/assemble",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/gates",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/replacement-decisions",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/replacement-previews",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/replacements",
        "/api/metis/v1/teaching-media/loops",
        "/api/metis/v1/teaching-media/loops/:dynamic",
        "/api/metis/v1/teaching-media/loops/:dynamic/proposal-decisions",
        "/api/metis/v1/teaching-media/projects",
        "/api/metis/v1/teaching-media/projects/:dynamic",
        "/api/metis/v1/teaching-media/projects/:dynamic/decisions",
        "/api/metis/v1/teaching-media/projects/:dynamic/stage-events",
        "/api/metis/v1/teaching-media/registry"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/assist-proposals/:dynamic/decisions",
        "/api/metis/v1/lesson-dossiers/:dynamic/block-operations",
        "/api/metis/v1/lesson-dossiers/:dynamic/blocks/:dynamic/assist-preparation",
        "/api/metis/v1/lesson-dossiers/:dynamic/blocks/:dynamic/assist-proposals",
        "/api/metis/v1/lesson-dossiers/:dynamic/gallery-assets",
        "/api/metis/v1/lesson-dossiers/:dynamic/interaction-previews",
        "/api/metis/v1/lesson-dossiers/:dynamic/media-attachments",
        "/api/metis/v1/lesson-dossiers/:dynamic/preview",
        "/api/metis/v1/lesson-dossiers/:dynamic/technical-exports",
        "/api/metis/v1/lesson-templates",
        "/api/metis/v1/lesson-templates/:dynamic/versions/:dynamic/lifecycle-events",
        "/api/metis/v1/lesson-templates/consumers/:dynamic",
        "/api/metis/v1/lesson-templates/consumers/:dynamic/pins",
        "/api/metis/v1/lesson-templates/previews",
        "/api/metis/v1/teaching-media/lecture-packages",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/assemble",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/gates",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/replacement-decisions",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/replacement-previews",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/replacements",
        "/api/metis/v1/teaching-media/loops",
        "/api/metis/v1/teaching-media/loops/:dynamic",
        "/api/metis/v1/teaching-media/loops/:dynamic/proposal-decisions",
        "/api/metis/v1/teaching-media/projects",
        "/api/metis/v1/teaching-media/projects/:dynamic",
        "/api/metis/v1/teaching-media/projects/:dynamic/decisions",
        "/api/metis/v1/teaching-media/projects/:dynamic/stage-events",
        "/api/metis/v1/teaching-media/registry"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/assist-proposals/:dynamic/decisions",
        "/api/metis/v1/lesson-dossiers/:dynamic/block-operations",
        "/api/metis/v1/lesson-dossiers/:dynamic/blocks/:dynamic/assist-preparation",
        "/api/metis/v1/lesson-dossiers/:dynamic/blocks/:dynamic/assist-proposals",
        "/api/metis/v1/lesson-dossiers/:dynamic/gallery-assets",
        "/api/metis/v1/lesson-dossiers/:dynamic/interaction-previews",
        "/api/metis/v1/lesson-dossiers/:dynamic/media-attachments",
        "/api/metis/v1/lesson-dossiers/:dynamic/preview",
        "/api/metis/v1/lesson-dossiers/:dynamic/technical-exports",
        "/api/metis/v1/lesson-templates",
        "/api/metis/v1/lesson-templates/:dynamic/versions/:dynamic/lifecycle-events",
        "/api/metis/v1/lesson-templates/consumers/:dynamic",
        "/api/metis/v1/lesson-templates/consumers/:dynamic/pins",
        "/api/metis/v1/lesson-templates/previews",
        "/api/metis/v1/teaching-media/lecture-packages",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/assemble",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/gates",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/replacement-decisions",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/replacement-previews",
        "/api/metis/v1/teaching-media/lecture-packages/:dynamic/replacements",
        "/api/metis/v1/teaching-media/loops",
        "/api/metis/v1/teaching-media/loops/:dynamic",
        "/api/metis/v1/teaching-media/loops/:dynamic/proposal-decisions",
        "/api/metis/v1/teaching-media/projects",
        "/api/metis/v1/teaching-media/projects/:dynamic",
        "/api/metis/v1/teaching-media/projects/:dynamic/decisions",
        "/api/metis/v1/teaching-media/projects/:dynamic/stage-events",
        "/api/metis/v1/teaching-media/registry"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "isis-http-gallery-authority",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family.",
      "classifications": [
        "internal-authoring-data",
        "published-learning-content",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/lessons/[lessonId]/duration-load",
      "source": "apps/metis/web/src/app/create/lessons/[lessonId]/duration-load/page.tsx",
      "sourceSha256": "ab1da564d4b38c9f80d4343a329ba1949ee23f2b06794a752aa7d152725baf5e",
      "reachableSourceCount": 14,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/lesson-dossiers", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/duration-load-estimates",
        "/api/metis/v1/lesson-dossiers/:dynamic/duration-load-overrides"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/duration-load-estimates",
        "/api/metis/v1/lesson-dossiers/:dynamic/duration-load-overrides"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/duration-load-estimates",
        "/api/metis/v1/lesson-dossiers/:dynamic/duration-load-overrides"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "isis-http-gallery-authority",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family.",
      "classifications": [
        "internal-authoring-data",
        "published-learning-content",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/lessons/[lessonId]/inclusivity",
      "source": "apps/metis/web/src/app/create/lessons/[lessonId]/inclusivity/page.tsx",
      "sourceSha256": "3be291f9591db98b70eb7db323696b0dbbc60a50f0cc32f7943ab7985764deca",
      "reachableSourceCount": 14,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/lesson-dossiers", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/inclusivity-analyses",
        "/api/metis/v1/lesson-dossiers/:dynamic/inclusivity-reviews"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/inclusivity-analyses",
        "/api/metis/v1/lesson-dossiers/:dynamic/inclusivity-reviews"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/inclusivity-analyses",
        "/api/metis/v1/lesson-dossiers/:dynamic/inclusivity-reviews"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "isis-http-gallery-authority",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family.",
      "classifications": [
        "internal-authoring-data",
        "published-learning-content",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/lessons/[lessonId]/preview",
      "source": "apps/metis/web/src/app/create/lessons/[lessonId]/preview/page.tsx",
      "sourceSha256": "d471825d8c181f6e41f0267e1ae4bb02413e7366e4eda018c98028ff67b98b49",
      "reachableSourceCount": 21,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/lesson-dossiers", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/delivery-preview-presets",
        "/api/metis/v1/lesson-dossiers/:dynamic/delivery-preview-reports",
        "/api/metis/v1/lesson-dossiers/:dynamic/delivery-preview-reports/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/learner-previews"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/delivery-preview-presets",
        "/api/metis/v1/lesson-dossiers/:dynamic/delivery-preview-reports",
        "/api/metis/v1/lesson-dossiers/:dynamic/delivery-preview-reports/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/learner-previews"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/delivery-preview-presets",
        "/api/metis/v1/lesson-dossiers/:dynamic/delivery-preview-reports",
        "/api/metis/v1/lesson-dossiers/:dynamic/delivery-preview-reports/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/learner-previews"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "isis-http-gallery-authority",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family.",
      "classifications": [
        "internal-authoring-data",
        "published-learning-content",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/lessons/[lessonId]/readability",
      "source": "apps/metis/web/src/app/create/lessons/[lessonId]/readability/page.tsx",
      "sourceSha256": "68daeb14435a4543950b3e00536a032a255e4470f8d90e2abf8fc169f3b11d43",
      "reachableSourceCount": 14,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/lesson-dossiers", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/readability-analyses",
        "/api/metis/v1/lesson-dossiers/:dynamic/readability-reviews"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/readability-analyses",
        "/api/metis/v1/lesson-dossiers/:dynamic/readability-reviews"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/readability-analyses",
        "/api/metis/v1/lesson-dossiers/:dynamic/readability-reviews"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "isis-http-gallery-authority",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family.",
      "classifications": [
        "internal-authoring-data",
        "published-learning-content",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/lessons/[lessonId]/revisions",
      "source": "apps/metis/web/src/app/create/lessons/[lessonId]/revisions/page.tsx",
      "sourceSha256": "fafd06de96e1421c821e7ca55dd227fb51623d3549dcb7551681026102d59d61",
      "reachableSourceCount": 14,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/lesson-dossiers", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-drafts/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-drafts/:dynamic/checkpoints",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-revisions/:dynamic/comparison",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-revisions/:dynamic/restore",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-revisions/:dynamic/restore-preview"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-drafts/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-drafts/:dynamic/checkpoints",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-revisions/:dynamic/comparison",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-revisions/:dynamic/restore",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-revisions/:dynamic/restore-preview"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-drafts/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-drafts/:dynamic/checkpoints",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-revisions/:dynamic/comparison",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-revisions/:dynamic/restore",
        "/api/metis/v1/lesson-dossiers/:dynamic/authoring-revisions/:dynamic/restore-preview"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-local-storage",
        "browser-memory",
        "isis-http-gallery-authority",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family.",
      "classifications": [
        "internal-authoring-data",
        "published-learning-content",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/lessons/[lessonId]/rubrics",
      "source": "apps/metis/web/src/app/create/lessons/[lessonId]/rubrics/page.tsx",
      "sourceSha256": "444ee4c61c6e059bf24802a7f40209ece47ebf7f01a3d834723ea8cdcd50ae1f",
      "reachableSourceCount": 14,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/lesson-dossiers", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/rubric-previews",
        "/api/metis/v1/lesson-dossiers/:dynamic/rubric-revisions",
        "/api/metis/v1/lesson-dossiers/:dynamic/rubric-scores"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/rubric-previews",
        "/api/metis/v1/lesson-dossiers/:dynamic/rubric-revisions",
        "/api/metis/v1/lesson-dossiers/:dynamic/rubric-scores"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/rubric-previews",
        "/api/metis/v1/lesson-dossiers/:dynamic/rubric-revisions",
        "/api/metis/v1/lesson-dossiers/:dynamic/rubric-scores"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "isis-http-gallery-authority",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family.",
      "classifications": [
        "internal-authoring-data",
        "published-learning-content",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/lessons/[lessonId]/rubrics/quality",
      "source": "apps/metis/web/src/app/create/lessons/[lessonId]/rubrics/quality/page.tsx",
      "sourceSha256": "6cbd65cc18cb48d164c888ba2995d392ac34bdd1c741606945cb29f09a93fb3b",
      "reachableSourceCount": 15,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/lesson-dossiers", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/history",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/prepare",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/release-gates",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/reviews",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/scans"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/history",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/prepare",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/release-gates",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/reviews",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/scans"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/history",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/prepare",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/release-gates",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/reviews",
        "/api/metis/v1/lesson-dossiers/rubric-quality/lessons/:dynamic/rubrics/:dynamic/scans"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "isis-http-gallery-authority",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family.",
      "classifications": [
        "internal-authoring-data",
        "published-learning-content",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/lessons/[lessonId]/terminology",
      "source": "apps/metis/web/src/app/create/lessons/[lessonId]/terminology/page.tsx",
      "sourceSha256": "a45606718f2d63afbd1e281ce8425990ae41bb704a784baa8c05bdacc27f8722",
      "reachableSourceCount": 14,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/lesson-dossiers", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/terminology-analyses",
        "/api/metis/v1/lesson-dossiers/:dynamic/terminology-reviews"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/terminology-analyses",
        "/api/metis/v1/lesson-dossiers/:dynamic/terminology-reviews"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/lesson-dossiers/:dynamic",
        "/api/metis/v1/lesson-dossiers/:dynamic/terminology-analyses",
        "/api/metis/v1/lesson-dossiers/:dynamic/terminology-reviews"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "isis-http-gallery-authority",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family.",
      "classifications": [
        "internal-authoring-data",
        "published-learning-content",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/measurement-ledger",
      "source": "apps/metis/web/src/app/create/measurement-ledger/page.tsx",
      "sourceSha256": "408e0517aa3d8ac8205cbf4a1b62e2d9894914654c6858469c6bd91ac0b29f92",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": [
        "/analytics",
        "/measurement-ledger",
        "/measurement-ledger/measurements",
        "/measurement-ledger/outcome-states",
        "/measurement-ledger/provenance",
        "/measurement-ledger/verdicts",
        "/measurement-ledger/verdicts/recompute",
        "/measurement-ledger/workspace",
        "/measurement-ledger/workspace/export",
        "oshun-bff-auth"
      ],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/measurement-ledger",
        "/api/metis/v1/measurement-ledger/measurements",
        "/api/metis/v1/measurement-ledger/outcome-states",
        "/api/metis/v1/measurement-ledger/provenance",
        "/api/metis/v1/measurement-ledger/verdicts",
        "/api/metis/v1/measurement-ledger/verdicts/recompute",
        "/api/metis/v1/measurement-ledger/workspace",
        "/api/metis/v1/measurement-ledger/workspace/export"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/measurement-ledger",
        "/api/metis/v1/measurement-ledger/measurements",
        "/api/metis/v1/measurement-ledger/outcome-states",
        "/api/metis/v1/measurement-ledger/provenance",
        "/api/metis/v1/measurement-ledger/verdicts",
        "/api/metis/v1/measurement-ledger/verdicts/recompute",
        "/api/metis/v1/measurement-ledger/workspace",
        "/api/metis/v1/measurement-ledger/workspace/export"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/measurement-ledger",
        "/api/metis/v1/measurement-ledger/measurements",
        "/api/metis/v1/measurement-ledger/outcome-states",
        "/api/metis/v1/measurement-ledger/provenance",
        "/api/metis/v1/measurement-ledger/verdicts",
        "/api/metis/v1/measurement-ledger/verdicts/recompute",
        "/api/metis/v1/measurement-ledger/workspace",
        "/api/metis/v1/measurement-ledger/workspace/export"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/objectives",
      "source": "apps/metis/web/src/app/create/objectives/page.tsx",
      "sourceSha256": "3a69c58e51cc0da34995e4ee9a66a68b8a921c2e1853a3ae983c2ef6387c7699",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/curriculum", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/briefs",
        "/api/metis/v1/curriculum/objective-maps",
        "/api/metis/v1/curriculum/objective-maps/:dynamic/revisions"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/briefs",
        "/api/metis/v1/curriculum/objective-maps",
        "/api/metis/v1/curriculum/objective-maps/:dynamic/revisions"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/briefs",
        "/api/metis/v1/curriculum/objective-maps",
        "/api/metis/v1/curriculum/objective-maps/:dynamic/revisions"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "code-owned-registry",
        "filesystem-json-ledger",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/outlines",
      "source": "apps/metis/web/src/app/create/outlines/page.tsx",
      "sourceSha256": "cb66fa244c2e166b01e54eca12bfa2b4b640ed1f4c76abc2e24d15b37266a1dc",
      "reachableSourceCount": 14,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/curriculum", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/objective-maps",
        "/api/metis/v1/curriculum/outline-variant-sets",
        "/api/metis/v1/curriculum/outline-variant-sets/:dynamic/decisions",
        "/api/metis/v1/curriculum/outline-variant-sets/:dynamic/manual-variants",
        "/api/metis/v1/curriculum/outline-variant-sets/:dynamic/variants/:dynamic/scores"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/objective-maps",
        "/api/metis/v1/curriculum/outline-variant-sets",
        "/api/metis/v1/curriculum/outline-variant-sets/:dynamic/decisions",
        "/api/metis/v1/curriculum/outline-variant-sets/:dynamic/manual-variants",
        "/api/metis/v1/curriculum/outline-variant-sets/:dynamic/variants/:dynamic/scores"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/objective-maps",
        "/api/metis/v1/curriculum/outline-variant-sets",
        "/api/metis/v1/curriculum/outline-variant-sets/:dynamic/decisions",
        "/api/metis/v1/curriculum/outline-variant-sets/:dynamic/manual-variants",
        "/api/metis/v1/curriculum/outline-variant-sets/:dynamic/variants/:dynamic/scores"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "code-owned-registry",
        "filesystem-json-ledger",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/review-assignments",
      "source": "apps/metis/web/src/app/create/review-assignments/page.tsx",
      "sourceSha256": "d1310185ed27d5c34ca99cc9c543d2456b6f2b3386ce83fa151a71c234181184",
      "reachableSourceCount": 13,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": [
        "/analytics",
        "/cultural-reviews/assignment-events",
        "/cultural-reviews/assignment-runs",
        "/cultural-reviews/assignment-runs/:dynamic",
        "/cultural-reviews/decisions",
        "/cultural-reviews/policy",
        "oshun-bff-auth"
      ],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/cultural-reviews/assignment-events",
        "/api/metis/v1/cultural-reviews/assignment-runs",
        "/api/metis/v1/cultural-reviews/assignment-runs/:dynamic",
        "/api/metis/v1/cultural-reviews/decisions",
        "/api/metis/v1/cultural-reviews/policy"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/cultural-reviews/assignment-events",
        "/api/metis/v1/cultural-reviews/assignment-runs",
        "/api/metis/v1/cultural-reviews/assignment-runs/:dynamic",
        "/api/metis/v1/cultural-reviews/decisions",
        "/api/metis/v1/cultural-reviews/policy"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/cultural-reviews/assignment-events",
        "/api/metis/v1/cultural-reviews/assignment-runs",
        "/api/metis/v1/cultural-reviews/assignment-runs/:dynamic",
        "/api/metis/v1/cultural-reviews/decisions",
        "/api/metis/v1/cultural-reviews/policy"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/create/workload",
      "source": "apps/metis/web/src/app/create/workload/page.tsx",
      "sourceSha256": "9ceff90b5e3b57c14946a67b21f76c28df86019a921b1a930fbe8434c3a75193",
      "reachableSourceCount": 15,
      "audience": "instructor-authoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/curriculum", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/outline-variant-sets",
        "/api/metis/v1/curriculum/workload-estimates",
        "/api/metis/v1/curriculum/workload-estimates/:dynamic/overrides",
        "/api/metis/v1/curriculum/workload-model"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/outline-variant-sets",
        "/api/metis/v1/curriculum/workload-estimates",
        "/api/metis/v1/curriculum/workload-estimates/:dynamic/overrides",
        "/api/metis/v1/curriculum/workload-model"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/curriculum/outline-variant-sets",
        "/api/metis/v1/curriculum/workload-estimates",
        "/api/metis/v1/curriculum/workload-estimates/:dynamic/overrides",
        "/api/metis/v1/curriculum/workload-model"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "code-owned-registry",
        "filesystem-json-ledger",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes.",
      "classifications": [
        "internal-authoring-data",
        "confidential-assessment-material",
        "unratified-mixed-boundary"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/login",
      "source": "apps/metis/web/src/app/login/page.tsx",
      "sourceSha256": "227e893bee12fa6e4b76511e8c39c0e09a58467e01f8b16dd9ea2acf45b22f23",
      "reachableSourceCount": 6,
      "audience": "public-authentication",
      "pageAccess": "public",
      "apiFamilies": ["oshun-bff-auth"],
      "apiPaths": ["/api/auth/login", "/api/auth/logout", "/api/auth/session", "/api/auth/signup"],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [],
      "serviceContractMatchedPaths": [],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "oshun-bff-direct",
      "stores": ["browser-memory", "oshun-bff-session"],
      "authz": "Public page; credentials go to the Oshun BFF, which owns session issuance. The refresh token is HTTP-only-cookie state.",
      "classifications": [
        "public-authentication-input",
        "restricted-identity-authorization-projection"
      ],
      "seamAdmission": "parked"
    },
    {
      "page": "/notifications",
      "source": "apps/metis/web/src/app/notifications/page.tsx",
      "sourceSha256": "b27711460a3637680866f4228cab4f1a50dec726a088961a330b1e366ce6ef38",
      "reachableSourceCount": 12,
      "audience": "learner-progress",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": ["/api/metis/v1/analytics/reminders"],
      "serviceContractMatchedPaths": ["/api/metis/v1/analytics/reminders"],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended analytics endpoints require bearer user and subject-bound service queries. Current page paths are absent from gateway handler registration.",
      "classifications": ["protected-learner-data", "restricted-education-record"],
      "seamAdmission": "parked"
    },
    {
      "page": "/progress",
      "source": "apps/metis/web/src/app/progress/page.tsx",
      "sourceSha256": "eef6156fe9f162c2a82d3fa02d61f2edc1b469cf812a4590edd079be722e1140",
      "reachableSourceCount": 24,
      "audience": "learner-progress",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/auth", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/dashboard",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/dashboard",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/dashboard",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended analytics endpoints require bearer user and subject-bound service queries. Current page paths are absent from gateway handler registration.",
      "classifications": ["protected-learner-data", "restricted-education-record"],
      "seamAdmission": "parked"
    },
    {
      "page": "/saved",
      "source": "apps/metis/web/src/app/saved/page.tsx",
      "sourceSha256": "cf71a414a999da3022641f9564bb16f154bc0e22cb54160b261cd7af0e8cc61a",
      "reachableSourceCount": 21,
      "audience": "learner-content",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/courses", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/courses"
      ],
      "gatewayMatchedPaths": ["/api/metis/v1/courses"],
      "gatewayUnmatchedPaths": ["/api/metis/v1/analytics/reminders"],
      "serviceContractMatchedPaths": ["/api/metis/v1/analytics/reminders", "/api/metis/v1/courses"],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "mixed-gateway-coverage",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; gateway courses:read permission applies to registered paths, while direct FastAPI catalog reads are public and learner mutations require bearer user.",
      "classifications": ["published-learning-content", "protected-learner-data"],
      "seamAdmission": "parked"
    },
    {
      "page": "/settings",
      "source": "apps/metis/web/src/app/settings/page.tsx",
      "sourceSha256": "33ba8bce60ea5841f76caf79036dde7ffecdd8eaf32870cff1050734e3b81093",
      "reachableSourceCount": 13,
      "audience": "learner-account",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/auth", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": ["/api/metis/v1/analytics/reminders", "/api/metis/v1/auth/me"],
      "serviceContractMatchedPaths": ["/api/metis/v1/analytics/reminders", "/api/metis/v1/auth/me"],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended /auth/me service read/write requires bearer user. The default gateway has no auth handler family.",
      "classifications": ["restricted-identity-authorization-projection", "protected-learner-data"],
      "seamAdmission": "parked"
    },
    {
      "page": "/study",
      "source": "apps/metis/web/src/app/study/page.tsx",
      "sourceSha256": "7cc47c3eeaeb484174100c8fb0fd957c44688ab99f9e244b0ac0c003a1de09d1",
      "reachableSourceCount": 26,
      "audience": "learner-progress",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/auth", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/dashboard",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me"
      ],
      "gatewayMatchedPaths": [],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/dashboard",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/dashboard",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "service-contract-present-gateway-unregistered",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; intended analytics endpoints require bearer user and subject-bound service queries. Current page paths are absent from gateway handler registration.",
      "classifications": ["protected-learner-data", "restricted-education-record"],
      "seamAdmission": "parked"
    },
    {
      "page": "/tutoring",
      "source": "apps/metis/web/src/app/tutoring/page.tsx",
      "sourceSha256": "b97d1d3581e91f164caa1a528d78af7e04846efa65c47b08c93fb7d8a9ec7a2a",
      "reachableSourceCount": 22,
      "audience": "learner-tutoring",
      "pageAccess": "session-cookie-presence",
      "apiFamilies": ["/analytics", "/auth", "/tutoring", "oshun-bff-auth"],
      "apiPaths": [
        "/api/auth/login",
        "/api/auth/logout",
        "/api/auth/session",
        "/api/auth/signup",
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me",
        "/api/metis/v1/tutoring/sessions",
        "/api/metis/v1/tutoring/sessions/:dynamic",
        "/api/metis/v1/tutoring/sessions/:dynamic/generate-response",
        "/api/metis/v1/tutoring/sessions/:dynamic/messages",
        "/api/metis/v1/tutoring/sessions/:dynamic/voice-runtime",
        "/api/metis/v1/tutoring/sessions/:dynamic/voice-runtime/events",
        "/api/metis/v1/tutoring/sessions/:dynamic/voice-runtime/resume"
      ],
      "gatewayMatchedPaths": [
        "/api/metis/v1/tutoring/sessions",
        "/api/metis/v1/tutoring/sessions/:dynamic/messages"
      ],
      "gatewayUnmatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me",
        "/api/metis/v1/tutoring/sessions/:dynamic",
        "/api/metis/v1/tutoring/sessions/:dynamic/generate-response",
        "/api/metis/v1/tutoring/sessions/:dynamic/voice-runtime",
        "/api/metis/v1/tutoring/sessions/:dynamic/voice-runtime/events",
        "/api/metis/v1/tutoring/sessions/:dynamic/voice-runtime/resume"
      ],
      "serviceContractMatchedPaths": [
        "/api/metis/v1/analytics/reminders",
        "/api/metis/v1/auth/me",
        "/api/metis/v1/tutoring/sessions",
        "/api/metis/v1/tutoring/sessions/:dynamic",
        "/api/metis/v1/tutoring/sessions/:dynamic/generate-response",
        "/api/metis/v1/tutoring/sessions/:dynamic/messages",
        "/api/metis/v1/tutoring/sessions/:dynamic/voice-runtime",
        "/api/metis/v1/tutoring/sessions/:dynamic/voice-runtime/events",
        "/api/metis/v1/tutoring/sessions/:dynamic/voice-runtime/resume"
      ],
      "serviceContractUnmatchedPaths": [],
      "transportStatus": "mixed-gateway-coverage",
      "stores": [
        "browser-memory",
        "oshun-bff-session",
        "postgresql-shared-public",
        "redis-runtime-cache"
      ],
      "authz": "Next middleware checks cookie presence; service endpoints require bearer user and subject-owned session access. Gateway exposes only a subset of the page calls.",
      "classifications": ["protected-learner-conversation", "protected-learner-data"],
      "seamAdmission": "parked"
    }
  ],
  "churn": {
    "startInclusive": "2026-08-27T00:00:00Z",
    "endExclusive": "2026-09-02T00:00:00Z",
    "expectedActiveUtcDays": [
      "2026-08-27",
      "2026-08-28",
      "2026-08-29",
      "2026-08-30",
      "2026-08-31",
      "2026-09-01"
    ],
    "commitCount": 77,
    "countsByUtcDay": [
      {
        "day": "2026-08-27",
        "count": 3
      },
      {
        "day": "2026-08-28",
        "count": 12
      },
      {
        "day": "2026-08-29",
        "count": 13
      },
      {
        "day": "2026-08-30",
        "count": 12
      },
      {
        "day": "2026-08-31",
        "count": 15
      },
      {
        "day": "2026-09-01",
        "count": 22
      }
    ],
    "changedEveryUtcDay": true,
    "latestMetisCommit": "7c652a575ca13c20e1b01820c0443c0e91857da5",
    "latestMetisCommitAt": "2026-09-01T23:14:49+00:00",
    "commits": [
      {
        "commit": "7c652a575ca13c20e1b01820c0443c0e91857da5",
        "authoredAt": "2026-09-01T23:14:49+00:00",
        "subject": "feat(metis): enforce exact content freshness gates"
      },
      {
        "commit": "7d2814dde1779d3623df87e6e8c82a79ab99ebb4",
        "authoredAt": "2026-09-01T22:00:40+00:00",
        "subject": "feat(metis): enforce item exposure lifecycle"
      },
      {
        "commit": "312c43ea48d8826fffadd508e32b0833a6aa053c",
        "authoredAt": "2026-09-01T20:53:30+00:00",
        "subject": "feat(metis): add privacy-safe dif review"
      },
      {
        "commit": "579e0b0048f8c0f6c4832055fd0200d503dfb24e",
        "authoredAt": "2026-09-01T19:43:14+00:00",
        "subject": "feat(metis): gate calibration promotion evidence"
      },
      {
        "commit": "989fa7815234ebc78a1bd68810f4635b90d9df7d",
        "authoredAt": "2026-09-01T18:46:00+00:00",
        "subject": "feat(metis): add irt fit diagnostics"
      },
      {
        "commit": "356db81f656621f74786cc3ebae04fa0a41b39d0",
        "authoredAt": "2026-09-01T17:52:11+00:00",
        "subject": "feat(metis): add calibrated difficulty checks"
      },
      {
        "commit": "a34ea8f9fd8a1772bb8ba37067ed85af2f6c216f",
        "authoredAt": "2026-09-01T17:08:22+00:00",
        "subject": "feat(metis): add governed media readiness"
      },
      {
        "commit": "5fd5da55362e4543f9cb751e444495c1b3ff9626",
        "authoredAt": "2026-09-01T15:51:37+00:00",
        "subject": "feat(metis): add accessibility completeness gates"
      },
      {
        "commit": "b50d6d71c94e45527a564eb1f3faef6acbd23aed",
        "authoredAt": "2026-09-01T14:51:43+00:00",
        "subject": "feat(metis): add rubric quality gates"
      },
      {
        "commit": "c5c791af3d579290869b37c9a271f0663317e1eb",
        "authoredAt": "2026-09-01T13:38:50+00:00",
        "subject": "feat(metis): add answer consistency gates"
      },
      {
        "commit": "317528ffe741832a85c829c11f6de56bbf541981",
        "authoredAt": "2026-09-01T12:42:54+00:00",
        "subject": "feat(metis): add distractor quality gates"
      },
      {
        "commit": "531647010b704525aa92c5b97fc1c7c8eedcde8b",
        "authoredAt": "2026-09-01T11:48:02+00:00",
        "subject": "feat(metis): add exact item clarity gates"
      },
      {
        "commit": "b411b1c6ed4e7aa5c71e2a43ce4026b432f6c296",
        "authoredAt": "2026-09-01T10:51:24+00:00",
        "subject": "feat(metis): add exact readability distributions"
      },
      {
        "commit": "db2d423fab20c8f3a6ed54829ca5ca9e912e9e87",
        "authoredAt": "2026-09-01T10:16:15+00:00",
        "subject": "feat(metis): add objective alignment release gates"
      },
      {
        "commit": "647d0b298dff486438809f4bb79dbef7f265e427",
        "authoredAt": "2026-09-01T09:22:20+00:00",
        "subject": "feat(metis): add governed bulk item import"
      },
      {
        "commit": "68e15d449d8f02add042c3237fb277eaa7e74a5c",
        "authoredAt": "2026-09-01T07:56:50+00:00",
        "subject": "feat(metis): add secure exact item preview"
      },
      {
        "commit": "426bc7af59357d85faa487f32686aee54a981841",
        "authoredAt": "2026-09-01T07:00:18+00:00",
        "subject": "feat(metis): add deterministic item assembly"
      },
      {
        "commit": "a37262cbabe37818bd30fe71d90e3538d0c0ff03",
        "authoredAt": "2026-09-01T05:14:20+00:00",
        "subject": "feat(metis): add item comparison decisions"
      },
      {
        "commit": "563c58e962fcfcb8549d83f2e0dca7c9382f9e94",
        "authoredAt": "2026-09-01T04:16:19+00:00",
        "subject": "feat(metis): add item accessibility release gate"
      },
      {
        "commit": "61de1e7e1a2a84b27a5e2831334afa0e57c2411e",
        "authoredAt": "2026-09-01T03:09:16+00:00",
        "subject": "feat(metis): add answer-key leakage release gate"
      },
      {
        "commit": "b2568c4dd1acdbbd30c41c93ad8d3d23cdc44cbb",
        "authoredAt": "2026-09-01T02:05:58+00:00",
        "subject": "feat(metis): verify single-correct answers and ambiguity"
      },
      {
        "commit": "6d09978a0dfa1096c94bc1e6c1a250775af40de8",
        "authoredAt": "2026-09-01T01:09:50+00:00",
        "subject": "feat(metis): add distractor mapping workbench"
      },
      {
        "commit": "ffbae7a86c9b5a9cdb3e4ad36619529b96ff45f7",
        "authoredAt": "2026-08-31T23:53:48+00:00",
        "subject": "feat(metis): add provenance-safe item estimates"
      },
      {
        "commit": "8868c2893a56bf70e6df171b4263479a0d2173ad",
        "authoredAt": "2026-08-31T22:56:12+00:00",
        "subject": "feat(metis): add exact item learning links"
      },
      {
        "commit": "f6e0fefeed6dee0cfcd48fb8058d863e9e7c5725",
        "authoredAt": "2026-08-31T21:39:00+00:00",
        "subject": "feat(metis): add immutable stimulus set authoring"
      },
      {
        "commit": "4af3d9ed62304dcc64b197d72f39edfcf2f0f449",
        "authoredAt": "2026-08-31T20:12:39+00:00",
        "subject": "feat(metis): add governed media interactive workbench"
      },
      {
        "commit": "00a2b9a286ecc97cf51396e59ba8dd69efe22bff",
        "authoredAt": "2026-08-31T18:49:19+00:00",
        "subject": "feat(metis): add isolated math and code workbench"
      },
      {
        "commit": "f26fdfea60f6acdd6c97b2a24f64505b0d5ce35d",
        "authoredAt": "2026-08-31T16:49:40+00:00",
        "subject": "feat(metis): add accountable written-response workbench"
      },
      {
        "commit": "af17d74df39675314170a94b48d042ed868403ee",
        "authoredAt": "2026-08-31T15:34:55+00:00",
        "subject": "feat(metis): add protected selected-response workbench"
      },
      {
        "commit": "57770f0c4ec93a1692ec8b4caf8fce6b4ee0bbf8",
        "authoredAt": "2026-08-31T14:18:48+00:00",
        "subject": "feat(metis): add fenced item variant workbench"
      },
      {
        "commit": "8a2044ac44e5e0faa5f9b7b0017f8159a80d09f2",
        "authoredAt": "2026-08-31T12:38:05+00:00",
        "subject": "feat(metis): add zero-form item draft capture"
      },
      {
        "commit": "a9a30ccda52c82e0ac1219d11e67518c76567f01",
        "authoredAt": "2026-08-31T11:04:23+00:00",
        "subject": "feat(metis): add permission-aware item bank search"
      },
      {
        "commit": "1252e7e6a4e4e3df6772f4b1090f09722fb50e88",
        "authoredAt": "2026-08-31T09:14:13+00:00",
        "subject": "fix(metis): admit replacement ledger states"
      },
      {
        "commit": "21d325fc9b33deaec1f3fe545f6469154575f79e",
        "authoredAt": "2026-08-31T08:00:05+00:00",
        "subject": "feat(metis): support surgical media replacement"
      },
      {
        "commit": "f80e0635aa3117e45e6b1f84fb55188ea8b1bf82",
        "authoredAt": "2026-08-31T02:33:40+00:00",
        "subject": "feat(metis): govern interactive simulations"
      },
      {
        "commit": "584f9128814e126cb93d8b2c527d3352df4698b6",
        "authoredAt": "2026-08-31T01:37:30+00:00",
        "subject": "feat(metis): govern prerecorded lecture packages"
      },
      {
        "commit": "f1d9d9e0ce577af3617fb3b1e33874031da4a799",
        "authoredAt": "2026-08-31T00:16:34+00:00",
        "subject": "feat(metis): govern author critic media proposals"
      },
      {
        "commit": "f5c494eacde6519d911ba3332f3cfa8b135fff7b",
        "authoredAt": "2026-08-30T23:16:11+00:00",
        "subject": "feat(metis): govern teaching media pipelines"
      },
      {
        "commit": "acbfb4e441a7fdf728b81dc9893615740f634747",
        "authoredAt": "2026-08-30T21:59:50+00:00",
        "subject": "feat(metis): add governed lesson templates"
      },
      {
        "commit": "3d9cbd65892f087c59d0d1d623357380a1f89e02",
        "authoredAt": "2026-08-30T21:04:16+00:00",
        "subject": "feat(metis): add explicit lesson ai assist"
      },
      {
        "commit": "f4fd46e4b37f6af68aa15503de0aecc1c87c067b",
        "authoredAt": "2026-08-30T20:00:39+00:00",
        "subject": "feat(metis): complete authoring revision workflow"
      },
      {
        "commit": "a99eca561f69a272ef2ed99288fb61561c4de46a",
        "authoredAt": "2026-08-30T19:02:35+00:00",
        "subject": "feat(metis): complete lesson delivery preview matrix"
      },
      {
        "commit": "50e707a775cf7d48feef21d2edf1122bffab2f5b",
        "authoredAt": "2026-08-30T17:52:27+00:00",
        "subject": "feat(metis): add real learner delivery preview"
      },
      {
        "commit": "c31a8a18cd18e48adc090f95a52992cfaf346977",
        "authoredAt": "2026-08-30T17:04:51+00:00",
        "subject": "feat(metis): add lesson duration and load planning"
      },
      {
        "commit": "e5e66be3fca26429d12c9bca7810af2c58160b66",
        "authoredAt": "2026-08-30T15:51:00+00:00",
        "subject": "feat(metis): add inclusivity evidence review workbench"
      },
      {
        "commit": "06f3518e11a3cfae71fd58ba24363d9f9b17d959",
        "authoredAt": "2026-08-30T14:40:29+00:00",
        "subject": "feat(metis): add terminology glossary lint workbench"
      },
      {
        "commit": "4f9747f23d80e3797da73b290c810e2260cf1aa2",
        "authoredAt": "2026-08-30T13:32:42+00:00",
        "subject": "feat(metis): add governed readability analysis"
      },
      {
        "commit": "150e8dbb536b53427afb6c15a91b2c04618e948d",
        "authoredAt": "2026-08-30T12:26:43+00:00",
        "subject": "feat(metis): author immutable weighted rubrics"
      },
      {
        "commit": "fb9d0b3d15e395a8dd997fb59ae56f47e8c6ba02",
        "authoredAt": "2026-08-30T11:11:39+00:00",
        "subject": "feat(metis): isolate interactive lesson previews"
      },
      {
        "commit": "a37d473bcd7c08d1488823ccfc5daffd83220fb7",
        "authoredAt": "2026-08-29T12:33:16+00:00",
        "subject": "feat(metis): attach governed isis lesson media"
      },
      {
        "commit": "943627faf26e641b6a600c3a4c75a12e01e34db2",
        "authoredAt": "2026-08-29T10:35:23+00:00",
        "subject": "feat(metis): add accessible technical lesson editing"
      },
      {
        "commit": "91e20e79823013a83a82040b89f0d88b52eecb5c",
        "authoredAt": "2026-08-29T09:40:18+00:00",
        "subject": "feat(metis): add structured lesson block editor"
      },
      {
        "commit": "976d0c7f8113d48925b367c74b9350b20e1e8e54",
        "authoredAt": "2026-08-29T08:55:50+00:00",
        "subject": "feat(metis): add exact lesson dossiers"
      },
      {
        "commit": "31e3f4d1a60ca24a921a74671ec715ade8b7444a",
        "authoredAt": "2026-08-29T07:58:27+00:00",
        "subject": "feat(metis): add guarded course module boards"
      },
      {
        "commit": "4e0147eb5025eeb77e7fb87a64f34cea35498eda",
        "authoredAt": "2026-08-29T07:02:39+00:00",
        "subject": "feat(metis): add discipline planning templates"
      },
      {
        "commit": "0399de3cbfe586e23cc2c4c087cb67df9426c347",
        "authoredAt": "2026-08-29T06:21:19+00:00",
        "subject": "feat(metis): add curriculum discovery workbench"
      },
      {
        "commit": "503b1ef0081b20cd3ab7f9db411303c58a923145",
        "authoredAt": "2026-08-29T05:32:22+00:00",
        "subject": "feat(metis): add immutable curriculum decision ledger"
      },
      {
        "commit": "cb691808232bc72d42a0bf0d3252582028764f77",
        "authoredAt": "2026-08-29T04:32:17+00:00",
        "subject": "feat(metis): add exact curriculum coverage matrices"
      },
      {
        "commit": "2461b1f0a7b09b5d067e647d03e922469706eb05",
        "authoredAt": "2026-08-29T03:33:59+00:00",
        "subject": "feat(metis): add deterministic workload estimation"
      },
      {
        "commit": "8306707322490737be944e485bc51e783ba3005c",
        "authoredAt": "2026-08-29T02:44:17+00:00",
        "subject": "feat(metis): implement course outline divergence workbench"
      },
      {
        "commit": "62ded68e97e587278307dfc26ffe717662c5b42c",
        "authoredAt": "2026-08-29T01:38:31+00:00",
        "subject": "feat(metis): implement standards alignment review workbench"
      },
      {
        "commit": "b31b9080cd9225a4f3fd22ae76c0698a928ef6db",
        "authoredAt": "2026-08-29T00:45:50+00:00",
        "subject": "feat(metis): implement objective concept map workbench"
      },
      {
        "commit": "a2d45a5690e01e86b2d73a74b10a0e96ecde4992",
        "authoredAt": "2026-08-28T23:57:22+00:00",
        "subject": "feat(metis): gate planning on curriculum briefs"
      },
      {
        "commit": "2c023e0cc69d8b87953c67460a1869e009406ad1",
        "authoredAt": "2026-08-28T23:00:40+00:00",
        "subject": "feat(metis): propagate source lifecycle impacts"
      },
      {
        "commit": "b75ff2853cc1dea41ca9a32bfed9cfda52664d69",
        "authoredAt": "2026-08-28T22:08:39+00:00",
        "subject": "feat(metis): enforce high-risk curriculum floors"
      },
      {
        "commit": "ae4bb3e8d813f5f403c7de690792f44dba69bedb",
        "authoredAt": "2026-08-28T21:02:09+00:00",
        "subject": "feat(metis): attach immutable source citations"
      },
      {
        "commit": "f7132bfed211e665bc780903952a76c63b95e9e4",
        "authoredAt": "2026-08-28T20:07:19+00:00",
        "subject": "feat(metis): authorize canonical claim revisions"
      },
      {
        "commit": "81855aefe6764da590bb6922f5c0c2a5301e5113",
        "authoredAt": "2026-08-28T19:38:40+00:00",
        "subject": "feat(metis): add fenced source claim confirmation"
      },
      {
        "commit": "16a04652fd41a95227c53df3cf2b5950164ef8e2",
        "authoredAt": "2026-08-28T18:57:04+00:00",
        "subject": "feat(metis): add source governance review"
      },
      {
        "commit": "9c60894f6d09eb926bbaaa6a2e6528bf41c62559",
        "authoredAt": "2026-08-28T18:06:21+00:00",
        "subject": "feat(metis): preserve immutable extraction history"
      },
      {
        "commit": "7f96f50224815833679f319c1b2a21feff07d4b3",
        "authoredAt": "2026-08-28T17:23:43+00:00",
        "subject": "feat(metis): implement structured source extraction"
      },
      {
        "commit": "41b7243aa462688eaddb6400efdaafff11dacc5d",
        "authoredAt": "2026-08-28T16:16:41+00:00",
        "subject": "feat(metis): quarantine and scan source uploads"
      },
      {
        "commit": "d76dad2caf2fe051f8836e77d81be9aacba8cf8c",
        "authoredAt": "2026-08-28T15:19:45+00:00",
        "subject": "feat(metis): implement secure source intake"
      },
      {
        "commit": "8b3a155f7a3a435aa18a8dc0dfb5260286fd5d4e",
        "authoredAt": "2026-08-28T01:46:19+00:00",
        "subject": "feat(metis): reconcile M1.1 contract ownership"
      },
      {
        "commit": "3275cb66db72638fa68692e65273f999ed8886e3",
        "authoredAt": "2026-08-27T20:01:56+00:00",
        "subject": "fix(metis): define bounded persistence strategy (m0.5)"
      },
      {
        "commit": "a8eddae50a9ac800e8370bede8b2efd08ae317b8",
        "authoredAt": "2026-08-27T19:41:27+00:00",
        "subject": "fix(metis): enforce explicit data boundaries (m0.4)"
      },
      {
        "commit": "eac1e17d94e3fb6c14fde5a27a71421b6fae7508",
        "authoredAt": "2026-08-27T19:23:37+00:00",
        "subject": "fix(metis): block privileged public registration (m0.3)"
      }
    ]
  },
  "decision": {
    "posture": "parked-contract-moving-daily",
    "seamClosed": false,
    "registeredViews": [],
    "ownerTaskIds": ["1.2", "1.3"],
    "resumeConditions": [
      "Record one complete seven-day UTC window with no changes to the Metis OpenAPI, migration graph, gateway routing, or web page-to-API bindings, or approve a versioned compatibility exception through the decision lane.",
      "Resolve the /api/metis/v1 -> /api/v1 -> /api transport contract so every admitted read route is explicitly registered, authenticated, versioned, and service-contract matched.",
      "Ratify or supersede ADR-M0.5 data ownership/classification before exposing protected learner, assessment, grade, integrity, or authoring records to Eve."
    ],
    "reasons": [
      "77 commits touched apps/metis on every UTC day from 2026-08-27 through 2026-09-01.",
      "The checked-out Alembic graph and dated local database observation align at head 043.",
      "236 of 244 distinct browser Metis path templates are not registered by the default API gateway.",
      "The selected persistence/classification ADR remains Proposed with every named ratifier pending."
    ]
  },
  "limitations": [
    "This is a dated repository and local-development observation, not a staging or production inventory.",
    "Static source matching proves declared routes and guards, not a successful live browser-to-database round trip.",
    "Static route extraction is a conservative dependency-closure inventory: an endpoint from a shared imported component may appear for a page even when a particular callback is not invoked in that page state.",
    "Page classifications are conservative survey labels derived from a Proposed ADR; they are not Data Governance ratification.",
    "A route with a FastAPI OpenAPI match is not reachable through the default web transport unless the gateway also registers it.",
    "No Metis Eve read view or mutation is admitted by this survey; later tasks must independently decide transport, authorization, and stable candidates."
  ],
  "recordDigestSha256": "5f81f964c5d4044356a1d863e9f6890bc38ef39ff68b17997c83c5b024c863a7"
}
