一键导入
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 页面并帮你完成安装。
基于 SOC 职业分类
Deep analysis of current changes before committing. Goes beyond lint — catches logic bugs, architectural violations, security, and performance issues.
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).
Review staged or unstaged changes before committing. Catches bugs, style drift, and missing coverage.
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.
Run the full quality gate — format, lint, tests, types. Use after changes to verify nothing is broken.
Check GitHub Actions CI status. Shows recent runs, and if there are failures, reads the logs and suggests fixes.
| 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.Roadmap validation — if a planning issue exists for this version, validate it's complete:
ROADMAP=$(gh issue list --label release --search "ship <X.Y.Z> in:title" --state all --json number -q '.[0].number')
If $ROADMAP is non-empty:
gh issue view $ROADMAP --json body -q .body#NNN references from task-list items.gh issue view <num> --json state -q .state.Skip this step for patch releases (minor cleanups, hotfixes) — those don't need a roadmap. Skip also when no matching roadmap issue is found.
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 includes:
## [X.Y.Z] section of CHANGELOG.md and summary highlights.Closes #<roadmap> so merging the release closes the planning issue automatically.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. If a roadmap issue was referenced, confirm it closed automatically via the Closes #NNN in the merged PR.