| name | release-promotion |
| version | 1.1 |
| last_updated | 2026-08-08 |
| id | release-promotion |
| one_line_purpose | Cut releases and verify promotion/hotfix artifacts. |
| entry_point | docs/skills/release-promotion/SKILL.md |
| category | ci-ops |
| mcp_compliance_level | partial |
| optimization_status | draft |
| status | active |
| dependencies | [] |
| tags | ["release","promotion","staging"] |
| description | Promotion criteria, monthly release cadence, hotfix procedure, and artifact verification for projectbluefin/common. Use when cutting a release, understanding the promotion pipeline, or verifying release artifacts. |
| metadata | {"type":"reference"} |
Release and promotion — common
Load this when cutting a release, evaluating whether a monthly tag is safe to create, doing a hotfix, or verifying signed artifacts.
When to Use
- Cutting or evaluating a monthly release tag
- Doing a hotfix outside the monthly window
- Verifying cosign signatures, SBOM, or SLSA attestations on a published image
- Understanding how common changes propagate to downstream
:testing builds
- Debugging the testing→main squash promotion pipeline
When NOT to Use
- CI workflow editing (SHA pinning, pre-commit, Renovate) →
ci-tooling.md
- Debugging silent CI failures or
startup_failure → ci-pitfalls.md
- PR review or issue triage workflows
Promotion criteria
A common release is safe when all of the following are true:
| Criterion | How to verify |
|---|
| Post-merge E2E is green | Check .github/workflows/e2e.yml run on latest main commit |
No PRs on hold targeting main | gh pr list --repo projectbluefin/common --search "label:hold" --base main |
| No open P0 issues | ~/src/hive-status — zero 🔴 blockers |
| Promotion-candidate E2E passed this week | Check .github/workflows/promotion-candidate-e2e.yml (runs Tuesdays) — no open blocker issue from it |
If any criterion fails, do not tag a release. File or escalate the blocker issue and wait.
Planned gate (common#513): The monthly release.yml will be updated to run the promotion-candidate E2E as a required prerequisite job before creating the GitHub Release. Until that ships, the check above is manual.
Monthly release cadence
- Schedule: 1st of every month at 00:00 UTC (
release.yml cron)
- — e.g.,