<?xml version="1.0" encoding="UTF-8"?>
<spec xmlns="https://vibevm.org/spec/1">
  <title id="root">NEXT temporary contract 3.12 — Release evidence, prototype policy and A/B authorization</title>
  <status stage="impl" state="plan"/>
  <p p="1"><fact id="NEXT-A12-SCOPE" status="spec/done">Temporary normative staging unit. Its body is the accepted architecture from refined plan revision 4, section 3.12. Before production code cites this law, promote the relevant clauses into permanent specifications. This file is consumed only after semantic coverage, implemented behavior and retained evidence are accepted. The task/retirement checker cannot perform semantic acceptance.</fact></p>
  <p p="2"><fact id="NEXT-A12-U001" status="spec/done">Extend existing distribution manifests, not parallel receipt engines. Subject binds exact source commit/tree/lock/recipe/features/toolchain, native target/environment, bundle digest and measured checks. Source tests/checks remain explicitly requested; source identity always observed, missing full-test result never pretends passed.</fact></p>
  <p p="3"><fact id="NEXT-A12-U002" status="spec/done">**D-010:** artifact smoke default-on at publication preparation; explicit parameter disables it for named scope/targets. Report enum/status separates passed, failed, skipped and unavailable; skip flag/policy/provenance bound to prepared plan. Failed running smoke blocks default publication; a later explicit skip creates a new plan, not a rewritten pass. Ready bundles required before destructive prepare; smoke requirement is satisfied by actual passed evidence or the explicit accepted skipped policy. Skipping smoke does not skip archive/identity validation or authorize extra destinations.</fact></p>
  <p p="4"><fact id="NEXT-A12-U003" status="spec/done">**D-011:** trust derives from configured approved producer/channel plus exact subjects/recipes, or optional approved signatures. Local arbitrary JSON observational. Protected service API, authenticated cluster channel or local trusted execution may serve; no single vendor/crypto system mandatory. Authorized issuer/subject/policy checked when signing enabled. Untrusted PR jobs have no publish credentials or release-authoritative signer; execution/build children credential-free.</fact></p>
  <p p="5"><fact id="NEXT-A12-U004" status="spec/done">**D-015 shared pipeline from outset:**</fact></p>
  <p p="6"><fact id="NEXT-A12-U005" status="spec/done">Requirement: prepare exact plan → validate effects/evidence/preconditions → authorize(plan_digest, policy_generation) → apply with immediate pre-write revalidation → verify/receipt/recovery</fact></p>
  <fence lang="text" p="7">    prepare exact plan → validate effects/evidence/preconditions
      → authorize(plan_digest, policy_generation)
      → apply with immediate pre-write revalidation → verify/receipt/recovery</fence>
  <p p="8"><fact id="NEXT-A12-U006" status="spec/done">Mode A is active: one user approval binds complete reviewed batch, targets, replaced captures/assets, effective smoke policy и inverse/non-reversible facts. No repeated approvals inside unchanged admitted batch. Any material plan/world/destination change requires fresh plan/authorization.</fact></p>
  <p p="9"><fact id="NEXT-A12-U007" status="spec/done">Mode B is implemented and tested now, **not activated now**: owner-approved policy enables autonomous batches within explicit repository/org/target/operation/version/capture/effect boundaries. Policy grants may be revoked/expired; active generation and exact scope rechecked before effects. Outside policy → approval-required/refused before write. No silent fallback to global permission; no inference of B from prototype status or previous successful batches. Same plan/receipt/recovery implementation serves both modes. Parameterized integration tests prove equivalent effects for the same authorized plan under A/B.</fact></p>
  <p p="10"><fact id="NEXT-A12-U008" status="spec/done">Redbook version offer applies when an agent changes the Redbook package definition/roster, not when a consumer selects an existing option or reinstalls the same capture. It remains independent: future composition overwrite requires offering keep-version/new-version choice before overwrite; B cannot silently suppress it. Current variants change has explicit keep-1.0.0 decision. Completing that choice does not authorize actual remote publication; current A batch approval still applies.</fact></p>
  <p p="11"><fact id="NEXT-A12-U009" status="spec/done">Publish complete local bundle set before remote delete/tag mutation. Preflight binds expected remote generation/IDs; retain old assets/metadata for recovery. Missing server CAS cannot become an atomicity claim; detect interference and stop/report exact partial truth. No live mode-B enablement, CI change, package publish or release occurs while updating this review pair.</fact></p>
  <p p="12"><fact id="NEXT-A12-U010" status="spec/done">D-013: current line is prototype until owner personally declares graduation. Neither open repository, uploaded archive, current 1.0.0 nor usage count flips stability flags. Algorithmic migrations delivered per D-003; no perpetual support promise for every experimental epoch. On future graduation define major-breaking-change notification/migration/support policy. Product version, schema epoch, exact capture and compatibility mode remain independent.</fact></p>
</spec>
