managing-archestra-releases
GitHub管理 Archestra 软件发布流程,涵盖 Beta 与 Stable 版本发布、修复回溯移植、新稳定分支切分及配置保护。通过执行 Git 和 GitHub API 操作自动化处理发布 PR、监控合并队列并验证最终状态。
触发场景
安装
npx skills add archestra-ai/archestra --skill managing-archestra-releases -g -y
SKILL.md
Frontmatter
{
"name": "managing-archestra-releases",
"description": "Runs rolling beta releases, stable patches, and complete stable-line cutovers. Use when backporting fixes, cutting or retiring release branches, configuring release protections, testing artifacts, recovering failed runs, or approving releases."
}
Managing Archestra Releases
Always read platform/dev/RELEASE.md first. It is the authoritative release checklist.
Do not assume release/1.3 is always the active branch. Check current branches, tags, and settings before acting.
This is an execution skill, not only a guide. Use git, gh, and the GitHub API to complete every applicable step, create the configuration PRs, monitor them through the merge queue, and verify the resulting state. Do not hand routine steps back to the operator.
Publication Paths
- Beta (
main): Merging a release PR onmainautomatically publishes a beta release. It moves onlyarchestra/platform:latest; companion and agent images keeplateston the stable line. - Stable (
release/X.Y): Merging a release PR onrelease/X.Ybuilds stable artifacts. After all builds succeed, the workflow automatically publishes the release and updates the companion and agent images'latest. It movesarchestra/platform:latestonly when no newer release is published.
Neither release channel uses a GitHub environment. Merging a release PR authorizes automatic publication after successful builds; finish qualification before that merge. Starting a new stable branch adds configuration steps and uses the same stable publication pipeline.
Backporting Fixes
- Land fixes on
mainfirst. Fixes onmainship automatically in the next beta release. - Read
.github/backport-targets.jsonand applybackport release/X.Ylabels to the source PR for the configured targets. Labels work before or after merge. Open Backport PRs creates separatecherry-pick -xPRs; it never merges a release PR or starts publication. - Monitor the resulting backport PRs and their checks — including the cross-track migration compatibility check and the released-tag upgrade replay. Review the release-specific diff before queueing them under the user's merge authorization.
- On conflicts, use the manual
cherry-pick -xprocedure inplatform/dev/RELEASE.md. Include only necessary fixes; no features, refactors, or schema changes. Never mergemaininto release or candidate branches. A migration backport is only permissible under the prefix rule inplatform/dev/RELEASE.md(the stable branch's migration history must remain a prefix of main's, matched by SQL content); forward repairs onmainrecover already-shipped gaps and are never a planned backport path. - Retry API failures through Open Backport PRs workflow dispatch. Existing PRs are not duplicated or reopened, and existing branches are not overwritten. Investigate an unexpected existing branch instead of deleting it.
- During stable cutover, update the configured targets and their labels to include the new branch and remove the retired line. The automation's source of truth is the default branch.
Cutting A New Stable Line End To End
Derive X.Y, the previous stable line, and the next beta line from live branches, tags, releases, and Release Please manifests. Never substitute a remembered version.
1. Preflight And Stable-Cut Approval
- Fetch branches and tags. Confirm the selected
platform-vX.Y.0-beta.Nis a published prerelease, points to a commit onmain, and passed the agreed qualification. - Reconcile, rather than overwrite, any existing
release/X.Y,platform-vX.Y.0, draft release, release PR, exact queue ruleset, or candidate workflow. Fetch every relevant ref and read the release, PR, workflow, and ruleset state. Resume only when each existing object belongs to this selected beta commit and the recorded stage has all of its required protections and artifacts; never recreate an existing branch, tag, release, or PR. A missing, stale, or contradictory object is a recovery stop, not a reason to delete or replace it. - Confirm releases are not frozen, the current stable release is older than
X.Y.0, and no previous-line release workflow is running, queued, or waiting for approval. A busy or stale previous-line candidate must be resolved under the recovery rules before a new cut can proceed. - Inspect the live
release/*core ruleset and the exact-branch merge-queue ruleset for the active stable line. Fail closed if they cannot be read. Before a new branch is created, the core ruleset must be active and have its normaldo_not_enforce_on_createvalue; an unexpected pre-existing exemption is ruleset drift and must not be reset without its saved original payload. - Present one approval containing the beta tag, new stable version and branch, previous line that will become EOL, planned repository-setting changes, the detected resume stage (if any), and the PRs that will be created and merged. Do not create the branch, modify settings, or merge a release PR until the operator explicitly authorizes this stable cut.
That authorization covers the mechanical preparation, release-PR merge, and automatic publication described below. There is no independent post-build deployment approval.
2. Create And Protect The Branch
- Inspect
do_not_enforce_on_createin therelease/*core ruleset's required checks. If it is false and the release automation's bypass identity cannot create the branch, update only that field to true under the stable-cut authorization. Preserve the complete original ruleset payload for restoration and arrange cleanup before making the update. - Create
release/X.Yat the exact verified beta tag and push it. Never create it frommain. Restore the original core ruleset and read it back whether creation succeeds, fails, or the process is interrupted; do not leave branch creation exempted. If creation or restoration fails, stop after the readback. Do not create the queue ruleset or any PR until restoration is verified. - Confirm the repository's active
release/*core ruleset applies to the new branch and matchesmainfor pull requests, required checks, deletion, non-fast-forward protection, and bypass actors. - Before any PR can merge, create an exact-branch merge-queue ruleset for
release/X.Y. GitHub rejects merge queues on wildcard rulesets. Clone the live active stable line's queue rule and bypass actors through the rulesets API, changing only its name and included ref. Read the created ruleset back and compare its queue parameters withmain.
Do not hard-code ruleset IDs, check names, integration IDs, or queue parameters in the skill. Discover and clone current settings so future changes on main are preserved. If no unambiguous current setting can be derived, include that choice in the stable-cut approval instead of guessing.
3. Prepare And Cut X.Y.0
- Branch from
release/X.Yand changepackages.platformin.github/release-please/release-please-config.jsonto:versioning: always-bump-patchprerelease: false- remove
prerelease-type - temporary
release-as: X.Y.0 draft: true
- Open the release-configuration PR against
release/X.Y, monitor its required checks, and merge it through the new queue. - Inventory open PRs against the previous stable line. Recreate every still-required fix that already landed on
mainas acherry-pick -xbackport torelease/X.Yand merge it before the initial release. Wait for Release Please to update the release PR. - Wait for Release Please to create or update the
X.Y.0PR. Verify its base, manifest version, changelog, release configuration, and required checks. Finish qualification before merging; the release workflow publishes automatically. - Complete the old-line retirement below before merging the release PR. The selected beta and backported fixes must already have passed qualification.
4. Commit The Cutover And Publish
Only continue after the selected beta and any backported fixes pass qualification and the release PR is ready. The old line stays supported until this point.
- Confirm no previous-line release workflow is running or waiting for approval. Close its remaining PRs with an EOL explanation, including its generated release PR.
- Delete the previous line's exact merge-queue ruleset, then create an active exact-branch EOL ruleset with an
updaterule, no bypass actors, andupdate_allows_fetch_and_merge: false. Keep the branch, tags, releases, images, and charts for reproducibility. - Read everything back. Verify
release/A.Brejects all updates andrelease/X.Yhas its queue. - Merge the generated release PR through the queue under the stable-cut authorization. Wait for every build and the automatic publication job. Download the exact
release-helm-chartandrelease-image-*artifacts and complete Verify Stable Publication inplatform/dev/RELEASE.md. Confirm publication completed: the GitHub release is stable and latest, the chart exists, every image version exists, and the companion and agentlatesttags resolve to the saved digests.archestra/platform:lateststays on a newer RC if one is published. - Open and queue a PR on
release/X.Ythat removes only the temporaryrelease-as. Leavealways-bump-patch,prerelease: false, anddraft: true. Future fixes now produceX.Y.1,X.Y.2, and so on. - Report that
X.Yis the sole supported stable line.
5. Start The Next Beta Line
The next beta is a separate consequential release. Stop and present a second approval with the intended X.(Y+1).0-beta.1 version, current main SHA, configuration PR, and generated release PR. Do not change main or merge the beta release PR until explicitly authorized.
After authorization:
- Open a PR to
mainsettingpackages.platformtoversioning: prerelease,prerelease: true,prerelease-type: beta, temporaryrelease-as: X.(Y+1).0-beta.1, anddraft: true. - Merge it through the
mainqueue. Wait for and verify the generatedX.(Y+1).0-beta.1release PR, then merge it through the queue. - Confirm the beta release and versioned artifacts published,
archestra/platform:latestmoved to it, and the companion and agentlatesttags did not move. - Open and queue a cleanup PR on
mainremoving onlyrelease-as. Confirm Release Please resumes its rolling beta PR for.2and later.
The initial migration from stable 1.3.x started 1.4.0-beta.1; do not use that historical exception when deriving later versions.
Safety And Recovery Rules
- Qualification: Finish release qualification before merging the release PR. Preserve required CI, image CVE checks, migration checks, the release freeze, and publication ordering guards. Verify the exact saved build artifacts (
release-helm-chartandrelease-image-*) after automatic publication. - Workflow owns publication: The GitHub Actions workflow handles container image pushes, chart publication, and git tags. Never push release images, publish Helm charts, or update
latesttags manually. - Failed build: Re-run failed jobs in the same workflow run.
- Failed qualification: Do not merge the release PR. If an unpublished candidate already exists, cancel the run and delete its GitHub draft release only with explicit recovery authorization, but keep its tag. Fix on
main, backport torelease/X.Y, set temporaryrelease-asto the next patch (for example,X.Y.1after a rejectedX.Y.0), qualify the fix before merging the new release PR, and verify the new artifacts after publication. Never reuse a failed version number. - Cutover failure before publication: If the old line was locked but the new workflow cannot begin publication, stop. With explicit recovery authorization, cancel the new run, delete its blocking draft but keep its tag, restore the old exact merge queue, and remove its EOL rule before accepting old-line changes. When the cut resumes, fix and backport the cause and use the next patch version; never recreate the tagged candidate.
- Partial publication: Keep the draft release and tag. With explicit retry authorization, re-run failed jobs in the original run using the saved artifacts; the retry can publish automatically. Never rebuild already published versions or move
latestbackward. - Older workflow revisions: Existing runs and reruns retain their original environment references. Do not approve pending deployments, change live environment protections, delete environments, or retry publication as part of a workflow-only update. Inspect the affected run and obtain explicit authorization for each consequential action.
- Explicit authorization: Stable and next-beta cut approvals may cover their stated branch pushes, configuration PRs, release PR merges, and repository-setting changes. Approving an older run's deployment, deleting draft releases, and any action outside the approved plan still require explicit authorization.
- No hidden handoffs: Create PRs, queue them, monitor checks, configure rules, and verify releases directly. Ask a human only for the two cut approvals, an older run's deployment approval, or an exceptional recovery decision.
版本历史
- fa6fc52 当前 2026-11-02 10:42
-
8d2351a
2026-10-18 18:00
修正 platform latest 标签行为,使其指向最新发布版(含 RC),而非仅稳定版;优化前端静态资源加载逻辑以支持平滑升级;更新相关文档说明。
-
35d3fd2
2026-09-22 01:22
新增稳定升级路径的端到端重放测试,验证SQL迁移一致性;文档化迁移回退的前缀规则。
-
6290aab
2026-09-11 16:19
引入基于标签的自动化 Backport 工作流,支持自动创建 Cherry-pick PR 并维护审查队列;更新发布指南以适配新流程。
- 0de0287 2026-09-08 19:41


