{
  "ok": true,
  "contractId": "local.casternotifications-static-shell-isolation.v0",
  "status": "blocked_external",
  "mode": "live_vercel_static_casternotifications_with_runtime_blocker_gates",
  "publicReadinessStatus": "blocked_external",
  "runtimeVisibilityStatus": "passed",
  "localOnly": false,
  "staticFallback": true,
  "writeAccepted": false,
  "liveMutationAllowed": false,
  "productionReady": false,
  "commercialReady": false,
  "acceptedAsProductionEvidence": false,
  "surfaces": {
    "web": "/casternotifications",
    "miniapp": "/miniapps/casternotifications",
    "sourceNotifications": "/notifications",
    "sourceApi": "/api/notifications",
    "api": [
      "/api/casternotifications/overview",
      "/api/casternotifications/inbox",
      "/api/casternotifications/unread",
      "/api/casternotifications/filters",
      "/api/casternotifications/actor-cards",
      "/api/casternotifications/realtime",
      "/api/casternotifications/polling",
      "/api/casternotifications/mark-read",
      "/api/casternotifications/storage-cache",
      "/api/casternotifications/rate-limits",
      "/api/casternotifications/agent-access",
      "/api/casternotifications/api",
      "/api/casternotifications/qstorage",
      "/api/casternotifications/event-log",
      "/api/casternotifications/rollback"
    ],
    "status": "/api/casternotifications/status"
  },
  "metrics": [
    {
      "label": "Inbox",
      "value": "read-only",
      "status": "blocked_external"
    },
    {
      "label": "Unread",
      "value": "blocked",
      "status": "blocked_external"
    },
    {
      "label": "Realtime",
      "value": "refresh only",
      "status": "blocked_external"
    },
    {
      "label": "Read state",
      "value": "no writes",
      "status": "blocked_external"
    }
  ],
  "lanes": [
    {
      "id": "inbox",
      "title": "Wallet inbox and filters",
      "summary": "Read-only shell for /notifications, social/system filters, unread counters, and source route wiring.",
      "status": "blocked_external"
    },
    {
      "id": "read-state",
      "title": "Mark-read and unread state",
      "summary": "Notification read-state mutation, unread rollups, and notification store writes stay blocked until strict runtime evidence passes.",
      "status": "blocked_external"
    },
    {
      "id": "actors",
      "title": "Actor cards and refresh",
      "summary": "Public actor-card enrichment, polling fallback, realtime refresh, rate limits, and agent access are visible as contracts only.",
      "status": "blocked_external"
    },
    {
      "id": "proofs",
      "title": "QStorage, event log, and rollback",
      "summary": "QStorage snapshots, append-only event log, notification fanout, and rollback require accepted receipts.",
      "status": "blocked_external"
    }
  ],
  "blockers": [
    "No accepted full Next Caster Notifications build/typecheck receipt exists for this standalone fallback.",
    "No accepted shared Reown identity, wallet auth, notification store, unread state, mark-read mutation, actor cards, realtime refresh, polling fallback, rate limits, agent access, QStorage, event log, or rollback runtime receipt exists.",
    "No signed @casterchain Farcaster accountAssociation exists for casternotifications.vercel.app.",
    "No notification read/write mutation, unread-state mutation, realtime publish, notification fanout, rate-limit mutation, QStorage write, event-log append, rollback, wallet signature, public announcement, or production datastore mutation is allowed from this fallback."
  ]
}
