{
  "compatibility": {
    "agentProfile": "GC-AGENT-v0.3",
    "cliEnvelope": "genesis/error-v0.2",
    "coreformProfile": "genesis/coreform/v0.2",
    "diagnostics": "genesis/diagnostics-schema-v1",
    "effectLog": "genesis/effect-log/v3",
    "genesisLock": "2",
    "gpk": "2",
    "hashProfile": "genesis/hash-profile/gcv0.2-blake3",
    "languageProfile": "genesis/language-profile/v0.2",
    "packageManifest": "1",
    "releaseTrain": "0.2.0",
    "v1ReleaseClaim": "reserved-not-stable",
    "valueEffectHashProfile": "genesis/value-effect-hash/v0.2"
  },
  "conformance": {
    "evaluatorCases": [
      {
        "expected": "42",
        "expectedErrorKind": null,
        "expectedValueKind": "Int",
        "id": "eval-arithmetic",
        "source": "(prim int/add 20 22)"
      },
      {
        "expected": "-3",
        "expectedErrorKind": null,
        "expectedValueKind": "Int",
        "id": "eval-euclidean-division",
        "source": "(prim int/div -7 3)"
      },
      {
        "expected": null,
        "expectedErrorKind": null,
        "expectedValueKind": "Sealed",
        "id": "eval-zero-divisor-sealed-error",
        "source": "(prim int/mod 7 0)"
      },
      {
        "expected": "6",
        "expectedErrorKind": null,
        "expectedValueKind": "Int",
        "id": "eval-lexical-closure",
        "source": "(let ((x 2)) ((fn (y) (prim int/mul x y)) 3))"
      },
      {
        "expected": null,
        "expectedErrorKind": null,
        "expectedValueKind": "Contract",
        "id": "eval-contract",
        "source": "core/contract::genesis"
      },
      {
        "expected": null,
        "expectedErrorKind": null,
        "expectedValueKind": "EffectProgram",
        "id": "eval-effect-program",
        "source": "(core/effect::pure 1)"
      },
      {
        "expected": null,
        "expectedErrorKind": null,
        "expectedValueKind": "Sealed",
        "id": "eval-sealed-error",
        "source": "(core/protocol::error 1)"
      },
      {
        "expected": null,
        "expectedErrorKind": "Unbound",
        "expectedValueKind": null,
        "id": "eval-unbound-symbol",
        "source": "missing-symbol"
      }
    ],
    "packageCases": [
      {
        "expected": "accept",
        "id": "package-schema-1",
        "source": "schema = 1\nname = \"agent-profile\"\nversion = \"0.0.0\"\nmodules = []\ndependencies = []\nobligations = []\n[limits]\nstep_limit = 1000\nallow_unlimited = false\n"
      },
      {
        "expected": "reject",
        "id": "package-future-schema",
        "source": "schema = 2\nname = \"agent-profile\"\nversion = \"0.0.0\"\nmodules = []\ndependencies = []\nobligations = []\n"
      },
      {
        "expected": "reject",
        "id": "package-path-escape",
        "source": "schema = 1\nname = \"agent-profile\"\nversion = \"0.0.0\"\ndependencies = []\nobligations = []\n[[modules]]\npath = \"../escape.gc\"\n"
      }
    ],
    "parserCases": [
      {
        "expected": "accept",
        "formCount": 9,
        "id": "lexical-atoms",
        "mode": "module",
        "source": "nil true false 0 -1 \"x\\n\" b\"\\x41\" symbol :keyword"
      },
      {
        "expected": "accept",
        "formCount": 3,
        "id": "collections-and-quote",
        "mode": "module",
        "source": "'x [1 2] {:b 2 :a 1}"
      },
      {
        "expected": "accept",
        "formCount": 1,
        "id": "unicode-symbol-and-comment",
        "mode": "module",
        "source": "; comment\n\u03bb/identity"
      },
      {
        "expected": "reject",
        "formCount": null,
        "id": "unterminated-list",
        "mode": "module",
        "source": "(a b"
      },
      {
        "expected": "reject",
        "formCount": null,
        "id": "odd-map",
        "mode": "module",
        "source": "{:a 1 :b}"
      },
      {
        "expected": "reject",
        "formCount": null,
        "id": "trailing-term",
        "mode": "term",
        "source": "1 2"
      },
      {
        "expected": "reject",
        "formCount": null,
        "id": "unknown-string-escape",
        "mode": "term",
        "source": "\"\\q\""
      }
    ],
    "requiredChecks": [
      "scripts/check_agent_authoring_bundle.sh",
      "scripts/check_cli_diagnostics_contract.sh",
      "scripts/check_gc_agent_symbol_index.sh",
      "scripts/check_host_abi_conformance.sh",
      "scripts/check_no_user_panics.sh",
      "scripts/check_version_surfaces.sh",
      "scripts/check_write_genesiscode_skill_conformance.sh"
    ],
    "resourceCases": [
      {
        "expectedErrorKind": "StepLimit",
        "id": "step-limit",
        "limits": {
          "maxAllocUnits": null,
          "maxBytesLen": null,
          "maxLiveUnits": null,
          "maxMapLen": null,
          "maxPairCells": null,
          "maxStringLen": null,
          "maxVecLen": null,
          "steps": 2
        },
        "source": "(begin 1 2 3 4)"
      },
      {
        "expectedErrorKind": "MemoryLimit",
        "id": "vector-limit",
        "limits": {
          "maxAllocUnits": null,
          "maxBytesLen": null,
          "maxLiveUnits": null,
          "maxMapLen": null,
          "maxPairCells": null,
          "maxStringLen": null,
          "maxVecLen": 1,
          "steps": 100
        },
        "source": "[1 2]"
      },
      {
        "expectedErrorKind": "MemoryLimit",
        "id": "allocation-unit-limit",
        "limits": {
          "maxAllocUnits": 0,
          "maxBytesLen": null,
          "maxLiveUnits": null,
          "maxMapLen": null,
          "maxPairCells": null,
          "maxStringLen": null,
          "maxVecLen": null,
          "steps": 100
        },
        "source": "nil"
      },
      {
        "expectedErrorKind": "MemoryLimit",
        "id": "live-unit-limit",
        "limits": {
          "maxAllocUnits": null,
          "maxBytesLen": null,
          "maxLiveUnits": 0,
          "maxMapLen": null,
          "maxPairCells": null,
          "maxStringLen": null,
          "maxVecLen": null,
          "steps": 100
        },
        "source": "nil"
      }
    ]
  },
  "domainOrder": [
    "lexical-grammar",
    "coreform-mapping",
    "evaluation",
    "values",
    "contracts",
    "modules",
    "effects",
    "packages",
    "errors",
    "resource-limits",
    "compatibility-identifiers"
  ],
  "domains": [
    {
      "authorities": [
        {
          "anchors": [
            "enum Tok",
            "comment: ';' to end of line",
            "bytes literal: b\"...\"",
            "Tok::Quote"
          ],
          "path": "crates/gc_coreform/src/parse.rs"
        }
      ],
      "conformanceChecks": [
        "crates/gc_cli/tests/gc_agent_profile_v03.rs"
      ],
      "id": "lexical-grammar",
      "invariants": [
        "Whitespace is space, tab, LF, or CR; semicolon comments end at LF.",
        "Integers are base-10 with an optional leading minus and arbitrary source precision.",
        "Strings and bytes support backslash, quote, n, r, t, xNN, and uNNNN escapes.",
        "A leading quote desugars exactly to (quote datum); colon-prefixed keywords remain symbols."
      ],
      "limitations": [
        "No reader macros, dotted-pair notation, decimal literal token, character literal, or mutable reader state."
      ],
      "status": "core",
      "summary": "UTF-8 symbolic S-expression grammar with lists, vectors, maps, quote, comments, integers, strings, and bytes.",
      "surface": [
        "nil",
        "true",
        "false",
        "integer",
        "string",
        "bytes",
        "symbol",
        "quote",
        "list",
        "vector",
        "map",
        "comment"
      ]
    },
    {
      "authorities": [
        {
          "anchors": [
            "pub const COREFORM_PROFILE_ID",
            "pub enum Term",
            "Term::Map",
            "HASH_DOMAIN_PREFIX"
          ],
          "path": "crates/gc_coreform/src/term.rs"
        }
      ],
      "conformanceChecks": [
        "scripts/check_version_surfaces.sh",
        "crates/gc_cli/tests/gc_agent_profile_v03.rs"
      ],
      "id": "coreform-mapping",
      "invariants": [
        "Source atoms and collections map to the nine canonical Term variants.",
        "Lists are proper Pair/Nil chains and maps use deterministic structural key ordering.",
        "Canonical identity uses genesis/hash-profile/gcv0.2-blake3 and GCv0.2 NUL domain separation."
      ],
      "limitations": [
        "Improper list source syntax is unavailable; Pair values can only be constructed through evaluated primitives or canonical data."
      ],
      "status": "core",
      "summary": "Deterministic mapping from source syntax to canonical CoreForm terms.",
      "surface": [
        "Nil",
        "Bool",
        "Int",
        "Str",
        "Bytes",
        "Symbol",
        "Pair",
        "Vector",
        "Map"
      ]
    },
    {
      "authorities": [
        {
          "anchors": [
            "Special forms keyed by head symbol",
            "\"quote\" =>",
            "\"fn\" =>",
            "\"if\" =>",
            "\"begin\" =>",
            "\"let\" =>",
            "\"prim\" =>",
            "\"seal\" =>",
            "\"unseal\" =>"
          ],
          "path": "crates/gc_kernel/src/eval_treewalk.rs"
        },
        {
          "anchors": [
            "pub(super) fn eval_module",
            "parse_def",
            "Desugar multi-arg lambda into nested unary closures"
          ],
          "path": "crates/gc_kernel/src/eval_forms.rs"
        }
      ],
      "conformanceChecks": [
        "crates/gc_cli/tests/gc_agent_profile_v03.rs",
        "scripts/check_kernel_tcb_contract.sh"
      ],
      "id": "evaluation",
      "invariants": [
        "Evaluation is pure and deterministic inside the kernel.",
        "def is valid only at module top level; fn and application accept source-level n-ary sugar but evaluate as curried application.",
        "if, begin, let, and the final closure application are tail-position aware.",
        "Map keys are data and map values are evaluated expressions."
      ],
      "limitations": [
        "No mutation, exceptions, implicit effects, ambient I/O, time, randomness, network, or LLM access exists in kernel evaluation."
      ],
      "status": "core",
      "summary": "Backend-independent pure evaluator semantics for modules, special forms, and applications.",
      "surface": [
        "quote",
        "fn",
        "if",
        "begin",
        "let",
        "prim",
        "seal",
        "unseal",
        "def",
        "application"
      ]
    },
    {
      "authorities": [
        {
          "anchors": [
            "pub enum Value",
            "CompiledClosure",
            "SealToken",
            "EffectProgram",
            "EffectRequest"
          ],
          "path": "crates/gc_kernel/src/value.rs"
        },
        {
          "anchors": [
            "\"int/add\"",
            "\"vec/get\"",
            "\"map/put\"",
            "\"crypto/blake3\""
          ],
          "path": "crates/gc_kernel/src/eval_prims.rs"
        },
        {
          "anchors": [
            "pub(super) fn prim_int_div_mod",
            "pub(super) fn prim_int_div_mod_values",
            "\"int/div\"",
            "\"int/mod\""
          ],
          "path": "crates/gc_kernel/src/eval_prims/int_div.rs"
        },
        {
          "anchors": [
            "pub const MAX_FIXED_DECIMAL_SCALE: u32 = 4096",
            "pub fn from_unscaled",
            "pub fn parse",
            "pub fn mul"
          ],
          "path": "crates/gc_coreform/src/fixed_decimal.rs"
        },
        {
          "anchors": [
            "genesis/numeric-profile-v0.1",
            "euclidean",
            "core/numeric-error",
            "\"maxScale\": 4096",
            "No Core float"
          ],
          "path": "docs/spec/NUMERIC_PROFILE_v0.1.json"
        },
        {
          "anchors": [
            "genesis/text-path-profile-v0.1",
            "\"version\": \"17.0.0\"",
            "exact-utf8-scalar-sequence-no-implicit-normalization",
            "core/text-range-error",
            "capability-base-relative-no-host-prefix"
          ],
          "path": "docs/spec/TEXT_PATH_PROFILE_v0.1.json"
        }
      ],
      "conformanceChecks": [
        "crates/gc_cli/tests/gc_agent_profile_v03.rs",
        "scripts/check_kernel_tcb_contract.sh"
      ],
      "id": "values",
      "invariants": [
        "User-visible immutable data is represented by canonical CoreForm or persistent vectors/maps.",
        "Closures, seals, native functions, contracts, and effect programs are opaque runtime values with stable hashing rules.",
        "Primitive names are an exact allowlist; an unknown primitive is an error.",
        "Int is signed arbitrary precision; int/div and int/mod use Euclidean division with 0 <= remainder < abs(divisor), and a zero divisor returns a trusted sealed core/numeric-error.",
        "Dec is an opaque canonical fixed-decimal value with a maximum scale of 4096; construction and arithmetic that exceed the bound return a trusted sealed core/numeric-error.",
        "Str identity is exact UTF-8: no implicit normalization or folding; str/len counts bytes; Unicode 17 scalar/grapheme APIs and str/nfc are explicit.",
        "Effect paths are Unicode 17 NFC, base-relative, slash-only, case-exact, locale-free, and lossless."
      ],
      "limitations": [
        "CompiledClosure and NativeFn are implementation values, not forgeable source literals; SealToken and Sealed cannot be serialized as ordinary data.",
        "The Core profile has no floating-point values or operations, decimal division, implicit numeric coercion, or GPU-defined arithmetic semantics.",
        "Core omits implicit normalization, locale casing/collation, folded identity, regex, bidi/layout, display width, and word/sentence segmentation."
      ],
      "status": "core",
      "summary": "Exact text/bytes and deterministic numeric, closure, seal, contract, and effect values.",
      "surface": [
        "Data",
        "Int",
        "Vector",
        "Map",
        "Closure",
        "CompiledClosure",
        "SealToken",
        "Sealed",
        "NativeFn",
        "Contract",
        "EffectProgram",
        "EffectRequest",
        "bytes/concat",
        "bytes/from-hex",
        "bytes/get",
        "bytes/join",
        "bytes/len",
        "bytes/slice",
        "bytes/to-hex",
        "bytes/to-str-utf8",
        "core/eq?",
        "coreform/escape-bytes",
        "coreform/escape-str",
        "crypto/blake3",
        "data/tag",
        "dec/add",
        "dec/eq?",
        "dec/from-int",
        "dec/lt?",
        "dec/mul",
        "dec/parse",
        "dec/sub",
        "dec/to-str",
        "int/add",
        "int/div",
        "int/eq?",
        "int/lt?",
        "int/mod",
        "int/mul",
        "int/sub",
        "int/to-str",
        "list/is-nil?",
        "map/entries",
        "map/from-entries",
        "map/get",
        "map/len",
        "map/merge",
        "map/put",
        "pair/as-proper-list",
        "pair/car",
        "pair/cdr",
        "pair/cons",
        "str/concat",
        "str/grapheme-len",
        "str/grapheme-slice",
        "str/join",
        "str/len",
        "str/nfc",
        "str/repeat",
        "str/scalar-len",
        "str/to-bytes-utf8",
        "sym/eq?",
        "sym/from-str",
        "sym/to-str",
        "utf8/encode-codepoint",
        "vec/get",
        "vec/len",
        "vec/push",
        "vec/set"
      ]
    },
    {
      "authorities": [
        {
          "anchors": [
            "core/contract::make",
            "core/contract::extend",
            "core/contract::dispatch",
            "core/contract::explain",
            "core/contract::genesis"
          ],
          "path": "crates/gc_prelude/src/prelude.rs"
        },
        {
          "anchors": [
            "pub struct Contract",
            "shape_id",
            "contract_id"
          ],
          "path": "crates/gc_kernel/src/value.rs"
        }
      ],
      "conformanceChecks": [
        "crates/gc_prelude/src/lib.rs",
        "scripts/check_cli_diagnostics_contract.sh"
      ],
      "id": "contracts",
      "invariants": [
        "Dispatch calls the current handler and follows proto only for the trusted sealed UNHANDLED result.",
        "Contract shape and identity are deterministic; explain reports the same dispatch path without broadening capability policy.",
        "Messages are canonical op/payload data created and inspected through core/msg bindings."
      ],
      "limitations": [
        "A map shaped like a contract or UNHANDLED payload is not a contract and cannot forge protocol behavior."
      ],
      "status": "core",
      "summary": "Prototype-chain contract dispatch with deterministic shape identity and unforgeable fallback signaling.",
      "surface": [
        "core/contract::genesis",
        "core/contract::make",
        "core/contract::extend",
        "core/contract::dispatch",
        "core/contract::explain",
        "core/contract::meta",
        "core/contract::proto",
        "core/contract::shape",
        "core/msg::make",
        "core/msg::op",
        "core/msg::payload"
      ]
    },
    {
      "authorities": [
        {
          "anchors": [
            "pub(super) fn eval_module",
            "fn parse_def"
          ],
          "path": "crates/gc_kernel/src/eval_forms.rs"
        },
        {
          "anchors": [
            "A module is a vector/list of CoreForm terms evaluated left-to-right.",
            "def` is only recognized at the **top level**"
          ],
          "path": "docs/spec/MODULE_SCOPE.md"
        }
      ],
      "conformanceChecks": [
        "crates/gc_cli/tests/gc_agent_profile_v03.rs",
        "crates/gc_kernel/src/tests.rs"
      ],
      "id": "modules",
      "invariants": [
        "A module is an ordered sequence of CoreForm forms with top-level def bindings.",
        "Exported symbols use module-path::name and package metadata declares :caps, :exports, and :types.",
        "Canonical module hashing is independent of absolute filesystem paths."
      ],
      "limitations": [
        "There is no implicit import search, dynamic module loading inside the kernel, or unqualified cross-module namespace mutation."
      ],
      "status": "core",
      "summary": "Ordered top-level definitions with explicit namespaced exports and metadata.",
      "surface": [
        "def",
        "::meta",
        ":caps",
        ":exports",
        ":types",
        "module-path::name"
      ]
    },
    {
      "authorities": [
        {
          "anchors": [
            "core/effect::pure",
            "core/effect::perform",
            "core/effect::bind"
          ],
          "path": "crates/gc_prelude/src/prelude.rs"
        },
        {
          "anchors": [
            "Runner is deny-by-default",
            "Every performed effect appends a deterministic log entry"
          ],
          "path": "docs/spec/SEALS_DISPATCH_REPLAY.md"
        }
      ],
      "conformanceChecks": [
        "scripts/check_host_abi_conformance.sh",
        "scripts/check_evidence_adversarial_matrix.sh"
      ],
      "id": "effects",
      "invariants": [
        "Effects are explicit Pure or Perform programs; kernel evaluation performs no host operation.",
        "The host runner denies every operation absent from caps.toml and records deterministic replay facts.",
        "Replay consumes entries in order and rejects operation, hash, decision, capability, or scheduler mismatch."
      ],
      "limitations": [
        "Operation availability is selected by the host capability index and caps.toml; profile membership never grants a capability."
      ],
      "status": "profile-selected",
      "summary": "Explicit effect programs executed only through a deny-by-default logged host runner.",
      "surface": [
        "core/effect::pure",
        "core/effect::perform",
        "core/effect::bind",
        "core/effect::map",
        "core/effect::then",
        "core/effect::catch",
        "core/effect::catch-payload",
        "caps.toml",
        ".gclog",
        "replay"
      ]
    },
    {
      "authorities": [
        {
          "anchors": [
            "PACKAGE_MANIFEST_SCHEMA_VERSION",
            "pub struct PackageManifest",
            "validate_manifest_paths"
          ],
          "path": "crates/gc_pkg/src/manifest.rs"
        },
        {
          "anchors": [
            "Required Keys",
            "Package evaluation limits are enforced"
          ],
          "path": "docs/spec/PACKAGE_TOML.md"
        }
      ],
      "conformanceChecks": [
        "crates/gc_cli/tests/gc_agent_profile_v03.rs",
        "scripts/check_root_lock_policy.sh"
      ],
      "id": "packages",
      "invariants": [
        "Current writers emit package schema 1 and genesis.lock version 2; future versions fail closed.",
        "Module, dependency, and capability paths are relative, slash-separated, non-empty, and contain no dot or parent components.",
        "Module/dependency hashes and obligations are verified before package acceptance."
      ],
      "limitations": [
        "Crates.io publication is disabled; registry availability and deployment targets remain separately negotiated capabilities."
      ],
      "status": "core",
      "summary": "Deterministic package manifests, lockfiles, content hashes, obligations, and bounded evaluation policy.",
      "surface": [
        "schema",
        "name",
        "version",
        "modules",
        "dependencies",
        "obligations",
        "tests",
        "property_tests",
        "caps_policy",
        "limits",
        "budgets",
        "property",
        "gfx"
      ]
    },
    {
      "authorities": [
        {
          "anchors": [
            "pub enum KernelErrorKind",
            "BadForm",
            "StepLimit",
            "MemoryLimit"
          ],
          "path": "crates/gc_kernel/src/error.rs"
        },
        {
          "anchors": [
            "DIAGNOSTICS_SCHEMA_V1",
            "embedded_diagnostic_catalog",
            "primary_span",
            "safe_repair_actions"
          ],
          "path": "crates/gc_cli_driver/src/diagnostics.rs"
        },
        {
          "anchors": [
            "catalogIdentitySha256",
            "diagnosticCount",
            "safeRepairActions"
          ],
          "path": "docs/spec/GC_DIAGNOSTIC_CATALOG_v0.1.schema.json"
        },
        {
          "anchors": [
            "Failure diagnostics",
            "Unknown emitted codes",
            "separate, explicit policy"
          ],
          "path": "docs/spec/CLI_JSON_SCHEMAS_v0.1.md"
        },
        {
          "anchors": [
            "UNHANDLED/EFFECT/ERROR must be created by sealing"
          ],
          "path": "docs/spec/SEALS_DISPATCH_REPLAY.md"
        }
      ],
      "conformanceChecks": [
        "scripts/check_cli_diagnostics_contract.sh",
        "scripts/check_no_user_panics.sh"
      ],
      "id": "errors",
      "invariants": [
        "User input failures return explicit Rust Result internally, sealed ERROR values at runtime boundaries, or structured CLI diagnostics.",
        "UNHANDLED, EFFECT, and ERROR recognition requires trusted Prelude-created seals.",
        "CLI failures use genesis/error-v0.2 plus genesis/diagnostics-schema-v1 and stable nonzero exit classes.",
        "Every emitted CLI code resolves to one versioned genesis/diagnostic/v1 record with phase, span contract, structured parameters, causes, safe repairs, documentation, and source authorities; unknown codes fail closed."
      ],
      "limitations": [
        "String messages are explanatory only and are not stable routing identifiers; agents use exact catalog IDs/codes and pin the catalog identity when reproducibility matters."
      ],
      "status": "core",
      "summary": "No-panic user boundary with typed kernel failures, sealed runtime errors, and structured CLI diagnostics.",
      "surface": [
        "BadForm",
        "Unbound",
        "Type",
        "NotCallable",
        "Internal",
        "StepLimit",
        "MemoryLimit",
        "UNHANDLED",
        "EFFECT",
        "ERROR",
        "genesis/error-v0.2",
        "genesis/diagnostics-schema-v1",
        "genesis/diagnostic-catalog-v0.1",
        "genesis/diagnostic/v1"
      ]
    },
    {
      "authorities": [
        {
          "anchors": [
            "DEFAULT_STEP_LIMIT",
            "pub struct MemLimits",
            "max_alloc_units",
            "max_live_units",
            "max_pair_cells",
            "max_string_len"
          ],
          "path": "crates/gc_kernel/src/eval.rs"
        },
        {
          "anchors": [
            "pub struct Limits",
            "pub struct Budgets",
            "allow_unlimited"
          ],
          "path": "crates/gc_pkg/src/manifest.rs"
        },
        {
          "anchors": [
            "pub struct RuntimePolicy",
            "max_effect_ops",
            "max_response_bytes_per_run"
          ],
          "path": "crates/gc_effects/src/policy.rs"
        }
      ],
      "conformanceChecks": [
        "crates/gc_cli/tests/gc_agent_profile_v03.rs",
        "scripts/check_runtime_workload_budgets.sh"
      ],
      "id": "resource-limits",
      "invariants": [
        "The default kernel step limit is 50000000; package limits may only tighten effective limits unless allow_unlimited is explicitly true.",
        "Kernel memory limits are deterministic semantic counters rather than host RSS estimates; allocation/live units follow the normative value-graph schedule.",
        "Effect runtime policy independently bounds operation count and per-op/per-run payload and response bytes."
      ],
      "limitations": [
        "Wall time, process, network, GPU, disk, and host-bridge limits are host policy concerns and must be explicitly selected; they are not implied by kernel limits."
      ],
      "status": "core",
      "summary": "Deterministic kernel and package budgets plus separately enforced host-effect ceilings.",
      "surface": [
        "step_limit",
        "allow_unlimited",
        "max_alloc_units",
        "max_live_units",
        "max_pair_cells",
        "max_vec_len",
        "max_map_len",
        "max_bytes_len",
        "max_string_len",
        "max_steps_per_test",
        "max_effect_entries_per_test",
        "max_effect_log_bytes_per_test",
        "max_effect_ops",
        "max_payload_bytes_per_op",
        "max_payload_bytes_per_run",
        "max_response_bytes_per_op",
        "max_response_bytes_per_run"
      ]
    },
    {
      "authorities": [
        {
          "anchors": [
            "release_train",
            "canonical-hash-profile",
            "effect-log"
          ],
          "path": "genesis.version-surfaces.json"
        },
        {
          "anchors": [
            "reserved-not-stable",
            "genesis/compat/v1/language-profile",
            "genesis/compat/v1/bytecode"
          ],
          "path": "genesis.compatibility.json"
        }
      ],
      "conformanceChecks": [
        "scripts/check_version_surfaces.sh",
        "scripts/check_v1_compatibility.sh"
      ],
      "id": "compatibility-identifiers",
      "invariants": [
        "GC-AGENT-v0.3 names a training surface over the current v0.2 runtime identities; it does not rename serialized formats.",
        "All genesis/compat/v1 IDs remain permanently reserved but not stable until R9 freeze requirements pass.",
        "Unknown future discriminators fail closed and every accepted predecessor has a migration record."
      ],
      "limitations": [
        "The bytecode compatibility entry is unbound and no v1 compatibility promise is authorized by this profile."
      ],
      "status": "core",
      "summary": "Exact pre-v1 profile, format, hash, diagnostic, package, and reserved compatibility identities.",
      "surface": [
        "GC-AGENT-v0.3",
        "genesis/language-profile/v0.2",
        "genesis/coreform/v0.2",
        "genesis/hash-profile/gcv0.2-blake3",
        "genesis/value-effect-hash/v0.2",
        "genesis/effect-log/v3",
        "genesis/error-v0.2",
        "genesis/diagnostics-schema-v1",
        "package-schema-1",
        "genesis-lock-v2",
        "gpk-v2",
        "reserved-not-stable"
      ]
    }
  ],
  "kind": "genesis/gc-agent-profile-v0.3",
  "profileId": "GC-AGENT-v0.3",
  "profileIdentitySha256": "5869875058acbab1e335ae9581d7f86936a6b7ad7f759da6c70299e7f7668ca9",
  "sourceIdentities": {
    "crates/gc_cli/tests/gc_agent_profile_v03.rs": "04716e0603e8eace128099de6c5b479df40c43f8dbc96a9b238fab89641c99c3",
    "crates/gc_cli_driver/src/diagnostics.rs": "57f4f8b7e9057a81c5f641ea8c3a96f3668c0f6935e4b5613637483903802307",
    "crates/gc_coreform/src/fixed_decimal.rs": "be55956b0a833485f7cdda109abf1d6ff71359440616fd4f41249bb45a4032ba",
    "crates/gc_coreform/src/parse.rs": "3dccaa205943c8f4cdfbcc9ea50b4a34336737171c5a6d054a8944ae4d58c439",
    "crates/gc_coreform/src/term.rs": "8d6cd05c43f203e0f653e801e4702df1ae07bb7307ca5d6db6b0ce3d37858c26",
    "crates/gc_effects/src/policy.rs": "df1bf515c29fd078b88908f98c300580a81c4948626cc162ce25b9bec4b3c7c5",
    "crates/gc_kernel/src/error.rs": "2809950c07c0c53101de67031a153c05f23012736a8a5f46ae83e7a7f6180d01",
    "crates/gc_kernel/src/eval.rs": "07b7709f054c8196910713cb7058e792543f4330690ef083ee1f0d683ee8032d",
    "crates/gc_kernel/src/eval_forms.rs": "4d353e8b66f09bb819784e7798a2ba897f25e51087a1ceac79bfbc36b1dba8a1",
    "crates/gc_kernel/src/eval_prims.rs": "fb4dff87bb458558f0233c028c315b651fa315ddc90af32490056ddd64046ef6",
    "crates/gc_kernel/src/eval_prims/int_div.rs": "ba69c937f1332eb21779bca731469d907382d5b07ef0dbb2c10cf6eb0c426bf7",
    "crates/gc_kernel/src/eval_treewalk.rs": "7d908d1172673e1204d52adb9ccf77d7cd5407a28168570ac09cbfb9a9e30d0f",
    "crates/gc_kernel/src/tests.rs": "5dd509510d984331a9dc6e65e67e2abeb6dc0f1a1861eed313437108d0224a8e",
    "crates/gc_kernel/src/value.rs": "e92c047d5a64a3adf4a5c50fe0960c4f33e3bb7d8fb6084bd7e5a75cd968d5e3",
    "crates/gc_pkg/src/manifest.rs": "d60e84b07dcfc18246bf8587203aa75bf2426dc8ee58262ea7718021e4be3792",
    "crates/gc_prelude/src/lib.rs": "df796d65a584c49d23fa5b00ab72f4158cc20bcf1c2eeb8e85c8ff3ed7910fb4",
    "crates/gc_prelude/src/prelude.rs": "aecba7320d8716b93a9419737e88abe4ffc9e28985e7a23ab398c45fa94f9ba3",
    "docs/spec/CLI_JSON_SCHEMAS_v0.1.md": "8b56c0249e4de08e00866d2029f95a50f2dfed63e404d077fe5b20c1dd6ef84a",
    "docs/spec/GC_AGENT_PROFILE_v0.3.schema.json": "559ffafe661d3d95696107717acb159a38c60d7735bbc940ef2ac19f18be6314",
    "docs/spec/GC_DIAGNOSTIC_CATALOG_v0.1.schema.json": "d4009ae238f2fb8f6a596f214768e9858e3d944e87ad910998a5ae2a2881ec7c",
    "docs/spec/MODULE_SCOPE.md": "19dd45f791609e244ab1a798c360bb3036ed6aa9e3fa123eeefc7121b43ff788",
    "docs/spec/NUMERIC_PROFILE_v0.1.json": "a1e998667d9d7669740c62a0de2a56320c233f73d5263697d9bba8019ddbc8dc",
    "docs/spec/PACKAGE_TOML.md": "316a0dc82095a93dc4654c14296e21206516791215e4e6c1dd1a4c730fead06e",
    "docs/spec/SEALS_DISPATCH_REPLAY.md": "246d800fea0d0f07ec2d46e56b3a442484c1c8f97abd0d4cb8fd2c97ecf2627f",
    "docs/spec/TEXT_PATH_PROFILE_v0.1.json": "c2eedb2c40d4f4f263bebda1cd5f558b00cb3bb8ada1f5b05d0eb98aa727c53f",
    "genesis.compatibility.json": "d81bc1502ba5194821bc9b28741c2496d943cf27a95d140d6f95a698c10a0fc9",
    "genesis.version-surfaces.json": "643402a19527b77ef0432b7a0197d4ee658e413640961e0b93d826f8801e3278",
    "policies/gc_agent_profile_v0.3.json": "234fab159f59bf1733b2d1b56b6253dae391e0e39ecf4bfe58636aab32581229",
    "scripts/check_agent_authoring_bundle.sh": "f265b2dd9c89d403f66902dda21efb08372bea1457081404a928590a0b6b4238",
    "scripts/check_cli_diagnostics_contract.sh": "08969ab30ebda815ad82c1170bcd3235d1b3c0b8dc87ab4cfe99b6a08f271984",
    "scripts/check_evidence_adversarial_matrix.sh": "34c443c70bdb603ee9250a0c121d296fc4a4033533fa61865d31aef74e79b64e",
    "scripts/check_gc_agent_symbol_index.sh": "fe98597e129c69482d76b2c98eb927ef36298d36e61b78312978c30f52a84f98",
    "scripts/check_host_abi_conformance.sh": "6be7b0bf671e77f484218728e0992d4f1041867db2dd93b52e88a02a3d4340ab",
    "scripts/check_kernel_tcb_contract.sh": "94ab57ce2db0d8a3a66756f6353302921c18760b9704a33e558bde1a02dd7407",
    "scripts/check_no_user_panics.sh": "5930ba85c11a648c258fb5b865953b39265d7dde2bbe7daf96a0eb381de33827",
    "scripts/check_root_lock_policy.sh": "a669eebb4971aa668d844dcf6faf589a53a58cfe7f93b6e62634309aafceff39",
    "scripts/check_runtime_workload_budgets.sh": "0dcbcf912de78b179e017e6d9542a62148afe1480f91c588990ae2ad37965d48",
    "scripts/check_v1_compatibility.sh": "4e60b1e9f845de6fb65cf1471555b0c66211e45500911d122ed22bc5b1520edc",
    "scripts/check_version_surfaces.sh": "33ed99d48fc7460427927f827b78aa3a358348bb1103f6c5087a54451c083ce4",
    "scripts/check_write_genesiscode_skill_conformance.sh": "45bb37d1f7aa99e399b34b6d804bcb9e31dc160f85287f680c3b0aae205b8ee5"
  },
  "stability": "training-frozen-pre-v1",
  "unsupportedBehavior": [
    {
      "behavior": "Reader macros, dotted-pair source notation, character literals, decimal literal tokens, and every other experimental reader extension",
      "category": "syntax",
      "enforcement": "reject",
      "id": "U-SYNTAX-EXTENSIONS",
      "rationale": "The frozen lexer/parser recognizes only the declared GC-AGENT-v0.3 grammar.",
      "roadmapClass": "experimental-syntax",
      "roadmapTask": null,
      "safeAlternative": "Use the lexical-grammar surface in the frozen profile and represent decimals through dec/parse.",
      "status": "unsupported"
    },
    {
      "behavior": "Mutable variables, objects, collections, or ambient process state in kernel evaluation",
      "category": "semantics",
      "enforcement": "reject",
      "id": "U-MUTATION",
      "rationale": "The kernel is pure and values are immutable.",
      "roadmapClass": "additional-safety-boundary",
      "roadmapTask": null,
      "safeAlternative": "Return a new persistent value and thread it explicitly through pure functions.",
      "status": "unsupported"
    },
    {
      "behavior": "Core floating-point literals or operations, NaN, infinity, signed zero, subnormal or rounding semantics, decimal division, and implicit numeric coercion",
      "category": "numeric",
      "enforcement": "reject",
      "id": "U-CORE-FLOAT-AND-DECIMAL-DIVISION",
      "rationale": "The frozen numeric profile provides arbitrary-precision Int and bounded fixed Dec semantics only; inventing backend-dependent arithmetic would violate cross-tier determinism.",
      "roadmapClass": "additional-safety-boundary",
      "roadmapTask": "R5.1.d",
      "safeAlternative": "Use Int, construct Dec explicitly through dec/from-int or dec/parse, and keep any profile-scoped floating-point payload behind an explicit host boundary.",
      "status": "unsupported"
    },
    {
      "behavior": "Implicit Unicode normalization, locale-sensitive identity or ordering, case-folded map keys, lossy filesystem names, absolute or host-native path payloads, or unversioned Unicode segmentation",
      "category": "text-path",
      "enforcement": "reject",
      "id": "U-IMPLICIT-TEXT-PATH-SEMANTICS",
      "rationale": "The frozen text/path profile requires exact UTF-8 identity, explicit Unicode 17 NFC/grapheme APIs, no ambient locale, and NFC base-relative slash paths at effect boundaries.",
      "roadmapClass": "additional-safety-boundary",
      "roadmapTask": "R5.1.e",
      "safeAlternative": "Use exact Str equality, call str/nfc explicitly when required, choose byte/scalar/grapheme units deliberately, and pass validated base-relative slash paths to filesystem effects.",
      "status": "unsupported"
    },
    {
      "behavior": "Forged or unsealed UNHANDLED, EFFECT, or ERROR protocol values",
      "category": "security",
      "enforcement": "reject",
      "id": "U-UNSEALED-PROTOCOL",
      "rationale": "Protocol recognition requires unforgeable Prelude seal tokens.",
      "roadmapClass": "additional-safety-boundary",
      "roadmapTask": "R7.2.b",
      "safeAlternative": "Construct protocol outcomes only through the sealed Prelude protocol helpers.",
      "status": "unsupported"
    },
    {
      "behavior": "Direct or implicit filesystem, clock, entropy, network, process, GPU, model, or LLM host operations inside source or kernel evaluation",
      "category": "effects",
      "enforcement": "explicit-effect-only",
      "id": "U-IMPLICIT-EFFECTS",
      "rationale": "Host-only operations are outside the pure kernel and require a runner-mediated effect.",
      "roadmapClass": "host-only-operation",
      "roadmapTask": null,
      "safeAlternative": "Emit a declared effect operation, authorize it minimally in caps.toml, and require run/replay equivalence.",
      "status": "unsupported"
    },
    {
      "behavior": "Any capability absent from the negotiated profile or automatically authorized merely because an operation appears in a host index",
      "category": "capabilities",
      "enforcement": "deny-by-default",
      "id": "U-INDEX-AS-AUTHORITY",
      "rationale": "Indices describe availability; selected profiles bound availability; caps.toml alone grants scoped authority.",
      "roadmapClass": "out-of-profile-capability",
      "roadmapTask": null,
      "safeAlternative": "Negotiate a profile that contains the operation and add the minimum explicit caps.toml grant as a separately reviewable policy change.",
      "status": "unsupported"
    },
    {
      "behavior": "Unbounded package evaluation when limits.allow_unlimited is absent or false",
      "category": "resources",
      "enforcement": "bounded-opt-in-only",
      "id": "U-IMPLICIT-UNLIMITED",
      "rationale": "The default package policy rejects disabling the step limit.",
      "roadmapClass": "additional-safety-boundary",
      "roadmapTask": null,
      "safeAlternative": "Declare finite package and effect budgets; use allow_unlimited only in an explicitly reviewed trusted profile.",
      "status": "unsupported"
    },
    {
      "behavior": "A stable or compatibility-authoritative bytecode format",
      "category": "runtime",
      "enforcement": "claim-prohibited",
      "id": "U-BYTECODE",
      "rationale": "The v1 bytecode compatibility reservation is intentionally unbound.",
      "roadmapClass": "additional-safety-boundary",
      "roadmapTask": "R3.1.a",
      "safeAlternative": "Use canonical CoreForm and validated current execution tiers until a versioned bytecode is frozen.",
      "status": "unsupported"
    },
    {
      "behavior": "General source-to-Wasm coverage or undeclared stage2 fallback",
      "category": "runtime",
      "enforcement": "profile-negotiation-required",
      "id": "U-STAGE2-GENERAL",
      "rationale": "Stage2 translation supports only a validated subset and must fail closed outside it.",
      "roadmapClass": "additional-safety-boundary",
      "roadmapTask": "R3.2.a",
      "safeAlternative": "Negotiate the exact stage2 coverage profile or execute through a complete verified lower tier.",
      "status": "unsupported"
    },
    {
      "behavior": "A production JIT or native optimizing backend",
      "category": "runtime",
      "enforcement": "profile-negotiation-required",
      "id": "U-JIT",
      "rationale": "No validated JIT tier exists in the current profile.",
      "roadmapClass": "additional-safety-boundary",
      "roadmapTask": "R3.4.c",
      "safeAlternative": "Use treewalk, compiled AST, or another explicitly validated lower execution tier.",
      "status": "unsupported"
    },
    {
      "behavior": "Native, browser, edge, WASI, iOS, Android, OCI, component, or other build/deploy targets not explicitly marked available by the negotiated target profile",
      "category": "targets",
      "enforcement": "profile-negotiation-required",
      "id": "U-UNAVAILABLE-TARGETS",
      "rationale": "GC-AGENT-v0.3 language membership does not imply that a target runtime, SDK, or production pipeline is available.",
      "roadmapClass": "unavailable-target",
      "roadmapTask": "R6.3.a",
      "safeAlternative": "Select a target profile with verified availability and declared limitations, or remain on the portable local execution profile.",
      "status": "unsupported"
    },
    {
      "behavior": "Ambient wall clock, unrecorded entropy/randomness, unordered scheduling, race-selected outcomes, or replay facts omitted from logs",
      "category": "determinism",
      "enforcement": "explicit-effect-only",
      "id": "U-NONDETERMINISTIC-REPLAY",
      "rationale": "Nondeterministic facilities are not kernel primitives; all observable scheduling and host facts belong in deterministic logs.",
      "roadmapClass": "nondeterministic-facility",
      "roadmapTask": "R5.2.a",
      "safeAlternative": "Use deterministic scheduling or explicit logged effects whose complete facts are checked during replay.",
      "status": "unsupported"
    },
    {
      "behavior": "Unqualified v1 compatibility or production-readiness claims",
      "category": "compatibility",
      "enforcement": "claim-prohibited",
      "id": "U-V1-STABILITY",
      "rationale": "All v1 identifiers are reserved-not-stable until the R9 release freeze.",
      "roadmapClass": "additional-safety-boundary",
      "roadmapTask": "R9.1.a",
      "safeAlternative": "State the exact pre-v1 profile, maturity, target limitations, and evidence level.",
      "status": "unsupported"
    }
  ],
  "unsupportedClassOrder": [
    "experimental-syntax",
    "host-only-operation",
    "unavailable-target",
    "nondeterministic-facility",
    "out-of-profile-capability"
  ],
  "version": "0.3"
}
