{
  "repo": "core",
  "version": "7.52.0",
  "from": "52fbcc8efd009b1707d6997e2588c3c62b3d8494",
  "to": "83692b9c07240c0a9d7bf6e421f4be2a12daf1e8",
  "added": [
    {
      "name": "ArtifactVerifyCode",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2636",
        "src/prompt-assembly/artifact.ts:124"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "CatalogDescription",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:3556",
        "src/prompt-assembly/explain.ts:65"
      ],
      "criteriaCovered": true,
      "breaking": false
    },
    {
      "name": "ClassicEventBase",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:50",
        "src/index.ts:1989"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "EngineDollar",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mods/dollar.ts:75",
        "src/index.ts:2045"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "HOST_FORMS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/index.ts:2589",
        "src/prompt-assembly/catalog/schema.ts:45"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "HOST_ROLES",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/index.ts:2589",
        "src/prompt-assembly/catalog/schema.ts:41"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "KERNEL_CONTRACT_VERSION",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/events.ts:17",
        "src/core/mods/kernel/index.ts:3",
        "src/index.ts:2017"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "MODS_INVALID_CODE",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:40",
        "src/core/mods/kernel/registration.ts:21",
        "src/index.ts:2022"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "MODS_REGISTRATION_REFUSED_CODE",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:41",
        "src/core/mods/kernel/registration.ts:23",
        "src/index.ts:2023"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "MOD_EVENT_SIDES",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/events.ts:30",
        "src/core/mods/kernel/index.ts:6",
        "src/index.ts:2020"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "MOD_EVENT_TABLE",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/events.ts:99",
        "src/core/mods/kernel/index.ts:11",
        "src/index.ts:2021"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "MOD_SEATS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/events.ts:26",
        "src/core/mods/kernel/index.ts:5",
        "src/index.ts:2019"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "MOD_TIERS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/events.ts:20",
        "src/core/mods/kernel/index.ts:4",
        "src/index.ts:2018"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModAdmissionRecord",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:55",
        "src/core/mods/kernel/registration.ts:117",
        "src/index.ts:2043"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModCaughtError",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:49",
        "src/core/mods/kernel/registration.ts:66",
        "src/index.ts:2039"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModDollarBase",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:47",
        "src/core/mods/kernel/registration.ts:48",
        "src/index.ts:2040"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModEventName",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/events.ts:247",
        "src/core/mods/kernel/index.ts:26",
        "src/index.ts:2028"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModEventPayload",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:37",
        "src/core/mods/kernel/site-rules.ts:30",
        "src/index.ts:2041"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModEventRow",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/events.ts:80",
        "src/core/mods/kernel/index.ts:25",
        "src/index.ts:2029"
      ],
      "criteriaCovered": true,
      "breaking": false
    },
    {
      "name": "ModEventSide",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/events.ts:31",
        "src/core/mods/kernel/index.ts:20",
        "src/index.ts:2027"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModHandler",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:51",
        "src/core/mods/kernel/registration.ts:87",
        "src/index.ts:2034"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModHandlerOptions",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:52",
        "src/core/mods/kernel/registration.ts:89",
        "src/index.ts:2035"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModMatcher",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:37",
        "src/core/mods/kernel/site-rules.ts:48",
        "src/index.ts:2042"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModNext",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:50",
        "src/core/mods/kernel/registration.ts:73",
        "src/index.ts:2036"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModOrigin",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:45",
        "src/core/mods/kernel/registration.ts:34",
        "src/index.ts:2037"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModRegistration",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:54",
        "src/core/mods/kernel/registration.ts:102",
        "src/index.ts:2031"
      ],
      "criteriaCovered": true,
      "breaking": false
    },
    {
      "name": "ModRegistrationTier",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/events.ts:23",
        "src/core/mods/kernel/index.ts:18",
        "src/index.ts:2025"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModSeat",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/events.ts:27",
        "src/core/mods/kernel/index.ts:19",
        "src/index.ts:2026"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModStation",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/events.ts:71",
        "src/core/mods/kernel/index.ts:24",
        "src/index.ts:2030"
      ],
      "criteriaCovered": true,
      "breaking": false
    },
    {
      "name": "ModTier",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/events.ts:21",
        "src/core/mods/kernel/index.ts:17",
        "src/index.ts:2024"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModTraceEntry",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:48",
        "src/core/mods/kernel/registration.ts:53",
        "src/index.ts:2038"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModUses",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mods/kernel/index.ts:44",
        "src/core/mods/kernel/registration.ts:26",
        "src/index.ts:2032"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ModelCompleteBlock",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mods/dollar.ts:21",
        "src/index.ts:2045"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "OVERLAY_OPS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/index.ts:2589",
        "src/prompt-assembly/catalog/schema.ts:24"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "OVERLAY_SOURCE_ORDER",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/index.ts:2587",
        "src/prompt-assembly/overlay.ts:63"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "On",
      "kind": "interface",
      "tier": "stable",
      "at": [
        "src/core/mods/kernel/index.ts:53",
        "src/core/mods/kernel/registration.ts:97",
        "src/index.ts:2033"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PROMPT_BANDS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/index.ts:2588"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PROMPT_EPOCH_ACTIVATIONS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/index.ts:2618",
        "src/prompt-assembly/epoch.ts:84"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PROMPT_EPOCH_CHANGES",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/index.ts:2619",
        "src/prompt-assembly/epoch.ts:89"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PostCompactEvent",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:209",
        "src/index.ts:1998"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PostToolBatchEvent",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:119",
        "src/index.ts:1993"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PostToolUseEvent",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:88",
        "src/index.ts:1991"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PostToolUseFailureEvent",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:103",
        "src/index.ts:1992"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PreCompactEvent",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:203",
        "src/index.ts:1997"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PreToolUseEvent",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:70",
        "src/index.ts:1990"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptArtifact",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2638",
        "src/prompt-assembly/artifact.ts:49"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptArtifactEvidence",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2639",
        "src/prompt-assembly/artifact.ts:34"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptArtifactPayload",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2640",
        "src/prompt-assembly/artifact.ts:40"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptArtifactRequires",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2641",
        "src/prompt-assembly/artifact.ts:26"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptBandId",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2596"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptBandRow",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2597"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptCatalog",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2601",
        "src/prompt-assembly/catalog/schema.ts:144"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptCatalogAttribution",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2595"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptCatalogMessage",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2598"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptCatalogSection",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2599"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptCatalogVariant",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2607"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptChainLink",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2587"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptEpochChange",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2622",
        "src/prompt-assembly/epoch.ts:90"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptFactConjunction",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2600"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptFactName",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2602",
        "src/prompt-assembly/catalog/schema.ts:82"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptHostForm",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2589"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptHostRole",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2589"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptIdentityLayers",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2623",
        "src/prompt-assembly/epoch.ts:54"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptManifestIdentity",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/trace.ts:28",
        "src/index.ts:268"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptManifestSection",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/trace.ts:46",
        "src/index.ts:268"
      ],
      "criteriaCovered": true,
      "breaking": false
    },
    {
      "name": "PromptManifestSelectors",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/trace.ts:36",
        "src/index.ts:268"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptOverlay",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2587",
        "src/prompt-assembly/overlay.ts:46"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptOverlayOp",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2589"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptOverlaySource",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2589"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptRendererId",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2604"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptSectionBody",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2605"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptTrait",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2603",
        "src/prompt-assembly/catalog/schema.ts:60"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptTraitCondition",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2606"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PromptVariantWhen",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2589"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PublishedPromptArtifact",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2642",
        "src/prompt-assembly/artifact.ts:55"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "SEMA_DEFAULT_CATALOG",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/index.ts:2593",
        "src/prompt-assembly/catalog/index.ts:15"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "StopEvent",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:172",
        "src/index.ts:1995"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "StopFailureEvent",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:191",
        "src/index.ts:1996"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "StopHookResult",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:318",
        "src/index.ts:1999"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "StoredPromptEpoch",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2624",
        "src/prompt-assembly/epoch.ts:108"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "SupersededOverlay",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2587",
        "src/prompt-assembly/overlay.ts:77"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "UserPromptSubmitEvent",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:135",
        "src/index.ts:1994"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "WithheldEnvDeclaration",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/secret-env.ts:300",
        "src/index.ts:521"
      ],
      "criteriaCovered": true,
      "breaking": false
    },
    {
      "name": "__resetCredentialOriginBindings",
      "kind": "function",
      "tier": "internal",
      "at": [
        "src/brain/route-adjudicator.ts:502",
        "src/index.ts:3397"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "admitModChain",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/mods/stations.ts:778",
        "src/index.ts:2046"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "buildPromptArtifact",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2631",
        "src/prompt-assembly/artifact.ts:262"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "catalogText",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2593",
        "src/prompt-assembly/catalog/index.ts:62"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "describeCatalog",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:3555",
        "src/prompt-assembly/explain.ts:78"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "promptIdentityOf",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2617",
        "src/prompt-assembly/epoch.ts:72"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "requiresOf",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2633",
        "src/prompt-assembly/artifact.ts:83"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "unmetRequirements",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2634",
        "src/prompt-assembly/artifact.ts:109"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "unreadableDenyEntries",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/session-policy-store.ts:391",
        "src/index.ts:378"
      ],
      "criteriaCovered": false,
      "breaking": false
    }
  ],
  "removed": [
    {
      "name": "COWORK_PROMPT_SECTIONS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/index.ts:2571",
        "src/prompts/cowork.ts:602"
      ],
      "breaking": true
    },
    {
      "name": "CenterOverlaySection",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2594",
        "src/prompt-assembly/artifact.ts:23"
      ],
      "breaking": true
    },
    {
      "name": "CenterOverlaySlot",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2595",
        "src/prompt-assembly/artifact.ts:21"
      ],
      "breaking": true
    },
    {
      "name": "CoreCompatRange",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2596",
        "src/prompt-assembly/artifact.ts:47"
      ],
      "breaking": true
    },
    {
      "name": "DefaultPackDescription",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:3519",
        "src/prompt-assembly/explain.ts:60"
      ],
      "breaking": true
    },
    {
      "name": "HOOKS_INVALID_CODE",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/hook-seats.ts:46",
        "src/index.ts:2019"
      ],
      "breaking": true
    },
    {
      "name": "HOOK_FAMILIES",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/hook-seats.ts:17",
        "src/index.ts:2019"
      ],
      "breaking": true
    },
    {
      "name": "HookFamily",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/hook-seats.ts:37",
        "src/index.ts:2019"
      ],
      "breaking": true
    },
    {
      "name": "HookToolContext",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:1099",
        "src/index.ts:1992"
      ],
      "breaking": true
    },
    {
      "name": "Hooks",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:76",
        "src/index.ts:1991"
      ],
      "breaking": true
    },
    {
      "name": "PackSectionDeclaration",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2639",
        "src/prompt-assembly/types.ts:145"
      ],
      "breaking": true
    },
    {
      "name": "PostToolBatchContext",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:1275",
        "src/index.ts:1998"
      ],
      "breaking": true
    },
    {
      "name": "PromptCacheClass",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2640",
        "src/prompt-assembly/types.ts:49"
      ],
      "breaking": true
    },
    {
      "name": "PromptCacheReport",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2566",
        "src/prompts/default.ts:1287"
      ],
      "breaking": true
    },
    {
      "name": "PromptCatalogSnapshot",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2597",
        "src/prompt-assembly/artifact.ts:34"
      ],
      "breaking": true
    },
    {
      "name": "PromptDependencyClosure",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2598",
        "src/prompt-assembly/artifact.ts:40"
      ],
      "breaking": true
    },
    {
      "name": "PromptEpochArtifact",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2599",
        "src/prompt-assembly/artifact.ts:60"
      ],
      "breaking": true
    },
    {
      "name": "PromptEpochArtifactPayload",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2600",
        "src/prompt-assembly/artifact.ts:52"
      ],
      "breaking": true
    },
    {
      "name": "PromptMutability",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2642",
        "src/prompt-assembly/types.ts:62"
      ],
      "breaking": true
    },
    {
      "name": "PromptOwner",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2643",
        "src/prompt-assembly/types.ts:51"
      ],
      "breaking": true
    },
    {
      "name": "PromptPack",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2644",
        "src/prompt-assembly/types.ts:188"
      ],
      "breaking": true
    },
    {
      "name": "PromptProvider",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2564",
        "src/prompts/default.ts:1173"
      ],
      "breaking": true
    },
    {
      "name": "PromptRenderCadence",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2645",
        "src/prompt-assembly/types.ts:45"
      ],
      "breaking": true
    },
    {
      "name": "PromptSectionDisposition",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/prompt-section-seat.ts:34",
        "src/index.ts:3531"
      ],
      "breaking": true
    },
    {
      "name": "PromptSlot",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/index.ts:2647",
        "src/prompt-assembly/types.ts:17"
      ],
      "breaking": true
    },
    {
      "name": "PromptTextDeclaration",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2567",
        "src/prompts/default.ts:1141"
      ],
      "breaking": true
    },
    {
      "name": "PublishedPromptArtifactEnvelope",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2601",
        "src/prompt-assembly/artifact.ts:67"
      ],
      "breaking": true
    },
    {
      "name": "SEMA_DEFAULT_PACK",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/index.ts:2576",
        "src/prompt-assembly/packs/sema-default.ts:80"
      ],
      "breaking": true
    },
    {
      "name": "StablePromptContext",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/index.ts:2565",
        "src/prompts/default.ts:1002"
      ],
      "breaking": true
    },
    {
      "name": "StopFailureContext",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:619",
        "src/index.ts:2013"
      ],
      "breaking": true
    },
    {
      "name": "UserPromptSubmitContext",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:1211",
        "src/index.ts:1997"
      ],
      "breaking": true
    },
    {
      "name": "WiringManifestHookEntry",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hook-seats.ts:78",
        "src/core/wiring-manifest.ts:227",
        "src/index.ts:2019"
      ],
      "breaking": true
    },
    {
      "name": "analyzePromptCacheFriendliness",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2562",
        "src/prompts/default.ts:1318"
      ],
      "breaking": true
    },
    {
      "name": "artifactDeclarations",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2588",
        "src/prompt-assembly/artifact.ts:226"
      ],
      "breaking": true
    },
    {
      "name": "assertPromptCacheFriendly",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2563",
        "src/prompts/default.ts:1350"
      ],
      "breaking": true
    },
    {
      "name": "buildPromptArtifactEnvelope",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2589",
        "src/prompt-assembly/artifact.ts:237"
      ],
      "breaking": true
    },
    {
      "name": "compose",
      "kind": "function",
      "tier": "stable",
      "at": [
        "src/index.ts:2575",
        "src/prompt-assembly/composer.ts:66"
      ],
      "breaking": true
    },
    {
      "name": "composeConstitution",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2559",
        "src/prompts/default.ts:1252"
      ],
      "breaking": true
    },
    {
      "name": "composeSystemPrompt",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2556",
        "src/prompts/default.ts:1211"
      ],
      "breaking": true
    },
    {
      "name": "computeBundledArtifactDigest",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2582",
        "src/prompt-assembly/epoch.ts:158"
      ],
      "breaking": true
    },
    {
      "name": "computeCatalogDigest",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2591",
        "src/prompt-assembly/artifact.ts:92"
      ],
      "breaking": true
    },
    {
      "name": "constitutionBlocks",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2560",
        "src/prompts/default.ts:1231"
      ],
      "breaking": true
    },
    {
      "name": "coworkPromptProvider",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2571",
        "src/prompts/cowork.ts:591"
      ],
      "breaking": true
    },
    {
      "name": "defaultPromptProvider",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/index.ts:2555",
        "src/prompts/default.ts:1282"
      ],
      "breaking": true
    },
    {
      "name": "describeDefaultPack",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:3518",
        "src/prompt-assembly/explain.ts:76"
      ],
      "breaking": true
    },
    {
      "name": "harnessContext",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2548",
        "src/prompts/default.ts:518"
      ],
      "breaking": true
    },
    {
      "name": "isEngineRefusal",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/decision-receipt.ts:19",
        "src/core/tool-policy.ts:23",
        "src/index.ts:1412"
      ],
      "breaking": true
    },
    {
      "name": "receiveHookResult",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/tool-policy.ts:1267",
        "src/index.ts:1411"
      ],
      "breaking": true
    },
    {
      "name": "validatePack",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/index.ts:2575",
        "src/prompt-assembly/composer.ts:25"
      ],
      "breaking": true
    }
  ],
  "changed": [],
  "narrowed": [
    {
      "id": "F1",
      "source": "behaviorFlips.summary",
      "text": "#1821 (security, P1; narrowing, open to veto): a per-model credential is bound to the origin it was first judged for; an entry moved to another origin under the same credential sends nothing."
    },
    {
      "id": "F7",
      "source": "behaviorFlips.summary",
      "text": "#1686 (security; narrowing, open to veto): a home view nobody could read is no reading — every structured face refuses past it; C-R482: an auxiliary home that does not answer costs that home alone."
    },
    {
      "id": "F8",
      "source": "behaviorFlips.summary",
      "text": "#1803 (security; narrowing, C-R480, open to veto): an environment with no home holds the home-anchored rows wider on a recursive read's root too."
    },
    {
      "id": "F10",
      "source": "behaviorFlips.summary",
      "text": "#1786 (security, P1; narrowing): a walker given only a pattern walks `.` and `.` is judged; the pattern is no root."
    },
    {
      "id": "F11",
      "source": "behaviorFlips.summary",
      "text": "#1792 (security; narrowing): a context count written apart from its option (`ack -C 3 pat`, `ag -C 3 pat`, `grep -r --context 3 pat`) no longer hides the walk of `.`."
    },
    {
      "id": "F12",
      "source": "behaviorFlips.summary",
      "text": "#1800 (security, P1; narrowing): a switch letter in front of a value letter in one short cluster (`rg -ie pat`, `rg -nC 3 pat`, `ag -iC 3 pat`, `ack -iC 3 pat`, 13 shapes) no longer hides the walk of `.`."
    },
    {
      "id": "F13",
      "source": "behaviorFlips.summary",
      "text": "#1819 (security, P1; narrowing): a long option the row does not declare may take the next word; undeclared long switches in front of the pattern put the parse in doubt."
    },
    {
      "id": "F14",
      "source": "behaviorFlips.summary",
      "text": "#1826 (security, P1; narrowing with two loosenings): a path value an option reads is a candidate, not a root; `OptionSpec.walks` names the places (`tar -C`, `diff --from-file` / `--to-file`) in either spelling."
    },
    {
      "id": "F15",
      "source": "behaviorFlips.summary",
      "text": "#1754 (security; hard-breaking shape; narrowing, open to veto): `declareWithheldEnv` takes one table `{ names, values }`; an inherited entry whose VALUE equals a declared value or a credential value the engine holds is withheld under every policy."
    },
    {
      "id": "F16",
      "source": "behaviorFlips.summary",
      "text": "#1816 (security; narrowing of the value arm): a string is a credential the process withholds only if it could be one (≥ 8 characters, not white space, not a flag / placeholder word, not one repeated character)."
    },
    {
      "id": "F30",
      "source": "behaviorFlips.summary",
      "text": "#1769 / #1801 / #1802 (narrowing, open to veto; C-R481): an ancestor's `tool.check` guard judges a child that authored its own task seat; installation identity is read off the minted bus; an ancestor's ask is settled at the ancestor's frozen approver."
    },
    {
      "id": "F31",
      "source": "behaviorFlips.summary",
      "text": "#1773 (narrowing, open to veto): what a judge read is what runs — the tool gate takes the call's args into one deep-frozen copy at entry."
    },
    {
      "id": "F40",
      "source": "behaviorFlips.summary",
      "text": "#1682 (narrowing, open to veto): an objective whose attachments cannot ride one request is refused as a whole before anything is sent."
    },
    {
      "id": "F45",
      "source": "behaviorFlips.summary",
      "text": "#1837 (narrowing, open to veto): which header is a credential is one reading — `isCredentialHeaderName`, shared with the withheld-value table; the two-name table (`authorization`, `x-api-key`) retires."
    },
    {
      "id": "F47",
      "source": "behaviorFlips.summary",
      "text": "#1834 (security; narrowing, open to veto): a segment whose operands arrive in a list file is not vouched — asked on the full shell, refused on the read-only face."
    },
    {
      "id": "F48",
      "source": "behaviorFlips.summary",
      "text": "#1836 (security, P1; narrowing with one loosening shape): a prefix of a long option is that option only in a program that takes abbreviations; ripgrep takes none."
    },
    {
      "id": "F54",
      "source": "behaviorFlips.summary",
      "text": "#1862 / #1861 / #1854 (C-R489 / C-R490, P1; security; a narrowing and a widening, open to veto): one scanner reads every tool-list form; entries are cut like the reference's `Lu`; a quote, `[` or parenthesis that does not close refuses the skill in any key; `disallowedTools` is read."
    },
    {
      "id": "F55",
      "source": "behaviorFlips.summary",
      "text": "#1866 (P1; security; narrowing, open to veto): a skill's tool-list scanner reads YAML's structure inside a rule's parentheses too, an entry's parentheses must be one group that closes it, and every entry is judged by the rule syntax's own test (`ruleSpellingOf`) — a tool name outside it refuses the skill and reads as `grammar` in every list."
    },
    {
      "id": "F58",
      "source": "behaviorFlips.summary",
      "text": "#1870 / #1875 (security; narrowing, open to veto): every reader of an entry list asks one test of a rule spelling — a name set throws on an entry no tool name can have, the rule DSL issues `invalid.tool_name`, a sub-agent's denied entry the syntax cannot read refuses the run, and the Skill card binds what the list reader reads."
    },
    {
      "id": "F60",
      "source": "behaviorFlips.summary",
      "text": "#1876 (P1; security; narrowing, open to veto): an indented `key:` line under ANY value that is not a nested block — quoted, flow, block scalar, next-line — refuses the skill naming both keys; one rule replaces #1869's plain-only patch."
    },
    {
      "id": "F66",
      "source": "behaviorFlips.summary",
      "text": "#1880 name-set half (widening for allow, narrowing for deny; open to veto): a name set and a sub-agent's allowed list read `Tool()` / `Tool(*)` as the bare `Tool`, as every list reader does; `Tool(x)` stays a content form."
    },
    {
      "id": "F67",
      "source": "behaviorFlips.summary",
      "text": "#1889 (P2; narrowing, open to veto): the rule DSL refuses a rule whose tool name the syntax reads as the wildcard `*` (`*`, `*()`, `*(*)`; deny and ask): `invalid.tool_name`."
    }
  ],
  "closedSetMembers": [
    {
      "set": "ArtifactVerifyCode",
      "at": [
        "src/prompt-assembly/artifact.ts:124"
      ],
      "newSet": true,
      "added": [
        "digest",
        "evidence",
        "limits",
        "overlay",
        "requires",
        "schema",
        "shape"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "BandId",
      "at": [
        "src/prompt-assembly/catalog/schema.ts:14"
      ],
      "newSet": true,
      "added": [
        "behavior",
        "constitution",
        "core-behavior",
        "discovery",
        "environment",
        "memory",
        "role",
        "scenario",
        "task-append"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "CHECKPOINT_CONFIG_REFUSAL_CODES",
      "at": [
        "src/core/checkpoint-store.ts:2476"
      ],
      "newSet": false,
      "added": [
        "config.tool_face_control"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "CheckpointErrorReason",
      "at": [
        "src/core/checkpoint-store.ts:2427"
      ],
      "newSet": false,
      "added": [
        "invalid_record",
        "not_a_list",
        "not_a_string",
        "registry_occupied",
        "renamed_mount",
        "unknown_name",
        "unsupported_pattern"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ENGINE_CAPABILITIES",
      "at": [
        "src/core/engine-capabilities.ts:20"
      ],
      "newSet": false,
      "added": [
        "inherit_env.own_credential_values_withheld"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ENGINE_NOTICE_CODES",
      "at": [
        "src/core/governance-codes.ts:362"
      ],
      "newSet": false,
      "added": [
        "config.credential_not_withheld",
        "mods.registration_refused",
        "route.credential_origin_mismatch"
      ],
      "removed": [
        "route.base_url_changed_key_unchanged"
      ],
      "persistedBy": "none",
      "breaking": true,
      "criteriaCovered": true
    },
    {
      "set": "ExecutionErrorCode",
      "at": [
        "src/engine/harness/types.ts:207"
      ],
      "newSet": false,
      "added": [
        "liveness_no_output"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "HOST_FORMS",
      "at": [
        "src/prompt-assembly/catalog/schema.ts:45"
      ],
      "newSet": true,
      "added": [
        "minimal",
        "standard"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "HOST_ROLES",
      "at": [
        "src/prompt-assembly/catalog/schema.ts:41"
      ],
      "newSet": true,
      "added": [
        "code",
        "coordinator",
        "cowork",
        "general"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "HookSeatName",
      "at": [
        "src/core/hooks.ts:410"
      ],
      "newSet": false,
      "added": [],
      "removed": [
        "permissionDenied",
        "postCompact",
        "postToolBatch",
        "postToolUse",
        "postToolUseFailure",
        "preCompact",
        "preToolUse",
        "resumePreflight",
        "stop",
        "stopFailure",
        "userPromptSubmit"
      ],
      "persistedBy": "none",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "set": "HostForm",
      "at": [
        "src/prompt-assembly/catalog/schema.ts:46"
      ],
      "newSet": true,
      "added": [
        "minimal",
        "standard"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "HostRole",
      "at": [
        "src/prompt-assembly/catalog/schema.ts:42"
      ],
      "newSet": true,
      "added": [
        "code",
        "coordinator",
        "cowork",
        "general"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "MOD_ABORT_POSTURES",
      "at": [
        "src/core/mods/kernel/events.ts:40"
      ],
      "newSet": true,
      "added": [
        "caller",
        "grace",
        "immediate"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "MOD_EVENT_SIDES",
      "at": [
        "src/core/mods/kernel/events.ts:30"
      ],
      "newSet": true,
      "added": [
        "both",
        "engine",
        "surface"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "MOD_FAILURE_ANSWERS",
      "at": [
        "src/core/mods/kernel/events.ts:36"
      ],
      "newSet": true,
      "added": [
        "refuse",
        "skip"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "MOD_FAILURE_CAUSES",
      "at": [
        "src/core/mods/kernel/site-rules.ts:19"
      ],
      "newSet": true,
      "added": [
        "reentry",
        "threw",
        "timeout",
        "violation"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "MOD_SEATS",
      "at": [
        "src/core/mods/kernel/events.ts:26"
      ],
      "newSet": true,
      "added": [
        "deployment",
        "task"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "MOD_TIERS",
      "at": [
        "src/core/mods/kernel/events.ts:20"
      ],
      "newSet": true,
      "added": [
        "append",
        "builtin",
        "core",
        "prepend",
        "user"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "MOD_TRACE_OUTCOMES",
      "at": [
        "src/core/mods/kernel/registration.ts:62"
      ],
      "newSet": true,
      "added": [
        "bypassed",
        "caught",
        "expired",
        "kept",
        "passed",
        "rejected",
        "returned",
        "skipped"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ModAbortPosture",
      "at": [
        "src/core/mods/kernel/events.ts:41",
        "src/core/mods/kernel/index.ts:23"
      ],
      "newSet": true,
      "added": [
        "caller",
        "grace",
        "immediate"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ModEventSide",
      "at": [
        "src/core/mods/kernel/events.ts:31",
        "src/core/mods/kernel/index.ts:20",
        "src/index.ts:2027"
      ],
      "newSet": true,
      "added": [
        "both",
        "engine",
        "surface"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ModFailureAnswer",
      "at": [
        "src/core/mods/kernel/events.ts:37",
        "src/core/mods/kernel/index.ts:22"
      ],
      "newSet": true,
      "added": [
        "refuse",
        "skip"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ModFailureCause",
      "at": [
        "src/core/mods/kernel/index.ts:37",
        "src/core/mods/kernel/site-rules.ts:20"
      ],
      "newSet": true,
      "added": [
        "reentry",
        "threw",
        "timeout",
        "violation"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ModSeat",
      "at": [
        "src/core/mods/kernel/events.ts:27",
        "src/core/mods/kernel/index.ts:19",
        "src/index.ts:2026"
      ],
      "newSet": true,
      "added": [
        "deployment",
        "task"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ModTier",
      "at": [
        "src/core/mods/kernel/events.ts:21",
        "src/core/mods/kernel/index.ts:17",
        "src/index.ts:2024"
      ],
      "newSet": true,
      "added": [
        "append",
        "builtin",
        "core",
        "prepend",
        "user"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ModTraceOutcome",
      "at": [
        "src/core/mods/kernel/index.ts:43",
        "src/core/mods/kernel/registration.ts:63"
      ],
      "newSet": true,
      "added": [
        "bypassed",
        "caught",
        "expired",
        "kept",
        "passed",
        "rejected",
        "returned",
        "skipped"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "NearMissCarrier",
      "at": [
        "src/core/allow-entry.ts:68"
      ],
      "newSet": true,
      "added": [
        "catalog",
        "pool",
        "run"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "OVERLAY_OPS",
      "at": [
        "src/prompt-assembly/catalog/schema.ts:24"
      ],
      "newSet": true,
      "added": [
        "add",
        "append",
        "drop",
        "replace"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "OVERLAY_SOURCE_ORDER",
      "at": [
        "src/prompt-assembly/overlay.ts:63"
      ],
      "newSet": true,
      "added": [
        "bundled",
        "center",
        "deploy",
        "task"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "OccurrenceLife",
      "at": [
        "src/core/runner/tool-occurrence.ts:35"
      ],
      "newSet": false,
      "added": [
        "released"
      ],
      "removed": [
        "executing"
      ],
      "persistedBy": "none",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "set": "OverlayOp",
      "at": [
        "src/prompt-assembly/catalog/schema.ts:25"
      ],
      "newSet": true,
      "added": [
        "add",
        "append",
        "drop",
        "replace"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "OverlaySource",
      "at": [
        "src/prompt-assembly/catalog/schema.ts:17"
      ],
      "newSet": true,
      "added": [
        "center",
        "deploy",
        "task"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "PROMPT_EPOCH_ACTIVATIONS",
      "at": [
        "src/prompt-assembly/epoch.ts:84"
      ],
      "newSet": true,
      "added": [
        "code_change",
        "compaction",
        "selection_change",
        "session_start"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "PROMPT_EPOCH_CHANGES",
      "at": [
        "src/prompt-assembly/epoch.ts:89"
      ],
      "newSet": true,
      "added": [
        "catalog",
        "deploy",
        "published_schema",
        "renderers",
        "task"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "PROMPT_FACT_NAMES",
      "at": [
        "src/prompt-assembly/catalog/schema.ts:65"
      ],
      "newSet": true,
      "added": [
        "awarenessEnabled",
        "executionEnvironmentDeclared",
        "goalEnabled",
        "hooksEnabled",
        "isSubagent",
        "isolationEnabled",
        "orchestrationDeferred",
        "orchestrationEnabled",
        "policyEnabled",
        "readFaceOpen",
        "supervisorEnabled",
        "teammateEnabled",
        "withinTaskCompactionEnabled",
        "worktreeIsolated",
        "writeFaceOpen"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "PROMPT_TRAITS",
      "at": [
        "src/prompt-assembly/catalog/schema.ts:59"
      ],
      "newSet": true,
      "added": [
        "fable_5_mitigations",
        "lean_prompt"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ParentSpecSeat.promptForm",
      "at": [
        "src/core/parent-spec-seat.ts:93"
      ],
      "newSet": true,
      "added": [
        "minimal"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "PermissionRuleIssue.code",
      "at": [
        "src/core/permission-rules.ts:108"
      ],
      "newSet": false,
      "added": [
        "invalid.tool_name"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "PromptEpochActivation",
      "at": [
        "src/index.ts:2621",
        "src/prompt-assembly/epoch.ts:85"
      ],
      "newSet": false,
      "added": [
        "code_change",
        "selection_change"
      ],
      "removed": [
        "legacy_migration"
      ],
      "persistedBy": "none",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "set": "PromptEpochChange",
      "at": [
        "src/index.ts:2622",
        "src/prompt-assembly/epoch.ts:90"
      ],
      "newSet": true,
      "added": [
        "catalog",
        "deploy",
        "published_schema",
        "renderers",
        "task"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "PromptFactName",
      "at": [
        "src/index.ts:2602",
        "src/prompt-assembly/catalog/schema.ts:82"
      ],
      "newSet": true,
      "added": [
        "awarenessEnabled",
        "executionEnvironmentDeclared",
        "goalEnabled",
        "hooksEnabled",
        "isSubagent",
        "isolationEnabled",
        "orchestrationDeferred",
        "orchestrationEnabled",
        "policyEnabled",
        "readFaceOpen",
        "supervisorEnabled",
        "teammateEnabled",
        "withinTaskCompactionEnabled",
        "worktreeIsolated",
        "writeFaceOpen"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "PromptTrait",
      "at": [
        "src/index.ts:2603",
        "src/prompt-assembly/catalog/schema.ts:60"
      ],
      "newSet": true,
      "added": [
        "fable_5_mitigations",
        "lean_prompt"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "RECEIPT_FAULTS",
      "at": [
        "src/core/mods/kernel/receive.ts:41"
      ],
      "newSet": true,
      "added": [
        "accessor",
        "cycle",
        "getter-threw",
        "hidden",
        "not-data",
        "prototype-moved",
        "proxy",
        "too-deep",
        "uncopyable"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "RENDERER_IDS",
      "at": [
        "src/prompt-assembly/catalog/schema.ts:123"
      ],
      "newSet": true,
      "added": [
        "environment",
        "mcp-instructions",
        "memory",
        "model-guidance",
        "reminder-mark",
        "role-base"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "REQUIREMENT_WORDS",
      "at": [
        "src/core/checkpoint-requirements.ts:36"
      ],
      "newSet": false,
      "added": [
        "own_tool_lists"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "RESUME_STARTUP_CAUSES",
      "at": [
        "src/core/resume-startup-cause.ts:51"
      ],
      "newSet": false,
      "added": [
        "transcript_corrupt"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "RETRYABLE_REMOTE_ERROR_CODES",
      "at": [
        "src/core/remote-env.ts:268"
      ],
      "newSet": false,
      "added": [
        "liveness_no_output"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ReceiptFaultKind",
      "at": [
        "src/core/mods/kernel/receive.ts:42"
      ],
      "newSet": true,
      "added": [
        "accessor",
        "cycle",
        "getter-threw",
        "hidden",
        "not-data",
        "prototype-moved",
        "proxy",
        "too-deep",
        "uncopyable"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "RemoteExecutionErrorCode",
      "at": [
        "src/core/remote-env.ts:187"
      ],
      "newSet": false,
      "added": [
        "liveness_no_output"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "RendererId",
      "at": [
        "src/prompt-assembly/catalog/schema.ts:124"
      ],
      "newSet": true,
      "added": [
        "environment",
        "mcp-instructions",
        "memory",
        "model-guidance",
        "reminder-mark",
        "role-base"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "RoutePairingStatus",
      "at": [
        "src/brain/route-adjudicator.ts:939"
      ],
      "newSet": false,
      "added": [
        "broken:credential_answer_conflict",
        "broken:credential_origin_mismatch"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "RouteRefusalCode",
      "at": [
        "src/engine/llm/types.ts:1171"
      ],
      "newSet": false,
      "added": [
        "route.credential_answer_conflict",
        "route.credential_origin_mismatch"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "set": "SideCallLane",
      "at": [
        "src/core/runner/side-call-account.ts:18"
      ],
      "newSet": true,
      "added": [
        "classifier",
        "compaction",
        "mod"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "TOOL_CHECK_DECISIONS",
      "at": [
        "src/core/mods/stations.ts:438"
      ],
      "newSet": true,
      "added": [
        "allow",
        "ask",
        "deny"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "TaskSpec.promptForm",
      "at": [
        "src/core/task-spec.ts:308"
      ],
      "newSet": true,
      "added": [
        "minimal"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "TaskSpec.promptRole",
      "at": [
        "src/core/task-spec.ts:304"
      ],
      "newSet": true,
      "added": [
        "code",
        "coordinator",
        "cowork",
        "general"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ToolCheckDecision",
      "at": [
        "src/core/mods/stations.ts:439"
      ],
      "newSet": true,
      "added": [
        "allow",
        "ask",
        "deny"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    }
  ],
  "closedSetsUnreadable": [
    {
      "set": "FABLE_5_PROMPT_GUIDANCE",
      "from": "literal",
      "to": "declared",
      "unreadable": true,
      "at": [
        "src/brain/model-presets.ts:34"
      ],
      "reason": "no longer a spelled-out vocabulary (declared at src/brain/model-presets.ts:34); the type checker could not enumerate it either: its type is `string`, which is not a closed union of string literals (`string` is a wider or unresolved arm)",
      "accepted": "prose: three fable prompt lines read from the prompt catalog (catalogText), never a vocabulary; not root-exported; no consumer"
    }
  ],
  "typeKeys": [
    {
      "type": "AllowEntryInert",
      "at": [
        "src/core/allow-entry.ts:87"
      ],
      "via": "SkillGrantHit.readsAsNothing",
      "added": [
        "carriedBy"
      ],
      "addedDetail": [
        {
          "key": "carriedBy",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "AllowEntryInertDetail",
      "at": [
        "src/core/allow-entry.ts:57"
      ],
      "added": [
        "carriedBy"
      ],
      "addedDetail": [
        {
          "key": "carriedBy",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "BashReadonlyRootBoundary",
      "at": [
        "src/tools/fs/bash-readonly-classifier.ts:551"
      ],
      "added": [
        "denyUnder"
      ],
      "addedDetail": [
        {
          "key": "denyUnder",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "CascadeRunResult",
      "at": [
        "src/agents/cascade.ts:127"
      ],
      "added": [
        "stats.costBreakdown.sideCallMicroUsd"
      ],
      "addedDetail": [
        {
          "key": "stats.costBreakdown.sideCallMicroUsd",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "CheckpointState",
      "at": [
        "src/core/checkpoint-store.ts:1197"
      ],
      "added": [
        "ownToolLists",
        "ownToolLists.definition",
        "ownToolLists.lists",
        "ownToolLists.toolName"
      ],
      "addedDetail": [
        {
          "key": "ownToolLists",
          "optional": true
        },
        {
          "key": "ownToolLists.definition",
          "optional": true
        },
        {
          "key": "ownToolLists.lists",
          "optional": false
        },
        {
          "key": "ownToolLists.toolName",
          "optional": false
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "CompiledSection",
      "at": [
        "src/prompt-assembly/types.ts:80"
      ],
      "added": [
        "band",
        "chain",
        "renderer",
        "renderer.id",
        "renderer.version",
        "variant"
      ],
      "addedDetail": [
        {
          "key": "band",
          "optional": false
        },
        {
          "key": "chain",
          "optional": false
        },
        {
          "key": "renderer",
          "optional": true
        },
        {
          "key": "renderer.id",
          "optional": false
        },
        {
          "key": "renderer.version",
          "optional": false
        },
        {
          "key": "variant",
          "optional": true
        }
      ],
      "addedRequired": [
        "band",
        "chain"
      ],
      "removed": [
        "cacheClass",
        "cadence",
        "carrier",
        "declaredContentHash",
        "mutability",
        "origin",
        "owner",
        "slot",
        "trust"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "ContentAskOutcome",
      "at": [
        "src/core/hooks.ts:752"
      ],
      "via": "runToolGate.ToolGateInput.resolveContentAsk",
      "added": [],
      "addedDetail": [],
      "addedRequired": [],
      "removed": [
        "answered.presentedInput",
        "delivery_failure.presentedInput",
        "unavailable.presentedInput"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "EstablishedRead",
      "at": [
        "src/tools/fs/shell-read-judge.ts:221"
      ],
      "added": [],
      "addedDetail": [],
      "addedRequired": [],
      "removed": [
        "walked"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "ExecutionError",
      "at": [
        "src/engine/harness/types.ts:255"
      ],
      "added": [
        "noOutputSec",
        "set noOutputSec"
      ],
      "addedDetail": [
        {
          "key": "noOutputSec",
          "optional": true
        },
        {
          "key": "set noOutputSec",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "ExplainInput",
      "at": [
        "src/prompt-assembly/explain.ts:20"
      ],
      "added": [
        "identity",
        "identity.activatedBy",
        "identity.artifact",
        "identity.epoch",
        "identity.layers",
        "identity.layers.center",
        "identity.layers.deploy",
        "identity.layers.task",
        "sections[].band",
        "sections[].chain",
        "sections[].chain[].op",
        "sections[].chain[].overlay",
        "sections[].chain[].source",
        "sections[].chain[].superseded",
        "sections[].locale",
        "sections[].variant",
        "selectors",
        "selectors.binding",
        "selectors.host",
        "selectors.host.form",
        "selectors.host.role",
        "selectors.traits",
        "superseded",
        "superseded[].by",
        "superseded[].id",
        "superseded[].source",
        "superseded[].supersededBy",
        "superseded[].target"
      ],
      "addedDetail": [
        {
          "key": "identity",
          "optional": false
        },
        {
          "key": "identity.activatedBy",
          "optional": false
        },
        {
          "key": "identity.artifact",
          "optional": false
        },
        {
          "key": "identity.epoch",
          "optional": false
        },
        {
          "key": "identity.layers",
          "optional": false
        },
        {
          "key": "identity.layers.center",
          "optional": true
        },
        {
          "key": "identity.layers.deploy",
          "optional": true
        },
        {
          "key": "identity.layers.task",
          "optional": true
        },
        {
          "key": "sections[].band",
          "optional": false
        },
        {
          "key": "sections[].chain",
          "optional": false
        },
        {
          "key": "sections[].chain[].op",
          "optional": true
        },
        {
          "key": "sections[].chain[].overlay",
          "optional": true
        },
        {
          "key": "sections[].chain[].source",
          "optional": false
        },
        {
          "key": "sections[].chain[].superseded",
          "optional": true
        },
        {
          "key": "sections[].locale",
          "optional": false
        },
        {
          "key": "sections[].variant",
          "optional": true
        },
        {
          "key": "selectors",
          "optional": false
        },
        {
          "key": "selectors.binding",
          "optional": true
        },
        {
          "key": "selectors.host",
          "optional": false
        },
        {
          "key": "selectors.host.form",
          "optional": false
        },
        {
          "key": "selectors.host.role",
          "optional": false
        },
        {
          "key": "selectors.traits",
          "optional": false
        },
        {
          "key": "superseded",
          "optional": true
        },
        {
          "key": "superseded[].by",
          "optional": false
        },
        {
          "key": "superseded[].id",
          "optional": false
        },
        {
          "key": "superseded[].source",
          "optional": false
        },
        {
          "key": "superseded[].supersededBy",
          "optional": false
        },
        {
          "key": "superseded[].target",
          "optional": false
        }
      ],
      "addedRequired": [
        "identity",
        "sections[].band",
        "sections[].chain",
        "sections[].locale",
        "selectors"
      ],
      "removed": [
        "constitution",
        "epoch",
        "epoch.activatedBy",
        "epoch.artifactDigest",
        "epoch.epoch",
        "epoch.packId",
        "sections[].cacheClass",
        "sections[].cadence",
        "sections[].carrier",
        "sections[].hash",
        "sections[].slot"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "HomeViews",
      "at": [
        "src/tools/fs/read-deny-home.ts:474"
      ],
      "via": "LspToolOptions.readFace.readDeny.homeViews.views",
      "added": [],
      "addedDetail": [],
      "addedRequired": [],
      "removed": [
        "unread"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "InheritedGate",
      "at": [
        "src/core/runner/contracts.ts:1245"
      ],
      "via": "RunInternals.inheritedGate",
      "added": [
        "parentConstraints[].mods",
        "parentConstraints[].mods[].handlers",
        "parentConstraints[].mods[].handlers[].caught",
        "parentConstraints[].mods[].handlers[].matcher",
        "parentConstraints[].mods[].handlers[].observe",
        "parentConstraints[].mods[].handlers[].pattern",
        "parentConstraints[].mods[].handlers[].plugin",
        "parentConstraints[].mods[].handlers[].seat",
        "parentConstraints[].mods[].registration"
      ],
      "addedDetail": [
        {
          "key": "parentConstraints[].mods",
          "optional": true
        },
        {
          "key": "parentConstraints[].mods[].handlers",
          "optional": false
        },
        {
          "key": "parentConstraints[].mods[].handlers[].caught",
          "optional": false
        },
        {
          "key": "parentConstraints[].mods[].handlers[].matcher",
          "optional": true
        },
        {
          "key": "parentConstraints[].mods[].handlers[].observe",
          "optional": false
        },
        {
          "key": "parentConstraints[].mods[].handlers[].pattern",
          "optional": false
        },
        {
          "key": "parentConstraints[].mods[].handlers[].plugin",
          "optional": false
        },
        {
          "key": "parentConstraints[].mods[].handlers[].seat",
          "optional": false
        },
        {
          "key": "parentConstraints[].mods[].registration",
          "optional": false
        }
      ],
      "addedRequired": [],
      "removed": [
        "parentConstraints[].preToolUse"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "MaybeCompactOptions",
      "at": [
        "src/core/auto-compaction.ts:337"
      ],
      "added": [
        "centerAdoption.promptIdentity",
        "centerAdoption.promptIdentity.layers",
        "centerAdoption.promptIdentity.layers.binding",
        "centerAdoption.promptIdentity.layers.catalog",
        "centerAdoption.promptIdentity.layers.center",
        "centerAdoption.promptIdentity.layers.deploy",
        "centerAdoption.promptIdentity.layers.renderers",
        "centerAdoption.promptIdentity.layers.task",
        "centerAdoption.promptIdentity.sourceRevision",
        "promptIdentity",
        "promptIdentity.layers",
        "promptIdentity.sourceRevision"
      ],
      "addedDetail": [
        {
          "key": "centerAdoption.promptIdentity",
          "optional": false
        },
        {
          "key": "centerAdoption.promptIdentity.layers",
          "optional": false
        },
        {
          "key": "centerAdoption.promptIdentity.layers.binding",
          "optional": false
        },
        {
          "key": "centerAdoption.promptIdentity.layers.catalog",
          "optional": false
        },
        {
          "key": "centerAdoption.promptIdentity.layers.center",
          "optional": true
        },
        {
          "key": "centerAdoption.promptIdentity.layers.deploy",
          "optional": true
        },
        {
          "key": "centerAdoption.promptIdentity.layers.renderers",
          "optional": false
        },
        {
          "key": "centerAdoption.promptIdentity.layers.task",
          "optional": true
        },
        {
          "key": "centerAdoption.promptIdentity.sourceRevision",
          "optional": true
        },
        {
          "key": "promptIdentity",
          "optional": true
        },
        {
          "key": "promptIdentity.layers",
          "optional": false
        },
        {
          "key": "promptIdentity.sourceRevision",
          "optional": true
        }
      ],
      "addedRequired": [
        "centerAdoption.promptIdentity"
      ],
      "removed": [
        "centerAdoption.centerArtifactDigest",
        "centerAdoption.clear",
        "centerAdoption.declaredSections",
        "centerAdoption.declaredSections.[].chars",
        "centerAdoption.declaredSections.[].contentHash",
        "centerAdoption.declaredSections.[].id",
        "centerAdoption.declaredSections.[].slot",
        "centerAdoption.sourceRevision",
        "epochDeclaredSections"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "McpServerSpec",
      "at": [
        "src/core/mcp-server-spec.ts:15"
      ],
      "added": [
        "startupTimeoutMs"
      ],
      "addedDetail": [
        {
          "key": "startupTimeoutMs",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "ParentSpecSeat",
      "at": [
        "src/core/parent-spec-seat.ts:78"
      ],
      "added": [
        "mods",
        "promptBinding",
        "promptForm"
      ],
      "addedDetail": [
        {
          "key": "mods",
          "optional": true
        },
        {
          "key": "promptBinding",
          "optional": true
        },
        {
          "key": "promptForm",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [
        "hooks"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "ParsedEntryFile",
      "at": [
        "src/core/memory-engine/frontmatter.ts:13"
      ],
      "added": [
        "unclosed"
      ],
      "addedDetail": [
        {
          "key": "unclosed",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "PermissionDeniedPayload",
      "at": [
        "src/core/hooks.ts:224"
      ],
      "added": [
        "agentId"
      ],
      "addedDetail": [
        {
          "key": "agentId",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [
        "signal"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "PostCompactContext",
      "at": [
        "src/core/hooks.ts:302"
      ],
      "added": [],
      "addedDetail": [],
      "addedRequired": [],
      "removed": [
        "identity",
        "signal"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "PreCompactContext",
      "at": [
        "src/core/hooks.ts:282"
      ],
      "added": [],
      "addedDetail": [],
      "addedRequired": [],
      "removed": [
        "identity",
        "signal"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "PromptEpochDescriptor",
      "at": [
        "src/prompt-assembly/epoch.ts:94"
      ],
      "added": [
        "changed",
        "identity",
        "layers"
      ],
      "addedDetail": [
        {
          "key": "changed",
          "optional": true
        },
        {
          "key": "identity",
          "optional": false
        },
        {
          "key": "layers",
          "optional": false
        }
      ],
      "addedRequired": [
        "identity",
        "layers"
      ],
      "removed": [
        "artifactDigest",
        "assemblyApi",
        "centerArtifactDigest",
        "packId"
      ],
      "breaking": true,
      "criteriaCovered": true
    },
    {
      "type": "PromptEpochEntry",
      "at": [
        "src/engine/harness/types.ts:794"
      ],
      "via": "SessionTreeEntry.PromptEpochEntry",
      "added": [
        "changed",
        "identity",
        "layers"
      ],
      "addedDetail": [
        {
          "key": "changed",
          "optional": true
        },
        {
          "key": "identity",
          "optional": false
        },
        {
          "key": "layers",
          "optional": false
        }
      ],
      "addedRequired": [
        "identity",
        "layers"
      ],
      "removed": [
        "artifactDigest",
        "assemblyApi",
        "centerArtifactDigest",
        "packId"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "ReadDenyMatcher",
      "at": [
        "src/tools/fs/read-deny.ts:346"
      ],
      "added": [
        "rowUnderRoot"
      ],
      "addedDetail": [
        {
          "key": "rowUnderRoot",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "RepairResult",
      "at": [
        "src/agents/repair-loop.ts:214"
      ],
      "added": [
        "stats.costBreakdown.sideCallMicroUsd"
      ],
      "addedDetail": [
        {
          "key": "stats.costBreakdown.sideCallMicroUsd",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "ResumeRun",
      "at": [
        "src/core/runner/contracts.ts:2413"
      ],
      "via": "Runner.ResumeRun",
      "added": [
        "legMods"
      ],
      "addedDetail": [
        {
          "key": "legMods",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "RouteRefusalDetail",
      "at": [
        "src/engine/llm/types.ts:1174"
      ],
      "added": [
        "boundOrigin",
        "requestOrigin"
      ],
      "addedDetail": [
        {
          "key": "boundOrigin",
          "optional": true
        },
        {
          "key": "requestOrigin",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "RunInternals",
      "at": [
        "src/core/runner/contracts.ts:1469"
      ],
      "added": [
        "ownToolLists",
        "ownToolLists.definition",
        "ownToolLists.lists",
        "ownToolLists.toolName"
      ],
      "addedDetail": [
        {
          "key": "ownToolLists",
          "optional": true
        },
        {
          "key": "ownToolLists.definition",
          "optional": true
        },
        {
          "key": "ownToolLists.lists",
          "optional": false
        },
        {
          "key": "ownToolLists.toolName",
          "optional": false
        }
      ],
      "addedRequired": [],
      "removed": [
        "ownToolListsWhere"
      ],
      "breaking": true,
      "criteriaCovered": true
    },
    {
      "type": "Runner",
      "at": [
        "src/core/runner/runtask.ts:167"
      ],
      "added": [],
      "addedDetail": [],
      "addedRequired": [],
      "removed": [
        "gateBaseline.hooks"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "RunnerDeps",
      "at": [
        "src/core/runner-deps.ts:105"
      ],
      "added": [
        "mods"
      ],
      "addedDetail": [
        {
          "key": "mods",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [
        "hooks",
        "promptProvider"
      ],
      "breaking": true,
      "criteriaCovered": true
    },
    {
      "type": "RunnerSelfSeat",
      "at": [
        "src/core/runner/contracts.ts:2612"
      ],
      "added": [],
      "addedDetail": [],
      "addedRequired": [],
      "removed": [
        "gateBaseline.hooks"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "SectionRenderInputs",
      "at": [
        "src/prompt-assembly/types.ts:63"
      ],
      "added": [
        "toolNames",
        "workspaceFolder"
      ],
      "addedDetail": [
        {
          "key": "toolNames",
          "optional": true
        },
        {
          "key": "workspaceFolder",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [
        "roleAppend",
        "roleBase"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "SessionRuleEntryRefusal",
      "at": [
        "src/core/session-policy-store.ts:112"
      ],
      "added": [
        "carriedBy"
      ],
      "addedDetail": [
        {
          "key": "carriedBy",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "ShellReadBoundary",
      "at": [
        "src/tools/fs/shell-read-judge.ts:181"
      ],
      "added": [
        "denyUnder"
      ],
      "addedDetail": [
        {
          "key": "denyUnder",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "TaskResult",
      "at": [
        "src/core/task-result.ts:169"
      ],
      "added": [
        "stats.costBreakdown.sideCallMicroUsd"
      ],
      "addedDetail": [
        {
          "key": "stats.costBreakdown.sideCallMicroUsd",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "TaskSpec",
      "at": [
        "src/core/task-spec.ts:73"
      ],
      "added": [
        "mods",
        "promptBinding",
        "promptForm",
        "promptRole"
      ],
      "addedDetail": [
        {
          "key": "mods",
          "optional": true
        },
        {
          "key": "promptBinding",
          "optional": true
        },
        {
          "key": "promptForm",
          "optional": true
        },
        {
          "key": "promptRole",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [
        "hooks",
        "promptProvider"
      ],
      "breaking": true,
      "criteriaCovered": true
    },
    {
      "type": "ToolGateInput",
      "at": [
        "src/core/hooks.ts:886"
      ],
      "via": "runToolGate.ToolGateInput",
      "added": [
        "inheritedToolChecks",
        "modBus",
        "observedPermissionMode"
      ],
      "addedDetail": [
        {
          "key": "inheritedToolChecks",
          "optional": true
        },
        {
          "key": "modBus",
          "optional": true
        },
        {
          "key": "observedPermissionMode",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [
        "hookTimeoutMs",
        "preToolUse"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "TraceEvent",
      "at": [
        "src/core/trace.ts:95"
      ],
      "added": [
        "prompt.assembled.identity",
        "prompt.assembled.selectors",
        "prompt.assembled.superseded"
      ],
      "addedDetail": [
        {
          "key": "prompt.assembled.identity",
          "optional": false
        },
        {
          "key": "prompt.assembled.selectors",
          "optional": false
        },
        {
          "key": "prompt.assembled.superseded",
          "optional": true
        }
      ],
      "addedRequired": [
        "prompt.assembled.identity",
        "prompt.assembled.selectors"
      ],
      "removed": [
        "prompt.assembled.constitution",
        "prompt.assembled.sections[].cacheClass",
        "prompt.assembled.sections[].cadence",
        "prompt.assembled.sections[].carrier",
        "prompt.assembled.sections[].hash",
        "prompt.assembled.sections[].slot"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "VerificationResult",
      "at": [
        "src/agents/verify.ts:259"
      ],
      "added": [
        "stats.costBreakdown.sideCallMicroUsd"
      ],
      "addedDetail": [
        {
          "key": "stats.costBreakdown.sideCallMicroUsd",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "WiringFacts",
      "at": [
        "src/core/wiring-manifest.ts:500"
      ],
      "added": [
        "mods"
      ],
      "addedDetail": [
        {
          "key": "mods",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [
        "hooks"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "WiringManifest",
      "at": [
        "src/core/wiring-manifest.ts:228"
      ],
      "added": [
        "mods"
      ],
      "addedDetail": [
        {
          "key": "mods",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [
        "hooks"
      ],
      "breaking": true,
      "criteriaCovered": true
    },
    {
      "type": "WorkflowInternals",
      "at": [
        "src/orchestration/workflow.ts:679"
      ],
      "added": [
        "toolCeiling"
      ],
      "addedDetail": [
        {
          "key": "toolCeiling",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    }
  ],
  "typeKeysUnreadableArms": [
    {
      "type": "PromptEpochActivation",
      "at": "src/prompt-assembly/epoch.ts:85",
      "reasons": [
        "the two refs do not name this type's union arms the same way (flat -> no union read), so the delta below is stated at UNION level, with arm prefixes dropped — a key that moved between arms without leaving the union is not visible in it"
      ]
    }
  ],
  "typeKeysFlattenedCount": 228,
  "signatures": [
    {
      "name": "BashReadonlyRootBoundary.denyMatch",
      "at": [
        "src/tools/fs/bash-readonly-classifier.ts:583"
      ],
      "from": [
        "(resolvedPath: string, opts?: { readonly walked?: boolean; }): null | string"
      ],
      "to": [
        "(resolvedPath: string): null | string"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "-param `opts?: { readonly walked?: boolean; }`",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "CenterPromptSource.applySnapshot",
      "at": [
        "src/prompt-assembly/artifact-store.ts:224"
      ],
      "from": [
        "(raw: unknown): Promise<{ ok: true; artifactDigest: string; } | { ok: false; code: string; reason: string; }>"
      ],
      "to": [
        "(raw: unknown): Promise<{ ok: true; artifactDigest: string; } | { ok: false; code: ArtifactVerifyCode; reason: string; }>"
      ],
      "changes": [
        {
          "aspect": "returns",
          "detail": "return type … } | { ok: false; code: [string -> ArtifactVerifyCode]; reason: string; }>",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "CenterPromptSource.constructor",
      "at": [
        "src/prompt-assembly/artifact-store.ts:186"
      ],
      "from": [
        "(opts: { store: PromptArtifactStore; stateStore?: PromptSourceStateStore; engineVersion: string; })"
      ],
      "to": [
        "(opts: { store: PromptArtifactStore; stateStore?: PromptSourceStateStore; })"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 1 `opts` type changed, direction not read: …PromptSourceStateStore; [engineVersion: string;  -> ]}",
          "breaking": true,
          "uncertain": true
        }
      ],
      "uncertain": "param 1 `opts` type changed, direction not read: …PromptSourceStateStore; [engineVersion: string;  -> ]} — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "CenterPromptSource.current",
      "at": [
        "src/prompt-assembly/artifact-store.ts:191"
      ],
      "from": [
        "(): undefined | { artifact: PromptEpochArtifact; sourceRevision: string; }"
      ],
      "to": [
        "(): PublishedPromptArtifact | undefined"
      ],
      "changes": [
        {
          "aspect": "returns",
          "detail": "return type [undefined | { artifact: PromptEpochArtifact; sourceRevision: string; } -> PublishedPromptArtifact | undefined]",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "CenterPromptSource.get",
      "at": [
        "src/prompt-assembly/artifact-store.ts:195"
      ],
      "from": [
        "(artifactDigest: string): Promise<PromptEpochArtifact | undefined>"
      ],
      "to": [
        "(artifactDigest: string): Promise<PromptArtifact | undefined>"
      ],
      "changes": [
        {
          "aspect": "returns",
          "detail": "return type Promise<Prompt[Epoch -> ]Artifact | undefined>",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "ExecutionError.constructor",
      "at": [
        "src/engine/harness/types.ts:273"
      ],
      "from": [
        "(code: ExecutionErrorCode, message: string, cause?: Error, partial?: { stdout?: string; stderr?: string; })"
      ],
      "to": [
        "(code: ExecutionErrorCode, message: string, cause?: Error, partial?: { stdout?: string; stderr?: string; }, noOutputSec?: number)"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "+optional param `noOutputSec?: number`",
          "breaking": false
        }
      ],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "name": "FilePromptArtifactStore.get",
      "at": [
        "src/prompt-assembly/artifact-store.ts:63"
      ],
      "from": [
        "(artifactDigest: string, opts: { engineVersion: string; }): Promise<PublishedPromptArtifactEnvelope | undefined>"
      ],
      "to": [
        "(artifactDigest: string): Promise<PublishedPromptArtifact | undefined>"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "-param `opts: { engineVersion: string; }`",
          "breaking": true
        },
        {
          "aspect": "returns",
          "detail": "return type …<PublishedPromptArtifact[Envelope -> ] | undefined>",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "FilePromptArtifactStore.put",
      "at": [
        "src/prompt-assembly/artifact-store.ts:75"
      ],
      "from": [
        "(envelope: PublishedPromptArtifactEnvelope): Promise<void>"
      ],
      "to": [
        "(artifact: PublishedPromptArtifact): Promise<void>"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 1 `artifact` type changed, direction not read: PublishedPromptArtifact[Envelope -> ]",
          "breaking": true,
          "uncertain": true
        }
      ],
      "uncertain": "param 1 `artifact` type changed, direction not read: PublishedPromptArtifact[Envelope -> ] — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "HomeViews.of",
      "at": [
        "src/tools/fs/read-deny-home.ts:475"
      ],
      "from": [
        "(path: string, opts?: { readonly leaf?: \"file\"; }): Promise<string | undefined>"
      ],
      "to": [
        "(path: string, opts?: { readonly leaf?: \"file\"; }): Promise<HomeView>"
      ],
      "changes": [
        {
          "aspect": "returns",
          "detail": "return type Promise<[string | undefined -> HomeView]>",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "MaybeCompactOptions.centerAdoption.apply",
      "at": [
        "src/core/auto-compaction.ts:358"
      ],
      "from": [
        "(committedArtifactDigest?: string): void"
      ],
      "to": [
        "(committedIdentity: string): void"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 1 `committedIdentity` is now required",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "McpConnectionPool.keyOf",
      "at": [
        "src/core/mcp-connection-pool.ts:86"
      ],
      "from": [
        "static (spec: McpServerSpec, principal: string | undefined, kind: string | undefined): string"
      ],
      "to": [
        "static (spec: McpServerSpec, principal: string | undefined, kind: string | undefined, startupMs: number | undefined): string"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "+required param `startupMs: number | undefined`",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "MemoryPromptArtifactStore.get",
      "at": [
        "src/prompt-assembly/artifact-store.ts:39"
      ],
      "from": [
        "(artifactDigest: string, opts: { engineVersion: string; }): Promise<PublishedPromptArtifactEnvelope | undefined>"
      ],
      "to": [
        "(artifactDigest: string): Promise<PublishedPromptArtifact | undefined>"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "-param `opts: { engineVersion: string; }`",
          "breaking": true
        },
        {
          "aspect": "returns",
          "detail": "return type …<PublishedPromptArtifact[Envelope -> ] | undefined>",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "MemoryPromptArtifactStore.put",
      "at": [
        "src/prompt-assembly/artifact-store.ts:44"
      ],
      "from": [
        "(envelope: PublishedPromptArtifactEnvelope): Promise<void>"
      ],
      "to": [
        "(artifact: PublishedPromptArtifact): Promise<void>"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 1 `artifact` type changed, direction not read: PublishedPromptArtifact[Envelope -> ]",
          "breaking": true,
          "uncertain": true
        }
      ],
      "uncertain": "param 1 `artifact` type changed, direction not read: PublishedPromptArtifact[Envelope -> ] — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "PromptArtifactSource.current",
      "at": [
        "src/prompt-assembly/artifact-store.ts:144"
      ],
      "from": [
        "(): undefined | { artifact: PromptEpochArtifact; sourceRevision: string; }"
      ],
      "to": [
        "(): PublishedPromptArtifact | undefined"
      ],
      "changes": [
        {
          "aspect": "returns",
          "detail": "return type [undefined | { artifact: PromptEpochArtifact; sourceRevision: string; } -> PublishedPromptArtifact | undefined]",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "PromptArtifactSource.get",
      "at": [
        "src/prompt-assembly/artifact-store.ts:146"
      ],
      "from": [
        "(artifactDigest: string): Promise<PromptEpochArtifact | undefined>"
      ],
      "to": [
        "(artifactDigest: string): Promise<PromptArtifact | undefined>"
      ],
      "changes": [
        {
          "aspect": "returns",
          "detail": "return type Promise<Prompt[Epoch -> ]Artifact | undefined>",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "PromptArtifactStore.get",
      "at": [
        "src/prompt-assembly/artifact-store.ts:19"
      ],
      "from": [
        "(artifactDigest: string, opts: { engineVersion: string; }): Promise<PublishedPromptArtifactEnvelope | undefined>"
      ],
      "to": [
        "(artifactDigest: string): Promise<PublishedPromptArtifact | undefined>"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "-param `opts: { engineVersion: string; }`",
          "breaking": true
        },
        {
          "aspect": "returns",
          "detail": "return type …<PublishedPromptArtifact[Envelope -> ] | undefined>",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "PromptArtifactStore.put",
      "at": [
        "src/prompt-assembly/artifact-store.ts:21"
      ],
      "from": [
        "(envelope: PublishedPromptArtifactEnvelope): Promise<void>"
      ],
      "to": [
        "(artifact: PublishedPromptArtifact): Promise<void>"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 1 `artifact` type changed, direction not read: PublishedPromptArtifact[Envelope -> ]",
          "breaking": true,
          "uncertain": true
        }
      ],
      "uncertain": "param 1 `artifact` type changed, direction not read: PublishedPromptArtifact[Envelope -> ] — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "ReadDenyMatcher.matchPath",
      "at": [
        "src/tools/fs/read-deny.ts:359"
      ],
      "from": [
        "(path: string, opts?: { readonly aliasResolved?: boolean; readonly walked?: boolean; }): ReadDenyHit | null"
      ],
      "to": [
        "(path: string, opts?: { readonly aliasResolved?: boolean; }): ReadDenyHit | null"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 2 `opts` type changed, direction not read: …liasResolved?: boolean; [readonly walked?: boolean;  -> ]}",
          "breaking": true,
          "uncertain": true
        }
      ],
      "uncertain": "param 2 `opts` type changed, direction not read: …liasResolved?: boolean; [readonly walked?: boolean;  -> ]} — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "Session.getPromptEpoch",
      "at": [
        "src/engine/harness/types.ts:1378"
      ],
      "from": [
        "(): Promise<import(\"../../prompt-assembly/epoch.js\").PromptEpochDescriptor | undefined>"
      ],
      "to": [
        "(): Promise<import(\"../../prompt-assembly/epoch.js\").StoredPromptEpoch | undefined>"
      ],
      "changes": [
        {
          "aspect": "returns",
          "detail": "return type …mpt-assembly/epoch.js\").[PromptEpochDescriptor -> StoredPromptEpoch] | undefined>",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "SessionStorage.getEpochAnchor",
      "at": [
        "src/engine/harness/types.ts:1298"
      ],
      "from": [
        "(): Promise<{ epoch: number; artifactDigest: string; packId: string; assemblyApi: number; activatedBy: \"session_start\" | \"compaction\" | \"legacy_migration\"; } | undefined>"
      ],
      "to": [
        "(): Promise<unknown>"
      ],
      "changes": [
        {
          "aspect": "returns",
          "detail": "return type Promise<[{ epoch: number; artifactDigest: string; packId: string; assemblyApi:… -> unknown]>",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "StoredSession.getPromptEpoch",
      "at": [
        "src/engine/session/session.ts:558"
      ],
      "from": [
        "(): Promise<import(\"../../prompt-assembly/epoch.js\").PromptEpochDescriptor | undefined>"
      ],
      "to": [
        "(): Promise<StoredPromptEpoch | undefined>"
      ],
      "changes": [
        {
          "aspect": "returns",
          "detail": "return type Promise<[import(\"../../prompt-assembly/epoch.js\").PromptEpochDescriptor -> StoredPromptEpoch] | undefined>",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "computeArtifactDigest",
      "at": [
        "src/prompt-assembly/artifact.ts:78"
      ],
      "from": [
        "(payload: PromptEpochArtifactPayload): string"
      ],
      "to": [
        "(payload: PromptArtifactPayload): string"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 1 `payload` type changed, direction not read: Prompt[Epoch -> ]ArtifactPayload",
          "breaking": true,
          "uncertain": true
        }
      ],
      "uncertain": "param 1 `payload` type changed, direction not read: Prompt[Epoch -> ]ArtifactPayload — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "contextUsageSections",
      "at": [
        "src/prompt-assembly/section-usage.ts:30"
      ],
      "from": [
        "(sections: ReadonlyArray<{ id: string; slot?: string; chars: number; }> | undefined): ContextUsageSection[] | undefined"
      ],
      "to": [
        "(sections: ReadonlyArray<{ id: string; band?: string; chars: number; }> | undefined): ContextUsageSection[] | undefined"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 1 `sections` type changed, direction not read: …onlyArray<{ id: string; [slot -> band]?: string; chars: number…",
          "breaking": true,
          "uncertain": true
        }
      ],
      "uncertain": "param 1 `sections` type changed, direction not read: …onlyArray<{ id: string; [slot -> band]?: string; chars: number… — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "createPreToolUseConstraintPolicy",
      "at": [
        "src/core/hooks.ts:1546"
      ],
      "from": [
        "(preToolUse: NonNullable<Hooks[\"preToolUse\"]>, env?: HookEnvCapabilities, onCrash?: (err: unknown) => void, timeoutMs?: number): ToolPolicy"
      ],
      "to": [
        "(chain: Pick<import(\"./mods/kernel/index.js\").ModBus, \"hasHandlers\" | \"dispatch\">, env?: HookEnvCapabilities): ToolPolicy"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 1 `chain` type changed, direction not read: [NonNullable<Hooks[\"preToolUse\"] -> Pick<import(\"./mods/kernel/index.js\").ModBus, \"hasHandlers\" | \"dispat…]>",
          "breaking": true,
          "uncertain": true
        },
        {
          "aspect": "param",
          "detail": "-param `onCrash?: (err: unknown) => void`",
          "breaking": true
        },
        {
          "aspect": "param",
          "detail": "-param `timeoutMs?: number`",
          "breaking": true
        }
      ],
      "uncertain": "param 1 `chain` type changed, direction not read: [NonNullable<Hooks[\"preToolUse\"] -> Pick<import(\"./mods/kernel/index.js\").ModBus, \"hasHandlers\" | \"dispat…]> — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "createSessionRulePolicy",
      "at": [
        "src/core/runner/session-rule-policy.ts:329"
      ],
      "from": [
        "(rules: SessionPermissionRules | SessionRuleSource, opts: { env: ExecutionEnv; rootPath?: string; toolEffects?: ReadonlyMap<string, ToolEffect>; anchors?: PathRuleBases; onEarlierGrammar?: (entries: readonly string[]) => void; }): NamedToolPolicy"
      ],
      "to": [
        "(rules: SessionPermissionRules | SessionRuleSource, opts: { env: ExecutionEnv; rootPath?: string; toolEffects?: ReadonlyMap<string, ToolEffect>; anchors?: PathRuleBases; onEarlierGrammar?: (entries: readonly string[], field: SessionRuleEntryField, grammar: number) => void; }): NamedToolPolicy"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 2 `opts` type changed, direction not read: …tries: readonly string[][ -> , field: SessionRuleEntryField, grammar: number]) => void; }",
          "breaking": true,
          "uncertain": true
        }
      ],
      "uncertain": "param 2 `opts` type changed, direction not read: …tries: readonly string[][ -> , field: SessionRuleEntryField, grammar: number]) => void; } — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "declareWithheldEnv",
      "at": [
        "src/core/secret-env.ts:412"
      ],
      "from": [
        "(names: readonly string[]): void"
      ],
      "to": [
        "(table: WithheldEnvDeclaration): void"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 1 `table` type changed, direction not read: [readonly string[] -> WithheldEnvDeclaration]",
          "breaking": true,
          "uncertain": true
        }
      ],
      "uncertain": "param 1 `table` type changed, direction not read: [readonly string[] -> WithheldEnvDeclaration] — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "materializeMcpTools",
      "at": [
        "src/core/mcp.ts:1964"
      ],
      "from": [
        "(specs: McpServerSpec[], principal?: string, onElicit?: OnElicit, imageResizer?: McpImageResizer, reminderDisclosure?: { reminderMark?: string; counts?: ReminderDisclosureCounts; }, mcpRevocations?: McpRevocationLedger & { onProbeFailure?: (error: unknown) => void; }, poolOpts?: { pool: McpConnectionPool; ownsPool?: boolean; }, promptSections?: PromptSectionSeat): Promise<MaterializedMcp>"
      ],
      "to": [
        "(specs: McpServerSpec[], principal?: string, onElicit?: OnElicit, imageResizer?: McpImageResizer, reminderDisclosure?: { reminderMark?: string; counts?: ReminderDisclosureCounts; }, mcpRevocations?: McpRevocationLedger & { onProbeFailure?: (error: unknown) => void; }, poolOpts?: { pool: McpConnectionPool; ownsPool?: boolean; }, promptSections?: PromptSectionDisposer): Promise<MaterializedMcp>"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 8 `promptSections` type changed, direction not read: PromptSection[Seat -> Disposer]",
          "breaking": true,
          "uncertain": true
        }
      ],
      "uncertain": "param 8 `promptSections` type changed, direction not read: PromptSection[Seat -> Disposer] — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "resolveRouteCredential",
      "at": [
        "src/brain/route-adjudicator.ts:647"
      ],
      "from": [
        "(input: { optionsApiKey?: string; optionsHeaders?: Record<string, string>; modelHeaders?: Record<string, string>; configApiKey?: string; configHeaders?: Record<string, string>; }): RouteCredential"
      ],
      "to": [
        "(input: { optionsApiKey?: string; optionsHeaders?: Record<string, string>; modelHeaders?: Record<string, string>; configApiKey?: string; configHeaders?: Record<string, string>; keyHeader?: string; }): RouteCredential"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 1 `input` type widened: …Record<string, string>; [ -> keyHeader?: string; ]}",
          "breaking": false
        }
      ],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "name": "verifyPromptArtifact",
      "at": [
        "src/prompt-assembly/artifact.ts:164"
      ],
      "from": [
        "(raw: unknown, opts: { engineVersion: string; }): ArtifactVerifyResult"
      ],
      "to": [
        "(raw: unknown): ArtifactVerifyResult"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "-param `opts: { engineVersion: string; }`",
          "breaking": true
        }
      ],
      "breaking": true,
      "criteriaCovered": false
    }
  ],
  "declarationMoves": [
    {
      "name": "ADMITTED_DOCUMENT_MIME_TYPES",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/image-admission.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "ADMITTED_IMAGE_MIME_TYPES",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/image-admission.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "CenterAdoption",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/core/runner/prepare-prompt-assembly.ts"
      ],
      "to": [
        "src/prompt-assembly/artifact.ts"
      ]
    },
    {
      "name": "DocumentAdmission",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/image-admission.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "HARNESS_SECTION_ANCHOR",
      "kind": "variable",
      "onSurface": true,
      "from": [
        "src/index.ts",
        "src/prompts/default.ts"
      ],
      "to": [
        "src/index.ts",
        "src/prompt-assembly/catalog/constitution.ts",
        "src/prompts/default.ts"
      ]
    },
    {
      "name": "ImageAdmission",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/image-admission.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "MAX_IMAGE_DOWNSAMPLE_INPUT_BYTES",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/fs-shared.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "MAX_IMAGE_READ_BYTES",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/fs-shared.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "MediaRefusalReason",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/image-admission.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "OUTPUT_EFFICIENCY",
      "kind": "variable",
      "onSurface": true,
      "from": [
        "src/index.ts",
        "src/prompts/default.ts"
      ],
      "to": [
        "src/index.ts",
        "src/prompt-assembly/catalog/role.ts",
        "src/prompts/default.ts"
      ]
    },
    {
      "name": "PDF_TARGET_RAW_SIZE",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/pdf.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "StopHookResult",
      "kind": "interface",
      "onSurface": true,
      "from": [
        "src/core/hooks.ts"
      ],
      "to": [
        "src/core/hooks.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "ToolResultMediaAdmission",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/image-admission.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "ToolResultMediaRefusal",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/image-admission.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "admitDocumentBytes",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/image-admission.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "admitImageBytes",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/image-admission.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "admitToolResultMedia",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/image-admission.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "cloneObserverInput",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/core/hooks.ts",
        "src/core/runner/gate-exit.ts"
      ],
      "to": [
        "src/core/runner/gate-exit.ts"
      ]
    },
    {
      "name": "fileArgPath",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/safety.ts"
      ],
      "to": [
        "src/core/tool-registry.ts"
      ]
    },
    {
      "name": "imageMagicMatches",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/safety.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "imageReadCap",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/image-admission.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    },
    {
      "name": "isEngineRefusal",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/core/decision-receipt.ts",
        "src/core/tool-policy.ts",
        "src/index.ts"
      ],
      "to": [
        "src/core/decision-receipt.ts",
        "src/core/tool-policy.ts"
      ]
    },
    {
      "name": "isPlainRecord",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/core/checkpoint-store.ts"
      ],
      "to": [
        "src/core/checkpoint-store.ts",
        "src/core/mods/kernel/receive.ts"
      ]
    },
    {
      "name": "isUncSpelling",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/safety.ts"
      ],
      "to": [
        "src/core/unc-spelling.ts"
      ]
    },
    {
      "name": "pdfMagicMatches",
      "kind": null,
      "onSurface": false,
      "from": [
        "src/tools/fs/pdf.ts"
      ],
      "to": [
        "src/core/image-admission.ts"
      ]
    }
  ],
  "mintMoves": [],
  "criteriaObserves": [
    {
      "kind": "engineNoticeCode",
      "name": "config.credential_not_withheld",
      "assertions": [
        "G5.b"
      ]
    },
    {
      "kind": "engineNoticeCode",
      "name": "config.secret_env_scrubbed",
      "assertions": [
        "G5.b"
      ]
    },
    {
      "kind": "engineNoticeCode",
      "name": "route.credential_origin_mismatch",
      "assertions": [
        "G1.b",
        "G22.b"
      ]
    },
    {
      "kind": "engineNoticeCode",
      "name": "route.fallback_to_primary",
      "assertions": [
        "G1.d",
        "G1.e"
      ]
    },
    {
      "kind": "engineNoticeCode",
      "name": "task.halt_unconsumed",
      "assertions": [
        "G2.b"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "compaction_outcome.outcome",
      "assertions": [
        "G2.a",
        "G2.c"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "compaction_outcome.reason",
      "assertions": [
        "G2.a"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "compaction_outcome.trigger",
      "assertions": [
        "G2.a"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "done.result",
      "assertions": [
        "G2.a",
        "G2.c"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "human_input.attachments",
      "assertions": [
        "G11.b"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "tool_end.errorCode",
      "assertions": [
        "G3.a",
        "G3.b"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "tool_end.gate",
      "assertions": [
        "G3.c",
        "G4.a",
        "G4.d",
        "G8.c",
        "G9.a",
        "G9.b"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "tool_end.isError",
      "assertions": [
        "G3.b",
        "G10.a",
        "G10.c"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "tool_end.notExecuted",
      "assertions": [
        "G10.a"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "tool_end.output",
      "assertions": [
        "G3.a",
        "G3.b",
        "G4.a",
        "G4.b",
        "G4.c",
        "G9.a",
        "G9.c",
        "G10.b"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "tool_end.structured",
      "assertions": [
        "G10.b",
        "G10.c"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "wiring_manifest.manifest",
      "assertions": [
        "G8.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AgentDefinition.denyTools",
      "assertions": [
        "G17.a",
        "G24.a",
        "G24.e"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ArtifactVerifyResult.code",
      "assertions": [
        "G7.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.mandated",
      "assertions": [
        "G3.c",
        "G4.c",
        "G4.d",
        "G14.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.message",
      "assertions": [
        "G4.d",
        "G9.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AssistantMessage.errorMessage",
      "assertions": [
        "G1.a",
        "G1.c",
        "G1.d",
        "G1.e"
      ]
    },
    {
      "kind": "typeMember",
      "name": "CatalogDescription.sections.ops",
      "assertions": [
        "G7.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "Checkpoint.pendingAction.boundGrantDigest",
      "assertions": [
        "G17.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "Checkpoint.pendingAction.mandated",
      "assertions": [
        "G14.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "Checkpoint.status",
      "assertions": [
        "G17.b",
        "G19.b",
        "G20.b",
        "G20.c",
        "G24.g",
        "G24.i"
      ]
    },
    {
      "kind": "typeMember",
      "name": "CheckpointError.code",
      "assertions": [
        "G17.b",
        "G20.b",
        "G20.c",
        "G23.a",
        "G24.g",
        "G24.i"
      ]
    },
    {
      "kind": "typeMember",
      "name": "CheckpointError.detail.code",
      "assertions": [
        "G20.b",
        "G20.c",
        "G23.a",
        "G24.i"
      ]
    },
    {
      "kind": "typeMember",
      "name": "CheckpointError.detail.field",
      "assertions": [
        "G20.c",
        "G24.i"
      ]
    },
    {
      "kind": "typeMember",
      "name": "CheckpointError.detail.reason",
      "assertions": [
        "G20.c",
        "G24.g",
        "G24.i",
        "G24.j"
      ]
    },
    {
      "kind": "typeMember",
      "name": "CheckpointError.message",
      "assertions": [
        "G17.b",
        "G20.c",
        "G24.i"
      ]
    },
    {
      "kind": "typeMember",
      "name": "CheckpointState.ownToolLists",
      "assertions": [
        "G24.g"
      ]
    },
    {
      "kind": "typeMember",
      "name": "CheckpointState.ownToolLists.lists",
      "assertions": [
        "G24.g"
      ]
    },
    {
      "kind": "typeMember",
      "name": "CheckpointState.toolCeiling",
      "assertions": [
        "G20.c",
        "G24.e"
      ]
    },
    {
      "kind": "typeMember",
      "name": "EngineNotice.detail",
      "assertions": [
        "G1.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ExecutionError.noOutputSec",
      "assertions": [
        "G10.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "GateOutcome.disposition",
      "assertions": [
        "G8.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "HarvestRejection.code",
      "assertions": [
        "G12.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "McpServerSpec.startupTimeoutMs",
      "assertions": [
        "G11.d"
      ]
    },
    {
      "kind": "typeMember",
      "name": "McpServerStatus.errorCode",
      "assertions": [
        "G11.e"
      ]
    },
    {
      "kind": "typeMember",
      "name": "McpServerStatus.status",
      "assertions": [
        "G11.d",
        "G11.e"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ModEventRow.side",
      "assertions": [
        "G8.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ModRegistration.tier",
      "assertions": [
        "G8.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ModStation.failure",
      "assertions": [
        "G8.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "Model.headers",
      "assertions": [
        "G22.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "NamedToolPolicy.nameSets",
      "assertions": [
        "G17.a",
        "G20.a",
        "G20.d",
        "G24.b",
        "G24.d"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ParsedEntryFile.unclosed",
      "assertions": [
        "G12.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PermissionResult.action",
      "assertions": [
        "G20.a",
        "G24.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PermissionResult.message",
      "assertions": [
        "G16.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PermissionRuleIssue.code",
      "assertions": [
        "G17.a",
        "G20.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PromptEpochDescriptor.activatedBy",
      "assertions": [
        "G7.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PromptEpochDescriptor.changed",
      "assertions": [
        "G7.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PromptEpochDescriptor.identity",
      "assertions": [
        "G7.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PromptManifestSection.chain",
      "assertions": [
        "G7.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PromptManifestSection.contentHash",
      "assertions": [
        "G7.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ReadDenyMatcher.rowUnderRoot",
      "assertions": [
        "G3.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "RouteRefusalDetail.boundOrigin",
      "assertions": [
        "G1.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "RouteRefusalDetail.requestOrigin",
      "assertions": [
        "G1.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "RunInternals.ownToolLists",
      "assertions": [
        "G24.g"
      ]
    },
    {
      "kind": "typeMember",
      "name": "RunWorkflowOptions.toolCeiling",
      "assertions": [
        "G24.e"
      ]
    },
    {
      "kind": "typeMember",
      "name": "RunnerDeps.mods",
      "assertions": [
        "G8.a",
        "G13.a",
        "G21.a",
        "G23.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "RunnerDeps.onError",
      "assertions": [
        "G6.c",
        "G9.c",
        "G11.c",
        "G13.a",
        "G13.b",
        "G16.a",
        "G21.a",
        "G24.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SecretEnvFinding.kind",
      "assertions": [
        "G5.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SessionPolicyError.code",
      "assertions": [
        "G16.b",
        "G24.f"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SessionPolicyError.detail",
      "assertions": [
        "G24.f"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SessionPolicyStore.putRules",
      "assertions": [
        "G9.c",
        "G16.b",
        "G24.f"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SessionPolicyStoreOptions.mountedToolNames",
      "assertions": [
        "G19.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ShellReadJudgment.verdict",
      "assertions": [
        "G4.a",
        "G4.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SkillSpec.allowedTools",
      "assertions": [
        "G12.a",
        "G15.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SkillSpec.description",
      "assertions": [
        "G15.b",
        "G18.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SkillSpec.disallowedTools",
      "assertions": [
        "G12.a",
        "G15.a",
        "G15.b",
        "G18.a",
        "G18.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SkillsDirectoryWarning.code",
      "assertions": [
        "G12.a",
        "G15.a",
        "G18.a",
        "G18.b",
        "G18.d"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SkillsDirectoryWarning.detail",
      "assertions": [
        "G12.a",
        "G12.b",
        "G15.a",
        "G15.b",
        "G18.a",
        "G18.b",
        "G18.d"
      ]
    },
    {
      "kind": "typeMember",
      "name": "StoredSessionRules.grammar",
      "assertions": [
        "G16.a",
        "G16.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.haltedByUser",
      "assertions": [
        "G2.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.stats.costBreakdown.sideCallMicroUsd",
      "assertions": [
        "G11.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.stats.costMicroUsd",
      "assertions": [
        "G11.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.stats.humanReview.gates.toolArg",
      "assertions": [
        "G22.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.stats.usageMissing",
      "assertions": [
        "G11.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.terminal.code",
      "assertions": [
        "G1.a",
        "G1.d",
        "G1.e",
        "G6.a",
        "G6.b",
        "G7.b",
        "G8.b",
        "G11.b",
        "G17.a",
        "G19.a",
        "G19.b",
        "G20.b",
        "G23.a",
        "G24.a",
        "G24.b",
        "G24.d",
        "G24.f",
        "G24.h",
        "G24.j"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.terminal.detail",
      "assertions": [
        "G24.a",
        "G24.h",
        "G24.j"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.terminal.kind",
      "assertions": [
        "G14.a",
        "G24.c",
        "G24.d",
        "G24.e",
        "G24.g"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.excludeTools",
      "assertions": [
        "G20.b",
        "G24.a",
        "G24.d"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.mods",
      "assertions": [
        "G8.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.promptForm",
      "assertions": [
        "G6.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.promptRole",
      "assertions": [
        "G6.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.systemPrompt",
      "assertions": [
        "G6.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.toolPolicy",
      "assertions": [
        "G24.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.tools",
      "assertions": [
        "G19.a",
        "G24.h",
        "G24.i",
        "G24.j"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.userAttachments",
      "assertions": [
        "G11.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskStream.halt",
      "assertions": [
        "G2.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskStream.interrupt",
      "assertions": [
        "G2.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolActivity.arg",
      "assertions": [
        "G22.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolPolicy.check",
      "assertions": [
        "G9.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolPolicyNameSets.deny",
      "assertions": [
        "G20.a",
        "G20.d"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolSpec.aliases",
      "assertions": [
        "G19.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolSpec.execute",
      "assertions": [
        "G24.h",
        "G24.j"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolSpec.name",
      "assertions": [
        "G19.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TraceEvent.identity",
      "assertions": [
        "G7.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TraceEvent.sections",
      "assertions": [
        "G6.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TraceEvent.superseded",
      "assertions": [
        "G6.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TraceEvent.version",
      "assertions": [
        "G7.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "WiringManifest.mods",
      "assertions": [
        "G8.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "WithheldEnvDeclaration.values",
      "assertions": [
        "G5.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "WorkflowInternals.toolCeiling",
      "assertions": [
        "G24.e"
      ]
    }
  ],
  "consumersHint": {
    "cli": [
      "AllowEntryInert",
      "AllowEntryInertDetail",
      "BashReadonlyRootBoundary",
      "CHECKPOINT_CONFIG_REFUSAL_CODES",
      "CascadeRunResult",
      "CheckpointErrorReason",
      "CheckpointState",
      "ENGINE_CAPABILITIES",
      "ENGINE_NOTICE_CODES",
      "EstablishedRead",
      "ExecutionError",
      "HOOK_FAMILIES",
      "HookToolContext",
      "Hooks",
      "InheritedGate",
      "MaybeCompactOptions",
      "McpServerSpec",
      "OccurrenceLife",
      "ParentSpecSeat",
      "PermissionDeniedPayload",
      "PermissionRuleIssue",
      "PostCompactContext",
      "PostToolBatchContext",
      "PromptProvider",
      "PromptSlot",
      "REQUIREMENT_WORDS",
      "RESUME_STARTUP_CAUSES",
      "ReadDenyMatcher",
      "RepairResult",
      "RoutePairingStatus",
      "RouteRefusalDetail",
      "RunInternals",
      "Runner",
      "RunnerDeps",
      "RunnerSelfSeat",
      "Session",
      "ShellReadBoundary",
      "StablePromptContext",
      "StopHookResult",
      "TaskResult",
      "TaskSpec",
      "ToolGateInput",
      "TraceEvent",
      "UserPromptSubmitContext",
      "VerificationResult",
      "WiringFacts",
      "WiringManifest",
      "WiringManifestHookEntry",
      "compose",
      "declareWithheldEnv",
      "isEngineRefusal",
      "receiveHookResult",
      "resolveRouteCredential"
    ],
    "server": [
      "CHECKPOINT_CONFIG_REFUSAL_CODES",
      "CascadeRunResult",
      "CenterPromptSource",
      "CheckpointErrorReason",
      "CheckpointState",
      "CompiledSection",
      "ENGINE_CAPABILITIES",
      "ENGINE_NOTICE_CODES",
      "ExecutionError",
      "ExecutionErrorCode",
      "FilePromptArtifactStore",
      "HookToolContext",
      "Hooks",
      "InheritedGate",
      "McpServerSpec",
      "MemoryPromptArtifactStore",
      "ParentSpecSeat",
      "PermissionDeniedPayload",
      "PermissionRuleIssue",
      "PostCompactContext",
      "PostToolBatchContext",
      "PreCompactContext",
      "PromptEpochDescriptor",
      "PromptProvider",
      "PromptSlot",
      "PromptTextDeclaration",
      "PublishedPromptArtifactEnvelope",
      "RESUME_STARTUP_CAUSES",
      "RETRYABLE_REMOTE_ERROR_CODES",
      "RemoteExecutionErrorCode",
      "RepairResult",
      "ResumeRun",
      "RoutePairingStatus",
      "RouteRefusalDetail",
      "RunInternals",
      "Runner",
      "RunnerDeps",
      "Session",
      "SessionRuleEntryRefusal",
      "SessionStorage",
      "ShellReadBoundary",
      "StablePromptContext",
      "StopFailureContext",
      "StopHookResult",
      "StoredSession",
      "TaskResult",
      "TaskSpec",
      "ToolGateInput",
      "TraceEvent",
      "UserPromptSubmitContext",
      "VerificationResult",
      "WiringFacts",
      "WiringManifest",
      "artifactDeclarations",
      "assertPromptCacheFriendly",
      "buildPromptArtifactEnvelope",
      "compose",
      "constitutionBlocks",
      "createPreToolUseConstraintPolicy",
      "createSessionRulePolicy",
      "declareWithheldEnv",
      "defaultPromptProvider",
      "harnessContext",
      "isEngineRefusal",
      "materializeMcpTools",
      "receiveHookResult",
      "resolveRouteCredential",
      "verifyPromptArtifact"
    ],
    "sdk": [
      "CheckpointErrorReason",
      "ENGINE_CAPABILITIES",
      "ENGINE_NOTICE_CODES",
      "ExecutionErrorCode",
      "Hooks",
      "InheritedGate",
      "McpServerSpec",
      "PermissionRuleIssue",
      "RESUME_STARTUP_CAUSES",
      "RoutePairingStatus",
      "Runner",
      "RunnerDeps",
      "Session",
      "StoredSession",
      "TaskResult",
      "TaskSpec",
      "TraceEvent",
      "WiringManifest",
      "WiringManifestHookEntry"
    ],
    "note": "scanned cli@90ca507a server@d2875159 sdk@f0d5817 — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it. Ledger files (**/docs/core-consumption/**, **/docs/wire-consumption/**, **/*LEDGER*.json) are not evidence of use — server: 48 name(s) matched ONLY in bookkeeping files and were set aside (AllowEntryInertDetail, BashReadonlyRootBoundary, COWORK_PROMPT_SECTIONS, CenterOverlaySection, CenterOverlaySlot, CoreCompatRange, DefaultPackDescription, EstablishedRead, ExplainInput, HOOKS_INVALID_CODE, HOOK_FAMILIES, HookFamily, MaybeCompactOptions, McpConnectionPool, PackSectionDeclaration, ParsedEntryFile, PromptArtifactSource, PromptArtifactStore, PromptCacheClass, PromptCacheReport, PromptCatalogSnapshot, PromptDependencyClosure, PromptEpochActivation, PromptEpochArtifact, PromptEpochArtifactPayload, PromptMutability, PromptOwner, PromptPack, PromptRenderCadence, PromptSectionDisposition, REQUIREMENT_WORDS, ReadDenyMatcher, RouteRefusalCode, RunnerSelfSeat, SEMA_DEFAULT_PACK, SectionRenderInputs, WiringManifestHookEntry, WorkflowInternals, analyzePromptCacheFriendliness, composeConstitution, composeSystemPrompt, computeArtifactDigest, computeBundledArtifactDigest, computeCatalogDigest, contextUsageSections, coworkPromptProvider, describeDefaultPack, validatePack)"
  },
  "breakingCount": 109,
  "breakingItems": [
    "closed set lost members: ENGINE_NOTICE_CODES -route.base_url_changed_key_unchanged",
    "closed set lost members: HookSeatName -permissionDenied,postCompact,postToolBatch,postToolUse,postToolUseFailure,preCompact,preToolUse,resumePreflight,stop,stopFailure,userPromptSubmit",
    "closed set lost members: OccurrenceLife -executing",
    "closed set lost members: PromptEpochActivation -legacy_migration",
    "export removed: COWORK_PROMPT_SECTIONS (variable)",
    "export removed: CenterOverlaySection (interface)",
    "export removed: CenterOverlaySlot (type)",
    "export removed: CoreCompatRange (interface)",
    "export removed: DefaultPackDescription (interface)",
    "export removed: HOOKS_INVALID_CODE (variable)",
    "export removed: HOOK_FAMILIES (variable)",
    "export removed: HookFamily (type)",
    "export removed: HookToolContext (interface)",
    "export removed: Hooks (interface)",
    "export removed: PackSectionDeclaration (interface)",
    "export removed: PostToolBatchContext (interface)",
    "export removed: PromptCacheClass (type)",
    "export removed: PromptCacheReport (interface)",
    "export removed: PromptCatalogSnapshot (interface)",
    "export removed: PromptDependencyClosure (interface)",
    "export removed: PromptEpochArtifact (interface)",
    "export removed: PromptEpochArtifactPayload (interface)",
    "export removed: PromptMutability (type)",
    "export removed: PromptOwner (type)",
    "export removed: PromptPack (interface)",
    "export removed: PromptProvider (interface)",
    "export removed: PromptRenderCadence (type)",
    "export removed: PromptSectionDisposition (type)",
    "export removed: PromptSlot (type)",
    "export removed: PromptTextDeclaration (interface)",
    "export removed: PublishedPromptArtifactEnvelope (interface)",
    "export removed: SEMA_DEFAULT_PACK (variable)",
    "export removed: StablePromptContext (interface)",
    "export removed: StopFailureContext (interface)",
    "export removed: UserPromptSubmitContext (interface)",
    "export removed: WiringManifestHookEntry (interface)",
    "export removed: analyzePromptCacheFriendliness (function)",
    "export removed: artifactDeclarations (function)",
    "export removed: assertPromptCacheFriendly (function)",
    "export removed: buildPromptArtifactEnvelope (function)",
    "export removed: compose (function)",
    "export removed: composeConstitution (function)",
    "export removed: composeSystemPrompt (function)",
    "export removed: computeBundledArtifactDigest (function)",
    "export removed: computeCatalogDigest (function)",
    "export removed: constitutionBlocks (function)",
    "export removed: coworkPromptProvider (function)",
    "export removed: defaultPromptProvider (variable)",
    "export removed: describeDefaultPack (function)",
    "export removed: harnessContext (function)",
    "export removed: isEngineRefusal (variable)",
    "export removed: receiveHookResult (function)",
    "export removed: validatePack (function)",
    "signature changed: BashReadonlyRootBoundary.denyMatch — -param `opts?: { readonly walked?: boolean; }`",
    "signature changed: CenterPromptSource.applySnapshot — return type … } | { ok: false; code: [string -> ArtifactVerifyCode]; reason: string; }>",
    "signature changed: CenterPromptSource.constructor — param 1 `opts` type changed, direction not read: …PromptSourceStateStore; [engineVersion: string;  -> ]}",
    "signature changed: CenterPromptSource.current — return type [undefined | { artifact: PromptEpochArtifact; sourceRevision: string; } -> PublishedPromptArtifact | undefined]",
    "signature changed: CenterPromptSource.get — return type Promise<Prompt[Epoch -> ]Artifact | undefined>",
    "signature changed: FilePromptArtifactStore.get — -param `opts: { engineVersion: string; }`; return type …<PublishedPromptArtifact[Envelope -> ] | undefined>",
    "signature changed: FilePromptArtifactStore.put — param 1 `artifact` type changed, direction not read: PublishedPromptArtifact[Envelope -> ]",
    "signature changed: HomeViews.of — return type Promise<[string | undefined -> HomeView]>",
    "signature changed: MaybeCompactOptions.centerAdoption.apply — param 1 `committedIdentity` is now required",
    "signature changed: McpConnectionPool.keyOf — +required param `startupMs: number | undefined`",
    "signature changed: MemoryPromptArtifactStore.get — -param `opts: { engineVersion: string; }`; return type …<PublishedPromptArtifact[Envelope -> ] | undefined>",
    "signature changed: MemoryPromptArtifactStore.put — param 1 `artifact` type changed, direction not read: PublishedPromptArtifact[Envelope -> ]",
    "signature changed: PromptArtifactSource.current — return type [undefined | { artifact: PromptEpochArtifact; sourceRevision: string; } -> PublishedPromptArtifact | undefined]",
    "signature changed: PromptArtifactSource.get — return type Promise<Prompt[Epoch -> ]Artifact | undefined>",
    "signature changed: PromptArtifactStore.get — -param `opts: { engineVersion: string; }`; return type …<PublishedPromptArtifact[Envelope -> ] | undefined>",
    "signature changed: PromptArtifactStore.put — param 1 `artifact` type changed, direction not read: PublishedPromptArtifact[Envelope -> ]",
    "signature changed: ReadDenyMatcher.matchPath — param 2 `opts` type changed, direction not read: …liasResolved?: boolean; [readonly walked?: boolean;  -> ]}",
    "signature changed: Session.getPromptEpoch — return type …mpt-assembly/epoch.js\").[PromptEpochDescriptor -> StoredPromptEpoch] | undefined>",
    "signature changed: SessionStorage.getEpochAnchor — return type Promise<[{ epoch: number; artifactDigest: string; packId: string; assemblyApi:… -> unknown]>",
    "signature changed: StoredSession.getPromptEpoch — return type Promise<[import(\"../../prompt-assembly/epoch.js\").PromptEpochDescriptor -> StoredPromptEpoch] | undefined>",
    "signature changed: computeArtifactDigest — param 1 `payload` type changed, direction not read: Prompt[Epoch -> ]ArtifactPayload",
    "signature changed: contextUsageSections — param 1 `sections` type changed, direction not read: …onlyArray<{ id: string; [slot -> band]?: string; chars: number…",
    "signature changed: createPreToolUseConstraintPolicy — param 1 `chain` type changed, direction not read: [NonNullable<Hooks[\"preToolUse\"] -> Pick<import(\"./mods/kernel/index.js\").ModBus, \"hasHandlers\" | \"dispat…]>; -param `onCrash?: (err: unknown) => void`; -param `timeoutMs?: number`",
    "signature changed: createSessionRulePolicy — param 2 `opts` type changed, direction not read: …tries: readonly string[][ -> , field: SessionRuleEntryField, grammar: number]) => void; }",
    "signature changed: declareWithheldEnv — param 1 `table` type changed, direction not read: [readonly string[] -> WithheldEnvDeclaration]",
    "signature changed: materializeMcpTools — param 8 `promptSections` type changed, direction not read: PromptSection[Seat -> Disposer]",
    "signature changed: verifyPromptArtifact — -param `opts: { engineVersion: string; }`",
    "type gained required keys: CompiledSection +band,chain",
    "type gained required keys: ExplainInput +identity,sections[].band,sections[].chain,sections[].locale,selectors",
    "type gained required keys: MaybeCompactOptions +centerAdoption.promptIdentity",
    "type gained required keys: PromptEpochDescriptor +identity,layers",
    "type gained required keys: PromptEpochEntry +identity,layers",
    "type gained required keys: TraceEvent +prompt.assembled.identity,prompt.assembled.selectors",
    "type lost keys: CompiledSection -cacheClass,cadence,carrier,declaredContentHash,mutability,origin,owner,slot,trust",
    "type lost keys: ContentAskOutcome -answered.presentedInput,delivery_failure.presentedInput,unavailable.presentedInput",
    "type lost keys: EstablishedRead -walked",
    "type lost keys: ExplainInput -constitution,epoch,epoch.activatedBy,epoch.artifactDigest,epoch.epoch,epoch.packId,sections[].cacheClass,sections[].cadence,sections[].carrier,sections[].hash,sections[].slot",
    "type lost keys: HomeViews -unread",
    "type lost keys: InheritedGate -parentConstraints[].preToolUse",
    "type lost keys: MaybeCompactOptions -centerAdoption.centerArtifactDigest,centerAdoption.clear,centerAdoption.declaredSections,centerAdoption.declaredSections.[].chars,centerAdoption.declaredSections.[].contentHash,centerAdoption.declaredSections.[].id,centerAdoption.declaredSections.[].slot,centerAdoption.sourceRevision,epochDeclaredSections",
    "type lost keys: ParentSpecSeat -hooks",
    "type lost keys: PermissionDeniedPayload -signal",
    "type lost keys: PostCompactContext -identity,signal",
    "type lost keys: PreCompactContext -identity,signal",
    "type lost keys: PromptEpochDescriptor -artifactDigest,assemblyApi,centerArtifactDigest,packId",
    "type lost keys: PromptEpochEntry -artifactDigest,assemblyApi,centerArtifactDigest,packId",
    "type lost keys: RunInternals -ownToolListsWhere",
    "type lost keys: Runner -gateBaseline.hooks",
    "type lost keys: RunnerDeps -hooks,promptProvider",
    "type lost keys: RunnerSelfSeat -gateBaseline.hooks",
    "type lost keys: SectionRenderInputs -roleAppend,roleBase",
    "type lost keys: TaskSpec -hooks,promptProvider",
    "type lost keys: ToolGateInput -hookTimeoutMs,preToolUse",
    "type lost keys: TraceEvent -prompt.assembled.constitution,prompt.assembled.sections[].cacheClass,prompt.assembled.sections[].cadence,prompt.assembled.sections[].carrier,prompt.assembled.sections[].hash,prompt.assembled.sections[].slot",
    "type lost keys: WiringFacts -hooks",
    "type lost keys: WiringManifest -hooks"
  ]
}
