一键导入
release
Cut a release — promote Unreleased → versioned in CHANGELOG, bump version, commit. CI auto-tags and publishes from the version-bump commit.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Cut a release — promote Unreleased → versioned in CHANGELOG, bump version, commit. CI auto-tags and publishes from the version-bump commit.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Create a pull request from the current branch, matching the repo's PR conventions (What/Why/Testing for features, Summary/Test-plan for small PRs).
Create a release-tracking issue that organizes open issues into a phased roadmap. Pass a target version (e.g., `0.5.0`) to scope the plan.
基于 SOC 职业分类
| name | release |
| description | Cut a release — promote Unreleased → versioned in CHANGELOG, bump version, commit. CI auto-tags and publishes from the version-bump commit. |
Prepare a release. $ARGUMENTS is the bump type: patch (default), minor, major.
Releases go through a pull request, same as any other change. No direct pushes to main, no admin bypass — even for version bumps. This keeps the audit trail clean and matches the historical pattern (see PRs #18, #32, #36, #92).
CI does the tagging and publishing once the PR merges:
.github/workflows/auto-tag.yml watches main for commits whose message starts with bump version to → reads the version from pyproject.toml and pushes v<X.Y.Z>..github/workflows/release.yml triggers on the tag push → builds the wheel, creates a GitHub Release with auto-generated notes, publishes to PyPI via OIDC.So the commit message prefix (bump version to) is load-bearing. Don't paraphrase it.
Version
pyproject.toml and src/agentloom/__init__.py.Pre-flight — run /check. Abort on any failure. Also abort if git status is dirty.
CHANGELOG — Keep a Changelog convention already used in the repo:
## [Unreleased] section accumulates ### Added / ### Changed / ### Fixed / ### Removed entries during development.## [Unreleased] to ## [<version>] - YYYY-MM-DD (not prepend — rename in place).## [Unreleased] at the top for future work.git log; Unreleased is the source of truth.docs/changelog.md if it mirrors CHANGELOG.md.Bump
version in pyproject.toml__version__ in src/agentloom/__init__.pyBranch + commit — create release/<X.Y.Z> from an up-to-date main. Commit message must start with bump version to <X.Y.Z>. Follow /commit rules otherwise (no scopes, no Co-Authored-By). Do not run git tag locally — the workflow creates it on merge.
Open PR — ask authorization first. Title matches the commit (bump version to <X.Y.Z>). Body: link the ## [X.Y.Z] section of CHANGELOG.md and summarize highlights. Never push directly to main, never use admin bypass.
Wait for checks + squash-merge — all required status checks must pass. Squash-merge only (this repo's convention). When completing the squash merge, override the default Merge pull request ... title so the resulting commit on main starts with exactly bump version to <X.Y.Z> — the auto-tag.yml workflow greps that prefix and will skip tagging otherwise. Once that squash commit lands on main:
v<X.Y.Z>.gh run list --limit 5.Post-release — report PR URL, tag, GitHub Release URL, and PyPI job status. If auto-tag/release fails, inspect with /ci-status instead of trying to recover by hand.