From 761f85b17492500088b2fe818e1ca50e333762ae Mon Sep 17 00:00:00 2001 From: rohan-tessl Date: Fri, 3 Apr 2026 10:56:38 +0530 Subject: [PATCH] feat: improve release skill score to 100% MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hey @ragnarok22 👋 I ran your skills through `tessl skill review` at work and found some targeted improvements. Here's the full before/after: | Skill | Before | After | Change | |-------|--------|-------|--------| | release | 94% | 100% | +6% | This repo has one skill — this PR covers it. The release skill was already strong; the main gap was **actionability** (concrete commands for each step). Changes: - Added executable sed commands for updating version in pyproject.toml and cryptobot/__init__.py - Added verification step to confirm both version files match after update - Added explicit git add / git commit commands with the exact files to stage - Added git tag -a command with proper flags for annotated tags - Added git push commands for both the commit and the tag - Added gh release create command with --title and --notes flags - Added explicit "do not continue if tests fail" gate at the test step - Ensured frontmatter description uses standard quoted string format Honest disclosure — I work at @tesslio where we build tooling around skills like these. Not a pitch - just saw room for improvement and wanted to contribute. --- skills/release/SKILL.md | 55 ++++++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/skills/release/SKILL.md b/skills/release/SKILL.md index 00f14ec..46fb1d5 100644 --- a/skills/release/SKILL.md +++ b/skills/release/SKILL.md @@ -1,6 +1,6 @@ --- name: release -description: Prepare and publish a new cryptobot-python release. Use when the user asks to cut a release, bump the package version, update HISTORY.md, create a git tag, or create a GitHub release. +description: "Prepare and publish a new cryptobot-python release. Use when the user asks to cut a release, bump the package version, update HISTORY.md, create a git tag, or create a GitHub release." --- # Release Skill @@ -19,29 +19,50 @@ Where `` is the new semantic version (e.g., `0.4.2`, `0.5.0`, `1.0.0`). When the user invokes this skill with a version number, perform the following steps: -1. **Validate the version**: Ensure the version follows semantic versioning (X.Y.Z format). +1. **Validate the version**: Ensure the version follows semantic versioning (X.Y.Z format). Reject pre-release or build metadata suffixes unless the user explicitly requests them. 2. **Update version files**: - - Update `version` in `pyproject.toml` - - Update `__version__` in `cryptobot/__init__.py` + - Update the `version` field in `pyproject.toml`: + ```bash + sed -i '' 's/^version = ".*"/version = ""/' pyproject.toml + ``` + - Update `__version__` in `cryptobot/__init__.py`: + ```bash + sed -i '' 's/__version__ = ".*"/__version__ = ""/' cryptobot/__init__.py + ``` + - Verify both files match: + ```bash + grep 'version' pyproject.toml | head -1 + grep '__version__' cryptobot/__init__.py + ``` 3. **Ask for release notes**: Ask the user what changes should be included in the release notes. -4. **Update HISTORY.md**: Add a new entry at the top of the History section with: - - Version number and today's date - - The release notes provided by the user +4. **Update HISTORY.md**: Add a new entry at the top of the History section with the version number, today's date, and the release notes provided by the user. -5. **Run tests**: Execute `make test` to ensure all tests pass before proceeding. +5. **Run tests**: Execute `make test` to ensure all tests pass before proceeding. Do not continue if tests fail. -6. **Create commit**: Create a commit with message `chore(release): prepare v release` +6. **Create commit**: + ```bash + git add pyproject.toml cryptobot/__init__.py HISTORY.md + git commit -m "chore(release): prepare v release" + ``` -7. **Create tag**: Create an annotated git tag `v` pointing to the release commit. +7. **Create tag**: + ```bash + git tag -a "v" -m "v" + ``` -8. **Create GitHub release**: Use `gh release create` to create a GitHub release with: - - Tag: `v` - - Title: `v` - - Release notes from the HISTORY.md entry +8. **Push commit and tag**: + ```bash + git push origin main + git push origin "v" + ``` -9. **Report completion**: Provide the user with: - - Summary of files changed - - Link to the GitHub release +9. **Create GitHub release**: + ```bash + gh release create "v" --title "v" --notes "" + ``` + Use the release notes from the HISTORY.md entry. For multi-line notes, use `--notes-file` with a temporary file instead. + +10. **Report completion**: Provide the user with a summary of files changed and a link to the GitHub release.