App Package Skill
Packages the Transcoder Windows application for distribution.
When to Use
Call this skill when:
- •User wants to create a release build
- •User wants to package the app for distribution
- •User invokes
/app-packagecommand
Packaging Process
Phase 1: Pre-Build Documentation
- •
Summarize code changes
- •Review recent commits and changes since last release
- •Present summary to user for confirmation
- •
Gather release info (single source of truth)
- •Use
src-tauri/Cargo.tomlas the only place to set the version - •Confirm release summary before proceeding
- •Use
- •
Update documentation
- •
README.md- update version info fromsrc-tauri/Cargo.tomlif needed - •
CHANGELOG.md- add new release entry with changes summary - •
docs/gh-pages/- update documentation site if applicable - •Ask user to confirm any uncertain information
- •
Phase 2: Git Operations
- •
Commit changes
bashgit add . git commit -m "Release v{version}"Note: Never add Claude Code to co-author list
- •
Switch to main branch and merge
bashgit checkout main git merge {current-branch} - •
Create release tag
bashgit tag v{version}
Phase 3: Build & Package
- •
Build release binary
bashnpm run tauri build
- •
Update dist-release folder
- •The
dist-release/folder already exists withffmpeg/subdirectory - •Only update these files:
- •Replace
transcoder.exewith newly built binary fromsrc-tauri/target/release/ - •Replace
README.mdif it has changed
- •Replace
- •The
ffmpeg/folder and its contents remain unchanged
- •The
- •
Update files + create zip (single command)
- •
{version}is read fromsrc-tauri/Cargo.toml
powershellpowershell -Command "$version=(Get-Content src-tauri\Cargo.toml | Select-String -Pattern '^version\s*=\s*""(.+)""' | ForEach-Object { $_.Matches[0].Groups[1].Value } | Select-Object -First 1); if (-not $version) { throw 'Version not found in src-tauri/Cargo.toml' }; Copy-Item -Force src-tauri\target\release\transcoder.exe dist-release\transcoder.exe; Copy-Item -Force README.md dist-release\README.md; Compress-Archive -Force -Path dist-release\transcoder.exe,dist-release\README.md,dist-release\ffmpeg -DestinationPath dist-release\transcoder-v$version-windows.zip" - •
- •
Cleanup old archives
- •Delete old zip files (e.g.,
transcoder-v0.5.1-windows.zip) - •Keep only the newest release
- •Delete old zip files (e.g.,
- •
Verify package
- •Check zip file size (should be 100-200 MB range)
- •Confirm all required files are included
Phase 4: Completion
- •Report to user
- •Summarize what was done
- •Show zip file size
- •Ask user if they want to push to remote:
- •Push commits:
git push origin main - •Push tag:
git push origin v{version}
- •Push commits:
Output Structure
code
dist-release/
├── transcoder.exe (5-6 MB, from release build)
├── ffmpeg/
│ ├── ffmpeg.exe (static, unchanged)
│ └── ffprobe.exe (static, unchanged)
├── README.md (may be updated)
└── transcoder-v{version}-windows.zip
The uncompressed zip structure
code
dist-release/ ├── transcoder.exe ├── ffmpeg/ │ ├── ffmpeg.exe │ └── ffprobe.exe └── README.md
Files Modified
- •
src-tauri/Cargo.toml- version (if changed) - •
src-tauri/tauri.conf.json- version (if changed) - •
README.md- documentation updates - •
CHANGELOG.md- release notes - •
docs/gh-pages/*- site documentation (if applicable)
Files Created
- •
dist-release/transcoder-v{version}-windows.zip- distribution package - •
v{version}git tag