Awesome-omni-skill pdk-release
Release echo-pdk packages to npm. Bumps versions, creates tags, triggers GitHub Actions, and verifies frontend consumption.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/pdk-release" ~/.claude/skills/diegosouzapw-awesome-omni-skill-pdk-release && rm -rf "$T"
skills/tools/pdk-release/SKILL.mdEcho PDK Release Workflow
Automates the full release process for echo-pdk packages including npm publish via GitHub Actions.
Usage
/pdk-release core minor # Release core package with minor bump /pdk-release cli patch # Release CLI package with patch bump /pdk-release core,cli minor # Release multiple packages /pdk-release all patch # Release all packages
Arguments
- packages:
,core
,cli
, orlanguage
(comma-separated for multiple)all - bump:
,patch
, orminormajor
Step-by-Step Instructions
Step 1: Pre-Release Checks
cd /Users/yoadelkayam/github/PDK/echo-pdk # Verify clean working directory git status -sb # Ensure on main and up-to-date git checkout main git pull origin main # Run tests pnpm test # Build all packages pnpm build
If tests fail, STOP and report the failure.
Step 2: Determine Current Versions
Read current versions from package.json files:
# Core package cat packages/core/package.json | grep '"version"' # CLI package cat packages/cli/package.json | grep '"version"' # Language package cat packages/language/package.json | grep '"version"'
Step 3: Bump Versions
Calculate new versions based on bump type and update package.json files.
Version bump rules:
: 0.5.1 → 0.5.2patch
: 0.5.1 → 0.6.0minor
: 0.5.1 → 1.0.0major
Edit the
"version" field in each package.json being released.
Step 4: Generate Changelog
Get commits since last tag:
# For core package git log $(git tag -l 'core-v*' --sort=-v:refname | head -1)..HEAD --oneline -- packages/core/ # For CLI package git log $(git tag -l 'cli-v*' --sort=-v:refname | head -1)..HEAD --oneline -- packages/cli/ # For language package git log $(git tag -l 'language-v*' --sort=-v:refname | head -1)..HEAD --oneline -- packages/language/
Step 5: Create Commit
Stage and commit all changes:
git add packages/*/package.json git commit -m "chore: release @goreal-ai/echo-pdk v{CORE_VERSION}, @goreal-ai/echo-pdk-cli v{CLI_VERSION} Co-Authored-By: Claude <noreply@anthropic.com>"
Step 6: Create Tags
Create annotated tags for each package being released:
# For core git tag -a core-v{VERSION} -m "Release @goreal-ai/echo-pdk v{VERSION}" # For CLI git tag -a cli-v{VERSION} -m "Release @goreal-ai/echo-pdk-cli v{VERSION}" # For language git tag -a language-v{VERSION} -m "Release @goreal-ai/echo-pdk-language v{VERSION}"
Step 7: Push to Origin
git push origin main git push --tags
Step 8: Create GitHub Releases
This triggers the npm publish workflow.
# For core package gh release create core-v{VERSION} \ --title "@goreal-ai/echo-pdk v{VERSION}" \ --notes "## Changes {CHANGELOG_CONTENT} ## Breaking Changes None" # For CLI package gh release create cli-v{VERSION} \ --title "@goreal-ai/echo-pdk-cli v{VERSION}" \ --notes "## Changes - Updated to use @goreal-ai/echo-pdk v{CORE_VERSION}" # For language package gh release create language-v{VERSION} \ --title "@goreal-ai/echo-pdk-language v{VERSION}" \ --notes "## Changes {CHANGELOG_CONTENT}"
Step 9: Monitor GitHub Actions
Wait for workflows to complete:
# Check workflow status gh run list --limit 5 # Watch specific run gh run watch {RUN_ID}
All workflows should show
completed with success status.
Step 10: Verify npm Publication
# Check npm for new versions npm view @goreal-ai/echo-pdk version npm view @goreal-ai/echo-pdk-cli version npm view @goreal-ai/echo-pdk-language version
Step 11: Check Frontend Consumption
Verify gra-echostash-fe is using the correct version:
# Check current version in frontend cat /Users/yoadelkayam/github/Echostash/gra-echostash-fe/package.json | grep "@goreal-ai/echo-pdk"
If frontend needs update:
cd /Users/yoadelkayam/github/Echostash/gra-echostash-fe # Update to new version pnpm update @goreal-ai/echo-pdk@{NEW_VERSION} # Verify update cat package.json | grep "@goreal-ai/echo-pdk" # Run frontend build to verify compatibility pnpm build
Report whether frontend update is needed and its status.
Output Summary
After completing, report:
| Package | Old Version | New Version | npm Status | GitHub Release |
|---|---|---|---|---|
| core | x.x.x | y.y.y | ✅/❌ | URL |
| cli | x.x.x | y.y.y | ✅/❌ | URL |
| language | x.x.x | y.y.y | ✅/❌ | URL |
Frontend Status:
- Current version: x.x.x
- Needs update: Yes/No
- Updated: Yes/No
Rollback
If release fails:
# Delete local tags git tag -d core-v{VERSION} git tag -d cli-v{VERSION} # Delete remote tags git push --delete origin core-v{VERSION} git push --delete origin cli-v{VERSION} # Reset commit git reset --hard HEAD~1 git push --force-with-lease # Delete GitHub releases gh release delete core-v{VERSION} --yes gh release delete cli-v{VERSION} --yes