Release
Build, inspect, and verify ACC release artifacts using the implemented gates, explicit package identity, and versioned evidence—without treating a passing checksum as a broader trust guarantee.
Release overview
The release surface separates readiness, evidence generation, packaging, integrity, and package verification into distinct operations.
acc release is the public entrypoint to the current release subsystem. Validation establishes whether the repository meets its implemented gates. Reporting records that result. Packaging is allowed only from a READY result, then embeds a report and manifest and writes a SHA-256 sidecar. Verification checks those concrete artifacts and their internal relationships; it does not publish a release or install the package.
Build-time evidence
Version, source identity, UTC timestamps, validation results, package name, manifest, readiness evidence, and checksum are generated from the current checkout.
Scoped result
A healthy result means the implemented checks agree for the selected files. Bare verification is not publisher authentication. Explicit authenticity verification checks signatures against independent trust inputs; it does not prove an uncompromised build host or dependencies.
Readiness and validation flow
The release validator requires every current check to pass; it does not assign partial readiness.
Canonical VERSION
Requires a non-empty repository VERSION file and uses its value as the release version.
Required entrypoints
Requires README.md, install.sh, update.sh, and the Python manifest framework file.
Architecture Guard
Runs the dependency guard and requires its combined architecture result to be healthy.
Regression Gate
Runs the runtime regression entrypoint and requires both a zero exit and its REGRESSION HEALTHY marker.
Release Readiness
Requires healthy manifest consistency, resolver coverage, test-registry coverage, and recovery-mutation coverage in analysis-only mode with no execution, mutation, certification, packaging, or deployment authority.
The release engine adds the current short Git commit and a UTC timestamp, then maps the combined validation result to READY or BLOCKED. Packaging raises an error when the result is not READY. Readiness alone does not confirm publication or dependency authenticity. Packaging separately rejects dirty source and admits only tracked allowlisted files; do not override this gate.
Release report generation
A report captures the identity and outcome of one release-engine run in a reviewable text artifact.
acc release report writesruntime/release-reports/release-<version>-<commit>.report. It records the version, commit, UTC timestamp, overall status, and PASS or FAIL result for each release gate. For release readiness it also records analysis status, implemented checks, and a deny-all authority block. The command writes a report even when validation is BLOCKED, then exits non-zero so the file can be retained as failure evidence.
Packaging runs report generation again. Because validation and timestamps are evaluated during each call, a separately generated report is not automatically the same run embedded later in a package. Preserve the embedded report when reviewing a particular package.
Package and manifest identity
The package filename and embedded manifest bind the canonical version to the current short Git commit.
A successful build writes runtime/releases/ACC-<version>-<commit>.tar.gz. Its embedded manifest format is version 1 and records VERSION,COMMIT, SOURCE_COMMIT, SOURCE_DIRTY,SOURCE_DESCRIBE, BUILD_TIME, the exact PACKAGE filename, and the readiness file, schema, and digest binding. Operators must still compare those values with an independently trusted publication record; self-consistency does not authenticate the publisher or build host.
Source payload
Only Git-tracked files under the explicit package allowlist are admitted: VERSION, README.md, SECURITY.md, SUPPORT.md, CHANGELOG.md, bin, core, config, docs, modules, install.sh and update.sh. Ignored and untracked residue is excluded; uninstall.sh is not packaged.
Release report
The generated report is embedded at amin-control-center/RELEASE.report.
Release manifest
The generated identity record is embedded at amin-control-center/release.manifest.
Readiness evidence
The embedded RELEASE.readiness.json is schema-validated and bound to the manifest by SHA-256.
Integrity sidecar
The .sha256 file is generated beside the compressed package, not embedded inside it.
SHA-256 integrity
Integrity verification compares the selected package with a two-field checksum record beside it.
The sidecar path appends .sha256 to the package path. Its single line contains the lowercase SHA-256 digest, two spaces, and the package basename. Verification requires both the recorded filename and a newly computed digest to match. The verified GA 1.3.3 package digest is 1322defb49797901cbfcb0ce5b6cb4166d5f2b5d4788e5dba01671bae9bb88f2.
The manifest includes a SHA256 field, but the v1 manifest generator and official GA manifest leave it empty. The authoritative implemented checksum comparison uses the adjacent sidecar. Because integrity generates that sidecar before checking it, useverify when consuming published artifacts without intentionally replacing their checksum record.
Authenticated package verification
Integrity and authenticity are separate checks. Explicitly request publisher authentication when consuming a release.
Without an already trusted ACC CLI, start with the canonical Zero-ACC bootstrap: independently trusted OOB identity and fingerprint are required; absent inputs mean BLOCKED. Mirrors only distribute trust material. System OpenSSH authenticates the original checksum before parsing and archive hashing. Success is only PACKAGE_AUTHENTICITY=VERIFIED, not readiness or installer admission. Do not run the downloaded CLI to bootstrap its own trust.
- Obtain the package, original checksum, detached signature and authenticity artifact together from the authorized distributor.
- Obtain the allowed-signers file and signer public key independently of the bundle. Keep original filenames and sidecar placement.
- Use an already trusted ACC CLI with all three authenticity options shown below.
- Stop if any input is missing or any check fails. Neither READY nor a matching checksum substitutes for authentication.
acc release verify /path/to/ACC-1.3.3-d55e48c.tar.gz \
--authenticity /path/to/authenticity.json \
--allowed-signers /path/to/allowed_signers \
--signer-public-key /path/to/signer.pubPaths are examples; replace them with actual absolute paths. Bare release verify PACKAGE does not request authenticity. Checks cover structure, manifest identity, source provenance, readiness schema and hash, denied authority, filename and digest; trust options add authenticity checks. Do not assume the historical 1.1.0 27/27 count applies to authenticated verification.
Verification grants no installation, update, deployment, mutation, recovery or deletion authority. Trusted installer admission is a separate operational gate.
Tagged source and release evidence
The older archive is preserved for historical inspection and is not evidence for the current GA package.
Current GA: v1.3.3, source d55e48ca98c43c0cb0d789cca618324bc7e6530c, recorded READY on October 10, 2026. The sealed GA package matches 1322defb49797901cbfcb0ce5b6cb4166d5f2b5d4788e5dba01671bae9bb88f2. The repository now contains the authenticated release/v1.3.3 publication archive with its original checksum, detached signature, authenticity artifact, manifest, and report. Review the version-matched artifact set. Website deployment and independent signer trust remain separate from archive readiness.
release/v1.1.0
The official archive contains package ACC-1.1.0-9625c42.tar.gz, its sidecar, the release report, and manifest. The report identifies status READY and source commit 9625c42.
tag v1.1.0
The annotated tag resolves to the complete source commit 9625c42ff655a690c7b1fb00992f6ebc82215afd. The embedded manifest records that identity and confirms the source was clean.
The artifact archive is a website publication record, not a digital signature or provenance attestation. Verify the adjacent sidecar and compare the full source identity with the independently trusted v1.1.0 tag before installation. The v1.0.0 certified baseline remains a historical record and must not be presented as v1.1.0 evidence.
Failure modes
Non-zero exits distinguish invalid commands, blocked readiness, missing artifacts, and failed verification.
- An unsupported release subcommand is rejected by argument parsing with exit code
2. - Failed readiness makes
validateandreportreturn1; packaging refuses to proceed. - A missing explicit package makes
integrityorverifyreturn1. - A missing, malformed, misnamed, or mismatched sidecar makes package verification unhealthy.
- Missing required archive members, manifest version mismatch, package-name mismatch, VERSION disagreement, or an empty commit makes verification unhealthy.
- Malformed or unreadable archives can raise a verification exception; the public CLI surfaces the error and returns
1.
Do not repair a published mismatch by regenerating its sidecar. Reacquire the artifacts from the expected release channel and compare them with the official archive or publication evidence.
Public release guidance
Treat generation, archival, publication, and consumer verification as separate review gates.
- Build from the intended clean source commit and record the canonical VERSION, full Git commit, and expected short commit before generation.
- Run validation before creating public artifacts; inspect the individual checks rather than relying only on the final status line.
- Keep the package, embedded report and manifest, adjacent sidecar, release notes, and publication metadata associated with one version.
- Archive immutable copies of the reviewed artifacts; do not silently replace a package while retaining its version or filename.
- Publish the package digest through a channel consumers can compare independently. SHA-256 detects mismatch but does not authenticate the publisher by itself.
- Have consumers run authenticated
verifywith independently trusted signer inputs before extraction or installation and use the Installation guide for the separate installer workflow.
CLI examples
All release commands operate on the current checkout; integrity and verification require an explicit package path.
acc release validate
Run all current readiness checks and return 0 only when every check passes.
acc release report
Run readiness and write a timestamped report under runtime/release-reports; a BLOCKED report is still written and returns 1.
acc release package
Require READY status, generate fresh report and manifest records, build the tar.gz, and create its SHA-256 sidecar.
acc release integrity <PACKAGE>
Generate or replace the selected package sidecar, then verify its recorded filename and SHA-256 digest.
acc release verify <PACKAGE>
Check structure, identity, readiness and integrity; supply all authenticity options for authenticated consumption.
acc release signed-package
Assemble using explicit private key, signer public key and signer identity; does not generate trust or publish.
acc release readiness --json
Render canonical analysis-only readiness; all authority flags remain false.
acc release uninstall-status --json
Report blocked deletion authority, return 1, and remove nothing.
Maintainers assemble signed releases only from reviewed clean source with explicitly authorized signing inputs:
acc release signed-package \
--private-key /secure/path/to/signing-key \
--signer-public-key /secure/path/to/signer.pub \
--signer-identity RELEASE_SIGNER_IDENTITYPrivate keys stay outside release sources. This producer operation neither generates trust nor publishes a release. Follow docs/product/release-signing-operations-policy-v1.md for publisher identity, independent trust distribution, key rotation and compromise response. Never use test-mode signing or a newly generated key as production publisher trust.
What changed in 1.2.x
Release packaging adds tracked-source hygiene, signed authenticity and trusted consumption. Installer admission precedes mutation; successful installation retains installed-release identity, exact CLI ownership and footprint provenance. Clean-room installation validation is a separate release validation capability, not an implied result of a checksum check.
Safe update readiness and preview
./update.sh <TARGET_VERSION> <BACKUP_ID> <INSTALLED_RELEASE_RECORD> <TARGET_PACKAGE> <TARGET_AUTHENTICITY> <TARGET_ALLOWED_SIGNERS> <TARGET_SIGNER_PUBLIC_KEY>The gateway binds installed identity, authenticates the target and checks backup context before persisting readiness evidence and entering safe preview. It is not a general operational updater. Missing or invalid evidence blocks the workflow; a healthy preview is not a completed upgrade.
Non-destructive uninstall diagnostics
acc release uninstall-status --jsonThis command intentionally returns 1 with deletion authority blocked. Footprint, CLI ownership, uninstall planning and approval diagnostics do not expose a deletion executor. The source-checkout uninstall.sh wrapper is not included in the release package; use the packaged CLI diagnostic. Canonical V2/V3 analysis-only boundaries remain unchanged.
Verify before installation
Use the Installation guide for release acquisition and installer boundaries, or Security for the scope and limitations of integrity checks.