| name | draft-release |
| description | Prepare a new npm release: bump the version, open a release PR, and create a draft GitHub release. Publishing is automated by the Publish workflow once the release PR is merged into main. |
Draft Release
Stage a release for webseek. Merging the release PR into main automatically
runs .github/workflows/publish.yml, which publishes the package to npm and
finalizes the GitHub release — this skill only prepares the release PR and a
draft GitHub release for the maintainer to review and merge.
Step 1: Sync main
- Ensure you are on the
main branch; if not, switch to it with git checkout main.
- Run
git fetch --tags && git pull to get the latest commits and tags.
Step 2: Determine the new version
- Parse
$ARGUMENTS for a version, stripping any leading v, and assign it to $new_version
(e.g. v1.2.0 → 1.2.0).
- If
$ARGUMENTS is empty, run the release-dry-run skill and use its recommended version.
- Confirm
$new_version is greater than both the current package.json version and the
latest git tag.
Step 3: Create the release branch and bump the version
git checkout -b release/v${new_version}.
pnpm version ${new_version} --no-git-tag-version.
- This updates
package.json only. webseek reads its version from package.json
at runtime (getVersion() in src/cli/index.ts), so no source code edit is needed.
- Run
pnpm cicheck. If it fails, fix the code until it passes.
- Commit with the message
chore(release): ${new_version} (in English, following the
project's commit conventions).
git push -u origin release/v${new_version}.
Step 4: Open the release PR
- Create a PR into
main:
gh pr create --base main --head release/v${new_version} --title "chore(release): ${new_version}" --body "<summary>".
- Use the change summary from the
release-dry-run skill (What's Changed, Full Changelog)
for the PR body.
Step 5: Create the draft GitHub release
gh release create v${new_version} --draft --title "v${new_version}" --generate-notes --target main.
- This is a draft: no git tag is created and nothing is published to npm yet.
Step 6: Report and hand off
Output the following for the maintainer:
- The release PR URL.
- The draft release URL.
- The remaining manual step:
- Review and merge the release PR into
main.
On merge, the Publish workflow runs automatically and, in a single job:
verifies package.json matches the release tag, creates and pushes the
v${new_version} tag, runs pnpm publish (npm trusted publishing via OIDC, with
provenance), and flips the draft GitHub release to published. No manual "Publish
release" click is needed.
Important: Do not publish the draft release manually before the PR is merged —
merging the PR handles publishing end to end. The workflow verifies the merged
commit's package.json matches the tag, so a mismatched version is safely
rejected rather than shipping the wrong version. If you ever need to publish a
release whose PR was merged before this automation existed, run the Publish
workflow via workflow_dispatch with the desired tag (e.g. v${new_version}).