.claude/skills/new-release/SKILL.md
Create a new release of the plugin. Bumps version, builds, creates GitHub release, and updates PluginDatabase.
npx skillsauth add jcdoll/hltb-millennium-plugin new-releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Creates a new release of the HLTB for Steam plugin, handling the full release workflow.
Before running this skill, run the game-id-review skill to ensure that the game IDs are high quality.
/new-release
/new-release 1.2.3
If no version is provided, suggests a patch increment.
plugin.json and package.json to get current local versiongh release list --limit 1 --json tagName --jq '.[0].tagName'
git status --porcelain
git branch --show-current
git fetch origin && git status -uno
git log v{GITHUB_VERSION}..HEAD --oneline --no-merges
../PluginDatabase exists and contains the submodule:
ls ../PluginDatabase/plugins/hltb-millennium-plugin
Abort conditions:
Display this exact format and ask for confirmation:
## Release Plan: v{NEW_VERSION}
### Current State
- Local version: {LOCAL_VERSION}
- GitHub release: {GITHUB_VERSION}
- Git: clean, on main, up-to-date
### Release Notes
- {BULLET_POINT_PER_SIGNIFICANT_COMMIT}
- ...
### Steps to Execute
1. Update plugin.json version: {OLD} -> {NEW}
2. Update package.json version: {OLD} -> {NEW}
3. Run `npm install` to update package-lock.json
4. Run `npm run build` to verify build succeeds
5. Run Lua tests to verify backend code
6. Commit: "Release v{NEW_VERSION}"
7. Push to origin/main
8. Trigger GitHub Action "Create Release"
9. Wait for release workflow to complete
10. Update GitHub release with human-readable notes
11. Update submodule in ../PluginDatabase to latest commit
12. Commit in PluginDatabase: "Update HLTB for Steam to v{NEW_VERSION}"
13. Push PluginDatabase to origin
14. Create PR to SteamClientHomebrew/PluginDatabase
Proceed with release?
Use AskUserQuestion with options: "Yes, proceed" / "No, abort"
Execute each step, reporting progress. Stop immediately on any failure.
Use Edit tool to update version in both files.
npm install
npm run build
Abort if build fails.
cmd //c "busted tests/"
Abort if any tests fail. If busted is not available, see docs/development.md section "Running Lua Tests" for setup instructions.
git add plugin.json package.json
git commit -m "Release v{VERSION}"
git push origin main
gh workflow run release.yml -f version={VERSION}
gh run list --workflow=release.yml --limit 1 --json status,conclusion,databaseId
Poll every 10 seconds until status is "completed". Abort if conclusion is not "success".
The workflow's generate_release_notes: true only produces auto-generated commit links. Replace them with the human-readable release notes generated in Phase 1:
gh release edit v{VERSION} --notes "{RELEASE_NOTES}"
The notes should include category headers (e.g., "### Bug fixes", "### Improvements") and end with a full changelog link:
**Full Changelog**: https://github.com/{OWNER}/{REPO}/compare/v{PREV_VERSION}...v{VERSION}
cd ../PluginDatabase/plugins/hltb-millennium-plugin
git fetch origin
git checkout origin/main
cd ../..
cd ../PluginDatabase
git add plugins/hltb-millennium-plugin
git commit -m "Update HLTB for Steam to v{VERSION}"
cd ../PluginDatabase
git push origin
cd ../PluginDatabase
gh pr create --repo SteamClientHomebrew/PluginDatabase --title "Update HLTB for Steam to v{VERSION}" --body "Updates the HLTB for Steam plugin submodule to v{VERSION}.
## Changes
{RELEASE_NOTES_AS_BULLET_POINTS}"
Report success with:
Provide clear, actionable error messages:
tools
Reviews game_ids.lua for duplicates, then removes them. Ensures numerical sort order.
development
Reviews code for quality, security, and maintainability. Use after implementing features, completing significant work, or when user asks for code review.
tools
--- name: add-game-id description: Add a Steam-to-HLTB game ID mapping. Usage: /add-game-id <appid>, <name>, or <appid> -> <hltb_id> allowed-tools: Read, Edit, WebFetch, WebSearch --- # Add Game ID Adds a Steam AppID to HLTB game ID mapping in `backend/game_ids.lua`. ## Input Formats The skill accepts three input formats: ### 1. Steam App ID (preferred) ``` /add-game-id 1004640 ``` ### 2. Steam Game Name ``` /add-game-id "FINAL FANTASY TACTICS - The Ivalice Chronicles" ``` ### 3. Full Map
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.