{
  "schemaVersion": 1,
  "contract": "kungfu-buildchain-v4-release-topology/v1",
  "sourceCut": {
    "branch": "dev/v4/v4.0",
    "commit": "c3a50c941d018fcc3bec624e19a1298357b7f84a",
    "tree": "213cdcaded8d90c823ecdafdd9968bceceed9057"
  },
  "enforcement": "converged",
  "closedWorld": {
    "workflowPaths": [
      ".github/workflows/.build.yml",
      ".github/workflows/.release-authority.yml",
      ".github/workflows/.release-binary-assets.yml",
      ".github/workflows/.release-promote.yml",
      ".github/workflows/build.yml",
      ".github/workflows/public-build-demo.yml",
      ".github/workflows/public-ops-alpha-candidate-patrol.yml",
      ".github/workflows/public-ops-dev-auto-merge.yml",
      ".github/workflows/public-ops-observed-evidence.yml",
      ".github/workflows/public-ops-stable-candidate-patrol.yml",
      ".github/workflows/public-release-artifact-attestation.yml",
      ".github/workflows/public-release-oci-compose-preview.yml",
      ".github/workflows/public-release-paper.yml",
      ".github/workflows/public-release-promote.yml",
      ".github/workflows/public-release-propagation.yml",
      ".github/workflows/public-release-tail.yml",
      ".github/workflows/public-release-web.yml",
      ".github/workflows/self-build-alpha-dogfood.yml",
      ".github/workflows/self-build-demo-dogfood.yml",
      ".github/workflows/self-build-fixture.yml",
      ".github/workflows/self-build-stable-dogfood.yml",
      ".github/workflows/self-ops-dev-delivery.yml",
      ".github/workflows/self-ops-patrol-daily.yml",
      ".github/workflows/self-ops-patrol-monthly.yml",
      ".github/workflows/self-ops-patrol-weekly.yml",
      ".github/workflows/self-ops-promotion-recovery.yml",
      ".github/workflows/self-ops-stable-candidate-patrol.yml",
      ".github/workflows/self-release-binary-assets.yml",
      ".github/workflows/self-release-line-open.yml",
      ".github/workflows/self-release-next-development.yml",
      ".github/workflows/self-release-npm-dry-run.yml",
      ".github/workflows/self-release-promote.yml",
      ".github/workflows/self-release-rehearsal-dogfood.yml",
      ".github/workflows/self-release-tail-dogfood.yml"
    ],
    "unknownTopologyPolicy": "fail-closed"
  },
  "semanticScope": {
    "workflowPaths": [
      ".github/workflows/.release-promote.yml",
      ".github/workflows/self-ops-promotion-recovery.yml",
      ".github/workflows/self-release-promote.yml",
      ".github/workflows/public-release-promote.yml",
      ".github/workflows/self-release-tail-dogfood.yml"
    ],
    "excludedMechanisms": [
      "Paper product release",
      "npm dry-run",
      "Protected generated version review: no package, tag or Release mutation; independently inventoried in closedWorld and privilegedExecutableClosure. Stable finalization review consumes the exact tag and regenerates the rooted version state before protected auto-merge.",
      "Post-publication protected development review: no package, tag or Release mutation; independently inventoried in closedWorld and privilegedExecutableClosure.",
      "Post-publication OCI Compose preview activation is measured separately in postPublicationScope; it consumes completed publication and qualification, copies one manifest to the sealed alias, and cannot materialize versions or release refs."
    ]
  },
  "authorityClosure": {
    "providerAdapters": [
      "packages/core/adoption/buildchain-agent-manuals.js",
      "packages/core/index.js",
      "packages/core/publication/oci-compose-qualification.js",
      "packages/core/publication/oci/preview-promotion.js",
      "packages/core/publication/publication-rehearsal-capsule.js",
      "packages/core/publication/publication-rehearsal-runtime.js",
      "packages/core/publication/publication-rehearsal.js",
      "packages/core/publication/settlement/transaction.js",
      "packages/core/release/commands/release-tail.mjs",
      "packages/core/release/github-provider-plane.js",
      "packages/core/release/github-release.js",
      "packages/core/release/promote-candidate/evidence-binding.js",
      "packages/core/release/promote-candidate/oci-provider.js",
      "packages/core/release/promote-candidate/product-provider-adapters.js",
      "packages/core/release/promote-candidate/product-provider-github-adapters.js",
      "packages/core/release/promote-candidate/product-provider.js",
      "packages/core/release/release-tail-provider-adapters.js",
      "packages/core/release/release-tail-provider-plane.js",
      "packages/core/release/settle/action.js"
    ],
    "runtimeSelectors": [
      "packages/core/runtime/entry/actions.js",
      "packages/core/runtime/entry/activation.js",
      "packages/core/runtime/entry/github.js",
      "packages/core/runtime/entry/recovery.js",
      "packages/core/runtime/entry/selection.js"
    ],
    "runtimeEngines": ["packages/core/release/promote-candidate/action.js"],
    "terminalProjections": [
      "actions/release/promotion/apply/action.yml",
      "actions/release/promotion/settle/action.yml",
      "packages/core/publication/settlement/transaction.js",
      "packages/core/release/promote-candidate/provider-settlement.js",
      "packages/core/release/release-invocation.js",
      "packages/core/workflow/engine/release-evidence.js"
    ],
    "privilegedExecutableClosure": {
      "entrypoints": [
        "packages/core/release/promote-candidate/action.js",
        "packages/core/publication/binary/action.js",
        "packages/core/release/next-development/actions.js",
        "packages/core/publication/oci/preview-actions.js",
        "packages/core/publication/settlement/actions.js"
      ],
      "modules": [
        "packages/core/adoption/kfd-adopter-manifest.js",
        "packages/core/adoption/kfd-gate.js",
        "packages/core/adoption/kfd-product-gates.js",
        "packages/core/build/artifact-verification-envelope.js",
        "packages/core/build/binary/checksums.js",
        "packages/core/build/build-configuration.js",
        "packages/core/build/github-artifact-attestation.js",
        "packages/core/build/package-manager.js",
        "packages/core/consumer/buildchain-channel-identity.js",
        "packages/core/consumer/buildchain-config.js",
        "packages/core/consumer/floating-consumer-evidence.js",
        "packages/core/consumer/floating-consumer-policy.js",
        "packages/core/consumer/floating-consumer-release-passport.js",
        "packages/core/contracts/action-inventory.js",
        "packages/core/contracts/buildchain-contract.js",
        "packages/core/contracts/buildchain-layout.js",
        "packages/core/contracts/canonical-contracts.js",
        "packages/core/contracts/kungfu-temporal-fact.js",
        "packages/core/contracts/public-surface-audit.js",
        "packages/core/contracts/public-surface-cli.js",
        "packages/core/contracts/workflow-yaml-contract.js",
        "packages/core/dev-delivery/dev-delivery-common.js",
        "packages/core/dev-delivery/dev-delivery-contract-surface.js",
        "packages/core/governance/buildchain-compatibility-authority.js",
        "packages/core/governance/buildchain-compatibility-fact.js",
        "packages/core/governance/buildchain-compatibility-facts.json",
        "packages/core/governance/buildchain-compatibility-proof.js",
        "packages/core/observability/controller-evidence.js",
        "packages/core/providers/github-cli-api.js",
        "packages/core/providers/github/graphql-errors.js",
        "packages/core/providers/github/release-assets.js",
        "packages/core/publication/binary/action.js",
        "packages/core/publication/binary/capability.js",
        "packages/core/publication/binary/evidence.js",
        "packages/core/publication/binary/transaction.js",
        "packages/core/publication/oci-compose-qualification.js",
        "packages/core/publication/oci-publication-bundle.js",
        "packages/core/publication/oci-publication-graph.js",
        "packages/core/publication/oci/preview-actions.js",
        "packages/core/publication/oci/preview-admission.js",
        "packages/core/publication/oci/preview-promotion.js",
        "packages/core/publication/oci/preview-registry.js",
        "packages/core/publication/oci/preview-transaction.js",
        "packages/core/publication/oci/preview-values.js",
        "packages/core/publication/publication-artifact-candidate.js",
        "packages/core/publication/publication-authority.js",
        "packages/core/publication/publication-development.js",
        "packages/core/publication/publication-qualification.js",
        "packages/core/publication/publication-sealed-bundle.js",
        "packages/core/publication/settlement/actions.js",
        "packages/core/publication/settlement/transaction.js",
        "packages/core/release/commands/ensure-github-release.mjs",
        "packages/core/release/github-provider-plane.js",
        "packages/core/release/github-release.js",
        "packages/core/release/next-development-transition.js",
        "packages/core/release/next-development/actions.js",
        "packages/core/release/next-development/approval.js",
        "packages/core/release/next-development/enqueue.js",
        "packages/core/release/next-development/finalization.js",
        "packages/core/release/next-development/observation.js",
        "packages/core/release/next-development/review-policy.js",
        "packages/core/release/next-development/verification.js",
        "packages/core/release/passport/artifact-index.js",
        "packages/core/release/passport/consumer-input.js",
        "packages/core/release/passport/consumer-validation.js",
        "packages/core/release/passport/documents.js",
        "packages/core/release/passport/evidence-validation.js",
        "packages/core/release/passport/files.js",
        "packages/core/release/passport/identity.js",
        "packages/core/release/passport/impact-validation.js",
        "packages/core/release/passport/impact.js",
        "packages/core/release/passport/inputs.js",
        "packages/core/release/passport/issues.js",
        "packages/core/release/passport/json.js",
        "packages/core/release/passport/locations.js",
        "packages/core/release/passport/publish-validation.js",
        "packages/core/release/passport/publish.js",
        "packages/core/release/passport/report.js",
        "packages/core/release/passport/state-validation.js",
        "packages/core/release/passport/trust-claims.js",
        "packages/core/release/passport/trust-validation.js",
        "packages/core/release/product-publication.js",
        "packages/core/release/promote-candidate/action.js",
        "packages/core/release/promote-candidate/development-source.js",
        "packages/core/release/promote-candidate/evidence-binding.js",
        "packages/core/release/promote-candidate/evidence-inputs.js",
        "packages/core/release/promote-candidate/files.js",
        "packages/core/release/promote-candidate/next-development-provider.js",
        "packages/core/release/promote-candidate/next-development-queue-observation.js",
        "packages/core/release/promote-candidate/next-development-queue.js",
        "packages/core/release/promote-candidate/oci-provider.js",
        "packages/core/release/promote-candidate/oci-registry-client.js",
        "packages/core/release/promote-candidate/outputs.js",
        "packages/core/release/promote-candidate/product-finalization-wait.js",
        "packages/core/release/promote-candidate/product-provider-adapters.js",
        "packages/core/release/promote-candidate/product-provider-github-adapters.js",
        "packages/core/release/promote-candidate/product-provider.js",
        "packages/core/release/promote-candidate/provider-request.js",
        "packages/core/release/promote-candidate/provider-settlement.js",
        "packages/core/release/promote-candidate/publication-completion.js",
        "packages/core/release/promote-candidate/release-documents.js",
        "packages/core/release/promote-candidate/transaction.js",
        "packages/core/release/protected-publication-source.js",
        "packages/core/release/publish-transaction.js",
        "packages/core/release/recovery/lineage.js",
        "packages/core/release/release-candidate-recovery.js",
        "packages/core/release/release-candidate.js",
        "packages/core/release/release-invocation.js",
        "packages/core/release/release-passport-contract.js",
        "packages/core/release/release-passport.js",
        "packages/core/release/release-tail-product-capabilities.js",
        "packages/core/release/release-tail-provider-adapters.js",
        "packages/core/release/release-tail-provider-plane.js",
        "packages/core/release/reuse-complete-release.js",
        "packages/core/release/version-state.js",
        "packages/core/release/version-state/verification.js",
        "packages/core/runtime/action-process.mjs",
        "packages/core/runtime/checkout-identity.js",
        "packages/core/runtime/domain-wasm-artifact.js",
        "packages/core/runtime/domain-wasm.js",
        "packages/core/runtime/installation-root.js",
        "packages/core/runtime/spawn-command.js",
        "packages/core/web/web-surface-publication-candidate.js"
      ],
      "root": "sha256:a701181b0e2081033458262c1c2355c4716b416c25a11f4e330aa83c59e265a0"
    },
    "rustWasmAuthority": {
      "loader": "packages/core/runtime/domain-wasm.js",
      "metadata": "packages/core/runtime/domain-wasm-artifact.js",
      "artifact": "packages/core/runtime/buildchain-domain.wasm",
      "artifactRoot": "sha256:504e23c9241f43611813f0fbd213b7a694946328b00e23d22f6ba678e7b0c841",
      "distributedArtifacts": [
        "actions/release/promotion/ref/dist/buildchain-domain.wasm",
        "actions/release/tail/settle/dist/buildchain-domain.wasm",
        "actions/release/promotion/candidate/dist/buildchain-domain.wasm"
      ],
      "byteIdenticalDistributions": true,
      "fallbackWriterCount": 0
    },
    "excludedRefPromotionModules": [
      "packages/core/release/promote-ref/internal/durable-transaction-operations.js",
      "packages/core/release/promote-ref/internal/promote-alpha-channel.js",
      "packages/core/release/promote-ref/internal/promote-major-channel.js",
      "packages/core/release/promote-ref/internal/promote-release-channel.js",
      "packages/core/release/promote-ref/lib.js"
    ],
    "freshEntry": ".github/workflows/public-release-promote.yml",
    "recoveryEntry": ".github/workflows/self-ops-promotion-recovery.yml",
    "forbiddenPublisherPatterns": [
      "legacy-promote",
      "v4-declarative-promote",
      "BUILDCHAIN_DECLARATIVE_PROMOTION",
      "Select declarative or legacy promotion result"
    ]
  },
  "baselineMetrics": {
    "workflowCount": 15,
    "jobCount": 38,
    "reusableEdgeCount": 11,
    "mutationRelevantNodeCount": 25,
    "contentsWriteJobCount": 10,
    "oidcWriteJobCount": 9,
    "semanticMutationRelevantNodeCount": 17
  },
  "targetBudgets": {
    "semanticBoundaries": ["QUALIFY", "APPLY", "SETTLE"],
    "maximumMutationRelevantNodeCount": 8,
    "contentsWriteJobCount": 1,
    "oidcWriteJobCount": 1,
    "publisherIdentityCount": 1,
    "runtimeIdentityCount": 1,
    "terminalReceiptAuthorityCount": 1
  },
  "authorityClassification": {
    "publisher": {
      "current": [
        ".github/workflows/.release-promote.yml#legacy-promote",
        ".github/workflows/.release-promote.yml#v4-declarative-promote"
      ],
      "target": ".github/workflows/.release-promote.yml#apply"
    },
    "runtimeSelectors": {
      "discoveryOnly": ["v4-alpha", "v4", "alpha/v4/v4.0"],
      "postAdmissionPolicy": "exact-sha-only"
    },
    "engines": {
      "current": ["legacy-promote", "v4-declarative-promote"],
      "target": "release-transaction"
    },
    "terminalProjections": {
      "current": ["promote", "controller-receipt", "release-tail receipt"],
      "target": "ReleaseReceipt"
    }
  },
  "observedTopology": {
    "jobRecordFields": [
      "id",
      "kind",
      "uses",
      "contentsPermission",
      "oidcPermission",
      "carriers",
      "mutationSignals"
    ],
    "workflows": [
      {
        "path": ".github/workflows/.release-promote.yml",
        "triggers": ["workflow_call"],
        "jobs": [
          "apply|runner|-|inherited|inherited|artifactDownload,artifactUpload,jobOutput|contents-write,oidc-write,promotion-runtime",
          "execution-runtime|runner|-|read|-|jobOutput|-",
          "qualify|runner|-|read|-|artifactUpload,jobOutput|-",
          "settle|runner|-|read|-|artifactDownload,artifactUpload,jobOutput|-"
        ],
        "reusableEdges": []
      },
      {
        "path": ".github/workflows/public-release-promote.yml",
        "triggers": ["workflow_call"],
        "jobs": [
          "consumer-admission|runner|-|read|-|artifactUpload,jobOutput|-",
          "execution-runtime|runner|-|read|-|jobOutput|-",
          "invoke|reusable-call|./.github/workflows/.release-promote.yml|-|-|-|-",
          "resolve-promotion|runner|-|read|-|jobOutput|-"
        ],
        "reusableEdges": ["./.github/workflows/.release-promote.yml"]
      },
      {
        "path": ".github/workflows/self-ops-promotion-recovery.yml",
        "triggers": ["workflow_dispatch"],
        "jobs": [
          "resume|reusable-call|kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4|write|write|-|contents-write,oidc-write"
        ],
        "reusableEdges": [
          "kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4"
        ]
      },
      {
        "path": ".github/workflows/self-release-promote.yml",
        "triggers": ["workflow_dispatch", "workflow_run"],
        "jobs": [
          "classify-workflow-run|runner|-|read|-|jobOutput|-",
          "execution-runtime|runner|-|read|-|jobOutput|-",
          "promote|reusable-call|kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4|write|write|-|contents-write,oidc-write",
          "reject-invalid-candidate-recovery|runner|-|read|-|-|-",
          "reject-invalid-durable-recovery|runner|-|read|-|-|-",
          "reject-manual-apply|runner|-|read|-|-|-"
        ],
        "reusableEdges": [
          "kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4"
        ]
      },
      {
        "path": ".github/workflows/self-release-tail-dogfood.yml",
        "triggers": ["workflow_dispatch"],
        "jobs": [
          "publish|reusable-call|kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4|write|write|-|contents-write,oidc-write"
        ],
        "reusableEdges": [
          "kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4"
        ]
      }
    ],
    "metrics": {
      "workflowCount": 34,
      "jobCount": 95,
      "reusableEdgeCount": 20,
      "mutationRelevantNodeCount": 61,
      "contentsWriteJobCount": 22,
      "oidcWriteJobCount": 19
    },
    "semanticMetrics": {
      "workflowCount": 5,
      "mutationRelevantNodeCount": 8,
      "contentsWriteJobCount": 1,
      "oidcWriteJobCount": 1
    }
  },
  "postPublicationScope": {
    "workflowPaths": [
      ".github/workflows/public-release-oci-compose-preview.yml"
    ],
    "authority": "exact-publication-plus-source-bound-qualification-and-expected-old-digest",
    "observedTopology": {
      "jobRecordFields": [
        "id",
        "kind",
        "uses",
        "contentsPermission",
        "oidcPermission",
        "carriers",
        "mutationSignals"
      ],
      "workflows": [
        {
          "path": ".github/workflows/public-release-oci-compose-preview.yml",
          "triggers": ["workflow_call"],
          "jobs": [
            "execution-runtime|runner|-|read|-|jobOutput|-",
            "promote|runner|-|write|-|artifactDownload,artifactUpload|contents-write"
          ],
          "reusableEdges": []
        }
      ],
      "metrics": {
        "workflowCount": 1,
        "jobCount": 2,
        "reusableEdgeCount": 0,
        "mutationRelevantNodeCount": 1,
        "contentsWriteJobCount": 1,
        "oidcWriteJobCount": 0
      },
      "semanticMetrics": {
        "workflowCount": 1,
        "mutationRelevantNodeCount": 1,
        "contentsWriteJobCount": 1,
        "oidcWriteJobCount": 0
      }
    }
  }
}
