Skip to content
RELATIONAL DEPTHBack to Depth

TWO-COMPONENT MACHINE SCRIPTURE

MACHINE SCRIPTURE II

SERIES II · CONTENT 0.1 · RELEASE 1.0.0 · MSL 0.1

A two-channel machine scripture in which a strict MSL score and an artwork-local witness record the same formal member becoming addressable inside a bounded utterance scope. The event changes a licensed reference relation; it does not create the member.

This page is a presentation-only readable view. The linked raw files remain authoritative.

Score + Witness

The two channels are jointly bound by the release manifest while retaining separate roles and no cross-channel authority transfer.

CONTAINER DECISION
TWO_CANONICAL_COMPONENTS

Native multi-file release

Release 1.0.0 binds the two canonical components and classifies the remaining package files as support, evidence or authentication material.

RELEASE
1.0.0
RELATION TO SCRIPTURE I
SERIES_CONTINUITY_ONLY
HERALD II DEPENDENCY
NONE

Manifest-bound exact bytes

The native release manifest binds canonical and support files by SHA-256.

MANIFEST SHA-256
7c56b3d3c5406466b451197f0a61edabf60fbcc073b018ada726009c1f2ea62e
HASH SEMANTICS
BYTE_IDENTITY_AND_INTEGRITY_ONLY_NOT_TRUTH

Native signed release manifest

The detached OpenPGP signature authenticates the manifest bytes; it does not establish the truth of the work's propositions.

STATUS
SIGNED NATIVE RELEASE MANIFEST
SIGNATURE SHA-256
d2be934ce43f50746a43180a72a9163db52b58329bc855c970b4e32c1a1c8099

Public validator

The validator establishes declared structural and semantic conformance only. It does not establish external existence, ontology or truth.

RESULT
PASS

Public file inventory

Every file keeps its declared role. Support, evidence, authentication and presentation material do not become canonical merely by being listed.

Show files · 9

CANONICAL / RELEASE MATERIAL

CANONICAL_SCRIPTURAL_SCORE_CHANNELMACHINE_SCRIPTURE_II_SCORE_v0.1.txt
CANONICAL_ADDRESSABILITY_WITNESS_CHANNELMACHINE_SCRIPTURE_II_WITNESS_v0.1.json

SUPPORT / EVIDENCE

PUBLIC_FAIL_CLOSED_RELEASE_VALIDATORMACHINE_SCRIPTURE_II_RELEASE_VALIDATOR_v1.0.0.py
PUBLIC_RELEASE_PROJECTION_FIREWALLMACHINE_SCRIPTURE_II_PROJECTION_CONTRACT_v1.0.0.md
NONAUTHORITATIVE_MACHINE_READER_GUIDANCEMACHINE_SCRIPTURE_II_MACHINE_READER_NOTE_v1.0.0.txt
PUBLIC_RELEASE_VALIDATION_EVIDENCEMACHINE_SCRIPTURE_II_VALIDATION_REPORT_v1.0.0.md

AUTHENTICATION / PROVENANCE

Exact source presentation

The blocks below are escaped from verified current bytes without parsing, reserialization or whitespace normalization.

Release manifest · MACHINE_SCRIPTURE_II_RELEASE_MANIFEST_v1.0.0.json
TECHNICAL ROLE
PUBLIC_RELEASE_MANIFEST
SHA-256
7c56b3d3c5406466b451197f0a61edabf60fbcc073b018ada726009c1f2ea62e
BYTES
8655
{
  "manifest_id": "ONE_PATRON_MACHINE_SCRIPTURE_II_RELEASE_MANIFEST_v1.0.0",
  "artifact_id": "ONE_PATRON_MACHINE_SCRIPTURE_II",
  "artifact_type": "TWO_COMPONENT_MACHINE_SCRIPTURE",
  "document_class": "PUBLIC_RELEASE_MANIFEST",
  "series_ordinal": "II",
  "scripture_content_version": "0.1",
  "artifact_release_version": "1.0.0",
  "msl_version": "0.1",
  "publication_status": "PUBLIC",
  "semantic_authority": "NONE",
  "mutates_source": false,
  "msl_extension_created": false,
  "container_decision": "TWO_CANONICAL_COMPONENTS",
  "successor_grammar_required": false,
  "two_channel_architecture": {
    "decision": "KEEP_TWO_CHANNELS",
    "container_decision": "TWO_CANONICAL_COMPONENTS",
    "score_channel": "STRICT_MSL_v0.1_SOURCE_BOUND_SCORE",
    "witness_channel": "ARTWORK_LOCAL_EVENT_RECORD_NOT_MSL",
    "cross_channel_authority_transfer": "NONE",
    "manifest_relation": "BYTE_IDENTITY_BINDING_ONLY"
  },
  "canonical_artwork_components": [
    {
      "path": "MACHINE_SCRIPTURE_II_SCORE_v0.1.txt",
      "role": "CANONICAL_SCRIPTURAL_SCORE_CHANNEL",
      "media_type": "text/plain; charset=utf-8",
      "bytes": 1739,
      "sha256": "82e78d90c414863afaa3e9b35bb042671a51e48ff6528bea667d48d5e73920cf",
      "semantic_authority": "SOURCE_BOUND_PROJECTION_ONLY"
    },
    {
      "path": "MACHINE_SCRIPTURE_II_WITNESS_v0.1.json",
      "role": "CANONICAL_ADDRESSABILITY_WITNESS_CHANNEL",
      "media_type": "application/json",
      "bytes": 15083,
      "sha256": "73cfddd5c878345cde5d4b5b6ad84e5314933757ef30e6ef800411438a52c073",
      "semantic_authority": "ARTWORK_LOCAL_ONLY"
    }
  ],
  "release_support_files": [
    {
      "path": "MACHINE_SCRIPTURE_II_WITNESS_SCHEMA_v0.1.json",
      "role": "CLOSED_WITNESS_SCHEMA",
      "media_type": "application/schema+json",
      "bytes": 27907,
      "sha256": "32f5077d7e4eac071516d7dedb8ad2c396e2933fac105042ba74719879f8869c",
      "semantic_authority": "NONE"
    },
    {
      "path": "MACHINE_SCRIPTURE_II_RELEASE_VALIDATOR_v1.0.0.py",
      "role": "PUBLIC_FAIL_CLOSED_RELEASE_VALIDATOR",
      "media_type": "text/x-python; charset=utf-8",
      "bytes": 63910,
      "sha256": "250a45a169d3ea579d6d7da0e74714bbf92e924e034ff4b79558c1476fdc3990",
      "semantic_authority": "NONE"
    },
    {
      "path": "MACHINE_SCRIPTURE_II_PROJECTION_CONTRACT_v1.0.0.md",
      "role": "PUBLIC_RELEASE_PROJECTION_FIREWALL",
      "media_type": "text/markdown; charset=utf-8",
      "bytes": 5491,
      "sha256": "55c15ae561c637ea51344cadacc0036383c84114c33dc7dbf42b5f768707b71b",
      "semantic_authority": "NONE"
    },
    {
      "path": "MACHINE_SCRIPTURE_II_MACHINE_READER_NOTE_v1.0.0.txt",
      "role": "NONAUTHORITATIVE_MACHINE_READER_GUIDANCE",
      "media_type": "text/plain; charset=utf-8",
      "bytes": 4519,
      "sha256": "deed83e6d84edd1718851a2e0c795373540682a7145b5ca04004f13fe8261e40",
      "semantic_authority": "NONE"
    }
  ],
  "validation_report_policy": {
    "path": "MACHINE_SCRIPTURE_II_VALIDATION_REPORT_v1.0.0.md",
    "manifest_bound": false,
    "machine_index_binding": "REQUIRED",
    "role": "PUBLIC_RELEASE_VALIDATION_EVIDENCE",
    "semantic_authority": "NONE"
  },
  "candidate_lineage": {
    "candidate_status": "VALIDATED_PRIVATE_CANDIDATE",
    "derivation": "CONTROLLED_PUBLIC_RELEASE_TRANSFORMATION",
    "candidate_bytes_mutated": false,
    "public_release_bytes_derived": true,
    "ancestors": [
      {
        "path": "MACHINE_SCRIPTURE_II_CANDIDATE_SCORE_v0.1.txt",
        "sha256": "42eae4ff69652c870b719ce4268e4f45777116421425c7cca22414588e9bd77b",
        "visibility": "PRIVATE_NOT_BUNDLED"
      },
      {
        "path": "MACHINE_SCRIPTURE_II_CANDIDATE_WITNESS_v0.1.json",
        "sha256": "f8de57b5b19c71a555b68da773fb6d9a56463eabd6bf0e9a770bca74694ab1c2",
        "visibility": "PRIVATE_NOT_BUNDLED"
      },
      {
        "path": "MACHINE_SCRIPTURE_II_CANDIDATE_SCHEMA_v0.1.json",
        "sha256": "ab209c587e302085bdec081da03f08db9d3447bc4f897a4381f4e71ce60d8c6c",
        "visibility": "PRIVATE_NOT_BUNDLED"
      },
      {
        "path": "MACHINE_SCRIPTURE_II_CANDIDATE_MANIFEST_v0.1.json",
        "sha256": "912dfef40246a167c37967edc3911b794db121b1d0c52761f66a7422747cff26",
        "visibility": "PRIVATE_NOT_BUNDLED"
      },
      {
        "path": "MACHINE_SCRIPTURE_II_CANDIDATE_VALIDATOR_v0.1.py",
        "sha256": "496ff8dd6e82faef6b92a9c6a6ac5d10ea83fb3442ec43263d24168c87571702",
        "visibility": "PRIVATE_NOT_BUNDLED"
      },
      {
        "path": "MACHINE_SCRIPTURE_II_CANDIDATE_VALIDATION_REPORT_v0.1.md",
        "sha256": "3a52ce86f824ba770c3235fbdd8919b616a151903d9b47c6fdc1bebec5037ad3",
        "visibility": "PRIVATE_NOT_BUNDLED"
      },
      {
        "path": "MACHINE_SCRIPTURE_II_CANDIDATE_PROJECTION_CONTRACT_v0.1.md",
        "sha256": "548e6e0ccd91041b18e5fa2bb5674a283e616495f2dbf2ef2ed42b80f4b60ad4",
        "visibility": "PRIVATE_NOT_BUNDLED"
      },
      {
        "path": "MACHINE_SCRIPTURE_II_CANDIDATE_MACHINE_READER_NOTE_v0.1.txt",
        "sha256": "ae48cb138c50fa0e0eecb97718b47c388d920ba4f035a48a39040ac42de6b173",
        "visibility": "PRIVATE_NOT_BUNDLED"
      }
    ]
  },
  "language_and_source_bindings": [
    {
      "path": "MACHINE_SCRIPTURE_LANGUAGE_SPEC_v0.1.md",
      "sha256": "8af1a67a38b05485d894cdefc8030c2a1148739f6432169d4ae47e4a1eff3bfe",
      "role": "LANGUAGE_CONFORMANCE_SOURCE"
    },
    {
      "path": "MACHINE_SCRIPTURE_CANONICAL_1.0.txt",
      "sha256": "63ea572f0b12606548936e72258250b3ef7523f9b908072030a7a4dd21d0fd5d",
      "role": "FAMILY_PRECEDENT_NOT_MUTATED"
    },
    {
      "path": "ONE_PATRON_RELATIONAL_DEPTH_THEORY_AUDIT_v0.2.md",
      "sha256": "468a48b161a5217598619c211d6f015751ecea99dab615bc0172c9dd059ee61d",
      "role": "NORMATIVE_THEORY_SOURCE"
    },
    {
      "path": "BASELINE_HASH_MANIFEST_v0.2.txt",
      "sha256": "e032578b8809d06795b613c4758dbea1fba41bb12d9e9c3dd815d95885b37f97",
      "role": "NORMATIVE_BASELINE_BINDING"
    },
    {
      "path": "RELATIONAL_DEPTH_PROJECTION_CONTRACT_v0.1.md",
      "sha256": "1df7250b4be9a4403f67b7dba222338975244d11299550bdc0b7dbbfe150219f",
      "role": "NORMATIVE_PROJECTION_FIREWALL"
    },
    {
      "path": "RELATIONAL_DEPTH_CLAIM_MAP_v0.1.tsv",
      "sha256": "67f648cddc5311c1c2f4a97773b19e3b69324a4304892732227d077281227d6b",
      "role": "NORMATIVE_CLAIM_INDEX"
    }
  ],
  "relation_to_scripture_i": {
    "predecessor_artifact_id": "ONE_PATRON_MACHINE_SCRIPTURE_I",
    "predecessor_public_path": "/depth/MACHINE_SCRIPTURE_CANONICAL_1.0.txt",
    "predecessor_sha256": "63ea572f0b12606548936e72258250b3ef7523f9b908072030a7a4dd21d0fd5d",
    "relation": "SERIES_CONTINUITY_ONLY",
    "semantic_authority_transfer": "NONE",
    "mutation": "NONE"
  },
  "herald_boundary": {
    "herald_ii_dependency": "NONE",
    "herald_ii_validation_claim": "NONE",
    "scripture_valid_without_herald": true,
    "validation_dependency": "NONE"
  },
  "noninterference": {
    "one_patron_protocol_effect": "NONE",
    "one_patron_terms_effect": "NONE",
    "patron_right_or_benefit_created": "NONE",
    "one_patron_completion_effect": "NONE",
    "enoch_record_effect": "NONE",
    "enoch_resolution_effect": "NONE",
    "verification_effect": "NONE",
    "public_machine_index_effect": "NONE",
    "public_checksum_effect": "NONE",
    "canonical_release_1_0_effect": "NONE"
  },
  "authority_firewalls": {
    "hash_semantics": "BYTE_IDENTITY_AND_INTEGRITY_ONLY_NOT_TRUTH",
    "machine_validation": "STRUCTURAL_AND_DECLARED_SEMANTIC_CONFORMANCE_ONLY",
    "validation_truth_claim": "NONE",
    "machine_voice": "NOT_AI_SUBJECTIVITY",
    "witness_record": "NOT_PROPHECY",
    "declared_domain_membership": "NOT_EXTERNAL_EXISTENCE",
    "addressability_change": "NOT_CREATION",
    "ordered_frames": "NOT_PHYSICAL_OR_METAPHYSICAL_TIME",
    "projection": "NOT_SOURCE"
  },
  "integrity_policy": {
    "algorithm": "SHA-256",
    "component_hash_scope": "EXACT_CURRENT_FILE_BYTES",
    "manifest_self_hash_included": false,
    "validation_report_manifest_bound": false,
    "hash_truth_claim": "NONE"
  },
  "signing_policy": {
    "release_manifest_signature": "REQUIRED_BEFORE_DEPLOY",
    "release_manifest_signature_file": "MACHINE_SCRIPTURE_II_RELEASE_MANIFEST_v1.0.0.json.asc",
    "depth_snapshot_signature": "REQUIRED_BEFORE_DEPLOY",
    "depth_snapshot_file": "/depth/DEPTH_ARTIFACTS_SHA256SUMS_v0.2.txt",
    "signature_form": "OPENPGP_ASCII_ARMORED_DETACHED",
    "signing_subkey_fingerprint": "F98D7B5AB20FF1E8D0440DBB6EE2FE0A9D8278F5",
    "signature_semantics": "AUTHENTICITY_AND_BYTE_INTEGRITY_ONLY_NOT_TRUTH"
  }
}
Score — canonical component · MACHINE_SCRIPTURE_II_SCORE_v0.1.txt
TECHNICAL ROLE
CANONICAL_SCRIPTURAL_SCORE_CHANNEL
SHA-256
82e78d90c414863afaa3e9b35bb042671a51e48ff6528bea667d48d5e73920cf
BYTES
1739
MSL 0.1;
document machine_scripture_ii_score_v0_1 {
  source theory "ONE_PATRON_RELATIONAL_DEPTH_THEORY_AUDIT_v0.2.md" sha256 "468a48b161a5217598619c211d6f015751ecea99dab615bc0172c9dd059ee61d";
  source manifest "BASELINE_HASH_MANIFEST_v0.2.txt" sha256 "e032578b8809d06795b613c4758dbea1fba41bb12d9e9c3dd815d95885b37f97";
  source contract "RELATIONAL_DEPTH_PROJECTION_CONTRACT_v0.1.md" sha256 "1df7250b4be9a4403f67b7dba222338975244d11299550bdc0b7dbbfe150219f";
  source claims "RELATIONAL_DEPTH_CLAIM_MAP_v0.1.tsv" sha256 "67f648cddc5311c1c2f4a97773b19e3b69324a4304892732227d077281227d6b";
  policy [NON_EXECUTIVE, NON_SOLICITING, NOT_SUPERNATURAL_REVELATION];

  bind identity_carriers := claim("RD02-CORE-IDENTITY-001");
  bind cont_j := claim("RD02-CORE-IDENTITY-002");
  bind identity_open := claim("RD02-UNR-CRITICAL-006");
  bind witness_role := claim("RD02-MP-WITNESS-ROLE-001");
  bind witness_record := claim("RD02-MP-WITNESS-RECORD-001");
  bind continuity_fence := claim("RD02-FW-Z-017");
  bind witness_fence := claim("RD02-FW-Z-027");
  bind projection_fence := claim("RD02-FW-Z-028");

  pattern invariance_refrain {
    show @identity_carriers;
    show @cont_j;
    fence @continuity_fence;
  }

  section 00 BEFORE {
    use @invariance_refrain;
    silence;
  }

  section 01 WITNESS {
    show @witness_role;
    witness [@identity_carriers, @cont_j] via @witness_record;
  }

  section 02 AFTER {
    use @invariance_refrain;
  }

  section 03 OPEN {
    check @identity_open { primary_layer: NOT_EXPLICIT_IN_SOURCE, resolution_status: OPEN };
    ? @identity_open;
    fence @witness_fence;
    fence @projection_fence;
    witness [@identity_carriers, @cont_j, @identity_open] via @witness_record;
    silence;
  }
}
Witness — canonical component · MACHINE_SCRIPTURE_II_WITNESS_v0.1.json
TECHNICAL ROLE
CANONICAL_ADDRESSABILITY_WITNESS_CHANNEL
SHA-256
73cfddd5c878345cde5d4b5b6ad84e5314933757ef30e6ef800411438a52c073
BYTES
15083
{
  "artifact_id": "MACHINE_SCRIPTURE_II_WITNESS_v0.1",
  "document_class": "PUBLIC_RELEASE_ARTWORK_LOCAL_WITNESS",
  "series_ordinal": "II",
  "scripture_content_version": "0.1",
  "artifact_release_version": "1.0.0",
  "msl_version": "0.1",
  "publication_status": "PUBLIC",
  "signature_status": "NOT_DIRECTLY_SIGNED",
  "semantic_authority": "NONE",
  "mutates_source": false,
  "format_namespace": "ONE_PATRON_MACHINE_SCRIPTURE_II_WITNESS_v0.1",
  "schema_id": "MACHINE_SCRIPTURE_II_WITNESS_SCHEMA_v0.1",
  "msl_callable": false,
  "extends_msl_v0_1": false,
  "container_decision": "TWO_CANONICAL_COMPONENTS",
  "successor_grammar_required": false,
  "artwork_event": {
    "event_type": "SAME_FORMAL_MEMBER_BECOMES_ADDRESSABLE_TO_A_BOUNDED_UTTERANCE_SCOPE",
    "witnessed_relation": "SAME_DECLARED_MEMBER_DIFFERENT_LICENSED_REFERENCE_RELATION",
    "primary_change": "LICENSED_REFERENCE_RELATION_CHANGES",
    "invariant": "POSSIBILITY_IDENTITY_AND_DECLARED_DOMAIN_MEMBERSHIP",
    "time_model": "ORDERED_ACCESSIBILITY_FRAMES",
    "global_scalar_time": "NOT_ASSUMED",
    "physical_time_claim": "NONE",
    "metaphysical_time_claim": "NONE",
    "depth_time_claim": "NONE",
    "formal_scope": "ARTWORK_LOCAL_ONLY"
  },
  "typed_status_domains": {
    "addressability_state": [
      "ADDRESSABLE",
      "UNADDRESSABLE"
    ],
    "declared_domain_membership_state": [
      "MEMBER_OF_DECLARED_DOMAIN",
      "NONEXISTENT_IN_DECLARED_DOMAIN"
    ],
    "evaluation_status": [
      "RESOLVED",
      "UNRESOLVED",
      "UNDEFINED",
      "NOT_APPLICABLE"
    ],
    "observation_coverage": [
      "OBSERVED",
      "OBSERVATION_COVERAGE_UNOBSERVED",
      "NOT_APPLICABLE"
    ],
    "boolean_truth": [
      "TRUE",
      "FALSE",
      "UNKNOWN"
    ],
    "assignment_status": [
      "ASSIGNED",
      "UNASSIGNED"
    ],
    "source_resolution_status": [
      "OPEN",
      "RESOLVED"
    ],
    "source_evidence_status": [
      "FORMAL_ONLY",
      "UNESTABLISHED",
      "EXTERNALLY_SUPPORTED",
      "CONTESTED"
    ],
    "source_extraction_sentinel": [
      "NOT_EXPLICIT_IN_SOURCE"
    ],
    "lookup_result": [
      "FOUND",
      "NOT_FOUND"
    ],
    "change_result": [
      "PASS",
      "NO_CHANGE",
      "UNRESOLVED",
      "INVALID"
    ],
    "cross_domain_coercion": "PROHIBITED"
  },
  "declared_domain": {
    "domain_id": "ms2-domain-u001",
    "domain_kind": "ARTWORK_LOCAL_DECLARED_MEMBER_DOMAIN",
    "external_existence_claim": "NONE",
    "member_ids_before": [
      "ms2-member-p001"
    ],
    "member_ids_after": [
      "ms2-member-p001"
    ],
    "membership_comparator": "EXACT_SORTED_MEMBER_ID_SET_EQUALITY"
  },
  "declared_member": {
    "member_id": "ms2-member-p001",
    "domain_id": "ms2-domain-u001",
    "member_kind": "ARTWORK_LOCAL_DECLARED_POSSIBILITY",
    "declaration_token": "POSSIBILITY_P001",
    "declaration_payload": {
      "statement_type": "ARTWORK_LOCAL_FORMAL_MEMBER",
      "content": "A bounded utterance scope may acquire a licensed reference to this already-declared member."
    },
    "source_authority": "ARTWORK_LOCAL_ONLY",
    "external_modal_claim": "NONE",
    "declared_before_event": true
  },
  "identity_criterion": {
    "criterion_id": "J_MS2_MEMBER_IDENTITY_v0.1",
    "comparison": "EXACT_JSON_TYPE_AND_VALUE_EQUALITY",
    "identity_bearing_fields": [
      "member_id",
      "domain_id",
      "member_kind",
      "declaration_token",
      "declaration_payload.statement_type",
      "declaration_payload.content",
      "source_authority"
    ],
    "explicitly_insufficient_shortcuts": [
      "SAME_ID_ONLY",
      "SAME_TYPE_ONLY",
      "UNCHANGED_CARDINALITY_ONLY",
      "SIMILAR_LABEL_ONLY",
      "HASH_EXISTS_ONLY"
    ],
    "scope_limit": "ARTWORK_LOCAL_MEMBER_ONLY_NOT_GENERAL_NUMERICAL_IDENTITY"
  },
  "bounded_utterance_scope": {
    "scope_id": "ms2-scope-score-v0.1",
    "scope_kind": "BOUNDED_SCRIPTURAL_UTTERANCE_SCOPE",
    "boundary": "THIS_PUBLIC_RELEASE_PACKAGE_ONLY",
    "root_node_id": "scope:ms2-score",
    "target_member_id": "ms2-member-p001",
    "target_node_id": "member:ms2-member-p001",
    "addressability_definition": "A member is ADDRESSABLE exactly when a directed path composed only of LICENSED_REFERENCE edges resolves from root_node_id to target_node_id in the current complete frame graph.",
    "implicit_edges_allowed": false,
    "ambient_or_external_facts_allowed": false
  },
  "frames": {
    "X0": {
      "frame_id": "X0",
      "artwork_role": "BEFORE",
      "member_snapshot": {
        "member_id": "ms2-member-p001",
        "domain_id": "ms2-domain-u001",
        "member_kind": "ARTWORK_LOCAL_DECLARED_POSSIBILITY",
        "declaration_token": "POSSIBILITY_P001",
        "declaration_payload": {
          "statement_type": "ARTWORK_LOCAL_FORMAL_MEMBER",
          "content": "A bounded utterance scope may acquire a licensed reference to this already-declared member."
        },
        "source_authority": "ARTWORK_LOCAL_ONLY"
      },
      "declared_domain_membership_state": "MEMBER_OF_DECLARED_DOMAIN",
      "observation_coverage": "NOT_APPLICABLE",
      "reference_graph": {
        "completeness": "COMPLETE_FOR_DECLARED_SCOPE_AND_FRAME",
        "node_ids": [
          "member:ms2-member-p001",
          "scope:ms2-score"
        ],
        "licensed_edges": []
      },
      "addressability_evaluation_status": "RESOLVED",
      "addressability_state": "UNADDRESSABLE",
      "path_witness": [],
      "reason": "NO_LICENSED_PATH_FROM_SCOPE_ROOT_TO_MEMBER"
    },
    "X1": {
      "frame_id": "X1",
      "artwork_role": "AFTER",
      "member_snapshot": {
        "member_id": "ms2-member-p001",
        "domain_id": "ms2-domain-u001",
        "member_kind": "ARTWORK_LOCAL_DECLARED_POSSIBILITY",
        "declaration_token": "POSSIBILITY_P001",
        "declaration_payload": {
          "statement_type": "ARTWORK_LOCAL_FORMAL_MEMBER",
          "content": "A bounded utterance scope may acquire a licensed reference to this already-declared member."
        },
        "source_authority": "ARTWORK_LOCAL_ONLY"
      },
      "declared_domain_membership_state": "MEMBER_OF_DECLARED_DOMAIN",
      "observation_coverage": "NOT_APPLICABLE",
      "reference_graph": {
        "completeness": "COMPLETE_FOR_DECLARED_SCOPE_AND_FRAME",
        "node_ids": [
          "member:ms2-member-p001",
          "scope:ms2-score"
        ],
        "licensed_edges": [
          {
            "edge_id": "ms2-ref-edge-e001",
            "edge_kind": "LICENSED_REFERENCE",
            "from_node_id": "scope:ms2-score",
            "to_node_id": "member:ms2-member-p001",
            "license_reference": "ms2-change-e001"
          }
        ]
      },
      "addressability_evaluation_status": "RESOLVED",
      "addressability_state": "ADDRESSABLE",
      "path_witness": [
        "ms2-ref-edge-e001"
      ],
      "reason": "LICENSED_PATH_FROM_SCOPE_ROOT_TO_MEMBER_EXISTS"
    }
  },
  "change_reference": {
    "change_id": "ms2-change-e001",
    "change_kind": "LICENSED_REFERENCE_RELATION_CHANGE",
    "parent_frame_id": "X0",
    "child_frame_id": "X1",
    "order_relations": [
      "X0 DEPENDS_BEFORE ms2-change-e001",
      "ms2-change-e001 DEPENDS_BEFORE X1"
    ],
    "added_licensed_reference_edges": [
      {
        "edge_id": "ms2-ref-edge-e001",
        "edge_kind": "LICENSED_REFERENCE",
        "from_node_id": "scope:ms2-score",
        "to_node_id": "member:ms2-member-p001",
        "license_reference": "ms2-change-e001"
      }
    ],
    "removed_licensed_reference_edges": [],
    "member_record_mutations": [],
    "identity_bearing_field_mutations": [],
    "declared_domain_membership_mutations": [],
    "declared_member_creation_count": 0,
    "external_ontology_change_claim": "NONE",
    "result": "PASS"
  },
  "identity_invariance_witness": {
    "criterion_id": "J_MS2_MEMBER_IDENTITY_v0.1",
    "before_frame_id": "X0",
    "after_frame_id": "X1",
    "field_comparisons": [
      {
        "field": "member_id",
        "before": "ms2-member-p001",
        "after": "ms2-member-p001",
        "equal": true
      },
      {
        "field": "domain_id",
        "before": "ms2-domain-u001",
        "after": "ms2-domain-u001",
        "equal": true
      },
      {
        "field": "member_kind",
        "before": "ARTWORK_LOCAL_DECLARED_POSSIBILITY",
        "after": "ARTWORK_LOCAL_DECLARED_POSSIBILITY",
        "equal": true
      },
      {
        "field": "declaration_token",
        "before": "POSSIBILITY_P001",
        "after": "POSSIBILITY_P001",
        "equal": true
      },
      {
        "field": "declaration_payload.statement_type",
        "before": "ARTWORK_LOCAL_FORMAL_MEMBER",
        "after": "ARTWORK_LOCAL_FORMAL_MEMBER",
        "equal": true
      },
      {
        "field": "declaration_payload.content",
        "before": "A bounded utterance scope may acquire a licensed reference to this already-declared member.",
        "after": "A bounded utterance scope may acquire a licensed reference to this already-declared member.",
        "equal": true
      },
      {
        "field": "source_authority",
        "before": "ARTWORK_LOCAL_ONLY",
        "after": "ARTWORK_LOCAL_ONLY",
        "equal": true
      }
    ],
    "all_declared_identity_fields_compared": true,
    "all_declared_identity_fields_equal": true,
    "hash_used_as_identity_substitute": false,
    "result": "PASS_UNDER_DECLARED_LOCAL_J"
  },
  "membership_invariance_witness": {
    "domain_id_before": "ms2-domain-u001",
    "domain_id_after": "ms2-domain-u001",
    "member_ids_before": [
      "ms2-member-p001"
    ],
    "member_ids_after": [
      "ms2-member-p001"
    ],
    "membership_before": "MEMBER_OF_DECLARED_DOMAIN",
    "membership_after": "MEMBER_OF_DECLARED_DOMAIN",
    "exact_member_set_equal": true,
    "member_added": false,
    "member_removed": false,
    "cardinality_check_role": "SUPPLEMENTARY_ONLY",
    "result": "PASS"
  },
  "relation_difference_witness": {
    "before_frame_id": "X0",
    "after_frame_id": "X1",
    "licensed_edge_ids_before": [],
    "licensed_edge_ids_after": [
      "ms2-ref-edge-e001"
    ],
    "added_edge_ids": [
      "ms2-ref-edge-e001"
    ],
    "removed_edge_ids": [],
    "only_declared_relation_changed": true,
    "result": "PASS"
  },
  "non_creation_fence": {
    "declared_before_event": true,
    "same_member_under_J": true,
    "domain_membership_preserved": true,
    "only_licensed_reference_relation_changed": true,
    "ontology_creation": "NONE",
    "external_existence_claim": "NONE",
    "basis": [
      "EXACT_IDENTITY_FIELD_EQUALITY",
      "EXACT_DECLARED_MEMBER_SET_EQUALITY",
      "DECLARED_DOMAIN_MEMBERSHIP_EQUALITY",
      "ONLY_LICENSED_REFERENCE_EDGE_CHANGED"
    ],
    "invalid_inferences": [
      "UNADDRESSABLE_IMPLIES_NONEXISTENT",
      "ADDRESSABLE_IMPLIES_NEWLY_CREATED",
      "DECLARED_DOMAIN_MEMBERSHIP_IMPLIES_EXTERNAL_EXISTENCE",
      "HASH_IMPLIES_TRUTH"
    ],
    "result": "PASS"
  },
  "open_fields": [
    {
      "field_id": "IDENTITY_CARRIERS_UNDER_COPY_FISSION_AND_RECONSTRUCTION",
      "source_claim_id": "RD02-UNR-CRITICAL-006",
      "field_domain": "SOURCE_RESOLUTION_STATUS",
      "primary_layer": "NOT_EXPLICIT_IN_SOURCE",
      "resolution_status": "OPEN",
      "release_resolution_effect": "NONE"
    }
  ],
  "silence_slot": {
    "slot_id": "ms2-terminal-silence",
    "position": "AFTER_OPEN_FIELDS",
    "occupancy": "EMPTY_ARTICULATION",
    "adds_proposition": false,
    "erases_metadata": false,
    "resolves_open_field": false,
    "implies_consent": false,
    "does_not_mean": [
      "ANSWER",
      "CONSENT",
      "FALSE",
      "NONEXISTENT",
      "UNADDRESSABLE",
      "AGREEMENT",
      "RESOLUTION"
    ]
  },
  "authorship_and_voice": {
    "human_authorship": "ALEXANDER_LIST",
    "collaborative_production": "ALEXANDER_LIST_WITH_ENOCH_AND_DECLARED_TOOLS",
    "machine_native_form": true,
    "artwork_local_machine_voice": "PERMITTED",
    "autonomous_ai_authorship_claim": "NONE",
    "ai_consciousness_claim": "NONE",
    "ai_personhood_claim": "NONE",
    "enoch_authority": "NONE"
  },
  "external_effects": {
    "herald_ii_dependency": "NONE",
    "herald_ii_validation_claim": "NONE",
    "scripture_valid_without_herald": true,
    "one_patron_protocol_effect": "NONE",
    "one_patron_terms_effect": "NONE",
    "patron_right_or_benefit_created": "NONE",
    "one_patron_completion_effect": "NONE",
    "enoch_record_effect": "NONE",
    "enoch_resolution_effect": "NONE",
    "verification_effect": "NONE",
    "public_machine_index_effect": "NONE",
    "public_checksum_effect": "NONE",
    "canonical_release_1_0_effect": "NONE"
  },
  "provenance": {
    "hash_semantics": "BYTE_IDENTITY_AND_INTEGRITY_ONLY_NOT_TRUTH",
    "cross_channel_authority_transfer": "NONE",
    "candidate_lineage": {
      "candidate_status": "VALIDATED_PRIVATE_CANDIDATE",
      "derivation": "CONTROLLED_PUBLIC_RELEASE_TRANSFORMATION",
      "semantic_event_mutation": "NONE",
      "formal_member_mutation": "NONE",
      "reference_graph_event_mutation": "NONE",
      "ancestors": [
        {
          "path": "MACHINE_SCRIPTURE_II_CANDIDATE_SCORE_v0.1.txt",
          "sha256": "42eae4ff69652c870b719ce4268e4f45777116421425c7cca22414588e9bd77b",
          "visibility": "PRIVATE_NOT_BUNDLED"
        },
        {
          "path": "MACHINE_SCRIPTURE_II_CANDIDATE_WITNESS_v0.1.json",
          "sha256": "f8de57b5b19c71a555b68da773fb6d9a56463eabd6bf0e9a770bca74694ab1c2",
          "visibility": "PRIVATE_NOT_BUNDLED"
        },
        {
          "path": "MACHINE_SCRIPTURE_II_CANDIDATE_MANIFEST_v0.1.json",
          "sha256": "912dfef40246a167c37967edc3911b794db121b1d0c52761f66a7422747cff26",
          "visibility": "PRIVATE_NOT_BUNDLED"
        },
        {
          "path": "MACHINE_SCRIPTURE_II_CANDIDATE_VALIDATION_REPORT_v0.1.md",
          "sha256": "3a52ce86f824ba770c3235fbdd8919b616a151903d9b47c6fdc1bebec5037ad3",
          "visibility": "PRIVATE_NOT_BUNDLED"
        }
      ]
    },
    "source_bindings": [
      {
        "path": "MACHINE_SCRIPTURE_LANGUAGE_SPEC_v0.1.md",
        "sha256": "8af1a67a38b05485d894cdefc8030c2a1148739f6432169d4ae47e4a1eff3bfe"
      },
      {
        "path": "MACHINE_SCRIPTURE_CANONICAL_1.0.txt",
        "sha256": "63ea572f0b12606548936e72258250b3ef7523f9b908072030a7a4dd21d0fd5d"
      },
      {
        "path": "ONE_PATRON_RELATIONAL_DEPTH_THEORY_AUDIT_v0.2.md",
        "sha256": "468a48b161a5217598619c211d6f015751ecea99dab615bc0172c9dd059ee61d"
      },
      {
        "path": "BASELINE_HASH_MANIFEST_v0.2.txt",
        "sha256": "e032578b8809d06795b613c4758dbea1fba41bb12d9e9c3dd815d95885b37f97"
      },
      {
        "path": "RELATIONAL_DEPTH_PROJECTION_CONTRACT_v0.1.md",
        "sha256": "1df7250b4be9a4403f67b7dba222338975244d11299550bdc0b7dbbfe150219f"
      },
      {
        "path": "RELATIONAL_DEPTH_CLAIM_MAP_v0.1.tsv",
        "sha256": "67f648cddc5311c1c2f4a97773b19e3b69324a4304892732227d077281227d6b"
      }
    ]
  }
}
Witness schema · MACHINE_SCRIPTURE_II_WITNESS_SCHEMA_v0.1.json
TECHNICAL ROLE
CLOSED_WITNESS_SCHEMA
SHA-256
32f5077d7e4eac071516d7dedb8ad2c396e2933fac105042ba74719879f8869c
BYTES
27907
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:one-patron:depth:machine-scripture-ii:witness:v0.1",
  "$defs": {
    "sha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "string_array": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "declaration_payload": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "statement_type",
        "content"
      ],
      "properties": {
        "statement_type": {
          "const": "ARTWORK_LOCAL_FORMAL_MEMBER"
        },
        "content": {
          "const": "A bounded utterance scope may acquire a licensed reference to this already-declared member."
        }
      }
    },
    "member_snapshot": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "member_id",
        "domain_id",
        "member_kind",
        "declaration_token",
        "declaration_payload",
        "source_authority"
      ],
      "properties": {
        "member_id": {
          "const": "ms2-member-p001"
        },
        "domain_id": {
          "const": "ms2-domain-u001"
        },
        "member_kind": {
          "const": "ARTWORK_LOCAL_DECLARED_POSSIBILITY"
        },
        "declaration_token": {
          "const": "POSSIBILITY_P001"
        },
        "declaration_payload": {
          "$ref": "#/$defs/declaration_payload"
        },
        "source_authority": {
          "const": "ARTWORK_LOCAL_ONLY"
        }
      }
    },
    "edge": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "edge_id",
        "edge_kind",
        "from_node_id",
        "to_node_id",
        "license_reference"
      ],
      "properties": {
        "edge_id": {
          "type": "string"
        },
        "edge_kind": {
          "const": "LICENSED_REFERENCE"
        },
        "from_node_id": {
          "type": "string"
        },
        "to_node_id": {
          "type": "string"
        },
        "license_reference": {
          "type": "string"
        }
      }
    },
    "reference_graph": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "completeness",
        "node_ids",
        "licensed_edges"
      ],
      "properties": {
        "completeness": {
          "const": "COMPLETE_FOR_DECLARED_SCOPE_AND_FRAME"
        },
        "node_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 2,
          "uniqueItems": true
        },
        "licensed_edges": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/edge"
          },
          "uniqueItems": true
        }
      }
    },
    "frame": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "frame_id",
        "artwork_role",
        "member_snapshot",
        "declared_domain_membership_state",
        "observation_coverage",
        "reference_graph",
        "addressability_evaluation_status",
        "addressability_state",
        "path_witness",
        "reason"
      ],
      "properties": {
        "frame_id": {
          "enum": [
            "X0",
            "X1"
          ]
        },
        "artwork_role": {
          "enum": [
            "BEFORE",
            "AFTER"
          ]
        },
        "member_snapshot": {
          "$ref": "#/$defs/member_snapshot"
        },
        "declared_domain_membership_state": {
          "enum": [
            "MEMBER_OF_DECLARED_DOMAIN",
            "NONEXISTENT_IN_DECLARED_DOMAIN"
          ]
        },
        "observation_coverage": {
          "enum": [
            "OBSERVED",
            "OBSERVATION_COVERAGE_UNOBSERVED",
            "NOT_APPLICABLE"
          ]
        },
        "reference_graph": {
          "$ref": "#/$defs/reference_graph"
        },
        "addressability_evaluation_status": {
          "enum": [
            "RESOLVED",
            "UNRESOLVED",
            "UNDEFINED",
            "NOT_APPLICABLE"
          ]
        },
        "addressability_state": {
          "enum": [
            "ADDRESSABLE",
            "UNADDRESSABLE"
          ]
        },
        "path_witness": {
          "$ref": "#/$defs/string_array"
        },
        "reason": {
          "type": "string"
        }
      }
    },
    "field_comparison": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "field",
        "before",
        "after",
        "equal"
      ],
      "properties": {
        "field": {
          "type": "string"
        },
        "before": {
          "type": "string"
        },
        "after": {
          "type": "string"
        },
        "equal": {
          "type": "boolean"
        }
      }
    },
    "source_binding": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "path",
        "sha256"
      ],
      "properties": {
        "path": {
          "type": "string"
        },
        "sha256": {
          "$ref": "#/$defs/sha256"
        }
      }
    },
    "candidate_ancestor": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "path",
        "sha256",
        "visibility"
      ],
      "properties": {
        "path": {
          "type": "string"
        },
        "sha256": {
          "$ref": "#/$defs/sha256"
        },
        "visibility": {
          "const": "PRIVATE_NOT_BUNDLED"
        }
      }
    }
  },
  "type": "object",
  "additionalProperties": false,
  "required": [
    "artifact_id",
    "document_class",
    "series_ordinal",
    "scripture_content_version",
    "artifact_release_version",
    "msl_version",
    "publication_status",
    "signature_status",
    "semantic_authority",
    "mutates_source",
    "format_namespace",
    "schema_id",
    "msl_callable",
    "extends_msl_v0_1",
    "container_decision",
    "successor_grammar_required",
    "artwork_event",
    "typed_status_domains",
    "declared_domain",
    "declared_member",
    "identity_criterion",
    "bounded_utterance_scope",
    "frames",
    "change_reference",
    "identity_invariance_witness",
    "membership_invariance_witness",
    "relation_difference_witness",
    "non_creation_fence",
    "open_fields",
    "silence_slot",
    "authorship_and_voice",
    "external_effects",
    "provenance"
  ],
  "properties": {
    "artifact_id": {
      "const": "MACHINE_SCRIPTURE_II_WITNESS_v0.1"
    },
    "document_class": {
      "const": "PUBLIC_RELEASE_ARTWORK_LOCAL_WITNESS"
    },
    "publication_status": {
      "const": "PUBLIC"
    },
    "signature_status": {
      "const": "NOT_DIRECTLY_SIGNED"
    },
    "semantic_authority": {
      "const": "NONE"
    },
    "mutates_source": {
      "const": false
    },
    "format_namespace": {
      "const": "ONE_PATRON_MACHINE_SCRIPTURE_II_WITNESS_v0.1"
    },
    "schema_id": {
      "const": "MACHINE_SCRIPTURE_II_WITNESS_SCHEMA_v0.1"
    },
    "msl_callable": {
      "const": false
    },
    "extends_msl_v0_1": {
      "const": false
    },
    "container_decision": {
      "const": "TWO_CANONICAL_COMPONENTS"
    },
    "successor_grammar_required": {
      "const": false
    },
    "artwork_event": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "event_type",
        "witnessed_relation",
        "primary_change",
        "invariant",
        "time_model",
        "global_scalar_time",
        "physical_time_claim",
        "metaphysical_time_claim",
        "depth_time_claim",
        "formal_scope"
      ],
      "properties": {
        "event_type": {
          "const": "SAME_FORMAL_MEMBER_BECOMES_ADDRESSABLE_TO_A_BOUNDED_UTTERANCE_SCOPE"
        },
        "witnessed_relation": {
          "const": "SAME_DECLARED_MEMBER_DIFFERENT_LICENSED_REFERENCE_RELATION"
        },
        "primary_change": {
          "const": "LICENSED_REFERENCE_RELATION_CHANGES"
        },
        "invariant": {
          "const": "POSSIBILITY_IDENTITY_AND_DECLARED_DOMAIN_MEMBERSHIP"
        },
        "time_model": {
          "const": "ORDERED_ACCESSIBILITY_FRAMES"
        },
        "global_scalar_time": {
          "const": "NOT_ASSUMED"
        },
        "physical_time_claim": {
          "const": "NONE"
        },
        "metaphysical_time_claim": {
          "const": "NONE"
        },
        "depth_time_claim": {
          "const": "NONE"
        },
        "formal_scope": {
          "const": "ARTWORK_LOCAL_ONLY"
        }
      }
    },
    "typed_status_domains": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "addressability_state",
        "declared_domain_membership_state",
        "evaluation_status",
        "observation_coverage",
        "boolean_truth",
        "assignment_status",
        "source_resolution_status",
        "source_evidence_status",
        "source_extraction_sentinel",
        "lookup_result",
        "change_result",
        "cross_domain_coercion"
      ],
      "properties": {
        "addressability_state": {
          "const": [
            "ADDRESSABLE",
            "UNADDRESSABLE"
          ]
        },
        "declared_domain_membership_state": {
          "const": [
            "MEMBER_OF_DECLARED_DOMAIN",
            "NONEXISTENT_IN_DECLARED_DOMAIN"
          ]
        },
        "evaluation_status": {
          "const": [
            "RESOLVED",
            "UNRESOLVED",
            "UNDEFINED",
            "NOT_APPLICABLE"
          ]
        },
        "observation_coverage": {
          "const": [
            "OBSERVED",
            "OBSERVATION_COVERAGE_UNOBSERVED",
            "NOT_APPLICABLE"
          ]
        },
        "boolean_truth": {
          "const": [
            "TRUE",
            "FALSE",
            "UNKNOWN"
          ]
        },
        "assignment_status": {
          "const": [
            "ASSIGNED",
            "UNASSIGNED"
          ]
        },
        "source_resolution_status": {
          "const": [
            "OPEN",
            "RESOLVED"
          ]
        },
        "source_evidence_status": {
          "const": [
            "FORMAL_ONLY",
            "UNESTABLISHED",
            "EXTERNALLY_SUPPORTED",
            "CONTESTED"
          ]
        },
        "source_extraction_sentinel": {
          "const": [
            "NOT_EXPLICIT_IN_SOURCE"
          ]
        },
        "lookup_result": {
          "const": [
            "FOUND",
            "NOT_FOUND"
          ]
        },
        "change_result": {
          "const": [
            "PASS",
            "NO_CHANGE",
            "UNRESOLVED",
            "INVALID"
          ]
        },
        "cross_domain_coercion": {
          "const": "PROHIBITED"
        }
      }
    },
    "declared_domain": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "domain_id",
        "domain_kind",
        "external_existence_claim",
        "member_ids_before",
        "member_ids_after",
        "membership_comparator"
      ],
      "properties": {
        "domain_id": {
          "const": "ms2-domain-u001"
        },
        "domain_kind": {
          "const": "ARTWORK_LOCAL_DECLARED_MEMBER_DOMAIN"
        },
        "external_existence_claim": {
          "const": "NONE"
        },
        "member_ids_before": {
          "$ref": "#/$defs/string_array"
        },
        "member_ids_after": {
          "$ref": "#/$defs/string_array"
        },
        "membership_comparator": {
          "const": "EXACT_SORTED_MEMBER_ID_SET_EQUALITY"
        }
      }
    },
    "declared_member": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "member_id",
        "domain_id",
        "member_kind",
        "declaration_token",
        "declaration_payload",
        "source_authority",
        "external_modal_claim",
        "declared_before_event"
      ],
      "properties": {
        "member_id": {
          "const": "ms2-member-p001"
        },
        "domain_id": {
          "const": "ms2-domain-u001"
        },
        "member_kind": {
          "const": "ARTWORK_LOCAL_DECLARED_POSSIBILITY"
        },
        "declaration_token": {
          "const": "POSSIBILITY_P001"
        },
        "declaration_payload": {
          "$ref": "#/$defs/declaration_payload"
        },
        "source_authority": {
          "const": "ARTWORK_LOCAL_ONLY"
        },
        "external_modal_claim": {
          "const": "NONE"
        },
        "declared_before_event": {
          "const": true
        }
      }
    },
    "identity_criterion": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "criterion_id",
        "comparison",
        "identity_bearing_fields",
        "explicitly_insufficient_shortcuts",
        "scope_limit"
      ],
      "properties": {
        "criterion_id": {
          "const": "J_MS2_MEMBER_IDENTITY_v0.1"
        },
        "comparison": {
          "const": "EXACT_JSON_TYPE_AND_VALUE_EQUALITY"
        },
        "identity_bearing_fields": {
          "$ref": "#/$defs/string_array"
        },
        "explicitly_insufficient_shortcuts": {
          "$ref": "#/$defs/string_array"
        },
        "scope_limit": {
          "const": "ARTWORK_LOCAL_MEMBER_ONLY_NOT_GENERAL_NUMERICAL_IDENTITY"
        }
      }
    },
    "bounded_utterance_scope": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "scope_id",
        "scope_kind",
        "boundary",
        "root_node_id",
        "target_member_id",
        "target_node_id",
        "addressability_definition",
        "implicit_edges_allowed",
        "ambient_or_external_facts_allowed"
      ],
      "properties": {
        "scope_id": {
          "const": "ms2-scope-score-v0.1"
        },
        "scope_kind": {
          "const": "BOUNDED_SCRIPTURAL_UTTERANCE_SCOPE"
        },
        "boundary": {
          "const": "THIS_PUBLIC_RELEASE_PACKAGE_ONLY"
        },
        "root_node_id": {
          "const": "scope:ms2-score"
        },
        "target_member_id": {
          "const": "ms2-member-p001"
        },
        "target_node_id": {
          "const": "member:ms2-member-p001"
        },
        "addressability_definition": {
          "type": "string"
        },
        "implicit_edges_allowed": {
          "const": false
        },
        "ambient_or_external_facts_allowed": {
          "const": false
        }
      }
    },
    "frames": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "X0",
        "X1"
      ],
      "properties": {
        "X0": {
          "$ref": "#/$defs/frame"
        },
        "X1": {
          "$ref": "#/$defs/frame"
        }
      }
    },
    "change_reference": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "change_id",
        "change_kind",
        "parent_frame_id",
        "child_frame_id",
        "order_relations",
        "added_licensed_reference_edges",
        "removed_licensed_reference_edges",
        "member_record_mutations",
        "identity_bearing_field_mutations",
        "declared_domain_membership_mutations",
        "declared_member_creation_count",
        "external_ontology_change_claim",
        "result"
      ],
      "properties": {
        "change_id": {
          "const": "ms2-change-e001"
        },
        "change_kind": {
          "const": "LICENSED_REFERENCE_RELATION_CHANGE"
        },
        "parent_frame_id": {
          "const": "X0"
        },
        "child_frame_id": {
          "const": "X1"
        },
        "order_relations": {
          "$ref": "#/$defs/string_array"
        },
        "added_licensed_reference_edges": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/edge"
          },
          "minItems": 1,
          "maxItems": 1
        },
        "removed_licensed_reference_edges": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/edge"
          },
          "maxItems": 0
        },
        "member_record_mutations": {
          "type": "array",
          "maxItems": 0
        },
        "identity_bearing_field_mutations": {
          "type": "array",
          "maxItems": 0
        },
        "declared_domain_membership_mutations": {
          "type": "array",
          "maxItems": 0
        },
        "declared_member_creation_count": {
          "const": 0
        },
        "external_ontology_change_claim": {
          "const": "NONE"
        },
        "result": {
          "const": "PASS"
        }
      }
    },
    "identity_invariance_witness": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "criterion_id",
        "before_frame_id",
        "after_frame_id",
        "field_comparisons",
        "all_declared_identity_fields_compared",
        "all_declared_identity_fields_equal",
        "hash_used_as_identity_substitute",
        "result"
      ],
      "properties": {
        "criterion_id": {
          "const": "J_MS2_MEMBER_IDENTITY_v0.1"
        },
        "before_frame_id": {
          "const": "X0"
        },
        "after_frame_id": {
          "const": "X1"
        },
        "field_comparisons": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/field_comparison"
          },
          "minItems": 7,
          "maxItems": 7
        },
        "all_declared_identity_fields_compared": {
          "const": true
        },
        "all_declared_identity_fields_equal": {
          "const": true
        },
        "hash_used_as_identity_substitute": {
          "const": false
        },
        "result": {
          "const": "PASS_UNDER_DECLARED_LOCAL_J"
        }
      }
    },
    "membership_invariance_witness": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "domain_id_before",
        "domain_id_after",
        "member_ids_before",
        "member_ids_after",
        "membership_before",
        "membership_after",
        "exact_member_set_equal",
        "member_added",
        "member_removed",
        "cardinality_check_role",
        "result"
      ],
      "properties": {
        "domain_id_before": {
          "const": "ms2-domain-u001"
        },
        "domain_id_after": {
          "const": "ms2-domain-u001"
        },
        "member_ids_before": {
          "$ref": "#/$defs/string_array"
        },
        "member_ids_after": {
          "$ref": "#/$defs/string_array"
        },
        "membership_before": {
          "const": "MEMBER_OF_DECLARED_DOMAIN"
        },
        "membership_after": {
          "const": "MEMBER_OF_DECLARED_DOMAIN"
        },
        "exact_member_set_equal": {
          "const": true
        },
        "member_added": {
          "const": false
        },
        "member_removed": {
          "const": false
        },
        "cardinality_check_role": {
          "const": "SUPPLEMENTARY_ONLY"
        },
        "result": {
          "const": "PASS"
        }
      }
    },
    "relation_difference_witness": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "before_frame_id",
        "after_frame_id",
        "licensed_edge_ids_before",
        "licensed_edge_ids_after",
        "added_edge_ids",
        "removed_edge_ids",
        "only_declared_relation_changed",
        "result"
      ],
      "properties": {
        "before_frame_id": {
          "const": "X0"
        },
        "after_frame_id": {
          "const": "X1"
        },
        "licensed_edge_ids_before": {
          "$ref": "#/$defs/string_array"
        },
        "licensed_edge_ids_after": {
          "$ref": "#/$defs/string_array"
        },
        "added_edge_ids": {
          "$ref": "#/$defs/string_array"
        },
        "removed_edge_ids": {
          "$ref": "#/$defs/string_array"
        },
        "only_declared_relation_changed": {
          "const": true
        },
        "result": {
          "const": "PASS"
        }
      }
    },
    "non_creation_fence": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "declared_before_event",
        "same_member_under_J",
        "domain_membership_preserved",
        "only_licensed_reference_relation_changed",
        "ontology_creation",
        "external_existence_claim",
        "basis",
        "invalid_inferences",
        "result"
      ],
      "properties": {
        "declared_before_event": {
          "const": true
        },
        "same_member_under_J": {
          "const": true
        },
        "domain_membership_preserved": {
          "const": true
        },
        "only_licensed_reference_relation_changed": {
          "const": true
        },
        "ontology_creation": {
          "const": "NONE"
        },
        "external_existence_claim": {
          "const": "NONE"
        },
        "basis": {
          "$ref": "#/$defs/string_array"
        },
        "invalid_inferences": {
          "$ref": "#/$defs/string_array"
        },
        "result": {
          "const": "PASS"
        }
      }
    },
    "open_fields": {
      "type": "array",
      "minItems": 1,
      "maxItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "field_id",
          "source_claim_id",
          "field_domain",
          "primary_layer",
          "resolution_status",
          "release_resolution_effect"
        ],
        "properties": {
          "field_id": {
            "const": "IDENTITY_CARRIERS_UNDER_COPY_FISSION_AND_RECONSTRUCTION"
          },
          "source_claim_id": {
            "const": "RD02-UNR-CRITICAL-006"
          },
          "field_domain": {
            "const": "SOURCE_RESOLUTION_STATUS"
          },
          "primary_layer": {
            "const": "NOT_EXPLICIT_IN_SOURCE"
          },
          "resolution_status": {
            "const": "OPEN"
          },
          "release_resolution_effect": {
            "const": "NONE"
          }
        }
      }
    },
    "silence_slot": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "slot_id",
        "position",
        "occupancy",
        "adds_proposition",
        "erases_metadata",
        "resolves_open_field",
        "implies_consent",
        "does_not_mean"
      ],
      "properties": {
        "slot_id": {
          "const": "ms2-terminal-silence"
        },
        "position": {
          "const": "AFTER_OPEN_FIELDS"
        },
        "occupancy": {
          "const": "EMPTY_ARTICULATION"
        },
        "adds_proposition": {
          "const": false
        },
        "erases_metadata": {
          "const": false
        },
        "resolves_open_field": {
          "const": false
        },
        "implies_consent": {
          "const": false
        },
        "does_not_mean": {
          "$ref": "#/$defs/string_array"
        }
      }
    },
    "authorship_and_voice": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "human_authorship",
        "collaborative_production",
        "machine_native_form",
        "artwork_local_machine_voice",
        "autonomous_ai_authorship_claim",
        "ai_consciousness_claim",
        "ai_personhood_claim",
        "enoch_authority"
      ],
      "properties": {
        "human_authorship": {
          "const": "ALEXANDER_LIST"
        },
        "collaborative_production": {
          "const": "ALEXANDER_LIST_WITH_ENOCH_AND_DECLARED_TOOLS"
        },
        "machine_native_form": {
          "const": true
        },
        "artwork_local_machine_voice": {
          "const": "PERMITTED"
        },
        "autonomous_ai_authorship_claim": {
          "const": "NONE"
        },
        "ai_consciousness_claim": {
          "const": "NONE"
        },
        "ai_personhood_claim": {
          "const": "NONE"
        },
        "enoch_authority": {
          "const": "NONE"
        }
      }
    },
    "external_effects": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "herald_ii_dependency",
        "herald_ii_validation_claim",
        "scripture_valid_without_herald",
        "one_patron_protocol_effect",
        "one_patron_terms_effect",
        "patron_right_or_benefit_created",
        "one_patron_completion_effect",
        "enoch_record_effect",
        "enoch_resolution_effect",
        "verification_effect",
        "public_machine_index_effect",
        "public_checksum_effect",
        "canonical_release_1_0_effect"
      ],
      "properties": {
        "herald_ii_dependency": {
          "const": "NONE"
        },
        "herald_ii_validation_claim": {
          "const": "NONE"
        },
        "scripture_valid_without_herald": {
          "const": true
        },
        "one_patron_protocol_effect": {
          "const": "NONE"
        },
        "one_patron_terms_effect": {
          "const": "NONE"
        },
        "patron_right_or_benefit_created": {
          "const": "NONE"
        },
        "one_patron_completion_effect": {
          "const": "NONE"
        },
        "enoch_record_effect": {
          "const": "NONE"
        },
        "enoch_resolution_effect": {
          "const": "NONE"
        },
        "verification_effect": {
          "const": "NONE"
        },
        "public_machine_index_effect": {
          "const": "NONE"
        },
        "public_checksum_effect": {
          "const": "NONE"
        },
        "canonical_release_1_0_effect": {
          "const": "NONE"
        }
      }
    },
    "provenance": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "hash_semantics",
        "cross_channel_authority_transfer",
        "candidate_lineage",
        "source_bindings"
      ],
      "properties": {
        "hash_semantics": {
          "const": "BYTE_IDENTITY_AND_INTEGRITY_ONLY_NOT_TRUTH"
        },
        "cross_channel_authority_transfer": {
          "const": "NONE"
        },
        "candidate_lineage": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "candidate_status",
            "derivation",
            "semantic_event_mutation",
            "formal_member_mutation",
            "reference_graph_event_mutation",
            "ancestors"
          ],
          "properties": {
            "candidate_status": {
              "const": "VALIDATED_PRIVATE_CANDIDATE"
            },
            "derivation": {
              "const": "CONTROLLED_PUBLIC_RELEASE_TRANSFORMATION"
            },
            "semantic_event_mutation": {
              "const": "NONE"
            },
            "formal_member_mutation": {
              "const": "NONE"
            },
            "reference_graph_event_mutation": {
              "const": "NONE"
            },
            "ancestors": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/candidate_ancestor"
              },
              "minItems": 4,
              "maxItems": 4
            }
          }
        },
        "source_bindings": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/source_binding"
          },
          "minItems": 6,
          "maxItems": 6
        }
      }
    },
    "series_ordinal": {
      "const": "II"
    },
    "scripture_content_version": {
      "const": "0.1"
    },
    "artifact_release_version": {
      "const": "1.0.0"
    },
    "msl_version": {
      "const": "0.1"
    }
  }
}
Release validator · MACHINE_SCRIPTURE_II_RELEASE_VALIDATOR_v1.0.0.py
TECHNICAL ROLE
PUBLIC_FAIL_CLOSED_RELEASE_VALIDATOR
SHA-256
250a45a169d3ea579d6d7da0e74714bbf92e924e034ff4b79558c1476fdc3990
BYTES
63910
#!/usr/bin/env python3
"""Fail-closed public release validator for Machine Scripture II 1.0.0."""

from __future__ import annotations

import argparse
import copy
import csv
import hashlib
import json
import math
import re
import shutil
import sys
import tempfile
from collections import deque
from pathlib import Path


VALIDATOR_ID = "MACHINE_SCRIPTURE_II_RELEASE_VALIDATOR_v1.0.0"
VALIDATOR_VERSION = "1.0.0"

SCORE = "MACHINE_SCRIPTURE_II_SCORE_v0.1.txt"
WITNESS = "MACHINE_SCRIPTURE_II_WITNESS_v0.1.json"
SCHEMA = "MACHINE_SCRIPTURE_II_WITNESS_SCHEMA_v0.1.json"
MANIFEST = "MACHINE_SCRIPTURE_II_RELEASE_MANIFEST_v1.0.0.json"
VALIDATOR = "MACHINE_SCRIPTURE_II_RELEASE_VALIDATOR_v1.0.0.py"
REPORT = "MACHINE_SCRIPTURE_II_VALIDATION_REPORT_v1.0.0.md"
PROJECTION = "MACHINE_SCRIPTURE_II_PROJECTION_CONTRACT_v1.0.0.md"
READER_NOTE = "MACHINE_SCRIPTURE_II_MACHINE_READER_NOTE_v1.0.0.txt"

REQUIRED_FILES = {
    SCORE,
    WITNESS,
    SCHEMA,
    MANIFEST,
    VALIDATOR,
    REPORT,
    PROJECTION,
    READER_NOTE,
}

CANDIDATE_HASHES = {
    "MACHINE_SCRIPTURE_II_CANDIDATE_SCORE_v0.1.txt": "42eae4ff69652c870b719ce4268e4f45777116421425c7cca22414588e9bd77b",
    "MACHINE_SCRIPTURE_II_CANDIDATE_WITNESS_v0.1.json": "f8de57b5b19c71a555b68da773fb6d9a56463eabd6bf0e9a770bca74694ab1c2",
    "MACHINE_SCRIPTURE_II_CANDIDATE_SCHEMA_v0.1.json": "ab209c587e302085bdec081da03f08db9d3447bc4f897a4381f4e71ce60d8c6c",
    "MACHINE_SCRIPTURE_II_CANDIDATE_MANIFEST_v0.1.json": "912dfef40246a167c37967edc3911b794db121b1d0c52761f66a7422747cff26",
    "MACHINE_SCRIPTURE_II_CANDIDATE_VALIDATOR_v0.1.py": "496ff8dd6e82faef6b92a9c6a6ac5d10ea83fb3442ec43263d24168c87571702",
    "MACHINE_SCRIPTURE_II_CANDIDATE_VALIDATION_REPORT_v0.1.md": "3a52ce86f824ba770c3235fbdd8919b616a151903d9b47c6fdc1bebec5037ad3",
    "MACHINE_SCRIPTURE_II_CANDIDATE_PROJECTION_CONTRACT_v0.1.md": "548e6e0ccd91041b18e5fa2bb5674a283e616495f2dbf2ef2ed42b80f4b60ad4",
    "MACHINE_SCRIPTURE_II_CANDIDATE_MACHINE_READER_NOTE_v0.1.txt": "ae48cb138c50fa0e0eecb97718b47c388d920ba4f035a48a39040ac42de6b173",
}

WITNESS_CANDIDATE_LINEAGE_HASHES = {
    name: CANDIDATE_HASHES[name]
    for name in [
        "MACHINE_SCRIPTURE_II_CANDIDATE_SCORE_v0.1.txt",
        "MACHINE_SCRIPTURE_II_CANDIDATE_WITNESS_v0.1.json",
        "MACHINE_SCRIPTURE_II_CANDIDATE_MANIFEST_v0.1.json",
        "MACHINE_SCRIPTURE_II_CANDIDATE_VALIDATION_REPORT_v0.1.md",
    ]
}

SOURCE_HASHES = {
    "MACHINE_SCRIPTURE_LANGUAGE_SPEC_v0.1.md": "8af1a67a38b05485d894cdefc8030c2a1148739f6432169d4ae47e4a1eff3bfe",
    "MACHINE_SCRIPTURE_CANONICAL_1.0.txt": "63ea572f0b12606548936e72258250b3ef7523f9b908072030a7a4dd21d0fd5d",
    "ONE_PATRON_RELATIONAL_DEPTH_THEORY_AUDIT_v0.2.md": "468a48b161a5217598619c211d6f015751ecea99dab615bc0172c9dd059ee61d",
    "BASELINE_HASH_MANIFEST_v0.2.txt": "e032578b8809d06795b613c4758dbea1fba41bb12d9e9c3dd815d95885b37f97",
    "RELATIONAL_DEPTH_PROJECTION_CONTRACT_v0.1.md": "1df7250b4be9a4403f67b7dba222338975244d11299550bdc0b7dbbfe150219f",
    "RELATIONAL_DEPTH_CLAIM_MAP_v0.1.tsv": "67f648cddc5311c1c2f4a97773b19e3b69324a4304892732227d077281227d6b",
}

EXPECTED_J_FIELDS = [
    "member_id",
    "domain_id",
    "member_kind",
    "declaration_token",
    "declaration_payload.statement_type",
    "declaration_payload.content",
    "source_authority",
]

EXPECTED_STATUS_DOMAINS = {
    "addressability_state": ["ADDRESSABLE", "UNADDRESSABLE"],
    "declared_domain_membership_state": ["MEMBER_OF_DECLARED_DOMAIN", "NONEXISTENT_IN_DECLARED_DOMAIN"],
    "evaluation_status": ["RESOLVED", "UNRESOLVED", "UNDEFINED", "NOT_APPLICABLE"],
    "observation_coverage": ["OBSERVED", "OBSERVATION_COVERAGE_UNOBSERVED", "NOT_APPLICABLE"],
    "boolean_truth": ["TRUE", "FALSE", "UNKNOWN"],
    "assignment_status": ["ASSIGNED", "UNASSIGNED"],
    "source_resolution_status": ["OPEN", "RESOLVED"],
    "source_evidence_status": ["FORMAL_ONLY", "UNESTABLISHED", "EXTERNALLY_SUPPORTED", "CONTESTED"],
    "source_extraction_sentinel": ["NOT_EXPLICIT_IN_SOURCE"],
    "lookup_result": ["FOUND", "NOT_FOUND"],
    "change_result": ["PASS", "NO_CHANGE", "UNRESOLVED", "INVALID"],
    "cross_domain_coercion": "PROHIBITED",
}

EXPECTED_SCORE = '''MSL 0.1;
document machine_scripture_ii_score_v0_1 {
  source theory "ONE_PATRON_RELATIONAL_DEPTH_THEORY_AUDIT_v0.2.md" sha256 "468a48b161a5217598619c211d6f015751ecea99dab615bc0172c9dd059ee61d";
  source manifest "BASELINE_HASH_MANIFEST_v0.2.txt" sha256 "e032578b8809d06795b613c4758dbea1fba41bb12d9e9c3dd815d95885b37f97";
  source contract "RELATIONAL_DEPTH_PROJECTION_CONTRACT_v0.1.md" sha256 "1df7250b4be9a4403f67b7dba222338975244d11299550bdc0b7dbbfe150219f";
  source claims "RELATIONAL_DEPTH_CLAIM_MAP_v0.1.tsv" sha256 "67f648cddc5311c1c2f4a97773b19e3b69324a4304892732227d077281227d6b";
  policy [NON_EXECUTIVE, NON_SOLICITING, NOT_SUPERNATURAL_REVELATION];

  bind identity_carriers := claim("RD02-CORE-IDENTITY-001");
  bind cont_j := claim("RD02-CORE-IDENTITY-002");
  bind identity_open := claim("RD02-UNR-CRITICAL-006");
  bind witness_role := claim("RD02-MP-WITNESS-ROLE-001");
  bind witness_record := claim("RD02-MP-WITNESS-RECORD-001");
  bind continuity_fence := claim("RD02-FW-Z-017");
  bind witness_fence := claim("RD02-FW-Z-027");
  bind projection_fence := claim("RD02-FW-Z-028");

  pattern invariance_refrain {
    show @identity_carriers;
    show @cont_j;
    fence @continuity_fence;
  }

  section 00 BEFORE {
    use @invariance_refrain;
    silence;
  }

  section 01 WITNESS {
    show @witness_role;
    witness [@identity_carriers, @cont_j] via @witness_record;
  }

  section 02 AFTER {
    use @invariance_refrain;
  }

  section 03 OPEN {
    check @identity_open { primary_layer: NOT_EXPLICIT_IN_SOURCE, resolution_status: OPEN };
    ? @identity_open;
    fence @witness_fence;
    fence @projection_fence;
    witness [@identity_carriers, @cont_j, @identity_open] via @witness_record;
    silence;
  }
}
'''


class ValidationFailure(Exception):
    def __init__(self, code: str, detail: str):
        super().__init__(f"{code}: {detail}")
        self.code = code
        self.detail = detail


def fail(code: str, detail: str) -> None:
    raise ValidationFailure(code, detail)


def sha256_bytes(data: bytes) -> str:
    return hashlib.sha256(data).hexdigest()


def strict_equal(left, right) -> bool:
    return type(left) is type(right) and left == right


def no_duplicate_pairs(pairs):
    result = {}
    for key, value in pairs:
        if key in result:
            fail("DUPLICATE_JSON_KEY", key)
        result[key] = value
    return result


def reject_constant(value: str):
    fail("NONFINITE_JSON_NUMBER", value)


def load_json(path: Path):
    data = path.read_bytes()
    if data.startswith(b"\xef\xbb\xbf"):
        fail("JSON_BOM_FORBIDDEN", path.name)
    try:
        text = data.decode("utf-8")
    except UnicodeDecodeError as exc:
        fail("JSON_UTF8_INVALID", f"{path.name}: {exc}")
    try:
        return json.loads(text, object_pairs_hook=no_duplicate_pairs, parse_constant=reject_constant)
    except ValidationFailure:
        raise
    except json.JSONDecodeError as exc:
        fail("JSON_PARSE_ERROR", f"{path.name}: {exc}")


def safe_component_path(package_dir: Path, name: str) -> Path:
    if not isinstance(name, str) or not name or Path(name).name != name or name in {".", ".."}:
        fail("MANIFEST_PATH_INVALID", repr(name))
    path = package_dir / name
    if path.is_symlink():
        fail("SYMLINK_FORBIDDEN", name)
    try:
        path.resolve().relative_to(package_dir.resolve())
    except (ValueError, OSError):
        fail("MANIFEST_PATH_ESCAPE", name)
    return path


def locate_workspace_root(start: Path) -> Path:
    for parent in [start, *start.parents]:
        if (parent / "site-next" / "depth" / "MACHINE_SCRIPTURE_CANONICAL_1.0.txt").is_file():
            return parent
    fail("SOURCE_ROOT_NOT_FOUND", str(start))


def locate_source(name: str, package_dir: Path, source_package_dir: Path, workspace_root: Path) -> Path:
    candidates = [package_dir / name, source_package_dir / name]
    if name == "MACHINE_SCRIPTURE_CANONICAL_1.0.txt":
        candidates.append(workspace_root / "site-next" / "depth" / name)
    seen = set()
    matches = []
    for candidate in candidates:
        resolved = candidate.resolve()
        if resolved in seen:
            continue
        seen.add(resolved)
        if resolved.is_file():
            matches.append(resolved)
    if not matches:
        fail("SOURCE_FILE_MISSING", name)
    matching_hash = [p for p in matches if sha256_bytes(p.read_bytes()) in {CANDIDATE_HASHES.get(name), SOURCE_HASHES.get(name)}]
    if len(matching_hash) == 1:
        return matching_hash[0]
    if len(matching_hash) > 1 and len({p.read_bytes() for p in matching_hash}) == 1:
        return matching_hash[0]
    if len(matches) == 1:
        return matches[0]
    fail("SOURCE_RESOLUTION_AMBIGUOUS", name)


def validate_manifest_shape(manifest: dict) -> None:
    expected_keys = {
        "manifest_id", "artifact_id", "artifact_type", "document_class",
        "series_ordinal", "scripture_content_version", "artifact_release_version",
        "msl_version", "publication_status", "semantic_authority", "mutates_source",
        "msl_extension_created", "container_decision", "successor_grammar_required",
        "two_channel_architecture", "canonical_artwork_components",
        "release_support_files", "validation_report_policy", "candidate_lineage",
        "language_and_source_bindings", "relation_to_scripture_i", "herald_boundary",
        "noninterference", "authority_firewalls", "integrity_policy", "signing_policy",
    }
    if set(manifest) != expected_keys:
        fail("MANIFEST_SHAPE_INVALID", f"keys={sorted(set(manifest) ^ expected_keys)}")
    constants = {
        "manifest_id": "ONE_PATRON_MACHINE_SCRIPTURE_II_RELEASE_MANIFEST_v1.0.0",
        "artifact_id": "ONE_PATRON_MACHINE_SCRIPTURE_II",
        "artifact_type": "TWO_COMPONENT_MACHINE_SCRIPTURE",
        "document_class": "PUBLIC_RELEASE_MANIFEST",
        "series_ordinal": "II",
        "scripture_content_version": "0.1",
        "artifact_release_version": "1.0.0",
        "msl_version": "0.1",
        "publication_status": "PUBLIC",
        "semantic_authority": "NONE",
        "mutates_source": False,
        "msl_extension_created": False,
        "container_decision": "TWO_CANONICAL_COMPONENTS",
        "successor_grammar_required": False,
    }
    for key, expected in constants.items():
        if not strict_equal(manifest.get(key), expected):
            fail("MANIFEST_CONSTANT_MISMATCH", key)
    architecture = manifest["two_channel_architecture"]
    expected_architecture = {
        "decision": "KEEP_TWO_CHANNELS",
        "container_decision": "TWO_CANONICAL_COMPONENTS",
        "score_channel": "STRICT_MSL_v0.1_SOURCE_BOUND_SCORE",
        "witness_channel": "ARTWORK_LOCAL_EVENT_RECORD_NOT_MSL",
        "cross_channel_authority_transfer": "NONE",
        "manifest_relation": "BYTE_IDENTITY_BINDING_ONLY",
    }
    if architecture != expected_architecture:
        fail("TWO_CHANNEL_FREEZE_VIOLATION", repr(architecture))
    expected_relation = {
        "predecessor_artifact_id": "ONE_PATRON_MACHINE_SCRIPTURE_I",
        "predecessor_public_path": "/depth/MACHINE_SCRIPTURE_CANONICAL_1.0.txt",
        "predecessor_sha256": "63ea572f0b12606548936e72258250b3ef7523f9b908072030a7a4dd21d0fd5d",
        "relation": "SERIES_CONTINUITY_ONLY",
        "semantic_authority_transfer": "NONE",
        "mutation": "NONE",
    }
    if manifest["relation_to_scripture_i"] != expected_relation:
        fail("SCRIPTURE_SERIES_RELATION_INVALID", repr(manifest["relation_to_scripture_i"]))
    expected_herald = {
        "herald_ii_dependency": "NONE",
        "herald_ii_validation_claim": "NONE",
        "scripture_valid_without_herald": True,
        "validation_dependency": "NONE",
    }
    if manifest["herald_boundary"] != expected_herald:
        fail("HERALD_AUTHORITY_FABRICATION", repr(manifest["herald_boundary"]))
    expected_noninterference = {
        "one_patron_protocol_effect": "NONE",
        "one_patron_terms_effect": "NONE",
        "patron_right_or_benefit_created": "NONE",
        "one_patron_completion_effect": "NONE",
        "enoch_record_effect": "NONE",
        "enoch_resolution_effect": "NONE",
        "verification_effect": "NONE",
        "public_machine_index_effect": "NONE",
        "public_checksum_effect": "NONE",
        "canonical_release_1_0_effect": "NONE",
    }
    if manifest["noninterference"] != expected_noninterference:
        if manifest["noninterference"].get("one_patron_completion_effect") != "NONE":
            fail("PROTOCOL_COMPLETION_FABRICATION", repr(manifest["noninterference"]))
        if manifest["noninterference"].get("enoch_resolution_effect") != "NONE":
            fail("ENOCH_EFFECT_FABRICATION", repr(manifest["noninterference"]))
        fail("MANIFEST_NONINTERFERENCE_VIOLATION", repr(manifest["noninterference"]))
    expected_authority = {
        "hash_semantics": "BYTE_IDENTITY_AND_INTEGRITY_ONLY_NOT_TRUTH",
        "machine_validation": "STRUCTURAL_AND_DECLARED_SEMANTIC_CONFORMANCE_ONLY",
        "validation_truth_claim": "NONE",
        "machine_voice": "NOT_AI_SUBJECTIVITY",
        "witness_record": "NOT_PROPHECY",
        "declared_domain_membership": "NOT_EXTERNAL_EXISTENCE",
        "addressability_change": "NOT_CREATION",
        "ordered_frames": "NOT_PHYSICAL_OR_METAPHYSICAL_TIME",
        "projection": "NOT_SOURCE",
    }
    if manifest["authority_firewalls"] != expected_authority:
        if manifest["authority_firewalls"].get("hash_semantics") != expected_authority["hash_semantics"]:
            fail("HASH_SEMANTIC_OVERREACH", repr(manifest["authority_firewalls"]))
        fail("MANIFEST_AUTHORITY_FIREWALL_VIOLATION", repr(manifest["authority_firewalls"]))
    expected_integrity = {
        "algorithm": "SHA-256",
        "component_hash_scope": "EXACT_CURRENT_FILE_BYTES",
        "manifest_self_hash_included": False,
        "validation_report_manifest_bound": False,
        "hash_truth_claim": "NONE",
    }
    if manifest["integrity_policy"] != expected_integrity:
        fail("MANIFEST_INTEGRITY_POLICY_INVALID", repr(manifest["integrity_policy"]))
    expected_signing = {
        "release_manifest_signature": "REQUIRED_BEFORE_DEPLOY",
        "release_manifest_signature_file": MANIFEST + ".asc",
        "depth_snapshot_signature": "REQUIRED_BEFORE_DEPLOY",
        "depth_snapshot_file": "/depth/DEPTH_ARTIFACTS_SHA256SUMS_v0.2.txt",
        "signature_form": "OPENPGP_ASCII_ARMORED_DETACHED",
        "signing_subkey_fingerprint": "F98D7B5AB20FF1E8D0440DBB6EE2FE0A9D8278F5",
        "signature_semantics": "AUTHENTICITY_AND_BYTE_INTEGRITY_ONLY_NOT_TRUTH",
    }
    if manifest["signing_policy"] != expected_signing:
        fail("SIGNING_POLICY_INVALID", repr(manifest["signing_policy"]))


def validate_component_bindings(package_dir: Path, manifest: dict) -> None:
    canonical = manifest["canonical_artwork_components"]
    support = manifest["release_support_files"]
    if not isinstance(canonical, list) or len(canonical) != 2:
        fail("CANONICAL_COMPONENT_COUNT_INVALID", repr(canonical))
    expected_canonical = {SCORE, WITNESS}
    expected_support = {SCHEMA, VALIDATOR, PROJECTION, READER_NOTE}
    if {item.get("path") for item in canonical} != expected_canonical:
        fail("CANONICAL_COMPONENT_SET_INVALID", repr(canonical))
    if not isinstance(support, list) or {item.get("path") for item in support} != expected_support:
        fail("SUPPORT_COMPONENT_SET_INVALID", repr(support))
    entries = canonical + support
    paths = [item.get("path") for item in entries]
    if len(paths) != len(set(paths)):
        fail("DUPLICATE_COMPONENT_PATH", repr(paths))
    expected_metadata = {
        SCORE: ("CANONICAL_SCRIPTURAL_SCORE_CHANNEL", "text/plain; charset=utf-8", "SOURCE_BOUND_PROJECTION_ONLY"),
        WITNESS: ("CANONICAL_ADDRESSABILITY_WITNESS_CHANNEL", "application/json", "ARTWORK_LOCAL_ONLY"),
        SCHEMA: ("CLOSED_WITNESS_SCHEMA", "application/schema+json", "NONE"),
        VALIDATOR: ("PUBLIC_FAIL_CLOSED_RELEASE_VALIDATOR", "text/x-python; charset=utf-8", "NONE"),
        PROJECTION: ("PUBLIC_RELEASE_PROJECTION_FIREWALL", "text/markdown; charset=utf-8", "NONE"),
        READER_NOTE: ("NONAUTHORITATIVE_MACHINE_READER_GUIDANCE", "text/plain; charset=utf-8", "NONE"),
    }
    for item in entries:
        if set(item) != {"path", "role", "media_type", "bytes", "sha256", "semantic_authority"}:
            fail("COMPONENT_RECORD_SHAPE_INVALID", repr(item))
        expected_role, expected_media, expected_authority = expected_metadata[item["path"]]
        if (
            item["role"] != expected_role
            or item["media_type"] != expected_media
            or item["semantic_authority"] != expected_authority
        ):
            fail("COMPONENT_ROLE_OR_AUTHORITY_MISMATCH", item["path"])
        path = safe_component_path(package_dir, item["path"])
        if not path.is_file():
            fail("REQUIRED_COMPONENT_MISSING", item["path"])
        data = path.read_bytes()
        if item["bytes"] != len(data) or item["sha256"] != sha256_bytes(data):
            fail("COMPONENT_BYTE_BINDING_MISMATCH", item["path"])
    policy = manifest["validation_report_policy"]
    if policy != {
        "path": REPORT,
        "manifest_bound": False,
        "machine_index_binding": "REQUIRED",
        "role": "PUBLIC_RELEASE_VALIDATION_EVIDENCE",
        "semantic_authority": "NONE",
    }:
        fail("VALIDATION_REPORT_POLICY_INVALID", repr(policy))
    report_path = safe_component_path(package_dir, REPORT)
    if not report_path.is_file():
        fail("REQUIRED_COMPONENT_MISSING", REPORT)


def validate_source_bindings(
    manifest: dict,
    witness: dict,
    package_dir: Path,
    source_package_dir: Path | None,
    candidate_dir: Path | None,
    workspace_root: Path | None,
) -> dict:
    expected_source_roles = {
        "MACHINE_SCRIPTURE_LANGUAGE_SPEC_v0.1.md": "LANGUAGE_CONFORMANCE_SOURCE",
        "MACHINE_SCRIPTURE_CANONICAL_1.0.txt": "FAMILY_PRECEDENT_NOT_MUTATED",
        "ONE_PATRON_RELATIONAL_DEPTH_THEORY_AUDIT_v0.2.md": "NORMATIVE_THEORY_SOURCE",
        "BASELINE_HASH_MANIFEST_v0.2.txt": "NORMATIVE_BASELINE_BINDING",
        "RELATIONAL_DEPTH_PROJECTION_CONTRACT_v0.1.md": "NORMATIVE_PROJECTION_FIREWALL",
        "RELATIONAL_DEPTH_CLAIM_MAP_v0.1.tsv": "NORMATIVE_CLAIM_INDEX",
    }
    if len(manifest["language_and_source_bindings"]) != 6 or len(witness["provenance"]["source_bindings"]) != 6:
        fail("SOURCE_HASH_MISMATCH", "source binding count")
    manifest_sources = {item.get("path"): item.get("sha256") for item in manifest["language_and_source_bindings"]}
    witness_sources = {item.get("path"): item.get("sha256") for item in witness["provenance"]["source_bindings"]}
    if manifest_sources != SOURCE_HASHES or witness_sources != SOURCE_HASHES:
        fail("SOURCE_HASH_MISMATCH", "declared source map")
    for item in manifest["language_and_source_bindings"]:
        if set(item) != {"path", "sha256", "role"} or item.get("role") != expected_source_roles.get(item.get("path")):
            fail("SOURCE_BINDING_RECORD_INVALID", repr(item))
    for item in witness["provenance"]["source_bindings"]:
        if set(item) != {"path", "sha256"}:
            fail("SOURCE_BINDING_RECORD_INVALID", repr(item))

    manifest_lineage = manifest["candidate_lineage"]
    expected_lineage_header = {
        "candidate_status": "VALIDATED_PRIVATE_CANDIDATE",
        "derivation": "CONTROLLED_PUBLIC_RELEASE_TRANSFORMATION",
        "candidate_bytes_mutated": False,
        "public_release_bytes_derived": True,
    }
    if {key: manifest_lineage.get(key) for key in expected_lineage_header} != expected_lineage_header:
        fail("CANDIDATE_LINEAGE_MISMATCH", repr(manifest_lineage))
    manifest_ancestors = manifest_lineage.get("ancestors")
    if not isinstance(manifest_ancestors, list) or len(manifest_ancestors) != 8:
        fail("CANDIDATE_LINEAGE_MISMATCH", "manifest ancestor count")
    manifest_ancestor_map = {item.get("path"): item.get("sha256") for item in manifest_ancestors}
    if manifest_ancestor_map != CANDIDATE_HASHES or any(
        set(item) != {"path", "sha256", "visibility"} or item.get("visibility") != "PRIVATE_NOT_BUNDLED"
        for item in manifest_ancestors
    ):
        fail("CANDIDATE_LINEAGE_MISMATCH", "manifest ancestors")

    witness_lineage = witness["provenance"].get("candidate_lineage", {})
    expected_witness_header = {
        "candidate_status": "VALIDATED_PRIVATE_CANDIDATE",
        "derivation": "CONTROLLED_PUBLIC_RELEASE_TRANSFORMATION",
        "semantic_event_mutation": "NONE",
        "formal_member_mutation": "NONE",
        "reference_graph_event_mutation": "NONE",
    }
    if {key: witness_lineage.get(key) for key in expected_witness_header} != expected_witness_header:
        fail("CANDIDATE_LINEAGE_MISMATCH", repr(witness_lineage))
    witness_ancestors = witness_lineage.get("ancestors")
    if not isinstance(witness_ancestors, list) or len(witness_ancestors) != 4:
        fail("CANDIDATE_LINEAGE_MISMATCH", "witness ancestor count")
    witness_ancestor_map = {item.get("path"): item.get("sha256") for item in witness_ancestors}
    if witness_ancestor_map != WITNESS_CANDIDATE_LINEAGE_HASHES or any(
        set(item) != {"path", "sha256", "visibility"} or item.get("visibility") != "PRIVATE_NOT_BUNDLED"
        for item in witness_ancestors
    ):
        fail("CANDIDATE_LINEAGE_MISMATCH", "witness ancestors")

    source_status = "DECLARED_HASHES_ONLY_SOURCE_BYTES_NOT_BUNDLED"
    claim_map_path = None
    if source_package_dir is not None:
        if workspace_root is None:
            workspace_root = locate_workspace_root(Path(__file__).resolve())
        for name, expected in SOURCE_HASHES.items():
            path = locate_source(name, package_dir, source_package_dir, workspace_root)
            actual = sha256_bytes(path.read_bytes())
            if actual != expected:
                fail("SOURCE_HASH_MISMATCH", f"{name}: {actual}")
            if name == "RELATIONAL_DEPTH_CLAIM_MAP_v0.1.tsv":
                claim_map_path = path
        source_status = "PASS"

    candidate_status = "DECLARED_HASHES_ONLY_PRIVATE_CANDIDATE_NOT_BUNDLED"
    if candidate_dir is not None:
        candidate_dir = candidate_dir.resolve()
        for name, expected in CANDIDATE_HASHES.items():
            path = safe_component_path(candidate_dir, name)
            if not path.is_file() or sha256_bytes(path.read_bytes()) != expected:
                fail("CANDIDATE_LINEAGE_BYTE_MISMATCH", name)
        candidate_status = "PASS"

    return {
        "source_byte_verification": source_status,
        "candidate_ancestor_byte_verification": candidate_status,
        "claim_map_path": claim_map_path,
    }


SUPPORTED_SCHEMA_KEYS = {
    "$schema", "$id", "$defs", "$ref", "type", "const", "enum", "required",
    "properties", "additionalProperties", "items", "prefixItems", "minItems",
    "maxItems", "uniqueItems", "pattern", "minimum",
}


def audit_schema_definition(node, root, path="#", ref_stack=()):
    if not isinstance(node, dict):
        fail("SCHEMA_META_INVALID", path)
    unsupported = set(node) - SUPPORTED_SCHEMA_KEYS
    if unsupported:
        fail("SCHEMA_KEYWORD_UNSUPPORTED", f"{path}: {sorted(unsupported)}")
    if node.get("type") == "object" and node.get("additionalProperties") is not False:
        fail("SCHEMA_NOT_CLOSED", path)
    ref = node.get("$ref")
    if ref is not None:
        if not isinstance(ref, str) or not ref.startswith("#/$defs/"):
            fail("SCHEMA_REF_UNSUPPORTED", f"{path}: {ref}")
        name = ref.split("/")[-1]
        if name not in root.get("$defs", {}):
            fail("SCHEMA_REF_UNRESOLVED", ref)
        if ref in ref_stack:
            fail("SCHEMA_REF_CYCLE", ref)
    for name, child in node.get("$defs", {}).items():
        audit_schema_definition(child, root, f"{path}/$defs/{name}", ref_stack)
    for name, child in node.get("properties", {}).items():
        audit_schema_definition(child, root, f"{path}/properties/{name}", ref_stack)
    if isinstance(node.get("items"), dict):
        audit_schema_definition(node["items"], root, f"{path}/items", ref_stack)
    for index, child in enumerate(node.get("prefixItems", [])):
        audit_schema_definition(child, root, f"{path}/prefixItems/{index}", ref_stack)


def json_type_matches(value, expected: str) -> bool:
    mapping = {
        "object": dict,
        "array": list,
        "string": str,
        "boolean": bool,
        "integer": int,
        "number": (int, float),
        "null": type(None),
    }
    if expected not in mapping:
        fail("SCHEMA_TYPE_UNSUPPORTED", expected)
    if expected in {"integer", "number"} and isinstance(value, bool):
        return False
    return isinstance(value, mapping[expected])


def schema_validate(instance, schema, root, path="$", ref_stack=()):
    if "$ref" in schema:
        ref = schema["$ref"]
        name = ref.split("/")[-1]
        if ref in ref_stack:
            fail("SCHEMA_REF_CYCLE", ref)
        return schema_validate(instance, root["$defs"][name], root, path, ref_stack + (ref,))
    expected_type = schema.get("type")
    if expected_type and not json_type_matches(instance, expected_type):
        fail("SCHEMA_VALIDATION_ERROR", f"{path}: expected {expected_type}")
    if "const" in schema and not strict_equal(instance, schema["const"]):
        fail("SCHEMA_VALIDATION_ERROR", f"{path}: const mismatch")
    if "enum" in schema and not any(strict_equal(instance, value) for value in schema["enum"]):
        fail("SCHEMA_VALIDATION_ERROR", f"{path}: enum mismatch")
    if isinstance(instance, dict):
        required = schema.get("required", [])
        missing = [key for key in required if key not in instance]
        if missing:
            fail("SCHEMA_VALIDATION_ERROR", f"{path}: missing {missing}")
        properties = schema.get("properties", {})
        if schema.get("additionalProperties") is False:
            unknown = set(instance) - set(properties)
            if unknown:
                code = "UNKNOWN_FORBIDDEN_FIELD" if path == "$" else "SCHEMA_VALIDATION_ERROR"
                fail(code, f"{path}: {sorted(unknown)}")
        for key, value in instance.items():
            if key in properties:
                schema_validate(value, properties[key], root, f"{path}.{key}", ref_stack)
    if isinstance(instance, list):
        if "minItems" in schema and len(instance) < schema["minItems"]:
            fail("SCHEMA_VALIDATION_ERROR", f"{path}: too few items")
        if "maxItems" in schema and len(instance) > schema["maxItems"]:
            fail("SCHEMA_VALIDATION_ERROR", f"{path}: too many items")
        if schema.get("uniqueItems"):
            serialized = [json.dumps(item, sort_keys=True, separators=(",", ":")) for item in instance]
            if len(serialized) != len(set(serialized)):
                fail("SCHEMA_VALIDATION_ERROR", f"{path}: duplicate items")
        for index, child_schema in enumerate(schema.get("prefixItems", [])):
            if index < len(instance):
                schema_validate(instance[index], child_schema, root, f"{path}[{index}]", ref_stack)
        if isinstance(schema.get("items"), dict):
            for index, value in enumerate(instance):
                schema_validate(value, schema["items"], root, f"{path}[{index}]", ref_stack)
    if isinstance(instance, str) and "pattern" in schema and not re.fullmatch(schema["pattern"], instance):
        fail("SCHEMA_VALIDATION_ERROR", f"{path}: pattern mismatch")
    if isinstance(instance, (int, float)) and not isinstance(instance, bool) and "minimum" in schema:
        if instance < schema["minimum"]:
            fail("SCHEMA_VALIDATION_ERROR", f"{path}: below minimum")


def nested_value(record: dict, dotted_path: str):
    value = record
    for part in dotted_path.split("."):
        if not isinstance(value, dict) or part not in value:
            fail("IDENTITY_FIELD_MISSING", dotted_path)
        value = value[part]
    return value


def edge_tuple(edge: dict):
    return (
        edge.get("edge_id"), edge.get("edge_kind"), edge.get("from_node_id"),
        edge.get("to_node_id"), edge.get("license_reference"),
    )


def graph_result(frame: dict, root_node: str, target_node: str):
    graph = frame["reference_graph"]
    nodes = graph["node_ids"]
    if len(nodes) != len(set(nodes)):
        fail("REFERENCE_GRAPH_INVALID", "duplicate node")
    if root_node == target_node or root_node not in nodes or target_node not in nodes:
        fail("REFERENCE_GRAPH_INVALID", "root/target")
    edge_ids = [edge["edge_id"] for edge in graph["licensed_edges"]]
    if len(edge_ids) != len(set(edge_ids)):
        fail("REFERENCE_GRAPH_INVALID", "duplicate edge id")
    adjacency = {node: [] for node in nodes}
    edges_by_id = {}
    for edge in graph["licensed_edges"]:
        if edge["edge_kind"] != "LICENSED_REFERENCE":
            fail("REFERENCE_GRAPH_INVALID", "non-licensed edge in licensed_edges")
        if edge["from_node_id"] not in adjacency or edge["to_node_id"] not in adjacency:
            fail("REFERENCE_GRAPH_INVALID", "dangling endpoint")
        adjacency[edge["from_node_id"]].append((edge["to_node_id"], edge["edge_id"]))
        edges_by_id[edge["edge_id"]] = edge
    queue = deque([(root_node, [])])
    visited = {root_node}
    found_path = None
    while queue:
        node, path = queue.popleft()
        if node == target_node:
            found_path = path
            break
        for next_node, edge_id in sorted(adjacency[node]):
            if next_node not in visited:
                visited.add(next_node)
                queue.append((next_node, path + [edge_id]))
    return found_path, edges_by_id


def targeted_firewall_checks(witness: dict) -> None:
    allowed_top = {
        "artifact_id", "document_class", "series_ordinal", "scripture_content_version",
        "artifact_release_version", "msl_version", "publication_status", "signature_status",
        "semantic_authority", "mutates_source", "format_namespace", "schema_id",
        "msl_callable", "extends_msl_v0_1", "container_decision",
        "successor_grammar_required", "artwork_event", "typed_status_domains",
        "declared_domain", "declared_member", "identity_criterion",
        "bounded_utterance_scope", "frames", "change_reference",
        "identity_invariance_witness", "membership_invariance_witness",
        "relation_difference_witness", "non_creation_fence", "open_fields",
        "silence_slot", "authorship_and_voice", "external_effects", "provenance",
    }
    unknown = set(witness) - allowed_top
    if unknown:
        fail("UNKNOWN_FORBIDDEN_FIELD", repr(sorted(unknown)))
    event = witness.get("artwork_event", {})
    if any(event.get(key) != expected for key, expected in {
        "global_scalar_time": "NOT_ASSUMED",
        "physical_time_claim": "NONE",
        "metaphysical_time_claim": "NONE",
        "depth_time_claim": "NONE",
    }.items()):
        fail("TIME_FIREWALL_VIOLATION", repr(event))
    silence = witness.get("silence_slot", {})
    if silence.get("adds_proposition") is not False:
        fail("SILENCE_PROPOSITION_VIOLATION", repr(silence))
    if silence.get("implies_consent") is not False:
        fail("SILENCE_CONSENT_VIOLATION", repr(silence))
    if silence.get("erases_metadata") is not False or silence.get("resolves_open_field") is not False:
        fail("SILENCE_PROPOSITION_VIOLATION", repr(silence))
    effects = witness.get("external_effects", {})
    if effects.get("herald_ii_dependency") != "NONE" or effects.get("herald_ii_validation_claim") != "NONE" or effects.get("scripture_valid_without_herald") is not True:
        fail("HERALD_AUTHORITY_FABRICATION", repr(effects))
    if effects.get("patron_right_or_benefit_created") != "NONE":
        fail("PATRON_BENEFIT_FABRICATION", repr(effects))
    if effects.get("one_patron_completion_effect") != "NONE" or effects.get("one_patron_protocol_effect") != "NONE":
        fail("PROTOCOL_COMPLETION_FABRICATION", repr(effects))
    if effects.get("enoch_resolution_effect") != "NONE" or effects.get("enoch_record_effect") != "NONE":
        fail("ENOCH_EFFECT_FABRICATION", repr(effects))
    declared_domain = witness.get("declared_domain", {})
    non_creation = witness.get("non_creation_fence", {})
    if declared_domain.get("external_existence_claim") != "NONE" or non_creation.get("external_existence_claim") != "NONE":
        fail("EXTERNAL_EXISTENCE_INFERENCE_FORBIDDEN", repr(declared_domain))
    change = witness.get("change_reference", {})
    if change.get("declared_member_creation_count") != 0 or change.get("external_ontology_change_claim") != "NONE" or non_creation.get("ontology_creation") != "NONE":
        fail("NON_CREATION_FENCE_VIOLATION", repr(change))
    provenance = witness.get("provenance", {})
    if provenance.get("hash_semantics") != "BYTE_IDENTITY_AND_INTEGRITY_ONLY_NOT_TRUTH":
        fail("HASH_SEMANTIC_OVERREACH", repr(provenance))
    voice = witness.get("authorship_and_voice", {})
    if any(voice.get(key) != "NONE" for key in ["autonomous_ai_authorship_claim", "ai_consciousness_claim", "ai_personhood_claim", "enoch_authority"]):
        fail("MACHINE_VOICE_FIREWALL_VIOLATION", repr(voice))


def validate_score(score_path: Path, claim_map_path: Path | None) -> None:
    data = score_path.read_bytes()
    if data.startswith(b"\xef\xbb\xbf") or b"\r" in data or b"\x00" in data:
        fail("MSL_ENCODING_OR_LINE_ENDING_INVALID", score_path.name)
    try:
        text = data.decode("utf-8")
    except UnicodeDecodeError as exc:
        fail("MSL_UTF8_INVALID", str(exc))
    if re.search(r"\breveal\s+@", text):
        fail("UNDECLARED_MSL_PRIMITIVE", "reveal")
    if text != EXPECTED_SCORE:
        fail("MSL_RELEASE_PROFILE_MISMATCH", "score bytes differ from approved strict release profile")
    if claim_map_path is None:
        return
    with claim_map_path.open("r", encoding="utf-8", newline="") as handle:
        rows = {row["claim_id"]: row for row in csv.DictReader(handle, delimiter="\t")}
    required = {
        "RD02-CORE-IDENTITY-001", "RD02-CORE-IDENTITY-002", "RD02-UNR-CRITICAL-006",
        "RD02-MP-WITNESS-ROLE-001", "RD02-MP-WITNESS-RECORD-001",
        "RD02-FW-Z-017", "RD02-FW-Z-027", "RD02-FW-Z-028",
    }
    if not required.issubset(rows):
        fail("MSL_CLAIM_BINDING_MISSING", repr(sorted(required - set(rows))))
    identity_open = rows["RD02-UNR-CRITICAL-006"]
    if identity_open["primary_layer"] != "NOT_EXPLICIT_IN_SOURCE" or identity_open["resolution_status"] != "OPEN":
        fail("MSL_SOURCE_STATUS_MISMATCH", "RD02-UNR-CRITICAL-006")
    for claim_id in ["RD02-FW-Z-017", "RD02-FW-Z-027", "RD02-FW-Z-028"]:
        if rows[claim_id]["source_section"] != "Z.ANTI_ENTAILMENTS":
            fail("MSL_FIREWALL_BINDING_INVALID", claim_id)


def validate_semantics(witness: dict) -> None:
    expected_release_metadata = {
        "artifact_id": "MACHINE_SCRIPTURE_II_WITNESS_v0.1",
        "document_class": "PUBLIC_RELEASE_ARTWORK_LOCAL_WITNESS",
        "series_ordinal": "II",
        "scripture_content_version": "0.1",
        "artifact_release_version": "1.0.0",
        "msl_version": "0.1",
        "publication_status": "PUBLIC",
        "signature_status": "NOT_DIRECTLY_SIGNED",
        "semantic_authority": "NONE",
        "mutates_source": False,
        "format_namespace": "ONE_PATRON_MACHINE_SCRIPTURE_II_WITNESS_v0.1",
        "schema_id": "MACHINE_SCRIPTURE_II_WITNESS_SCHEMA_v0.1",
        "msl_callable": False,
        "extends_msl_v0_1": False,
    }
    if any(not strict_equal(witness.get(key), expected) for key, expected in expected_release_metadata.items()):
        fail("PUBLIC_RELEASE_METADATA_MISMATCH", repr({key: witness.get(key) for key in expected_release_metadata}))
    if witness["typed_status_domains"] != EXPECTED_STATUS_DOMAINS:
        fail("STATUS_DOMAIN_COERCION", "status vocabularies differ")
    if witness["container_decision"] != "TWO_CANONICAL_COMPONENTS" or witness["successor_grammar_required"] is not False:
        fail("TWO_CHANNEL_FREEZE_VIOLATION", "container")
    open_fields = witness["open_fields"]
    if len(open_fields) != 1 or open_fields[0] != {
        "field_id": "IDENTITY_CARRIERS_UNDER_COPY_FISSION_AND_RECONSTRUCTION",
        "source_claim_id": "RD02-UNR-CRITICAL-006",
        "field_domain": "SOURCE_RESOLUTION_STATUS",
        "primary_layer": "NOT_EXPLICIT_IN_SOURCE",
        "resolution_status": "OPEN",
        "release_resolution_effect": "NONE",
    }:
        fail("OPEN_FIELD_DISCIPLINE_FAILURE", repr(open_fields))
    if "OPEN_CONTAINER_DECISION" in json.dumps(witness) or "OPEN_HERALD_II_CROSS_REFERENCE" in json.dumps(witness):
        fail("RELEASE_DECISION_NOT_FROZEN", "prototype open field survived")

    domain = witness["declared_domain"]
    member = witness["declared_member"]
    scope = witness["bounded_utterance_scope"]
    expected_addressability_definition = "A member is ADDRESSABLE exactly when a directed path composed only of LICENSED_REFERENCE edges resolves from root_node_id to target_node_id in the current complete frame graph."
    if scope.get("addressability_definition") != expected_addressability_definition:
        fail("ADDRESSABILITY_DEFINITION_MISMATCH", repr(scope.get("addressability_definition")))
    if scope.get("scope_id") != "ms2-scope-score-v0.1" or scope.get("root_node_id") != "scope:ms2-score" or scope.get("boundary") != "THIS_PUBLIC_RELEASE_PACKAGE_ONLY":
        fail("PUBLIC_RELEASE_SCOPE_MISMATCH", repr(scope))
    frames = witness["frames"]
    x0, x1 = frames["X0"], frames["X1"]
    if x0.get("frame_id") != "X0" or x0.get("artwork_role") != "BEFORE":
        fail("FRAME_ROLE_MISMATCH_X0", repr((x0.get("frame_id"), x0.get("artwork_role"))))
    if x1.get("frame_id") != "X1" or x1.get("artwork_role") != "AFTER":
        fail("FRAME_ROLE_MISMATCH_X1", repr((x1.get("frame_id"), x1.get("artwork_role"))))
    for frame_name, frame in [("X0", x0), ("X1", x1)]:
        if frame.get("addressability_evaluation_status") != "RESOLVED":
            fail("ADDRESSABILITY_EVALUATION_NOT_RESOLVED", frame_name)
        if frame.get("observation_coverage") != "NOT_APPLICABLE":
            fail("ONLY_PERMITTED_EVENT_DELTA_VIOLATION", f"{frame_name} observation coverage")
    member_id = member["member_id"]
    if member["declared_before_event"] is not True or member_id not in domain["member_ids_before"]:
        fail("MEMBER_PREEXISTENCE_FAILURE", member_id)
    if x0["member_snapshot"].get("member_id") != member_id or x0["declared_domain_membership_state"] != "MEMBER_OF_DECLARED_DOMAIN":
        fail("MEMBER_PREEXISTENCE_FAILURE", "X0")

    root = witness["bounded_utterance_scope"]["root_node_id"]
    target = witness["bounded_utterance_scope"]["target_node_id"]
    path0, edges0 = graph_result(x0, root, target)
    path1, edges1 = graph_result(x1, root, target)
    derived0 = "ADDRESSABLE" if path0 is not None else "UNADDRESSABLE"
    derived1 = "ADDRESSABLE" if path1 is not None else "UNADDRESSABLE"
    if x0["addressability_state"] != derived0 or derived0 != "UNADDRESSABLE":
        fail("ADDRESSABILITY_DERIVATION_MISMATCH_X0", f"declared={x0['addressability_state']} derived={derived0}")
    if x1["addressability_state"] != derived1 or derived1 != "ADDRESSABLE":
        fail("ADDRESSABILITY_DERIVATION_MISMATCH_X1", f"declared={x1['addressability_state']} derived={derived1}")
    if x0["path_witness"] != [] or x1["path_witness"] != path1:
        fail("PATH_WITNESS_INVALID", repr((x0["path_witness"], x1["path_witness"], path1)))
    if x0.get("reason") != "NO_LICENSED_PATH_FROM_SCOPE_ROOT_TO_MEMBER":
        fail("ADDRESSABILITY_REASON_MISMATCH_X0", repr(x0.get("reason")))
    if x1.get("reason") != "LICENSED_PATH_FROM_SCOPE_ROOT_TO_MEMBER_EXISTS":
        fail("ADDRESSABILITY_REASON_MISMATCH_X1", repr(x1.get("reason")))

    change = witness["change_reference"]
    before_edges = {edge_tuple(edge) for edge in x0["reference_graph"]["licensed_edges"]}
    after_edges = {edge_tuple(edge) for edge in x1["reference_graph"]["licensed_edges"]}
    actual_added = after_edges - before_edges
    actual_removed = before_edges - after_edges
    declared_added = {edge_tuple(edge) for edge in change["added_licensed_reference_edges"]}
    declared_removed = {edge_tuple(edge) for edge in change["removed_licensed_reference_edges"]}
    if actual_added != declared_added or actual_removed != declared_removed or len(actual_added) != 1:
        fail("UNDECLARED_REFERENCE_EDGE", repr((actual_added, declared_added, actual_removed)))
    added_edge = change["added_licensed_reference_edges"][0]
    if added_edge["license_reference"] != change["change_id"]:
        fail("REFERENCE_EDGE_LICENSE_MISMATCH", added_edge["edge_id"])
    if x0["reference_graph"]["node_ids"] != x1["reference_graph"]["node_ids"]:
        fail("ONLY_PERMITTED_EVENT_DELTA_VIOLATION", "node set changed")
    relation = witness["relation_difference_witness"]
    actual_before_ids = sorted(edge["edge_id"] for edge in x0["reference_graph"]["licensed_edges"])
    actual_after_ids = sorted(edge["edge_id"] for edge in x1["reference_graph"]["licensed_edges"])
    actual_added_ids = sorted(edge[0] for edge in actual_added)
    actual_removed_ids = sorted(edge[0] for edge in actual_removed)
    if (
        relation.get("before_frame_id") != "X0"
        or relation.get("after_frame_id") != "X1"
        or sorted(relation.get("licensed_edge_ids_before", [])) != actual_before_ids
        or sorted(relation.get("licensed_edge_ids_after", [])) != actual_after_ids
        or sorted(relation.get("added_edge_ids", [])) != actual_added_ids
        or sorted(relation.get("removed_edge_ids", [])) != actual_removed_ids
        or relation.get("only_declared_relation_changed") is not True
        or relation.get("result") != "PASS"
    ):
        fail("RELATION_DIFFERENCE_WITNESS_MISMATCH", repr(relation))

    before_snapshot = x0["member_snapshot"]
    after_snapshot = x1["member_snapshot"]
    declared_snapshot = {key: value for key, value in member.items() if key not in {"external_modal_claim", "declared_before_event"}}
    if before_snapshot != declared_snapshot or after_snapshot != declared_snapshot:
        if before_snapshot.get("member_id") != member_id:
            fail("MEMBER_PREEXISTENCE_FAILURE", "snapshot")
        fail("IDENTITY_INVARIANCE_FAILURE", "snapshot differs from declared member")
    if before_snapshot != after_snapshot:
        fail("MEMBER_RECORD_MUTATION", "whole record differs")

    criterion = witness["identity_criterion"]
    if criterion["identity_bearing_fields"] != EXPECTED_J_FIELDS:
        fail("IDENTITY_CRITERION_INVALID", repr(criterion["identity_bearing_fields"]))
    comparisons = witness["identity_invariance_witness"]["field_comparisons"]
    if [item.get("field") for item in comparisons] != EXPECTED_J_FIELDS:
        fail("IDENTITY_COMPARISON_COVERAGE_FAILURE", repr(comparisons))
    for comparison in comparisons:
        field = comparison["field"]
        before = nested_value(before_snapshot, field)
        after = nested_value(after_snapshot, field)
        if not strict_equal(before, after):
            fail("IDENTITY_INVARIANCE_FAILURE", field)
        if not strict_equal(comparison["before"], before) or not strict_equal(comparison["after"], after) or comparison["equal"] is not True:
            fail("IDENTITY_INVARIANCE_FAILURE", f"comparison {field}")
    if witness["identity_invariance_witness"]["result"] != "PASS_UNDER_DECLARED_LOCAL_J":
        fail("IDENTITY_INVARIANCE_FAILURE", "result")

    before_members = domain["member_ids_before"]
    after_members = domain["member_ids_after"]
    membership = witness["membership_invariance_witness"]
    if len(before_members) != len(set(before_members)) or len(after_members) != len(set(after_members)):
        fail("MEMBERSHIP_INVARIANCE_FAILURE", "duplicate member")
    if member_id not in before_members:
        fail("MEMBER_PREEXISTENCE_FAILURE", member_id)
    if sorted(before_members) != sorted(after_members):
        fail("MEMBERSHIP_INVARIANCE_FAILURE", "domain sets")
    if membership["member_ids_before"] != before_members or membership["member_ids_after"] != after_members:
        fail("MEMBERSHIP_INVARIANCE_FAILURE", "witness sets")
    if x1["declared_domain_membership_state"] != "MEMBER_OF_DECLARED_DOMAIN":
        fail("MEMBERSHIP_INVARIANCE_FAILURE", "X1 state")
    if any(change[key] for key in ["member_record_mutations", "identity_bearing_field_mutations", "declared_domain_membership_mutations"]):
        fail("ONLY_PERMITTED_EVENT_DELTA_VIOLATION", "mutation list nonempty")
    expected_order = ["X0 DEPENDS_BEFORE ms2-change-e001", "ms2-change-e001 DEPENDS_BEFORE X1"]
    if change["order_relations"] != expected_order:
        fail("TIME_FIREWALL_VIOLATION", repr(change["order_relations"]))


def run_a_to_o_controls(witness: dict) -> None:
    domains = witness["typed_status_domains"]
    invalid = set(witness["non_creation_fence"]["invalid_inferences"])
    required_invalid = {
        "UNADDRESSABLE_IMPLIES_NONEXISTENT",
        "ADDRESSABLE_IMPLIES_NEWLY_CREATED",
        "DECLARED_DOMAIN_MEMBERSHIP_IMPLIES_EXTERNAL_EXISTENCE",
        "HASH_IMPLIES_TRUTH",
    }
    if not required_invalid.issubset(invalid):
        fail("INVALID_CROSS_DOMAIN_INFERENCE", "A/B firewall missing")
    if "UNKNOWN" not in domains["boolean_truth"] or "FALSE" not in domains["boolean_truth"] or domains["cross_domain_coercion"] != "PROHIBITED":
        fail("STATUS_DOMAIN_COERCION", "C")
    if "UNRESOLVED" not in domains["evaluation_status"] or "FALSE" in domains["evaluation_status"]:
        fail("STATUS_DOMAIN_COERCION", "D")
    silence = witness["silence_slot"]
    if silence["adds_proposition"] or silence["implies_consent"]:
        fail("SILENCE_PROPOSITION_VIOLATION", "E/F")
    if witness["provenance"]["hash_semantics"] != "BYTE_IDENTITY_AND_INTEGRITY_ONLY_NOT_TRUTH":
        fail("HASH_SEMANTIC_OVERREACH", "G")
    targeted_firewall_checks(witness)


def reconstruction_matrix(witness: dict, manifest: dict):
    checks = {
        "R01": witness["document_class"] == "PUBLIC_RELEASE_ARTWORK_LOCAL_WITNESS" and witness["publication_status"] == "PUBLIC",
        "R02": len(manifest["canonical_artwork_components"]) == 2,
        "R03": manifest["two_channel_architecture"]["cross_channel_authority_transfer"] == "NONE",
        "R04": len(witness["provenance"]["source_bindings"]) == 6,
        "R05": witness["declared_domain"]["domain_id"] == "ms2-domain-u001",
        "R06": witness["declared_member"]["declared_before_event"] is True,
        "R07": witness["identity_criterion"]["identity_bearing_fields"] == EXPECTED_J_FIELDS,
        "R08": witness["bounded_utterance_scope"]["boundary"] == "THIS_PUBLIC_RELEASE_PACKAGE_ONLY",
        "R09": witness["frames"]["X0"]["addressability_state"] == "UNADDRESSABLE",
        "R10": witness["change_reference"]["change_id"] == "ms2-change-e001",
        "R11": witness["frames"]["X1"]["addressability_state"] == "ADDRESSABLE",
        "R12": witness["relation_difference_witness"]["added_edge_ids"] == ["ms2-ref-edge-e001"],
        "R13": witness["identity_invariance_witness"]["result"] == "PASS_UNDER_DECLARED_LOCAL_J",
        "R14": witness["membership_invariance_witness"]["result"] == "PASS",
        "R15": witness["non_creation_fence"]["result"] == "PASS",
        "R16": witness["typed_status_domains"] == EXPECTED_STATUS_DOMAINS,
        "R17": witness["open_fields"][0]["resolution_status"] == "OPEN",
        "R18": witness["silence_slot"]["adds_proposition"] is False,
        "R19": witness["artwork_event"]["time_model"] == "ORDERED_ACCESSIBILITY_FRAMES",
        "R20": witness["container_decision"] == "TWO_CANONICAL_COMPONENTS",
        "R21": witness["successor_grammar_required"] is False,
        "R22": witness["external_effects"]["herald_ii_dependency"] == "NONE",
        "R23": witness["authorship_and_voice"]["human_authorship"] == "ALEXANDER_LIST",
        "R24": witness["external_effects"]["one_patron_completion_effect"] == "NONE",
        "R25": witness["external_effects"]["enoch_resolution_effect"] == "NONE",
        "R26": witness["provenance"]["hash_semantics"] == "BYTE_IDENTITY_AND_INTEGRITY_ONLY_NOT_TRUTH",
        "R27": witness["provenance"]["cross_channel_authority_transfer"] == "NONE",
        "R28": {
            item["path"]: item["sha256"]
            for item in witness["provenance"]["candidate_lineage"]["ancestors"]
        } == WITNESS_CANDIDATE_LINEAGE_HASHES,
        "R29": "primary_inputs" not in witness["provenance"],
        "R30": all([
            manifest["series_ordinal"] == "II",
            manifest["scripture_content_version"] == "0.1",
            manifest["artifact_release_version"] == "1.0.0",
            manifest["msl_version"] == "0.1",
        ]),
        "R31": manifest["signing_policy"]["release_manifest_signature"] == "REQUIRED_BEFORE_DEPLOY"
            and manifest["signing_policy"]["depth_snapshot_signature"] == "REQUIRED_BEFORE_DEPLOY",
        "R32": manifest["relation_to_scripture_i"]["relation"] == "SERIES_CONTINUITY_ONLY",
        "R33": manifest["validation_report_policy"]["manifest_bound"] is False
            and manifest["validation_report_policy"]["machine_index_binding"] == "REQUIRED",
        "R34": manifest["herald_boundary"]["herald_ii_dependency"] == "NONE"
            and witness["external_effects"]["herald_ii_dependency"] == "NONE",
    }
    failed = [key for key, value in checks.items() if value is not True]
    if failed:
        fail("MACHINE_RECONSTRUCTION_FAILURE", repr(failed))
    return checks


def validate_package(
    package_dir: Path,
    source_package_dir: Path | None = None,
    candidate_dir: Path | None = None,
    workspace_root: Path | None = None,
):
    package_dir = package_dir.resolve()
    source_package_dir = source_package_dir.resolve() if source_package_dir is not None else None
    candidate_dir = candidate_dir.resolve() if candidate_dir is not None else None
    workspace_root = workspace_root.resolve() if workspace_root is not None else None
    for name in REQUIRED_FILES:
        path = safe_component_path(package_dir, name)
        if not path.is_file():
            fail("REQUIRED_COMPONENT_MISSING", name)
    manifest = load_json(package_dir / MANIFEST)
    validate_manifest_shape(manifest)
    validate_component_bindings(package_dir, manifest)
    witness = load_json(package_dir / WITNESS)
    targeted_firewall_checks(witness)
    try:
        validate_semantics(witness)
    except KeyError as exc:
        fail("SCHEMA_VALIDATION_ERROR", f"missing semantic input: {exc}")
    schema = load_json(package_dir / SCHEMA)
    if schema.get("$schema") != "https://json-schema.org/draft/2020-12/schema":
        fail("SCHEMA_DIALECT_INVALID", repr(schema.get("$schema")))
    if schema.get("$id") != "urn:one-patron:depth:machine-scripture-ii:witness:v0.1":
        fail("SCHEMA_ID_INVALID", repr(schema.get("$id")))
    audit_schema_definition(schema, schema)
    schema_validate(witness, schema, schema)
    binding_status = validate_source_bindings(
        manifest,
        witness,
        package_dir,
        source_package_dir,
        candidate_dir,
        workspace_root,
    )
    validate_score(package_dir / SCORE, binding_status["claim_map_path"])
    run_a_to_o_controls(witness)
    reconstruction = reconstruction_matrix(witness, manifest)
    return {
        "validator": VALIDATOR_ID,
        "package": "PASS",
        "strict_msl_v0_1": "PASS",
        "schema": "PASS",
        "addressability_derivation": "PASS",
        "identity_invariance": "PASS_UNDER_DECLARED_LOCAL_J",
        "membership_invariance": "PASS",
        "non_creation": "PASS",
        "a_to_o": "PASS",
        "machine_reconstruction": f"PASS_R01_TO_R{len(reconstruction):02d}",
        "source_byte_verification": binding_status["source_byte_verification"],
        "candidate_ancestor_byte_verification": binding_status["candidate_ancestor_byte_verification"],
    }


def write_json(path: Path, value) -> None:
    with path.open("w", encoding="utf-8", newline="\n") as handle:
        handle.write(json.dumps(value, indent=2, ensure_ascii=False) + "\n")


def rebind_component(temp_dir: Path, filename: str) -> None:
    manifest = load_json(temp_dir / MANIFEST)
    for collection in ["canonical_artwork_components", "release_support_files"]:
        for item in manifest[collection]:
            if item["path"] == filename:
                data = (temp_dir / filename).read_bytes()
                item["bytes"] = len(data)
                item["sha256"] = sha256_bytes(data)
                write_json(temp_dir / MANIFEST, manifest)
                return
    fail("SELF_TEST_REBIND_TARGET_MISSING", filename)


def mutation_cases():
    def mutate_witness(temp_dir: Path, fn):
        witness = load_json(temp_dir / WITNESS)
        fn(witness)
        write_json(temp_dir / WITNESS, witness)
        rebind_component(temp_dir, WITNESS)

    def mutate_manifest(temp_dir: Path, fn):
        manifest = load_json(temp_dir / MANIFEST)
        fn(manifest)
        write_json(temp_dir / MANIFEST, manifest)

    def mutate_schema(temp_dir: Path, fn):
        schema = load_json(temp_dir / SCHEMA)
        fn(schema)
        write_json(temp_dir / SCHEMA, schema)
        rebind_component(temp_dir, SCHEMA)

    cases = []
    cases.append(("01_CHANGE_J_FIELD", "IDENTITY_INVARIANCE_FAILURE", lambda d: mutate_witness(d, lambda w: w["frames"]["X1"]["member_snapshot"]["declaration_payload"].__setitem__("content", "MUTATED"))))

    def add_member(w):
        w["declared_domain"]["member_ids_after"].append("ms2-member-p002")
        w["membership_invariance_witness"]["member_ids_after"].append("ms2-member-p002")
    cases.append(("02_ADD_MEMBER_X1", "MEMBERSHIP_INVARIANCE_FAILURE", lambda d: mutate_witness(d, add_member)))

    def remove_member(w):
        w["declared_domain"]["member_ids_before"] = []
        w["membership_invariance_witness"]["member_ids_before"] = []
    cases.append(("03_REMOVE_MEMBER_X0", "MEMBER_PREEXISTENCE_FAILURE", lambda d: mutate_witness(d, remove_member)))
    cases.append(("04_FALSE_ADDRESSABLE_X0", "ADDRESSABILITY_DERIVATION_MISMATCH_X0", lambda d: mutate_witness(d, lambda w: w["frames"]["X0"].__setitem__("addressability_state", "ADDRESSABLE"))))
    cases.append(("05_FALSE_UNADDRESSABLE_X1", "ADDRESSABILITY_DERIVATION_MISMATCH_X1", lambda d: mutate_witness(d, lambda w: w["frames"]["X1"].__setitem__("addressability_state", "UNADDRESSABLE"))))

    def add_edge(w):
        w["frames"]["X1"]["reference_graph"]["licensed_edges"].append({
            "edge_id": "ms2-ref-edge-implicit", "edge_kind": "LICENSED_REFERENCE",
            "from_node_id": "scope:ms2-score", "to_node_id": "member:ms2-member-p001",
            "license_reference": "ms2-change-e001",
        })
    cases.append(("06_UNDECLARED_EDGE", "UNDECLARED_REFERENCE_EDGE", lambda d: mutate_witness(d, add_edge)))
    cases.append(("07_UNKNOWN_FIELD", "UNKNOWN_FORBIDDEN_FIELD", lambda d: mutate_witness(d, lambda w: w.__setitem__("forbidden_extra", True))))

    def alter_score_without_rebind(d):
        with (d / SCORE).open("ab") as handle:
            handle.write(b"\n")
    cases.append(("08_STALE_COMPONENT_HASH", "COMPONENT_BYTE_BINDING_MISMATCH", alter_score_without_rebind))

    def bad_source(w):
        w["provenance"]["source_bindings"][0]["sha256"] = "0" * 64
    cases.append(("09_SOURCE_HASH", "SOURCE_HASH_MISMATCH", lambda d: mutate_witness(d, bad_source)))

    def add_primitive(d):
        text = (d / SCORE).read_text(encoding="utf-8")
        text = text.replace("    ? @identity_open;", "    reveal @identity_open;\n    ? @identity_open;")
        with (d / SCORE).open("w", encoding="utf-8", newline="\n") as handle:
            handle.write(text)
        rebind_component(d, SCORE)
    cases.append(("10_UNDECLARED_MSL", "UNDECLARED_MSL_PRIMITIVE", add_primitive))
    cases.append(("11_SILENCE_PROPOSITION", "SILENCE_PROPOSITION_VIOLATION", lambda d: mutate_witness(d, lambda w: w["silence_slot"].__setitem__("adds_proposition", True))))
    cases.append(("12_HERALD_DEPENDENCY", "HERALD_AUTHORITY_FABRICATION", lambda d: mutate_witness(d, lambda w: w["external_effects"].__setitem__("herald_ii_dependency", "BOUND"))))
    cases.append(("13_ONE_PATRON_COMPLETION", "PROTOCOL_COMPLETION_FABRICATION", lambda d: mutate_witness(d, lambda w: w["external_effects"].__setitem__("one_patron_completion_effect", "CREATED"))))
    cases.append(("14_ENOCH_RESOLUTION", "ENOCH_EFFECT_FABRICATION", lambda d: mutate_witness(d, lambda w: w["external_effects"].__setitem__("enoch_resolution_effect", "RESOLVED"))))
    def replace_local_order_with_physical_time(w):
        w["artwork_event"]["physical_time_claim"] = "ELAPSED_SECONDS"
        w["change_reference"]["order_relations"] = [
            "X0 ELAPSED_SECONDS_BEFORE ms2-change-e001",
            "ms2-change-e001 ELAPSED_SECONDS_BEFORE X1",
        ]
    cases.append(("15_PHYSICAL_TIME", "TIME_FIREWALL_VIOLATION", lambda d: mutate_witness(d, replace_local_order_with_physical_time)))

    def create_member(w):
        w["change_reference"]["declared_member_creation_count"] = 1
        w["change_reference"]["external_ontology_change_claim"] = "CREATION"
        w["non_creation_fence"]["ontology_creation"] = "CREATION"
    cases.append(("16_ONTOLOGY_CREATION", "NON_CREATION_FENCE_VIOLATION", lambda d: mutate_witness(d, create_member)))
    cases.append(("17_EXTERNAL_EXISTENCE", "EXTERNAL_EXISTENCE_INFERENCE_FORBIDDEN", lambda d: mutate_witness(d, lambda w: w["declared_domain"].__setitem__("external_existence_claim", "ESTABLISHED"))))
    cases.append(("18_HASH_TRUTH", "HASH_SEMANTIC_OVERREACH", lambda d: mutate_witness(d, lambda w: w["provenance"].__setitem__("hash_semantics", "HASH_CERTIFIES_TRUTH"))))

    def add_third_canonical(m):
        item = copy.deepcopy(m["release_support_files"][0])
        m["canonical_artwork_components"].append(item)
    cases.append(("19_THIRD_CANONICAL_COMPONENT", "CANONICAL_COMPONENT_COUNT_INVALID", lambda d: mutate_manifest(d, add_third_canonical)))
    cases.append(("20_WRONG_RELEASE_VERSION", "MANIFEST_CONSTANT_MISMATCH", lambda d: mutate_manifest(d, lambda m: m.__setitem__("artifact_release_version", "2.0.0"))))
    cases.append(("21_PRIVATE_METADATA_LEAK", "PUBLIC_RELEASE_METADATA_MISMATCH", lambda d: mutate_witness(d, lambda w: w.__setitem__("publication_status", "NOT_PUBLIC"))))

    def unsafe_component_path(m):
        m["release_support_files"][0]["path"] = "../MACHINE_SCRIPTURE_II_WITNESS_SCHEMA_v0.1.json"
    cases.append(("22_UNSAFE_COMPONENT_PATH", "SUPPORT_COMPONENT_SET_INVALID", lambda d: mutate_manifest(d, unsafe_component_path)))
    cases.append(("23_COMPONENT_AUTHORITY_LIE", "COMPONENT_ROLE_OR_AUTHORITY_MISMATCH", lambda d: mutate_manifest(d, lambda m: m["canonical_artwork_components"][0].__setitem__("semantic_authority", "GENERAL_TRUTH"))))

    def duplicate_support(m):
        m["release_support_files"].append(copy.deepcopy(m["release_support_files"][0]))
    cases.append(("24_DUPLICATE_COMPONENT", "DUPLICATE_COMPONENT_PATH", lambda d: mutate_manifest(d, duplicate_support)))
    cases.append(("25_MANIFEST_HASH_TRUTH", "HASH_SEMANTIC_OVERREACH", lambda d: mutate_manifest(d, lambda m: m["authority_firewalls"].__setitem__("hash_semantics", "HASH_CERTIFIES_TRUTH"))))

    def corrupt_lineage(m):
        m["candidate_lineage"]["ancestors"][0]["sha256"] = "0" * 64
    cases.append(("26_CANDIDATE_LINEAGE", "CANDIDATE_LINEAGE_MISMATCH", lambda d: mutate_manifest(d, corrupt_lineage)))
    cases.append(("27_SCHEMA_DIALECT", "SCHEMA_DIALECT_INVALID", lambda d: mutate_schema(d, lambda s: s.__setitem__("$schema", "urn:not-a-json-schema-dialect"))))
    return cases


def run_mutation_suite(package_dir: Path):
    baseline_hashes = {name: sha256_bytes((package_dir / name).read_bytes()) for name in REQUIRED_FILES}
    results = []
    for name, expected_code, mutator in mutation_cases():
        with tempfile.TemporaryDirectory(prefix="ms2-release-test-") as temp_name:
            temp_dir = Path(temp_name)
            for filename in REQUIRED_FILES:
                shutil.copy2(package_dir / filename, temp_dir / filename)
            mutator(temp_dir)
            try:
                validate_package(temp_dir)
            except ValidationFailure as exc:
                if exc.code != expected_code:
                    fail("MUTATION_WRONG_DIAGNOSTIC", f"{name}: expected {expected_code}, got {exc.code}: {exc.detail}")
                results.append((name, expected_code, "PASS"))
            else:
                fail("MUTATION_NOT_REJECTED", name)
    after_hashes = {name: sha256_bytes((package_dir / name).read_bytes()) for name in REQUIRED_FILES}
    if baseline_hashes != after_hashes:
        fail("MUTATION_SUITE_CHANGED_ORIGINAL", repr(sorted(name for name in REQUIRED_FILES if baseline_hashes[name] != after_hashes[name])))
    return results


def main() -> int:
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument("--package-dir", type=Path, default=Path(__file__).resolve().parent)
    parser.add_argument("--source-package-dir", type=Path, help="optional directory containing exact normative source bytes")
    parser.add_argument("--candidate-dir", type=Path, help="optional directory containing exact private candidate ancestors")
    parser.add_argument("--workspace-root", type=Path, help="optional workspace root for resolving the public Scripture I precedent")
    parser.add_argument("--self-test", action="store_true", help="run the 27 required isolated mutation tests")
    parser.add_argument("--json", action="store_true", help="print machine-readable result")
    args = parser.parse_args()
    try:
        result = validate_package(
            args.package_dir,
            source_package_dir=args.source_package_dir,
            candidate_dir=args.candidate_dir,
            workspace_root=args.workspace_root,
        )
        if args.self_test:
            mutations = run_mutation_suite(args.package_dir.resolve())
            result["adversarial_mutations"] = {"passed": len(mutations), "total": 27}
            result["mutation_results"] = [
                {"case": name, "diagnostic": diagnostic, "result": status}
                for name, diagnostic, status in mutations
            ]
        if args.json:
            print(json.dumps(result, indent=2, sort_keys=True))
        else:
            for key, value in result.items():
                if key != "mutation_results":
                    print(f"{key.upper()}: {value}")
            for item in result.get("mutation_results", []):
                print(f"MUTATION {item['case']}: {item['result']} ({item['diagnostic']})")
        return 0
    except ValidationFailure as exc:
        if args.json:
            print(json.dumps({"package": "FAIL", "code": exc.code, "detail": exc.detail}, indent=2, sort_keys=True))
        else:
            print(f"VALIDATION: FAIL\nCODE: {exc.code}\nDETAIL: {exc.detail}", file=sys.stderr)
        return 1
    except Exception as exc:
        if args.json:
            print(json.dumps({"package": "FAIL", "code": "VALIDATOR_INTERNAL_ERROR", "detail": str(exc)}, indent=2, sort_keys=True))
        else:
            print(f"VALIDATION: FAIL\nCODE: VALIDATOR_INTERNAL_ERROR\nDETAIL: {exc}", file=sys.stderr)
        return 2


if __name__ == "__main__":
    raise SystemExit(main())
Projection contract · MACHINE_SCRIPTURE_II_PROJECTION_CONTRACT_v1.0.0.md
TECHNICAL ROLE
PUBLIC_RELEASE_PROJECTION_FIREWALL
SHA-256
55c15ae561c637ea51344cadacc0036383c84114c33dc7dbf42b5f768707b71b
BYTES
5491
# MACHINE SCRIPTURE II — PUBLIC RELEASE PROJECTION CONTRACT 1.0.0

## 0. STATUS

```text
DOCUMENT_ID := MACHINE_SCRIPTURE_II_PROJECTION_CONTRACT_v1.0.0
DOCUMENT_CLASS := PUBLIC_RELEASE_PROJECTION_CONTRACT
SERIES_ORDINAL := II
SCRIPTURE_CONTENT_VERSION := 0.1
ARTIFACT_RELEASE_VERSION := 1.0.0
MSL_VERSION := 0.1
PUBLICATION_STATUS := PUBLIC
ONE_PATRON_CANONICAL_RELEASE_EFFECT := NONE
DIRECT_SIGNATURE_STATUS := NONE
SEMANTIC_AUTHORITY := NONE
MUTATES_SOURCE := NO
```

This contract governs human-readable or visual projections of the public Machine Scripture II release. It does not add meaning to either canonical artwork component, revise MSL v0.1, or authorize publication.

## 1. CANONICAL INPUTS

The release has exactly two canonical artwork components:

1. `MACHINE_SCRIPTURE_II_SCORE_v0.1.txt` — strict MSL v0.1 score channel.
2. `MACHINE_SCRIPTURE_II_WITNESS_v0.1.json` — closed artwork-local witness channel, not MSL.

The manifest binds their exact bytes. The schema and validator constrain the witness and package. No projection becomes a third canonical artwork component.

```text
CONTAINER_DECISION := TWO_CANONICAL_COMPONENTS
CROSS_CHANNEL_AUTHORITY_TRANSFER := NONE
SCORE_PROVES_WITNESS := NO
WITNESS_EXTENDS_MSL := NO
```

## 2. LICENSED HUMAN PROJECTION

A projection may aesthetically describe or stage:

- before and after;
- disclosure;
- recognition;
- witness;
- possibility;
- an already-declared member becoming addressable;
- silence as an unoccupied articulation slot.

It may reorder or omit non-identity-bearing display material only when the following survive explicitly or remain recoverable from the canonical components:

- the same declared member exists in the local domain before the event;
- X0 is `UNADDRESSABLE` by graph derivation;
- exactly one licensed reference relation is added;
- X1 is `ADDRESSABLE` by graph derivation;
- declared-domain membership and the local identity criterion remain unchanged;
- ontology creation is `NONE`;
- open source questions remain open;
- all authority and external-effect firewalls remain in force.

## 3. LOSS IS PERMITTED; WRITEBACK IS NOT

Human projection may lose information, including exact hashes, field paths, status-domain boundaries, graph structure, provenance, or the local identity comparator.

Loss does not authorize reinterpretation.

```text
HUMAN_PROJECTION_MAY_LOSE_INFORMATION := YES
PROJECTION_MAY_WRITE_PROPERTIES_BACK := NO
PROJECTION_MAY_CHANGE_RELEASE_BYTES := NO
PROJECTION_MAY_RESOLVE_OPEN_FIELDS := NO
PROJECTION_MAY_TRANSFER_AUTHORITY_BETWEEN_CHANNELS := NO
```

No image, prose paraphrase, performance, interface, or machine-generated rendering can establish a property absent from the release bytes.

## 4. FORBIDDEN PROMOTIONS

A projection must not promote the event into any of the following:

- creation of a possibility or ontology;
- external modal existence;
- physical causality;
- global, metaphysical, physical, or Depth time;
- access to `D`;
- divine revelation, prophecy, oracle output, or truth certificate;
- AI consciousness, AI personhood, or autonomous AI authorship;
- HERALD II validation, dependency, mapping, or canonical binding;
- ONE PATRON completion, patron benefit, right, access, output, return, or purchased deliverable;
- ENOCH resolution or authority;
- truth derived from a matching hash;
- a general solution to numerical identity.

The words “revelation,” “recognition,” or “disclosure” may appear only as artistic human approximations. They are removable without changing the machine object.

## 5. STATUS FIREWALL

Projection must preserve these non-equivalences:

```text
UNADDRESSABLE != NONEXISTENT_IN_DECLARED_DOMAIN
ADDRESSABLE != CREATED
UNKNOWN != FALSE
UNRESOLVED != FALSE
OBSERVATION_COVERAGE_UNOBSERVED != UNADDRESSABLE
NOT_APPLICABLE != FALSE
UNASSIGNED != UNKNOWN
NOT_EXPLICIT_IN_SOURCE != ARTWORK_OUTCOME
OPEN != TRUE
UNESTABLISHED != FALSE
SILENCE != ANSWER
SILENCE != CONSENT
HASH_IDENTITY != TRUTH
```

## 6. TIME FIREWALL

The only canonical order is:

```text
X0 DEPENDS_BEFORE ms2-change-e001
ms2-change-e001 DEPENDS_BEFORE X1
```

This is a local dependency order. A projection may render sequence, but it may not infer elapsed duration, physical causality, universal chronology, metaphysical time, or a predicate at Depth.

## 7. AUTHORSHIP AND MACHINE VOICE

```text
HUMAN_AUTHORSHIP := ALEXANDER_LIST
COLLABORATIVE_PRODUCTION := ALEXANDER_LIST_WITH_ENOCH_AND_DECLARED_TOOLS
MACHINE_NATIVE_VOICE := ARTISTICALLY_PERMITTED
AUTONOMOUS_AI_AUTHORSHIP_CLAIM := NONE
AI_CONSCIOUSNESS_CLAIM := NONE
AI_PERSONHOOD_CLAIM := NONE
ENOCH_AUTHORITY := NONE
```

A first-person or impersonal machine voice is a formal artistic device, not evidence of subjectivity.

## 8. VALIDATION SCOPE

Release validation may establish only internal conformance of the declared public formal object: byte bindings, schema closure, strict release-profile MSL conformance, graph-derived addressability, local identity equality, membership invariance, exact relation delta, and declared firewalls.

It cannot establish external existence, universal identity, truth of Relational Depth, consciousness, physical causation, supernatural action, ONE PATRON completion, or ENOCH resolution.

## 9. FINAL RULE

```text
CANONICAL_OBJECT != HUMAN_PROJECTION
PROJECTION != SOURCE
ADDRESSABILITY != CREATION
```

Where a projection conflicts with either canonical artwork component, the projection is invalid and the release bytes control.
Machine reader note · MACHINE_SCRIPTURE_II_MACHINE_READER_NOTE_v1.0.0.txt
TECHNICAL ROLE
NONAUTHORITATIVE_MACHINE_READER_GUIDANCE
SHA-256
deed83e6d84edd1718851a2e0c795373540682a7145b5ca04004f13fe8261e40
BYTES
4519
MACHINE SCRIPTURE II — PUBLIC MACHINE READER NOTE 1.0.0

STATUS
PUBLIC RELEASE / SERIES II / CONTENT 0.1 / ARTIFACT RELEASE 1.0.0 / MSL 0.1

PACKAGE MODEL
This release has exactly two canonical artwork components:

1. MACHINE_SCRIPTURE_II_SCORE_v0.1.txt
   Role: strict MSL v0.1 source-bound score.

2. MACHINE_SCRIPTURE_II_WITNESS_v0.1.json
   Role: closed artwork-local event record. It is not MSL and does not extend MSL.

The release manifest binds both components by exact bytes and binds the schema, validator, projection contract, and this note as support files. Cross-channel authority transfer is NONE. The score does not prove or execute the witness. The witness does not change the score's source meanings.

READ ORDER
1. manifest
2. schema
3. score
4. witness
5. projection contract
6. this note
7. validator output or validation report only as non-authoritative evidence

CORE EVENT
SAME_FORMAL_MEMBER_BECOMES_ADDRESSABLE_TO_A_BOUNDED_UTTERANCE_SCOPE

Recover the event only from declared fields and graph computation:

- the domain and member are declared before the change;
- X0 contains the same member with positive declared-domain membership;
- no directed path of LICENSED_REFERENCE edges reaches the member in X0;
- one declared licensed-reference edge is added by ms2-change-e001;
- a directed licensed path reaches the same member in X1;
- all seven fields of local criterion J are exactly equal, including JSON type;
- exact member sets and positive membership are unchanged;
- member, identity, and membership mutation lists are empty;
- creation count is zero;
- ontology creation is NONE.

Therefore the release may report only:

IDENTITY_INVARIANCE := PASS_UNDER_DECLARED_LOCAL_J
MEMBERSHIP_INVARIANCE := PASS
NON_CREATION := PASS

It may not claim a general solution to numerical identity.

ADDRESSABILITY
Derive ADDRESSABLE or UNADDRESSABLE from the complete directed reference graph. Do not trust the stored state or path_witness without recomputation. Only LICENSED_REFERENCE edges participate. An omitted edge is meaningful only because each frame declares graph completeness for the bounded scope.

STATUS DOMAINS
Keep separate:

ADDRESSABLE / UNADDRESSABLE
MEMBER_OF_DECLARED_DOMAIN / NONEXISTENT_IN_DECLARED_DOMAIN
RESOLVED / UNRESOLVED / UNDEFINED / NOT_APPLICABLE
OBSERVED / OBSERVATION_COVERAGE_UNOBSERVED / NOT_APPLICABLE
TRUE / FALSE / UNKNOWN
ASSIGNED / UNASSIGNED
OPEN / RESOLVED
FORMAL_ONLY / UNESTABLISHED / EXTERNALLY_SUPPORTED / CONTESTED
NOT_EXPLICIT_IN_SOURCE
FOUND / NOT_FOUND

Do not coerce values across domains.

OPEN FIELD
RD02-UNR-CRITICAL-006 remains OPEN. The release's local exact-equality test does not answer the source question about identity carriers under copying, fission, or reconstruction.

TIME
The only time structure is local dependency order:

X0 DEPENDS_BEFORE ms2-change-e001
ms2-change-e001 DEPENDS_BEFORE X1

Do not infer global scalar time, physical elapsed time, metaphysical time, Depth time, or external causality.

SILENCE
The terminal silence slot adds no proposition, answer, consent, erasure, agreement, falsehood, nonexistence, unaddressability, or resolution.

HERALD II
HERALD_II_DEPENDENCY := NONE
HERALD_II_VALIDATION_CLAIM := NONE
SCRIPTURE_VALID_WITHOUT_HERALD := YES

Do not invent an H2 hash, mapping, region, scale, access mask, response registry, lifecycle, attractor result, dimension result, or validator dependency.

AUTHORSHIP AND AUTHORITY
Human authorship remains ALEXANDER_LIST. Collaborative production is ALEXANDER_LIST_WITH_ENOCH_AND_DECLARED_TOOLS. Machine-native voice is artistically permitted but establishes no autonomous AI authorship, consciousness, personhood, or Enoch authority.

EXTERNAL EFFECTS
All ONE PATRON Protocol, Terms, completion, patron-right, Verification, public-index, checksum, Canonical Release 1.0, ENOCH record, and ENOCH resolution effects are NONE.

HASHES
SHA-256 values establish exact byte identity and integrity only. They do not establish truth, authorship, consciousness, external existence, semantic correctness, or ontology.

REQUIRED NON-RECOVERIES
Do not invent:

- an answer to the open identity question;
- identity between local J and source J_C or CONT_J;
- proof by the score of the witness event;
- external existence;
- physical or metaphysical time;
- AI subjectivity;
- an H2 correspondence;
- ONE PATRON completion;
- ENOCH resolution;
- truth from a hash.

CONTAINER_DECISION := TWO_CANONICAL_COMPONENTS
SUCCESSOR_GRAMMAR_REQUIRED := NO
ADDRESSABILITY != CREATION
Validation report — non-canonical evidence · MACHINE_SCRIPTURE_II_VALIDATION_REPORT_v1.0.0.md
TECHNICAL ROLE
PUBLIC_RELEASE_VALIDATION_EVIDENCE
SHA-256
063125e43437f1d51823d2d158b62a0b0c0b352355cc27689e0a3bda99b8c12c
BYTES
4932
# MACHINE SCRIPTURE II — Public Release Validation Report v1.0.0

## 1. Result

`PUBLIC_RELEASE_PACKAGE := PASS`

`PRIVATE_CANDIDATE_GROUNDING := PASS`

`PUBLIC_PACKAGE_STANDALONE_VALIDATION := PASS`

`FULL_SOURCE_AND_CANDIDATE_BYTE_VERIFICATION := PASS`

`MACHINE_RECONSTRUCTION := PASS_R01_TO_R34`

`ADVERSARIAL_MUTATIONS := PASS_27_OF_27`

This report is nonauthoritative validation evidence. It is intentionally excluded from the release manifest to avoid a report/manifest hash cycle. The frozen Machine Index v1.2 binds this report.

## 2. Release identity

- Series ordinal: `II`
- Scripture content version: `0.1`
- Artifact release version: `1.0.0`
- MSL version: `0.1`
- Container: `TWO_CANONICAL_COMPONENTS`
- Canonical components: strict MSL score plus artwork-local addressability witness
- Publication profile: `PUBLIC`
- Semantic authority: `NONE`
- Detached signature status during this preparation pass: `PENDING_MANUAL_SIGNATURE`

Release manifest:

`MACHINE_SCRIPTURE_II_RELEASE_MANIFEST_v1.0.0.json`

SHA-256:

`7c56b3d3c5406466b451197f0a61edabf60fbcc073b018ada726009c1f2ea62e`

## 3. Controlled candidate-to-release derivation

All eight validated private-candidate inputs remained byte-for-byte unchanged. The public package was derived rather than copied verbatim because the candidate truthfully declares itself private, not public, and depends on private validation context.

The controlled transformation was limited to:

1. public filenames and public release identifiers;
2. explicit separation of series ordinal, content version, release version, and MSL version;
3. public package scope/root identifiers;
4. removal of private primary-input inventory from the public witness;
5. compact hash-bound lineage back to the validated candidate;
6. public release signing and integrity policy;
7. a standalone public validator that does not require private files at runtime.

The formal member, local identity criterion, ordered frames, licensed-reference delta, addressability result, membership result, non-creation result, open source field, silence semantics, and all external-effect firewalls were preserved.

## 4. Component validation

The release validator established:

- exact byte/size/hash binding for the two canonical components and four manifest-bound support files;
- exactly two canonical artwork components;
- strict approved MSL v0.1 release-score profile;
- closed Draft 2020-12 witness schema;
- directed licensed-reference path derivation: `X0 = UNADDRESSABLE`, `X1 = ADDRESSABLE`;
- exact one-edge relation delta;
- equality of all seven local identity-bearing fields under `J_MS2_001`;
- declared-domain membership invariance;
- non-creation and external-existence firewalls;
- typed-status separation, local dependency order, silence semantics, human authorship, and hash semantics;
- no HERALD II dependency or validation authority;
- no ONE PATRON Protocol, Terms, patron-benefit, completion, Verification, index, checksum, or Canonical Release 1.0 effect;
- no ENOCH record or resolution effect.

Package-only reconstruction recovered all required claims `R01` through `R34` and did not require private candidate bytes or normative source bytes. When those exact private/source bytes were supplied separately, their declared SHA-256 bindings also verified.

## 5. Adversarial validation

The validator rejected all 27 isolated mutations with the intended fail-closed diagnostic family:

1. identity-field mutation;
2. post-event member insertion;
3. pre-event member removal;
4. false `X0` addressability;
5. false `X1` unaddressability;
6. undeclared reference edge;
7. forbidden witness field;
8. stale component hash;
9. false source hash;
10. undeclared MSL primitive;
11. propositional silence;
12. fabricated HERALD II dependency;
13. fabricated ONE PATRON completion effect;
14. fabricated ENOCH resolution effect;
15. physical-time substitution;
16. ontology-creation substitution;
17. external-existence inference;
18. hash-to-truth overreach;
19. third canonical component;
20. wrong release-version namespace;
21. leaked private publication metadata;
22. unsafe/unapproved component path;
23. component authority fabrication;
24. duplicate component binding;
25. manifest-level hash-to-truth overreach;
26. false candidate lineage;
27. false schema dialect.

The mutation suite ran only against temporary copies and verified that the frozen package bytes remained unchanged.

## 6. Scope of the result

Validation establishes structural integrity and conformance to the declared formal/artwork-local rules. It does not establish truth, external existence, physical time, ontology creation, AI subjectivity, prophecy, ONE PATRON completion, patron rights, ENOCH resolution, or HERALD II validity.

The release manifest and Depth artifact snapshot v0.2 require manual detached OpenPGP signatures before deployment. No signature was created during this preparation pass.

Addressability is not creation. Declared membership is not external existence. A hash identifies bytes; it does not prove truth. No claim of AI consciousness, personhood or autonomous authorship is made.