{
  "schemaVersion": 2,
  "contract": "kungfu-buildchain-maintainability-policy",
  "baseline": "architecture/maintainability-baseline.json",
  "enforcementRevision": "1bb6333b97ad94e94a81178e956a703dff2b5f84",
  "debtBudget": {
    "metric": "calibrated-full-dimensional-excess-v1",
    "baselineProtectedHead": "2381db294325a367b6d2bfe7ee72c246f8469a51",
    "baselineMeasuredExcess": 74773,
    "baselineTotalExcess": 66712,
    "maxTotalExcess": 59953,
    "targetExclusive": 60000,
    "rationale": "Preserve the accepted 66,712 governance ledger at the exact protected Wave 4 cut while charging every subsequent source, Rust, test, and workflow line, function, job, step, and decision excess one-for-one. The fixed calibration offset cannot hide new debt because both the measured ledger and calibrated total are recomputed from the complete exact debt map."
  },
  "exceptionBudget": {
    "maxTotal": 39,
    "maxByCollection": {
      "approvedExistingDebtTransitions": 7,
      "approvedNewFileTransitions": 9,
      "approvedExtractedDebt": 16,
      "approvedTestDebtTransitions": 6,
      "approvedWorkflowDebtTransitions": 1,
      "approvedPublicSurfaceTransitions": 0
    },
    "rationale": "Wave 4 freezes both the aggregate exception inventory and every exception class at the exact protected baseline; reductions may ratchet these ceilings downward, but entries cannot be moved between classes to create hidden headroom."
  },
  "repositoryBudgets": {
    "baselineRevision": "9569f69c2cb609372b8a3d65ce5dec8fb7b34a84",
    "maxHandMaintainedSourceFiles": 1295,
    "maxHandMaintainedSourceLines": 203392,
    "maxWorkflowFiles": 68,
    "maxWorkflowLines": 9763,
    "latestTransition": "Buildchain 4.1 unified runtime entry and per-job preparation.",
    "latestTransitionRationale": "All public APIs declare one runtime selection job and every execution job uses the sole preparation owner. Count the required workflow input, output, permissions and job wiring at this exact cut. Business actions run only from the selected runtime. No per-function, exception-count or calibrated debt ceiling increases; independent governance review is required.",
    "rationale": "Bounded modules separate candidate, evidence, native proof and execution, canonical failure verification, closed-set execution transfer, process-boundary verification, Warrant state and qualification, authority state, qualification, Landing acquisition, verified-attempt admission, Landing settlement and fence validation, provider attempt and heartbeat readback, sealed terminal evidence, hosted heartbeat, resume, store, options, command-specific adapters, and CLI orchestration responsibilities. The protected delivery workflow gives candidate and seal jobs no provider write credential, recursively rejects transfer drift, scopes every transfer artifact to the exact provider run attempt, chains every durable heartbeat state and receipt root on a distinct hosted runner domain, and permits qualification or exact failure settlement only after the finalizer verifies live jobs and the latest durable authority state. Public Landing admission and heartbeat always perform non-injectable fresh exact-attempt provider readback, tolerate only a not-yet-materialized seal job while retaining exact native and duplicate-job rejection, and heartbeat-loss coordination never invokes GitHub's run-scoped cancellation API where a successor rerun could race. The hosted process boundary anchors trust in the kernel-resolved versioned Runner.Worker path while accepting an equivalent argv-zero spelling with the same basename; its public boundary marker is allowed only at the one exact non-secret value, so a forged value under the same credential-like name still fails closed. The credentialless transfer seal validates the rooted native reuse decision against the Warrant-bound source, closure, dependency, toolchain, environment and command inputs; qualifiedBase stays in the proof and decision where it is rooted and later independently rechecked, rather than being assumed on the Warrant schema. V2 mutation cannot initialize a second empty authority beside a legacy ref: migration reads and roots the canonical live v1 ref, rechecks it, applies the explicit configured v2 policy, and atomically replaces its bytes through one expected-old non-force update, so old v1 controllers fail closed while the prior commit remains immutable history. Candidate ancestry classifies the GitHub artifact runtime token as credential authority. Every Landing settlement, including an unexpired fence, requires product-owned terminal readback. Terminal cleanup reads the immutable historical attempt, derives workflow and hosted Landing job identity from live run data, reads the exact protected ref head and compares containment against that immutable SHA, and seals merged only when the admitted merge-group head is contained by that protected base; a later different-head merge settles the old attempt as dequeued. Terminal normalization preserves transfer, finalizer boundary, native and seal job, admitted provider attempt, protected-base head, containment result, and terminal readback coordinates. The public reusable workflow truthfully retains its single-flight v1 authority without advertising v2 migration, while bounded v2 remains a separate opt-in CLI, Node API, and schema contract; the tracked self-caller stays on public v4-alpha with matching stable and alpha locks, and transient train selection is dispatch-only. Next-development parity adds one versioned transition authority, one durable controller, one bounded reservation adapter, and pure public-contract recovery evidence while retaining the existing thin floating-channel callers byte-for-byte. The floating-consumer gate reuses the existing contract-world evaluator so SHA drift passes only under the selected lock's compatibility policy, breaking surface drift still fails closed, and external certification reconstructs the receipt from the observed workflow SHA rather than the lock's historical evidence SHA. Tail reseal adds no Stage Capsule effect or general rebuild authority: it verifies the exact retained four-platform bytes, admits one known macOS tail failure through live provider readback, fences signing and finalization to explicit credentials and Warrant identity, and requires standard candidate Passport plus provider and protected readback. Compatibility Facts parity isolates canonical encoding, temporal verification, lifecycle validation, fixture projection, public authority projection, and CLI adaptation into bounded modules; legacy digest and proof arrays are derived only from exact current Fact lineage. Publication Rehearsal adds no production release authority: the content-addressed capsule contract binds source, candidate, manifest, config, canonical data-only provider bindings, provider policy, observations and core version separately from filesystem, runtime and rehearsal-only provider authority; simulate, replay and explicitly authorized provider rehearsal all reuse the release-tail planner, while same-commit local dogfood resolves the new reusable contract and exact current runtime before external callers remain on floating v4-alpha. Cross-runtime candidate recovery preserves original runtime and provider roots and creates resume lineage only after exact public ref, tag, ancestry, npm version and integrity readback. Adopter Delivery restores the reviewed public v3 gate, drivers, Passport binding, N-1 bootstrap and exact archive loader through one public v4 surface while keeping provider and release authority explicit non-claims. Floating Alpha bootstrap uses only the existing exact resolver and protected Alpha private shell to move an otherwise stale floating shell, retains public v4 stable promotion, and removes itself after protected readback. CI lane change-budget enforcement adds a bounded parser, evaluator, guard, and tests without creating another merge authority.",
    "governance": "legacy-debt-sunset-2026q4",
    "maxActionDefinitions": 283,
    "maxActionDefinitionLines": 12399,
    "maxAutomationImplementationLines": 224420
  },
  "sourceBudgets": {
    "newFileLines": 600,
    "newFunctionLines": 180,
    "newFunctionComplexity": 25,
    "existingDebtPolicy": "no-widening"
  },
  "approvedNewFileTransitions": {
    "packages/core/release/promote-ref/internal/promotion-operations.js": {
      "maxLines": 1320,
      "rationale": "The exact ref-mutation and reconciliation factories move intact behind one injected internal boundary. Consolidating the one-consumer existing-version-state helper keeps repository file and source-line totals flat while the public facade falls by 1317 lines.",
      "governance": "stage3-promotion-facade-reduction"
    },
    "packages/core/release/next-development-transition.js": {
      "maxLines": 738,
      "rationale": "The single versioned authority keeps completed-Alpha identity, legal successor models, role-separated adapter bounds, materialization roots, compare-and-swap transitions and deterministic replay validation together. Anchored and manual initial state persists as waiting-anchor after reviewed input and exposes rooted anchor binding plus controller materialization recording; this exact reviewed ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/release/next-development-controller.js": {
      "maxLines": 728,
      "rationale": "The durable controller keeps atomic child identity, rooted checkpoints, idempotent materialization operations, latest protected Dev revalidation, PR settlement and exact source and derived root readback in one provider-neutral authority. It exposes no Alpha publication effect and resumes only through injected atomic store and executor boundaries; this exact reviewed ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/dev-delivery/commands/dev-delivery-authority.mjs": {
      "maxLines": 635,
      "rationale": "The explicit authority CLI keeps plan-only and execute transitions, provider-attempt coordinates, expected-old durable state writes, terminal provider readback, and machine-readable output in one compatibility entrypoint while the state-machine implementations remain extracted; this exact file ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "scripts/warrant-shadow-plan.mjs": {
      "maxLines": 601,
      "rationale": "The historical v3 comparison plan now separately verifies that the live manifest is v4-authoritative and legacy-retired, preventing comparison evidence from being mistaken for production authority. This exact reviewed ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/release/release-train.js": {
      "maxLines": 740,
      "rationale": "The v4 Release Train parity contract preserves the reviewed v3 rooted successor-repair lifecycle, compare-and-swap, frozen origin provenance, exact cut and Dev patch identity, independent candidate-build eligibility, publication gating and deterministic validation; this exact reviewed ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/governance/engineering-housekeeper-github.js": {
      "maxLines": 707,
      "rationale": "The bounded GitHub engine keeps complete pagination, repository-wide protected-mainline discovery, one batched closed-PR inventory, exact association-only target selection, and fixed eight-way ancestry concurrency. Unassociated heads are retained without fallback comparisons; exact source and target revalidation, stale-PR labeling, provider receipts, and replay behavior remain in one public provider surface. This exact reviewed ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "crates/buildchain-domain-contracts/src/release_tail.rs": {
      "maxLines": 1397,
      "rationale": "The single provider-neutral Rust release-tail authority replaces the retired 1,228-line JavaScript state machine and keeps strict declaration normalization, deterministic effect planning, rooted observations and receipts, and bounded retry/readback transitions behind the checked WASM ABI. Node retains only provider effects; this exact Rust ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    }
  },
  "approvedExistingDebtTransitions": {
    "packages/core/index.js": {
      "maxLines": 705,
      "rationale": "The public facade exposes both the bounded CI lane change-budget and v4 publication qualification contracts beside the existing v4 governance APIs without adding provider effects, a second implementation, or merge authority; this exact post-integration ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/contracts/buildchain-contract.js": {
      "maxLines": 1096,
      "maxFunctionLines": 681,
      "maxFunctionComplexity": 30,
      "rationale": "The existing v4 contract evaluator invokes the shared shell-runtime-lock binding before every compatibility or early-success path while preserving the prior contract-world, Release Train, and drift behavior. Its public projection now includes the bounded dev-delivery workflow surface and declares the optional expected lane inputs consumed by the unchanged evaluator. This exact public-contract wiring ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/governance/github-governance-authority.js": {
      "maxLines": 1369,
      "rationale": "The publication authority declares the alpha/v4/v4.0 and release/v4/v4.0 protected channels and the dispatch-only Alpha recovery workflow as protected authority. This exact reviewed ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/consumer/buildchain-config.js": {
      "maxLines": 1887,
      "rationale": "Artifact signing configuration admits only the Buildchain-owned JIT profile with exact safe archive-relative target paths while rejecting credentials, entitlement files, wildcard paths, incompatible artifact kinds, and incomplete declarations. Publication rehearsal remains effect-disabled. Adopter delivery adds only a closed public contract, exact selectors and repository-relative input, readback, bootstrap, archive and result paths; this exact wiring ceiling cannot grow implicitly. TOML build configuration delegates to a strict normalizer through one import and one call; this exact two-line increase accompanies removal of duplicate workflow and router implementations.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "scripts/check-inventory.mjs": {
      "maxLines": 1515,
      "rationale": "Inventory retains the complete recovery and publication authority set and additionally locks the bounded protected-Alpha private-shell bootstrap, declarative built-in tail, and absence of a new public recovery input; this exact post-integration ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "scripts/generate-site-bundle.mjs": {
      "maxLines": 1502,
      "rationale": "Lifecycle metadata and CLI registry parity are generated centrally across the latest upstream public surface while the largest generator function remains at or below its prior size and complexity ceilings.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "scripts/check-maintainability.mjs": {
      "maxFunctionComplexity": 29,
      "rationale": "The new-file budget evaluator recognizes only explicit path-scoped transitions with exact ceilings and mandatory rationales; the default budget and every existing no-widening check remain unchanged.",
      "governance": "legacy-debt-sunset-2026q4"
    }
  },
  "approvedExtractedDebt": {
    "packages/core/dev-delivery/dev-delivery-execution-transfer.js#verifyNativeExecutionTransfer": {
      "maxComplexity": 36,
      "rationale": "The transfer verifier keeps the closed success and failure manifests, normalized job and Warrant bindings, byte digests, proof declarations, and failed-settlement fence in one exact artifact boundary; this reviewed complexity ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/dev-delivery/dev-delivery-process-boundary.js#createProviderFinalizerBoundary": {
      "maxLines": 191,
      "maxComplexity": 33,
      "rationale": "The provider boundary verifier keeps distinct job and runner identity, hosted labels, strict timestamps, live PR and protected-ref readback, and the rooted finalizer receipt in one fail-closed audit surface; this reviewed complexity ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/dev-delivery/commands/dev-delivery-authority.mjs#devDeliveryAuthorityCliOptions": {
      "maxLines": 207,
      "rationale": "The authority CLI parser keeps the complete explicit flag-to-environment compatibility mapping, including exact provider run and job coordinates for independent expired-Landing readback, in one declarative function while execution remains separately owned; this exact extracted mapping ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/dev-delivery/commands/dev-delivery-warrant-options.mjs#devDeliveryCliOptions": {
      "maxLines": 247,
      "rationale": "The extracted compatibility parser preserves the complete Warrant flag and environment mapping byte-for-byte while storage and command execution remain separately owned; this exact mapping ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "scripts/warrant-shadow-plan.mjs#validatePlan": {
      "maxLines": 182,
      "maxComplexity": 26,
      "rationale": "The validator adds one conjunctive terminal assertion that separates retained v3 comparison evidence from the live v4 writer and retired migration phase. This exact reviewed ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "crates/buildchain-domain-contracts/src/product_publication.rs#select_product_publication_intent": {
      "maxComplexity": 38,
      "rationale": "The Rust publication selector jointly validates the closed channel, source, artifact, semantic-version, recovery, and observed-version coordinates before rooting one immutable intent. This exact complexity replaces the prior JavaScript decision tree and cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "crates/buildchain-domain-contracts/src/release_tail.rs#normalize_capability": {
      "maxLines": 245,
      "maxComplexity": 51,
      "rationale": "The Rust normalizer keeps the closed capability registry, exact fields, regex tag binding, operation identity, idempotency, retry, and evidence validation in one fail-closed audit surface. It replaces the retired JavaScript normalizer and this exact ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "crates/buildchain-domain-contracts/src/release_tail.rs#advance_release_tail_execution": {
      "maxLines": 193,
      "rationale": "The Rust transition dispatcher owns the bounded readback-before-mutation, apply, reconciliation, retry exhaustion, terminal fault, and next-operation decisions. It performs no provider effect and this exact line ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "crates/buildchain-domain-contracts/src/wasm.rs#dispatch": {
      "maxLines": 214,
      "maxComplexity": 64,
      "rationale": "The closed WASM ABI dispatcher maps a fixed operation vocabulary onto existing Rust domain functions and typed faults without adding provider, IO, credential, or fallback authority. This exact routing-only ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/release/promote-ref/internal/promotion-operations.js#updateBranch": {
      "maxLines": 378,
      "maxComplexity": 34,
      "rationale": "The nested protected-ref update transaction retains exact readback, status-check, merge, PR fallback and non-fast-forward behavior under the extracted factory; these inherited ceilings cannot grow.",
      "governance": "stage3-promotion-facade-reduction"
    },
    "packages/core/release/promote-ref/internal/promotion-operations.js#assertReleasePrOrVersionStateParent": {
      "maxLines": 335,
      "maxComplexity": 42,
      "rationale": "The nested release-lineage verifier retains exact PR, recovery, tree-equivalence and allowed-path ordering under the extracted factory; these inherited ceilings cannot grow.",
      "governance": "stage3-promotion-facade-reduction"
    },
    "packages/core/release/promote-ref/internal/version-state-operations.js#createVersionStateOperations": {
      "maxLines": 415,
      "rationale": "Transplanted legacy version-state operations now live in an independently owned module; explicit dependency injection adds seams while this exact inherited ceiling cannot grow.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/release/promote-ref/internal/version-state-operations.js#createVersionStateCommit": {
      "maxLines": 286,
      "maxComplexity": 27,
      "rationale": "The existing version-state commit transaction remains nested under its extracted operation factory and is independently regression-tested; this exact inherited ceiling cannot grow.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/release/promote-ref/internal/durable-transaction-operations.js#createDurableTransactionOperations": {
      "maxLines": 378,
      "rationale": "Transplanted legacy durable transaction and Passport operations remain in one independently owned module. The exact two-line readable widening forwards rooted runtime-resume material and its post-publication finalizer without accepting a transient rebuilt candidate or inconsistent per-field overrides; this ceiling cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "packages/core/paper/paper-npm-bootstrap.js#executePaperNpmBootstrap": {
      "maxLines": 490,
      "maxComplexity": 58,
      "rationale": "The existing externally guarded npm bootstrap transaction moved intact into an independently owned Paper module with an explicit runtime seam; this exact inherited debt ceiling cannot grow.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "scripts/maintainability-domain-metrics.mjs#rustTokens": {
      "maxComplexity": 29,
      "rationale": "The dependency-free Rust lexer keeps nested comments, raw and byte strings, literals, identifiers, and operators in one auditable scanner so complexity budgets cannot be bypassed by source syntax; this exact transition cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    }
  },
  "selectedFunctionBudgets": {
    "promoteBuildchainRefs": {
      "file": "packages/core/release/promote-ref/lib.js",
      "lines": 3,
      "complexity": 1
    },
    "createReleaseCheckReport": {
      "file": "packages/core/release/passport/report.js",
      "lines": 81,
      "complexity": 5
    },
    "createReleasePassport": {
      "file": "packages/core/release/passport/assembly.js",
      "lines": 6,
      "complexity": 1
    },
    "promoteMajorChannel": {
      "file": "packages/core/release/promote-ref/internal/promote-major-channel.js",
      "lines": 7,
      "complexity": 3
    },
    "promoteAlphaChannel": {
      "file": "packages/core/release/promote-ref/internal/promote-alpha-channel.js",
      "lines": 15,
      "complexity": 3
    },
    "promoteReleaseChannel": {
      "file": "packages/core/release/promote-ref/internal/promote-release-channel.js",
      "lines": 8,
      "complexity": 2
    },
    "runPublishTransaction": {
      "file": "packages/core/release/promote-ref/internal/publish-transaction.js",
      "lines": 109,
      "complexity": 7
    },
    "collectPaperStatus": {
      "file": "packages/core/paper/operations/status.js",
      "lines": 133,
      "complexity": 13
    },
    "collectPaperPreflight": {
      "file": "packages/core/paper/paper.js",
      "lines": 168,
      "complexity": 14
    }
  },
  "publicSurfacePolicy": {
    "requiredLifecycleFields": [
      "owner",
      "maturity",
      "introducedVersion",
      "compatibilityPromise",
      "deprecationReplacement",
      "sunsetCondition",
      "capabilityGroup",
      "nonDuplicationRationale"
    ],
    "contract": "current-4.1"
  },
  "architecturePolicy": {
    "requireCapabilityOwner": true,
    "requireImplementationTestContractMapping": true,
    "dependencyCycles": 0,
    "forbiddenDirectionChanges": 0
  },
  "extendedCoverageRevision": "1bb6333b97ad94e94a81178e956a703dff2b5f84",
  "rustBudgets": {
    "newFileLines": 600,
    "newFunctionLines": 140,
    "newFunctionComplexity": 30,
    "existingDebtPolicy": "no-widening"
  },
  "testBudgets": {
    "newFileLines": 600,
    "newFunctionLines": 180,
    "newFunctionComplexity": 25,
    "existingDebtPolicy": "no-widening"
  },
  "workflowBudgets": {
    "maxLines": 600,
    "maxJobs": 8,
    "maxSteps": 50,
    "maxStepsPerJob": 20,
    "maxDecisions": 25,
    "existingDebtPolicy": "no-widening"
  },
  "exceptionGovernanceProfiles": {
    "legacy-debt-sunset-2026q4": {
      "mode": "expiry",
      "expiresOn": "2026-12-31",
      "owner": "Buildchain architecture maintainers",
      "followUp": "Replace every legacy ceiling with the default budget or a lower net-debt target before this profile expires."
    },
    "stage1-test-split-net-reduction": {
      "mode": "net-debt-reduction",
      "metrics": {
        "maxFunctionLines": {
          "baseline": 872,
          "target": 506
        }
      }
    },
    "stage2-workflow-yaml-reduction": {
      "mode": "net-debt-reduction",
      "metrics": {
        "maxLines": {
          "baseline": 3370,
          "target": 3341
        }
      }
    },
    "stage3-promotion-facade-reduction": {
      "mode": "net-debt-reduction",
      "metrics": {
        "maxLines": {
          "baseline": 4788,
          "target": 3471
        }
      }
    }
  },
  "approvedTestDebtTransitions": {
    "tests/build-surface.test.mjs": {
      "maxLines": 3680,
      "maxFunctionLines": 506,
      "maxFunctionComplexity": 13,
      "rationale": "The reusable-build contract moved into three source, signing/cache, and artifact/summary scenario files, while shared repository and occurrence fixtures remove duplication. The maintained build-surface family falls from 4549 to 4543 lines and the largest remaining function falls from 872 to 506 lines without dropping assertions.",
      "governance": "stage1-test-split-net-reduction"
    },
    "tests/dev-delivery-warrant-command.test.mjs": {
      "maxLines": 624,
      "rationale": "Exact command-store assertions cover raw GitHub media reads and JSON-envelope fallback for persisted Dev Delivery state. The test surface has reduced to an exact 624-line ceiling and cannot grow implicitly.",
      "governance": "legacy-debt-sunset-2026q4"
    },
    "tests/promote-buildchain-ref-durable-recovery.test.mjs": {
      "maxFunctionLines": 219,
      "maxFunctionComplexity": 2,
      "rationale": "Extracted tests/promote-buildchain-ref-durable-recovery.test.mjs is a bounded scenario surface behind shared fixtures; its exact function ceiling is locked while the combined targeted test and fixture family falls from 9560 to 9475 maintained lines.",
      "governance": "stage1-test-split-net-reduction"
    },
    "tests/promote-buildchain-ref-major-promotion.test.mjs": {
      "maxFunctionLines": 228,
      "maxFunctionComplexity": 2,
      "rationale": "Extracted tests/promote-buildchain-ref-major-promotion.test.mjs is a bounded scenario surface behind shared fixtures; its exact function ceiling is locked while the combined targeted test and fixture family falls from 9560 to 9475 maintained lines.",
      "governance": "stage1-test-split-net-reduction"
    },
    "tests/promote-buildchain-ref-recovery-alpha-finalization.test.mjs": {
      "maxFunctionLines": 262,
      "maxFunctionComplexity": 2,
      "rationale": "Extracted tests/promote-buildchain-ref-recovery-alpha-finalization.test.mjs is a bounded scenario surface behind shared fixtures; its exact function ceiling is locked while the combined targeted test and fixture family falls from 9560 to 9475 maintained lines.",
      "governance": "stage1-test-split-net-reduction"
    },
    "tests/promote-buildchain-ref-recovery-release-reconciliation.test.mjs": {
      "maxFunctionLines": 244,
      "maxFunctionComplexity": 6,
      "rationale": "Extracted tests/promote-buildchain-ref-recovery-release-reconciliation.test.mjs is a bounded scenario surface behind shared fixtures; its exact function ceiling is locked while the combined targeted test and fixture family falls from 9560 to 9475 maintained lines.",
      "governance": "stage1-test-split-net-reduction"
    }
  },
  "approvedWorkflowDebtTransitions": {
    ".github/workflows/self-ops-bootstrap-dogfood.yml": {
      "maxJobs": 9,
      "rationale": "The common execution-runtime job selects the runtime once for independent primary and recovery public bootstrap calls. Existing provider and reconciliation job boundaries remain explicit; no business logic or runtime acquisition is duplicated. This exact one-job addition replaces the retired web contract-alias transition.",
      "governance": "legacy-debt-sunset-2026q4"
    }
  },
  "enforcementRationale": "Measure implementation changes against the exact protected 4.1 alpha development seed before this restructuring. Git-observed relocation carries measurement identity only; new and expanded functions retain the default budgets. Historical public API preservation is not a 4.1 requirement."
}
