Automate version bumping and release via GitHub Actions workflow.
/publish [version-type]
/publish - Auto-detect version type from commits (default: patch)/publish patch - Bug fixes (0.0.X)/publish minor - New features (0.X.0)/publish major - Breaking changes (X.0.0)/publish 1.2.3 - Specific version number1. PRE-FLIGHT CHECK → Verify clean working tree, on main branch
↓
2. ANALYZE CHANGES → Review commits since last tag to suggest version
↓
3. BUMP VERSION → Update package.json version
↓
4. COMMIT & TAG → Create release commit and git tag
↓
5. PUSH → Push commit and tag to trigger CI/CD
# Verify clean state
git status --porcelain
git branch --show-current
# Get current version and last tag
cat packages/cli/package.json | grep '"version"'
git describe --tags --abbrev=0 2>/dev/null || echo "No tags yet"
STOP if:
# Show commits since last tag
git log $(git describe --tags --abbrev=0 2>/dev/null || echo "HEAD~10")..HEAD --oneline
# Look for version indicators
# - "feat:" or "feat!:" → minor or major
# - "fix:" → patch
# - "BREAKING CHANGE" → major
Suggest version type based on conventional commits:
| Commit Type | Version Bump |
|---|---|
fix: | PATCH |
feat: | MINOR |
feat!: or BREAKING CHANGE | MAJOR |
# Read current version
CURRENT=$(grep '"version"' packages/cli/package.json | sed 's/.*"version": "\(.*\)".*/\1/')
echo "Current version: $CURRENT"
# Calculate new version (or use user-specified)
# For patch: 0.1.5 → 0.1.6
# For minor: 0.1.5 → 0.2.0
# For major: 0.1.5 → 1.0.0
Edit packages/cli/package.json to update the version.
Use conventional commit format:
git add packages/cli/package.json
git commit -m "chore(cli): bump version to X.Y.Z"
git tag vX.Y.Z
DO NOT add Claude Code references or co-author tags.
git push origin main vX.Y.Z
Provide the GitHub Actions URL for monitoring:
https://github.com/skilluse/skilluse/actions
// Parse semver: "0.1.5" → [0, 1, 5]
const [major, minor, patch] = version.split('.').map(Number);
// Bump logic
patch: `${major}.${minor}.${patch + 1}`
minor: `${major}.${minor + 1}.0`
major: `${major + 1}.0.0`
| Issue | Action |
|---|---|
| Uncommitted changes | Ask user to commit or stash first |
| Not on main | Warn and ask for confirmation |
| Tag already exists | Suggest next version |
| Push fails | Check remote access, show error |
After workflow completes, users can verify:
npm install -g skilluse
skilluse --version
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).