BT6 Release Readiness
Prepare a release candidate after normal pull requests have passed the bounded
validation.quick contributor gate. Apply bt6-maintainer-guardrails. This
workflow may improve code, tests, documentation, and repository-owned release
policy when the operator authorizes implementation. It does not create or
promote a tag.
Required context
- Resolve the canonical repository, base branch, CI remote, profile, candidate
commit, comparison base, and current authorization.
- Require a clean or explicitly understood working tree. Preserve unrelated
work and use an isolated checkout when validation could overwrite it.
- Inventory merged changes since the previous release or configured comparison
base. Map production changes to behavior tests, ownership, and risk surfaces.
- Treat PR acceptance as evidence of reviewability only. Do not infer release
readiness from quick checks, aggregate coverage, or merge status.
Hardening loop
- Run
validation.full plus applicable documentation, research-integrity,
risk-surface, packaging, compatibility, supply-chain, repeat, mutation, and
conditional-platform checks that can run before tagging.
- Measure repository line and branch coverage, configured mature/critical
scope, changed or touched-module regression, and new-module floors. Record
skipped, unavailable, or stale evidence explicitly.
- Prioritize failures and coverage gaps by release risk, recent change, public
contract, trust boundary, and defect history—not by raw uncovered-line count.
- For each blocking gap, add outcome-oriented tests and correct the underlying
implementation or policy defect. Never weaken a release threshold to make a
candidate pass.
- Re-run focused checks after each repair, then re-run the complete applicable
pre-tag gate. Stop when all locally executable hard gates pass or a required
external/platform gate remains unresolved.
- When
releaseEvidence is configured, require one deterministic source ZIP
of the tested commit, a canonical SHA-256 manifest, a bound source SBOM,
SLSA/in-toto provenance, and the configured signature mechanism. Do not
compile or publish installable packages unless a repository explicitly
overrides the source-snapshot policy. Downstream gates must consume the same
ZIP bytes rather than recreating them.
Decision
ready-to-tag only when every applicable pre-tag hard gate passes and all
unavailable evidence is intentionally deferred to an exact-tag hosted gate.
not-ready when any required check fails or a correctness, security,
integrity, compatibility, or coverage gap remains.
hold when the candidate, comparison base, authority, profile, or required
environment cannot be resolved safely.
Use templates/bt6-release-readiness-report.md. A ready-to-tag result becomes
stale on any candidate commit, dependency lock, policy, test, platform, or
release-configuration change. After tagging, always run bt6-release-validation
against the exact immutable tag; readiness is never release certification.
1---2name: bt6-release-readiness3description: Harden an untagged BT6 release candidate to the exhaustive release bar after pull requests were accepted through the bounded contributor gate.4---56# BT6 Release Readiness78Prepare a release candidate after normal pull requests have passed the bounded9`validation.quick` contributor gate. Apply `bt6-maintainer-guardrails`. This10workflow may improve code, tests, documentation, and repository-owned release11policy when the operator authorizes implementation. It does not create or12promote a tag.1314## Required context15161. Resolve the canonical repository, base branch, CI remote, profile, candidate17 commit, comparison base, and current authorization.182. Require a clean or explicitly understood working tree. Preserve unrelated19 work and use an isolated checkout when validation could overwrite it.203. Inventory merged changes since the previous release or configured comparison21 base. Map production changes to behavior tests, ownership, and risk surfaces.224. Treat PR acceptance as evidence of reviewability only. Do not infer release23 readiness from quick checks, aggregate coverage, or merge status.2425## Hardening loop26271. Run `validation.full` plus applicable documentation, research-integrity,28 risk-surface, packaging, compatibility, supply-chain, repeat, mutation, and29 conditional-platform checks that can run before tagging.302. Measure repository line and branch coverage, configured mature/critical31 scope, changed or touched-module regression, and new-module floors. Record32 skipped, unavailable, or stale evidence explicitly.333. Prioritize failures and coverage gaps by release risk, recent change, public34 contract, trust boundary, and defect history—not by raw uncovered-line count.354. For each blocking gap, add outcome-oriented tests and correct the underlying36 implementation or policy defect. Never weaken a release threshold to make a37 candidate pass.385. Re-run focused checks after each repair, then re-run the complete applicable39 pre-tag gate. Stop when all locally executable hard gates pass or a required40 external/platform gate remains unresolved.416. When `releaseEvidence` is configured, require one deterministic source ZIP42 of the tested commit, a canonical SHA-256 manifest, a bound source SBOM,43 SLSA/in-toto provenance, and the configured signature mechanism. Do not44 compile or publish installable packages unless a repository explicitly45 overrides the source-snapshot policy. Downstream gates must consume the same46 ZIP bytes rather than recreating them.4748## Decision4950- `ready-to-tag` only when every applicable pre-tag hard gate passes and all51 unavailable evidence is intentionally deferred to an exact-tag hosted gate.52- `not-ready` when any required check fails or a correctness, security,53 integrity, compatibility, or coverage gap remains.54- `hold` when the candidate, comparison base, authority, profile, or required55 environment cannot be resolved safely.5657Use `templates/bt6-release-readiness-report.md`. A `ready-to-tag` result becomes58stale on any candidate commit, dependency lock, policy, test, platform, or59release-configuration change. After tagging, always run `bt6-release-validation`60against the exact immutable tag; readiness is never release certification.