{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://eidetic-engine/schemas/ee.model_lifecycle.v1.json",
"title": "ee.model_lifecycle.v1",
"description": "Redaction-safe readiness report for embedding model assets, semantic index metadata, and lexical fallback posture. ADR 0074. Observations only: Frankensearch owns model selection and vector search; ee records lifecycle state and compatibility evidence.",
"type": "object",
"required": [
"schema",
"generatedAt",
"workspaceFingerprint",
"redactionStatus",
"semanticReadiness",
"models",
"indexes",
"degraded"
],
"additionalProperties": false,
"properties": {
"schema": {
"type": "string",
"const": "ee.model_lifecycle.v1"
},
"generatedAt": {
"type": "string",
"format": "date-time"
},
"workspaceFingerprint": {
"type": "string",
"description": "Existing short workspace fingerprint; never the raw workspace path.",
"pattern": "^[0-9a-f]{12,64}$"
},
"redactionStatus": {
"type": "string",
"const": "paths_workspace_relative_or_hashed_no_content"
},
"semanticReadiness": {
"$ref": "#/$defs/semanticReadiness"
},
"models": {
"type": "array",
"items": {
"$ref": "#/$defs/modelLifecycleRow"
}
},
"indexes": {
"type": "array",
"items": {
"$ref": "#/$defs/indexLifecycleRow"
}
},
"degraded": {
"type": "array",
"items": {
"$ref": "#/$defs/degradedEntry"
}
}
},
"$defs": {
"lifecycleState": {
"type": "string",
"enum": [
"available",
"cold",
"warming",
"missing",
"corrupt",
"dimension_mismatch",
"stale_index_model",
"lexical_fallback",
"unsupported_feature",
"unknown"
]
},
"redactedPath": {
"type": "string",
"description": "Workspace-relative path, or hashed:<blake3-12> for paths outside the workspace. Absolute paths are forbidden.",
"pattern": "^(hashed:[0-9a-f]{12}|[^/].*)$",
"not": {
"pattern": "^/"
}
},
"hash": {
"type": "string",
"pattern": "^blake3:[0-9a-f]{64}$"
},
"assetProvenance": {
"type": "object",
"required": [
"sourceKind",
"sourceUri",
"registryEntryId",
"modelRevision",
"contentHash",
"assetHash",
"manifestHash",
"checkedAt",
"provenanceComplete"
],
"additionalProperties": false,
"properties": {
"sourceKind": {
"type": "string",
"enum": [
"frankensearch_default",
"model_registry",
"external_manifest",
"hash_fallback",
"unknown"
]
},
"sourceUri": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/redactedPath"
}
]
},
"registryEntryId": {
"type": ["string", "null"],
"minLength": 1,
"maxLength": 128
},
"modelRevision": {
"type": ["string", "null"],
"minLength": 1,
"maxLength": 128
},
"contentHash": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/hash"
}
]
},
"assetHash": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/hash"
}
]
},
"manifestHash": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/hash"
}
]
},
"checkedAt": {
"type": ["string", "null"],
"format": "date-time"
},
"provenanceComplete": {
"type": "boolean"
}
}
},
"dimensionCompatibility": {
"type": "object",
"required": [
"expectedDimension",
"actualDimension",
"indexDimension",
"distanceMetric",
"vectorDtype",
"compatible",
"rule",
"mismatchReason",
"repair"
],
"additionalProperties": false,
"properties": {
"expectedDimension": {
"type": ["integer", "null"],
"minimum": 1
},
"actualDimension": {
"type": ["integer", "null"],
"minimum": 1
},
"indexDimension": {
"type": ["integer", "null"],
"minimum": 1
},
"distanceMetric": {
"type": ["string", "null"],
"enum": ["cosine", "dot", "l2", null]
},
"vectorDtype": {
"type": ["string", "null"],
"enum": ["float32", "float16", "int8", "uint8", null]
},
"compatible": {
"type": ["boolean", "null"]
},
"rule": {
"type": "string",
"enum": [
"exact_dimension_metric_dtype",
"lexical_no_dimension",
"unsupported_feature",
"not_probed",
"unknown"
]
},
"mismatchReason": {
"type": ["string", "null"],
"maxLength": 256
},
"repair": {
"type": ["string", "null"],
"maxLength": 256
}
}
},
"degradedEntry": {
"type": "object",
"required": ["code", "severity", "message"],
"additionalProperties": false,
"properties": {
"code": {
"type": "string",
"enum": [
"model_lifecycle_cold",
"model_lifecycle_warming",
"model_asset_missing",
"model_asset_corrupt",
"model_dimension_mismatch",
"stale_index_model",
"lexical_fallback",
"unsupported_feature",
"model_lifecycle_unknown",
"model_registry_empty",
"model_registry_no_available_entry",
"semantic_model_unavailable",
"semantic_dimension_exceeds_budget",
"index_missing",
"index_corrupt",
"index_stale",
"search_index_degraded"
]
},
"severity": {
"type": "string",
"enum": ["info", "low", "warning", "medium", "high", "critical"]
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"repair": {
"type": ["string", "null"],
"maxLength": 256
}
}
},
"semanticReadiness": {
"type": "object",
"required": [
"state",
"mode",
"selectedModelId",
"selectedIndexId",
"dimensionCompatibility",
"degraded"
],
"additionalProperties": false,
"properties": {
"state": {
"$ref": "#/$defs/lifecycleState"
},
"mode": {
"type": "string",
"enum": ["semantic", "lexical_fallback", "blocked", "unknown"]
},
"selectedModelId": {
"type": ["string", "null"],
"minLength": 1,
"maxLength": 128
},
"selectedIndexId": {
"type": ["string", "null"],
"minLength": 1,
"maxLength": 128
},
"dimensionCompatibility": {
"$ref": "#/$defs/dimensionCompatibility"
},
"degraded": {
"type": "array",
"items": {
"$ref": "#/$defs/degradedEntry"
}
}
}
},
"modelLifecycleRow": {
"type": "object",
"required": [
"modelId",
"provider",
"purpose",
"registryStatus",
"state",
"assetProvenance",
"embeddingMetadata",
"dimensionCompatibility",
"degraded"
],
"additionalProperties": false,
"properties": {
"modelId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"provider": {
"type": "string",
"enum": ["hash", "model2vec", "fastembed", "external", "custom", "unknown"]
},
"purpose": {
"type": "string",
"enum": ["embedding", "reranker", "classifier", "other"]
},
"registryStatus": {
"type": "string",
"enum": ["available", "unavailable", "disabled", "unknown"]
},
"state": {
"$ref": "#/$defs/lifecycleState"
},
"assetProvenance": {
"$ref": "#/$defs/assetProvenance"
},
"embeddingMetadata": {
"type": ["object", "null"],
"description": "Validated ee.embedding.metadata.v1 payload, or null when metadata is missing or unparseable.",
"additionalProperties": true
},
"dimensionCompatibility": {
"$ref": "#/$defs/dimensionCompatibility"
},
"degraded": {
"type": "array",
"items": {
"$ref": "#/$defs/degradedEntry"
}
}
}
},
"indexLifecycleRow": {
"type": "object",
"required": [
"indexId",
"kind",
"state",
"storedModelId",
"storedModelRevision",
"storedModelHash",
"storedDimension",
"storedDistanceMetric",
"storedVectorDtype",
"lastRebuildAt",
"derivedFrom",
"dimensionCompatibility",
"degraded"
],
"additionalProperties": false,
"properties": {
"indexId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"kind": {
"type": "string",
"enum": ["semantic", "lexical", "hybrid"]
},
"state": {
"$ref": "#/$defs/lifecycleState"
},
"storedModelId": {
"type": ["string", "null"],
"minLength": 1,
"maxLength": 128
},
"storedModelRevision": {
"type": ["string", "null"],
"minLength": 1,
"maxLength": 128
},
"storedModelHash": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/hash"
}
]
},
"storedDimension": {
"type": ["integer", "null"],
"minimum": 1
},
"storedDistanceMetric": {
"type": ["string", "null"],
"enum": ["cosine", "dot", "l2", null]
},
"storedVectorDtype": {
"type": ["string", "null"],
"enum": ["float32", "float16", "int8", "uint8", null]
},
"lastRebuildAt": {
"type": ["string", "null"],
"format": "date-time"
},
"derivedFrom": {
"type": "array",
"items": {
"$ref": "#/$defs/redactedPath"
}
},
"dimensionCompatibility": {
"$ref": "#/$defs/dimensionCompatibility"
},
"degraded": {
"type": "array",
"items": {
"$ref": "#/$defs/degradedEntry"
}
}
}
}
},
"x-ee-status": {
"shipped": true,
"available_in_build": true,
"tracking_bead": "bd-1iupc.2"
}
}