Cut an OpenSEO release — bump the version, draft user-facing release notes from commits since the last tag, run a review + subagent-verification pass, and open a "release: vX.X.X" PR. Use when the user asks to prepare a release, bump the version, or write release notes.
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Cut a release for this repo end to end. The deliverables are a version bump in package.json, a new docs/release-notes/v<version>.md, and a PR against origin/main titled release: v<version>.
package.json. If the branch has already bumped version, treat that as the source of truth and do not change it.0.0.19 → 0.0.20). Only bump minor/major if explicitly asked.git tag --sort=-creatordate | head -1. Verify the branch is up to date with origin/main (git fetch origin main && git log HEAD..origin/main --oneline should be empty; flag it if not).git log <last-tag>..HEAD --oneline. You can also run pnpm release:notes for a raw commit inventory — use it only as a checklist of candidate changes, never as the draft's structure (its Improved/Changed/Docs sections must not appear in the notes).gh pr view <num> --repo <repo> --json title,body,author) — squash-commit subjects can be stale. The (#NN) in commit subjects can reference either repo: try bensenescu/open-seo (origin) first and fall back to every-app/open-seo (public) — outside contributors' PRs and their handles live on the public repo. Commits with no (#NN) may still be an outside contribution with a public PR (gh pr list --repo every-app/open-seo --state merged --author <login>); check git log --format=%an for the author. Verify claims against the final code when a PR body and commit subject disagree (features get reverted before merge).Write docs/release-notes/v<version>.md. docs/release-notes/v0.0.24.md is the canonical style exemplar — match it (v0.0.25 and later follow the same style); v0.0.23 and earlier are the old verbose style, never imitate them. The notes are a scannable digest, not documentation: the whole file fits on one screen (roughly 15 lines including headings), and every line earns its place.
Format:
## What's new and ## Fixed only. There is no "Improved" section — an improvement is either headline-worthy (What's new) or it's cut.OPENROUTER_API_KEY"), or an expectation-setter.— thanks @handle for outside contributors only — never for the maintainer's own PRs (bensenescu). Credit goes on the top-level bullet, not sub-bullets. Multiple contributors: — thanks @a, @b.Full Changelog: https://github.com/every-app/open-seo/compare/v<prev>...v<version>Curation — this is where the work is. Cut aggressively; the Full Changelog link covers the long tail:
web/) changes — landing pages, copy, positioning, blog.Commit the version bump, release notes, and any skill changes on a branch named claude/v<version> (use the current branch if it already follows this pattern).
Push to origin and open a PR against main titled exactly release: v<version>. PR body: the release notes content.
Do not tag or publish the GitHub release — that happens after merge. After merge, run pnpm release:publish. It reads the version from package.json and publishes the matching docs/release-notes/v<version>.md to every-app/open-seo.
The equivalent command is:
gh release create v<version> \
--repo every-app/open-seo \
--title v<version> \
--notes-file docs/release-notes/v<version>.mdevery-app/open-seo
2d8236a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.