chore: add prepare-release and publish-release agent skills - #6147
chore: add prepare-release and publish-release agent skills#6147henryiii wants to merge 5 commits into
Conversation
Split the release process from docs/release.rst into two agent skills: a changelog/version-bump PR, and the manual publication steps after that PR merges. Un-ignore .agents (the MSVC 'Release' pattern matched the release skill directory case-insensitively) and drop the outdated manual _version.py step from docs/release.rst. Assisted-by: ClaudeCode:claude-fable-5
| [needs changelog](https://github.com/pybind/pybind11/pulls?q=is%3Apr+is%3Aclosed+label%3A%22needs+changelog%22). | ||
| - Integrate the output into `docs/changelog.md` under the section for this | ||
| version, and add the release date (today) to the section header. | ||
| - Review, and inform the user if any edits are needed. |
There was a problem hiding this comment.
I believe I can extract more detailed instructions from an agent context that I used for the 3.0 patch releases. I'll try to do that soon.
This is to instruct the agent to normalize the style of the changelog entries.
There was a problem hiding this comment.
Go ahead, you should be able to push here.
Teach the prepare-release skill to proofread generated changelog entries for tense, concision, categorization, and PR-link consistency before opening release-prep PRs.
|
Small update: I added commit 77292b9, using an old agent thread from the 3.0.2, 3.0.3, 3.0.4 releases. I'm now working with a fresh agent and newer model on a full review. |
|
Hi @henryiii gpt-5.6-sol ultra added two more commits. It worked on them much longer than I anticipated (1/2 hour or so!). Feel free to rework any way you see fit. SummaryI added two
There are no library or runtime-code changes. The Why the larger safety pass seemed necessaryThe earlier Cursor review correctly identified the most serious issue: a maintenance release could be prepared from Looking at the recent release history also showed that the correct base cannot be inferred from the patch number alone: some patch releases were still cut from The audit found a few related cases with the same underlying problem: the workflow relied too much on moving branch tips and local checkout state. In particular, it did not pin the release to the preparation PR, validate the requested version before the first remote mutation, or define safe retry behavior after a partially completed release. Portability cleanup
Release-workflow hardeningc590ce9 updates both skills and the canonical release documentation. The main changes are: Release source and identity
Remote operations and retries
GitHub release and post-release handling
The ValidationI ran:
After the final fixes, those scenario audits found the flows fail-safe and internally consistent. The two policy choices most worth a human look are the explicit |
|
|
||
| nox -s build | ||
| nox -s build_global | ||
| twine upload dist/* |
There was a problem hiding this comment.
Removing this was an "over correction". I'm working on it.
There was a problem hiding this comment.
Pushed commit 9b88152
IIUC, my codex wants to make everything watertight, which is probably good for steering agents, but is a bit at odds with what a human would do.
My thinking: maybe make another pass with another model, to simplify, then try it out in the wild and tweak as needed, based on practical experience?
Haven't tried these yet, but can try it on the next release.
To use this with Claude, symlink it to
.claude/skills. Everyone else follows the agentskills standard.🤖 AI text below 🤖
Description
Split the release process from
docs/release.rstinto two agent skills in.agents/skills/:prepare-releaseopens the changelog/version-bump PR, andpublish-releasedoes the manual steps after that PR merges (release branch, tag, stable, GitHub release, post-release bump).Also un-ignores
.agentsin.gitignore(the MSVCReleasepattern matched thereleaseskill directory case-insensitively on macOS/Windows), and removes the outdated manualpybind11/_version.pyupdate step fromdocs/release.rst— that file reads the macros fromcommon.hand needs no edit.Suggested changelog entry:
📚 Documentation preview 📚: https://pybind11--6147.org.readthedocs.build/