Automates version bumping, changelog updates, and GitHub release tagging for the RegiLattice project.
Install
mkdir -p .claude/skills/release-rajwanyair && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/10456" && unzip -o skill.zip -d .claude/skills/release-rajwanyair && rm skill.zipInstalls to .claude/skills/release-rajwanyair
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Bump the version, update the changelog, tag, and publish a GitHub release for RegiLattice. Use when preparing a new release, updating version numbers, creating a CHANGELOG entry, or pushing a version tag to trigger the CI release workflow. Triggers on: 'bump version', 'release', 'publish', 'version', 'tag', 'changelog', 'MINOR bump', 'PATCH bump'.Key capabilities
- →Bump version numbers
- →Update changelogs
- →Create git tags
- →Publish GitHub releases
How it works
It automates the update of version properties across multiple files and triggers the CI release workflow via git tags.
Inputs & outputs
When to use release
- →Bump project version for a patch
- →Update changelog before release
- →Push version tag to trigger CI
About this skill
Release — RegiLattice
Version Scheme
MAJOR.MINOR.PATCH — Semantic Versioning
| Bump | When |
|---|---|
PATCH | Bug fixes, refactoring, docs, dead code removal, config fixes |
MINOR | New tweaks, new features, new dialogs/services |
MAJOR | Breaking API changes, architectural overhauls |
Files to Update (31-item checklist — see full details in lessons-learned.instructions.md)
The canonical checklist with all 28 files + 3 external actions lives in
.github/instructions/lessons-learned.instructions.md(section "SVG Count Update Checklist"). Always reference that as the source of truth.
Group A — Version properties (EVERY version bump)
| # | File | Property / Pattern |
|---|---|---|
| 1 | Directory.Build.props | <Version>, <AssemblyVersion>, <FileVersion>, <InformationalVersion> |
| 2 | installer/Package.wxs | Version="X.Y.Z" (inside <Package ...>) |
Group B — SVG graphics (when counts change)
| # | File | What changes |
|---|---|---|
| 3 | docs/assets/stats.svg | Tweaks + categories + tests (plain digits — 7718, never space-separated) |
| 4 | docs/assets/banner.svg | Tweaks · categories · tests · themes · profiles |
| 5 | docs/assets/features.svg | Per-category tweak count badges |
| 6 | docs/assets/architecture.svg | Stats badge + category pills: tweak count · category count · module file count |
| 7 | docs/assets/how-it-works.svg | Tweaks count in Browse step |
| 8 | docs/assets/project-structure.svg | File count · tweak count · category count |
| 9 | docs/assets/solution-overview.svg | File count · tweak count |
Group C — Documentation & instruction files
| # | File | What changes |
|---|---|---|
| 10 | README.md | Version badge, test badge, download link, description, features, diagram counts |
| 11 | CHANGELOG.md (root stub) | Latest version entry summary |
| 12 | docs/CHANGELOG.md | Prepend new ## [X.Y.Z] section with Stats line |
| 13 | docs/Development.md | Header "Last updated" date + version |
| 14 | docs/Roadmap.md | Baseline counts if changed |
| 15 | .github/copilot-instructions.md | Header, version table, tweak/category/module/test counts |
| 16 | .github/instructions/workspace.instructions.md | Tweaks/module count in Tweaks/ directory comment |
| 17 | .github/instructions/lessons-learned.instructions.md | Header date + version + counts |
| 18 | .github/instructions/testing.instructions.md | Test project counts table (Core/CLI/GUI/Total) |
| 19 | .github/agents/regilattice.agent.md | "Current state" line: tweak/category/module/test counts |
Group D — Package registry manifests (version + description counts)
| # | File | What changes |
|---|---|---|
| 20 | chocolatey/regilattice.nuspec | <version>, <summary>, description counts |
| 21 | scoop/regilattice.json | version, url, hash, description counts |
| 22 | winget/RegiLattice.RegiLattice.yaml | PackageVersion |
| 23 | winget/RegiLattice.RegiLattice.installer.yaml | PackageVersion, InstallerUrl |
| 24 | winget/RegiLattice.RegiLattice.locale.en-US.yaml | PackageVersion, ShortDescription, Description counts |
| 25 | powershell/RegiLattice.psd1 | ModuleVersion |
Group E — Derived files (update AFTER release build)
| # | File | What changes |
|---|---|---|
| 26 | Dockerfile | LABEL description counts |
Group F — External (post-push)
| # | Action | What changes |
|---|---|---|
| 27 | GitHub About sidebar | gh repo edit — update tweak count in description |
Step-by-Step Release Process
0. Create a release issue and branch (MANDATORY for version bumps)
Current path:
- Create a release issue from
.github/ISSUE_TEMPLATE/release.yml - Create the release branch locally:
git checkout -b release/vX.Y.Z - Push the branch and open a draft PR to
main
Manual path (for local-only prep):
# Create branch
git checkout -b release/vX.Y.Z
# Create issue via gh CLI
gh issue create --title "Release vX.Y.Z" --label "release" --body "Release checklist for vX.Y.Z. See PR."
# After pushing changes:
gh pr create --title "chore: release vX.Y.Z" --body "Closes #NN" --base main
1. Pre-flight checks
# Run all tests — must be 0 failures
dotnet test tests/RegiLattice.Core.Tests/RegiLattice.Core.Tests.csproj --settings tests/.runsettings --blame-hang-timeout 30s
dotnet test tests/RegiLattice.CLI.Tests/RegiLattice.CLI.Tests.csproj --settings tests/.runsettings --blame-hang-timeout 30s
dotnet test tests/RegiLattice.GUI.Tests/RegiLattice.GUI.Tests.csproj --settings tests/.runsettings --blame-hang-timeout 30s
# Validate tweak integrity before tagging
dotnet run --project src/RegiLattice.CLI/RegiLattice.CLI.csproj -c Release --no-build -- --validate
# Release build — must be 0 errors, 0 warnings (build each project sequentially)
dotnet build src/RegiLattice.Core/RegiLattice.Core.csproj -c Release
dotnet build src/RegiLattice.GUI/RegiLattice.GUI.csproj -c Release
dotnet build src/RegiLattice.CLI/RegiLattice.CLI.csproj -c Release
2. Bump version in all files
Update ALL properties simultaneously — never leave them out of sync:
<!-- Directory.Build.props -->
<Version>X.Y.Z</Version>
<AssemblyVersion>X.Y.Z.0</AssemblyVersion>
<FileVersion>X.Y.Z.0</FileVersion>
<InformationalVersion>X.Y.Z</InformationalVersion>
3. Add CHANGELOG entry in docs/CHANGELOG.md
## [X.Y.Z] — YYYY-MM-DD
### Added
- ...
### Fixed
- ...
### Stats
- Tweaks: **N NNN**
- Tests: **N NNN** passing (NNN Core + NNN CLI + NNN GUI)
- Version bumped `X.Y.Z-1` → `X.Y.Z`
4. Update root CHANGELOG.md stub with the latest entry summary
5. Push to release branch and merge PR
git add -A
git commit -m "chore: bump version to vX.Y.Z
- Directory.Build.props: all 4 version properties updated
- installer/Package.wxs: Version updated
- README.md: badge + download link updated
- CHANGELOG(s): vX.Y.Z entry added
Closes #NN
Total: N NNN tweaks, N NNN tests (0 failures)"
git push origin release/vX.Y.Z
Mark the draft PR as ready for review. Wait for CI to pass. Merge to main.
6. Tag and push (triggers GitHub Actions release workflow)
git checkout main
git pull
git tag vX.Y.Z
git push --tags # ← TRIGGERS release.yml
7. Post-release verification (MANDATORY — do not skip)
Wait 3–5 minutes then:
- Open the GitHub Actions tab:
https://github.com/RajwanYair/RegiLattice/actions/workflows/release.yml - Confirm the workflow for
vX.Y.Zshows a green ✅ (not ❌ or ⏳) - Open
https://github.com/RajwanYair/RegiLattice/releases/latest - Verify the release exists with all expected assets:
RegiLattice-vX.Y.Z-win-x64.exe(GUI portable)RegiLatticeCLI-vX.Y.Z-win-x64.exe(CLI portable)SHA256SUMS.txt(checksums)RegiLattice-vX.Y.Z-win-x64.msi(optional)RegiLattice-vX.Y.Z-win-x64.msix(optional)
- Close the release issue (auto-closed if PR body had
Closes #NN)
Only after these checks pass is the release complete. Do NOT skip this step — past releases failed silently (v3.5.0 succeeded; v3.7.3 workflow failed because the MSI build error cascaded and killed the release upload step entirely).
GitHub Actions Release Workflow
The tag push triggers .github/workflows/release.yml which:
- Builds GUI + CLI as self-contained
win-x64single-file executables - Optionally builds the WiX
.msiinstaller (continue-on-error: true) - Optionally builds an
.msixpackage and Chocolatey package - Creates a GitHub Release with all matched artifacts
The MSI build is non-blocking — if WiX tool
Content truncated.
When not to use it
- →Mid-session versioning
- →Pushing without passing tests
Prerequisites
Limitations
- →Requires clean working tree
- →Manual verification of release required
How it compares
It enforces a strict 31-item checklist for version updates, ensuring consistency across documentation and registry manifests.
Compared to similar skills
release side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| release (this skill) | 0 | 3mo | Review | Intermediate |
| agent-workflow-automation | 4 | 6mo | Review | Advanced |
| project-os | 1 | 6mo | Review | Intermediate |
| project-tooling | 1 | 4mo | Caution | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by RajwanYair
View all by RajwanYair →You might also like
agent-workflow-automation
ruvnet
Agent skill for workflow-automation - invoke with $agent-workflow-automation
project-os
Peiiii
AI project OS for autonomous loop, automated orchestration, and rule-driven execution.
project-tooling
alinaqi
gh, vercel, supabase, render CLI and deployment platform setup
release-version
corvo007
Use when releasing a new version - guides through version bump, changelog generation, commit grouping, tagging, and GitHub CI tracking. Triggers on "发布新版本", "release", "发版", or version release requests.
Release
tobagin
Create a new Keymaker release — analyze changes, bump version, update changelog/README/AppStream metadata, build, commit, tag, push, and create GitHub release
release-prep
Fu-Jie
Orchestrates the full release preparation flow for a plugin — version sync across 7+ files, bilingual release notes creation, and commit message drafting. Use before submitting a PR. Does NOT push or create a PR; that is handled by pr-submitter.