{
  "ok": true,
  "writesExternalSystems": false,
  "route": "/api/brain/skills",
  "library": {
    "ok": true,
    "schemaVersion": "sentinel-shared-skill-library-0.1.0",
    "generatedAt": "2026-07-31T20:31:10.799Z",
    "contract": {
      "ok": true,
      "schemaVersion": "sentinel-core-contract-0.1.0",
      "generatedAt": "2026-07-31T20:31:10.799Z",
      "contractId": "sentinel_neutral_project_brain_contract",
      "doctrine": [
        "Sentinel Core is neutral and product-agnostic.",
        "Projects plug in as isolated project brain instances.",
        "Project-specific memory stays project-scoped.",
        "Safe generalized lessons can flow upstream to Sentinel Core.",
        "Shared skill versions can flow downstream to subscribed projects.",
        "A model can be replaced; the learning loop, evals, skill library, release gates, and privacy boundaries are the durable asset."
      ],
      "privacyBoundary": {
        "rawPhotosAllowed": false,
        "screenshotsAllowed": false,
        "fullTranscriptsAllowed": false,
        "customerNamesAllowed": false,
        "privatePayloadsAllowed": false,
        "secretsAllowed": false,
        "tokensAllowed": false,
        "rawCustomerDataCentralLearningAllowed": false,
        "centralLearningDefault": "safe_normalized_deidentified_only",
        "projectMemoryDefault": "project_scoped"
      },
      "modelStrategy": {
        "hostedTeacherNow": "gpt-5.6-sol",
        "providerAbstractionRequired": true,
        "localBrainFutureReady": true,
        "localModelGraduatesBySkill": true,
        "trainingRequiresGovernedBundles": true
      },
      "releaseRule": "No shared skill, prompt, provider route, local model route, or training bundle changes project behavior without eval proof, rollback, and operator approval.",
      "writesExternalSystems": false,
      "guardrail": "The Sentinel core contract is policy metadata only. It does not train models, call providers, deploy code, route traffic, or mutate product systems."
    },
    "skillPacks": [
      {
        "ok": true,
        "schemaVersion": "sentinel-skill-pack-0.1.0",
        "generatedAt": "2026-07-31T20:31:10.799Z",
        "skillKey": "spatial_room_map_review",
        "domain": "spatial_reasoning",
        "capability": "Actively review draft room maps, scene graphs, object roles, mask summaries, and layout plans before customer-facing confirmation.",
        "version": "1.0.0",
        "status": "released",
        "inputSchema": {
          "required": [
            "semanticObjectList",
            "negativeFacts",
            "roomShell",
            "segmentation",
            "sceneGraph",
            "layoutPlan",
            "qa"
          ],
          "forbidden": [
            "rawPhotos",
            "screenshots",
            "fullTranscripts",
            "customerNames",
            "tokens",
            "secrets",
            "rawPrivateIntakeText"
          ]
        },
        "outputSchema": {
          "required": [
            "approvalStatus",
            "approvedForCustomerConfirmation",
            "issues",
            "suggestedCorrections",
            "confidence",
            "uncertaintyNotes",
            "learningLabels",
            "candidateGeneralizedLessons"
          ]
        },
        "privacyRules": {
          "rawPhotosAllowed": false,
          "screenshotsAllowed": false,
          "fullTranscriptsAllowed": false,
          "customerNamesAllowed": false,
          "privatePayloadsAllowed": false,
          "secretsAllowed": false,
          "tokensAllowed": false,
          "rawCustomerDataCentralLearningAllowed": false,
          "centralLearningDefault": "safe_normalized_deidentified_only",
          "projectMemoryDefault": "project_scoped"
        },
        "reviewRubric": [
          "Treat SAM/SAM3 masks as shape and edge evidence, not the brain.",
          "Require semantic object identity before approving object placement.",
          "Do not approve a customer-facing room map when room shell confidence is weak.",
          "Protect circulation and walk paths in the draft layout.",
          "Preserve negative facts; never contradict known absence or uncertainty.",
          "Turn repeated severe failures into eval candidates before changing behavior."
        ],
        "retrievalAssets": [],
        "evalSuiteRefs": [
          "sentinel:spatial_room_map_review:baseline-eval-v1"
        ],
        "trainingBundleRefs": [],
        "releaseGate": {
          "evalRequired": true,
          "operatorApprovalRequired": true,
          "rollbackRequired": true,
          "monitoringRequired": true,
          "localProviderRoutingAllowed": false
        },
        "rollbackVersion": "",
        "subscribedProjects": [
          "roomsage"
        ],
        "lineageRefs": [
          "sentinel:core:default-spatial-skill-v1"
        ],
        "localBrainReadiness": {
          "providerAbstractionReady": true,
          "trainingEligibleNow": false,
          "localRoutingAllowedNow": false
        },
        "unsafeInput": {
          "blocked": false,
          "rawPrivateDataIncluded": false,
          "secretsIncluded": false,
          "unsafeKeys": []
        },
        "missing": [],
        "writesExternalSystems": false,
        "guardrail": "A Sentinel skill pack is a versioned review contract. It cannot deploy, train, route local models, or mutate product behavior by itself."
      }
    ],
    "subscriptions": [],
    "summary": {
      "skillPackCount": 1,
      "releasedSkillCount": 1,
      "projectSubscriptionCount": 0,
      "defaultSkillKey": "spatial_room_map_review"
    },
    "writesExternalSystems": false,
    "guardrail": "Shared skill library records are governed metadata only. They never include raw photos, transcripts, screenshots, customer names, private payloads, tokens, or secrets.",
    "storage": {
      "configured": true,
      "ready": true,
      "activePersistenceMode": "supabase_postgres",
      "skillRowCount": 0,
      "subscriptionRowCount": 0
    }
  },
  "summary": {
    "skillPackCount": 1,
    "projectSubscriptionCount": 0,
    "defaultSkillKey": "spatial_room_map_review"
  },
  "storage": {
    "configured": true,
    "ready": true,
    "activePersistenceMode": "supabase_postgres",
    "skillRowCount": 0,
    "subscriptionRowCount": 0
  },
  "guardrail": "Skill library reads shared skill contracts, versions, eval refs, and subscriptions only. It never exposes raw customer/project payloads."
}