{
    "ok": true,
    "contracts_version": "0.1.855",
    "artifact_identity": {
        "layer": 855,
        "schema_owner": "logicforge-layer-855-schema.sql",
        "contracts_version": "0.1.855",
        "surface": "master"
    },
    "master": {
        "surface": "layer_25_master_canon_ready",
        "status": "gaps_open",
        "score": 55,
        "headline": "Layer 25 is active, but critical launch gaps still need to be closed.",
        "subheadline": "The system is now telling the truth about what still blocks a fully closed launch state.",
        "next_action": {
            "title": "Production gate remains closed",
            "detail": "Trust posture — Trust posture is too weak to safely call the experience production-ready because proof coverage or visible loop closure is still thin.",
            "severity": "critical"
        },
        "gaps": [
            {
                "severity": "critical",
                "label": "Production gate closed",
                "detail": "Layer 20 found at least one blocker that could break trust, scale, or first-load clarity."
            },
            {
                "severity": "critical",
                "label": "Acceptance blocked",
                "detail": "Layer 855 keeps acceptance truth-bounded: fix the critical checks first, then re-run the deferred authenticated proof."
            },
            {
                "severity": "warning",
                "label": "Proof not certified",
                "detail": "A failed proof step, acceptance blocker, or production hold is still visible."
            },
            {
                "severity": "warning",
                "label": "Release not live",
                "detail": "Layer 23 compresses the final launch decision into one place so promotion is explicit, recorded, and reversible."
            },
            {
                "severity": "warning",
                "label": "Watch surface not closed",
                "detail": "A live release state and open gates are required before the watch surface can move from planning into active monitoring."
            }
        ],
        "canon_contract": {
            "canon_closed": false,
            "open_items": [
                {
                    "contract_key": "production_gate_closed.trust",
                    "label": "Production gate remains closed",
                    "state": "FAIL",
                    "detail": "Trust posture — Trust posture is too weak to safely call the experience production-ready because proof coverage or visible loop closure is still thin.",
                    "surface": "/ops/production",
                    "closes_when": "Strengthen visible proof, causal clarity, and return confidence before release."
                },
                {
                    "contract_key": "acceptance_gate_blocked",
                    "label": "Acceptance gate is blocked",
                    "state": "FAIL",
                    "detail": "Layer 855 keeps acceptance truth-bounded: fix the critical checks first, then re-run the deferred authenticated proof.",
                    "surface": "/ops/acceptance",
                    "closes_when": "Clear the unresolved launch blockers visible on /ops/acceptance."
                },
                {
                    "contract_key": "launch_proof_not_certified",
                    "label": "Launch proof is not certified",
                    "state": "WARN",
                    "detail": "A failed proof step, acceptance blocker, or production hold is still visible.",
                    "surface": "/ops/proof",
                    "closes_when": "Record the missing proof checkpoints or adopt evidence-backed checks on /prove until /ops/proof is certified."
                },
                {
                    "contract_key": "release_not_live",
                    "label": "Release has not been promoted live",
                    "state": "WARN",
                    "detail": "Layer 23 compresses the final launch decision into one place so promotion is explicit, recorded, and reversible.",
                    "surface": "/ops/release",
                    "closes_when": "Use /release to record the live promotion decision once the blocking gates are clear."
                },
                {
                    "contract_key": "watch_not_closed",
                    "label": "Launch watch has not closed cleanly",
                    "state": "WARN",
                    "detail": "A live release state and open gates are required before the watch surface can move from planning into active monitoring.",
                    "surface": "/ops/watch",
                    "closes_when": "Close the active watch session or resolve the incident visible on /ops/watch."
                }
            ],
            "open_count": 5,
            "closed_count": 0,
            "closure_percent": 0,
            "next_closure_item": {
                "contract_key": "production_gate_closed.trust",
                "label": "Production gate remains closed",
                "state": "FAIL",
                "detail": "Trust posture — Trust posture is too weak to safely call the experience production-ready because proof coverage or visible loop closure is still thin.",
                "surface": "/ops/production",
                "closes_when": "Strengthen visible proof, causal clarity, and return confidence before release."
            }
        },
        "artifact_identity": {
            "layer": 855,
            "schema_owner": "logicforge-layer-855-schema.sql",
            "contracts_version": "0.1.855",
            "surface": "master"
        },
        "schema": {
            "connected": true,
            "applied_count": 4,
            "pending": [],
            "blocking_pending": [],
            "ledger_drift": []
        },
        "production": {
            "status": "hold",
            "score": 62,
            "release_gate": false
        },
        "acceptance": {
            "status": "blocked",
            "score": 90
        },
        "proof": {
            "status": "blocked",
            "score": 40
        },
        "release": {
            "status": "hold",
            "release_state": "hold"
        },
        "watch": {
            "status": "blocked",
            "score": 28
        }
    }
}
