Agent Skillsfastrepl/anarlog › release-new-version

release-new-version

GitHub

用于发布 Anarlog 桌面端稳定版,要求从 main 分支执行。流程包括校验语义化版本号与合并后的变更日志、重建云同步组件并运行跨平台测试及工件验证。已解除 QA 门禁限制,支持独立调用。

.agents/skills/release-new-version/SKILL.md fastrepl/anarlog

Trigger Scenarios

用户请求发布新的桌面稳定版本 需要切断或准备发布候选版本

Install

npx skills add fastrepl/anarlog --skill release-new-version -g -y
More Options

Non-standard path

npx skills add https://github.com/fastrepl/anarlog/tree/main/.agents/skills/release-new-version -g -y

Use without installing

npx skills use fastrepl/anarlog@release-new-version

指定 Agent (Claude Code)

npx skills add fastrepl/anarlog --skill release-new-version -a claude-code -g -y

安装 repo 全部 skill

npx skills add fastrepl/anarlog --all -g -y

预览 repo 内 skill

npx skills add fastrepl/anarlog --list

SKILL.md

Frontmatter
{
    "name": "release-new-version",
    "metadata": {
        "internal": true
    },
    "description": "Release a new desktop stable version for Anarlog. Use when asked to cut, publish, or prepare a new stable desktop release after checking and merging the changelog."
}

Release a New Desktop Version

Use this for stable desktop releases. A stable release must come from main, after the changelog for the computed version is present, accurate, validated, and merged.

Core Rule

Do not trigger a stable release from an unmerged branch. First make the changelog up to date, merge that changelog change to main, then run the stable release from main.

Scope Boundary

Release and QA are separate, explicitly requested workflows. Do not read or run qa-critical-ux or qa-cli-mcp-api solely because the user asked for a release. A release does not require a QA report or QA PASS.

If the user explicitly asks for both release and QA, follow the requested order and report the outcomes separately. Do not infer that a QA result approves or blocks the release.

Release Workflow Requirements

This release path approves macOS, Windows, and Linux. Mobile remains closed. The patched CloudSync vendor bundle is rebuilt from source and cancellation-tested on every desktop lane: rebuild-macos.sh for Apple Silicon and Intel, rebuild-windows.sh under UCRT64 in windows_ci, and rebuild-linux.sh in linux_ci for x86_64 and aarch64. Each lane then runs cargo test -p cloudsync and cargo test -p db-core cloudsync:: against that freshly built library, covering the stalled-network, logout, configuration cleanup/init, worker-drain, and immediate-local-write cancellation gates.

The rebuild steps run only on workflow_dispatch, so a routine pull-request run does not prove them. Dispatch desktop_ci.yaml against the candidate SHA and confirm the cloudsync-windows-* and cloudsync-linux-* artifacts before treating a desktop lane as approved. Do not treat macOS artifacts or Rust-only tests as cross-platform approval, and do not open the mobile lane until its bundle gets the same treatment.

Preflight

  1. Inspect the workflow before assuming release behavior:
sed -n '1,280p' .github/workflows/desktop_cd.yaml
  1. Validate the explicit stable version requested by the user:
VERSION=<version>
[[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]
test -f "packages/changelog/content/$VERSION.md"

Stable desktop releases never infer a version. The workflow requires the exact stable semantic version and a matching changelog file.

  1. Identify the latest stable desktop tag and the commits that will ship:
git fetch --tags --force
git tag -l 'desktop_v*' --sort=-v:refname | grep -E '^desktop_v[0-9]+\.[0-9]+\.[0-9]+$' | head -n1
git log --oneline <latest-desktop-tag>..HEAD

Use read-only git commands for inspection. If the workspace is on gitbutler/workspace, use the but skill for commits, pushes, PRs, merges, and other write operations.

Changelog Gate

The changelog is the release gate. Before releasing:

  1. Open packages/changelog/content/AGENTS.md and follow its instructions.
  2. Confirm packages/changelog/content/<version>.md exists.
  3. Compare the file against the desktop user-facing changes since the latest desktop_v* tag.
  4. If the changelog is missing or incomplete, update it before release.

Changelog entries should be worth reading for app users. Exclude internal-only refactors, CI changes, infra noise, and implementation details unless they explain a user-visible change.

Each changelog file must include:

---
date: "YYYY-MM-DD"
summary: "One concise, user-facing sentence for the changelog index preview."
---

After editing the changelog, run:

pnpm exec dprint fmt
pnpm -F @anlg/changelog typecheck

Merge to Main

Only after the changelog is accurate and validation passes:

  1. Commit the changelog change.
  2. Open or update the changelog PR.
  3. Wait for CI and required review state to be clear.
  4. Merge the changelog PR to main.
  5. Verify main contains packages/changelog/content/<version>.md.
  6. Record the resulting main SHA as the release candidate.

If using GitButler, prefer:

but diff
but commit chore/release-changelog -c -m "Update desktop release changelog

Refresh the desktop changelog for the next stable release." --changes <ids>
but pr new <branch-id> -t

Use actual IDs from but diff / but status -fv; do not invent IDs.

Trigger Stable Release

After the changelog merge, verify main has not moved, then build the stable candidate without publishing:

gh workflow run desktop_cd.yaml \
  --ref main \
  -f channel=stable \
  -f version=<version>

Watch the dry-run build:

gh run list --workflow desktop_cd.yaml --branch main --limit 5
gh run view <run-id> --json headSha,url
gh run watch <run-id>

The run's headSha must equal the recorded release-candidate SHA. A mismatch blocks acceptance even if the workflow succeeds.

Do not use GitHub's rerun button for a failed stable candidate or optional Linux audio QA run. Dispatch a fresh run instead; publication only accepts first-attempt run IDs so evidence cannot be mixed across attempts.

The dry-run workflow must:

  • use the exact explicit stable version
  • build both Apple Silicon and Intel macOS artifacts
  • build the signed Windows and Linux artifacts for the same version and commit
  • upload a draft CrabNebula release without publishing it
  • upload desktop-release-provenance-<version>-<sha>, including the exact artifact hashes and pinned CrabNebula CLI version, asset ID, and SHA-256

After the exact dry-run artifacts pass the required platform gates and main still points to the candidate SHA, publish only through the provenance workflow. Do not run desktop_linux_audio_qa as a publish gate; Linux is covered by the same dry-run provenance as macOS and Windows. That workflow remains available for optional debugging.

gh workflow run desktop_publish.yaml \
  --ref main \
  -f version=<version> \
  -f candidate_sha=<40-character-main-sha> \
  -f dry_run_id=<dry-run-id>

Watch that workflow to completion. It must verify the dry-run run identity, artifact hashes, CrabNebula tool identity and hash, current main, and the immutable tag before publishing. It must also verify every file mirrored to GitHub against the provenance manifest.

Final Checks

Before reporting success, capture:

  • computed stable version
  • dry-run workflow URL and head SHA
  • publish workflow URL and head SHA
  • desktop_v<version> tag
  • GitHub release URL
  • whether CrabNebula publish completed
  • changelog URL
  • stable DMG SHA-256

If the workflow fails, inspect the failed job logs with:

gh run view <run-id> --log-failed

Version History

  • 382d3cf Current 2026-08-29 04:48

    将 QA 门禁与发布流程解耦,不再强制要求 QA 通过即可发布;移除 Linux 音频 QA 作为发布门槛。

  • 2d4c6b1 2026-08-20 17:13

Same Skill Collection

.agents/skills/add-plugin/SKILL.md
.agents/skills/axum-test-transport/SKILL.md
.agents/skills/fix-ready-prs/SKILL.md
.agents/skills/migrate-to-sqlite/SKILL.md
.agents/skills/new-changelog/SKILL.md
.agents/skills/product-update-newsletter/SKILL.md
.agents/skills/qa-cli-mcp-api/SKILL.md
.agents/skills/qa-critical-ux/SKILL.md
.agents/skills/reactive-sqlite-ui/SKILL.md
.agents/skills/sqlite-schema-design/SKILL.md
.claude/skills/fix-ready-prs/SKILL.md
.claude/skills/product-update-newsletter/SKILL.md
.claude/skills/qa-critical-ux/SKILL.md
.claude/skills/release-new-version/SKILL.md
.cursor/skills/new-changelog/SKILL.md
.cursor/skills/qa-cli-mcp-api/SKILL.md
.cursor/skills/qa-critical-ux/SKILL.md
.cursor/skills/release-new-version/SKILL.md
agent-plugins/anarlog/skills/anarlog/SKILL.md
skills/anarlog/SKILL.md

Metadata

Files
0
Version
382d3cf
Hash
67a242ab
Indexed
2026-08-20 17:13

ホーム - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-30 06:28
浙ICP备14020137号-1 $お客様$