witnora

Governed Mutation and Promotion v0.1

witnora.agent_mutation.v0.1 records how an assured agent changes without treating a new version as an automatic continuation of the old assurance decision. A mutation invalidates CURRENT before promotion begins.

Protocol

  1. The customer submits a witnora.evolution_manifest.v0.1 containing the parent and candidate artifact digests, code/prompt/model/tool changes, data sources, build provenance, requested capabilities, and deployment target.
  2. Witnora binds the parent to the currently assured scope and computes a witnora.permission_inheritance_diff.v0.1.
  3. Existing capabilities may be inherited. Every new capability is denied unless an owner or administrator explicitly approves it.
  4. Review issues a witnora.promotion_grant.v0.1. The grant is target-bound, short lived, idempotently claimable, and valid for one use.
  5. A deployment runner claims the grant before changing the target.
  6. An observer independent of the manifest builder reads the deployed artifact and compares its SHA-256 with the approved candidate.
  7. Witnora writes a signed witnora.promotion_receipt.v0.1. A digest mismatch suspends assurance. A match records promotion but remains REVALIDATION_REQUIRED until a successor assurance case is independently reviewed.

The Hosted workspace exposes one human path: Review changes and promote. Grant claim and deployed-byte verification remain machine operations so an agent cannot approve its own mutation from the UI.

For a non-bypassable deployment boundary, exchange the grant through the GitHub OIDC credential broker and customer-owned admission adapters.

Signing boundaries

Hosted promotion grants and receipts use the configured Witnora Ed25519 evidence signer. The signed payload includes the project, mutation, manifest, artifact, target, observer, outcome, and continuous-assurance result.

Witnora’s own npm release is the dogfood profile. GitHub Actions records the same mutation, single-use grant, and registry-byte receipt. GitHub OIDC artifact attestations sign those files, while npm Trusted Publishing signs package provenance. The registry observer downloads the public package after publish; it does not trust the local tarball path as proof of deployment.

API

Promotion review requires a human owner or administrator. Claim requires a project key with runs:write; verification requires evidence:write. Idempotency keys make retries safe, while a second distinct claim is rejected as replay.

What this proves

It does not prove that every deployment path is forced through Witnora, that a compromised observer reported truthfully, or that the promoted version is safe. Those claims require enforced deployment credentials, protected customer-side keys, multiple independent observation points, and successor revalidation.