verify-release-readiness
Verify release readiness by detecting changed skills, checking version updates, and running validation scripts. Use before creating releases or publishing to marketplace.
SKILL.md
| Name | verify-release-readiness |
| Description | Verify release readiness by detecting changed skills, checking version updates, and running validation scripts. Use before creating releases or publishing to marketplace. |
name: verify-release-readiness version: 0.1.0 description: Verify release readiness by detecting changed skills, checking version updates, and running validation scripts. Use before creating releases or publishing to marketplace.
Verify Release Readiness
Use this skill to prepare skills for release. It detects which skills have changed since the last release and reports whether versions were updated accordingly.
This skill automates the release preparation workflow and ensures all skills have proper version updates.
Table of Contents
Prerequisites
Before using this skill:
- You are in a Jujutsu repository with a
mainbookmark andmain@origin(remote tracking bookmark) jqis installed (for JSON parsing)- You have the
scripts/verify-skills-static.shandscripts/verify-skills-opencode.shscripts available
Release Preparation Workflow
Step 1: Detect Changes
Run the detection script using the Bash tool:
bash .claude/skills/verify-release-readiness/scripts/detect-changes.sh
This script:
- Compares your working copy to the last published release (
main@originbookmark) - Identifies all changed skills since the last release
- Extracts current and published versions for each skill
- Outputs JSON format
Exit codes:
- 0: Changes detected
- 1: No changes found
- 2: Error (not a jj repo, invalid main@origin bookmark, etc.)
Optional: Compare against a different revision:
bash .claude/skills/verify-release-readiness/scripts/detect-changes.sh <revision>
Examples:
bash .claude/skills/verify-release-readiness/scripts/detect-changes.sh main- Compare against local main bookmarkbash .claude/skills/verify-release-readiness/scripts/detect-changes.sh @-- Compare against parent commit
Step 2: Parse and Report Findings
After running the script:
- Verify the JSON is valid - Inspect the output structure
- Identify changed skills - Look for skills in the
changed_skillsarray - Check version status - For each skill:
- If
needs_update: false→ Version was properly updated ✓ - If
needs_update: true→ Version needs manual update ⚠
- If
Step 3: Report to User
Present the findings in a clear format:
Found X changed skills:
✓ skill-name-1
- Current version: 0.2.0
- Main version: 0.1.0
- Status: Version updated ✓
- Changed files: skills/skill-name-1/SKILL.md
⚠ skill-name-2
- Current version: 0.3.0
- Main version: 0.3.0
- Status: Version NOT updated ⚠
- Changed files: skills/skill-name-2/SKILL.md, skills/skill-name-2/README.md
Step 4: Wait for User to Update Versions
For skills marked with ⚠ (needs_update: true):
Tell the user: "Please manually update the version field in the SKILL.md frontmatter for the following skills: [list them]"
The user should:
- Open the SKILL.md file for each flagged skill
- Update the version field following semantic versioning (patch/minor/major)
- Save the file
Wait for the user to indicate they're done.
Step 5: Run Verification Scripts
Once user confirms versions are updated, run the verification scripts:
bash scripts/verify-skills-static.sh
bash scripts/verify-skills-opencode.sh
Both should output TAP format with all tests passing. Report any failures to the user.
Step 6: Provide Release Summary
After verification passes, summarize:
Release preparation complete:
- X skills changed
- Y versions manually updated
- All verification tests passed ✓
Ready to commit and release!
Tips and Best Practices
- Always check the release summary before committing
- Ensure all verification tests pass before pushing to remote
- Use semantic versioning: patch for fixes, minor for features, major for breaking changes
Error Handling
If detection script fails (exit code 2):
- Check if you're in a jj repository:
jj st - Verify the
main@origin(remote) bookmark exists:jj bookmark list - Report the error to the user with the script's error message
If no changes detected (exit code 1):
- Tell the user: "No skill changes detected since the last published release (main@origin)"
- Suggest they verify they've made changes and committed them locally
- They can also use
bash .claude/skills/verify-release-readiness/scripts/detect-changes.sh mainto compare against the local main bookmark instead
If verification fails:
- Show the TAP output to the user
- Identify which tests failed
- Suggest fixes (e.g., ensure required fields are present in SKILL.md frontmatter)
Example Output
{
"changed_skills": [
{
"name": "detect-jujutsu",
"current_version": "0.2.0",
"main_version": "0.1.0",
"needs_update": false,
"changed_files": ["skills/detect-jujutsu/SKILL.md"]
},
{
"name": "use-jujutsu",
"current_version": "0.2.0",
"main_version": "0.2.0",
"needs_update": true,
"changed_files": ["skills/use-jujutsu/SKILL.md", "skills/use-jujutsu/scripts/detect.sh"]
}
]
}