.claude/skills/release/SKILL.md
Run a Cyrus release by publishing all packages to npm in the correct dependency order, updating changelogs, and creating git tags.
npx skillsauth add ceedaragents/cyrus 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.
Publish Cyrus packages to npm and create a release.
Update CHANGELOG.md and CHANGELOG.internal.md:
## [Unreleased] to a new versioned section in both files## [0.1.22] - 2025-01-06)cyrus CLICheck Linear Issues:
Commit all changes:
git add -A
git commit -m "Prepare release v0.1.XX"
git push
pnpm install # Ensures all workspace dependencies are up to date
pnpm build # Builds all packages to ensure dependencies are resolved
IMPORTANT: Publish in this exact order to avoid dependency resolution issues:
# 1. Packages with no internal dependencies
cd packages/cloudflare-tunnel-client && pnpm publish --access public --no-git-checks
cd ../..
pnpm install # Update lockfile
cd packages/claude-runner && pnpm publish --access public --no-git-checks
cd ../..
pnpm install # Update lockfile
# 2. Core package (depends on claude-runner)
cd packages/core && pnpm publish --access public --no-git-checks
cd ../..
pnpm install # Update lockfile
# 3. Simple agent runner (depends on claude-runner)
cd packages/simple-agent-runner && pnpm publish --access public --no-git-checks
cd ../..
pnpm install # Update lockfile
# 4. Packages that depend on core
cd packages/linear-event-transport && pnpm publish --access public --no-git-checks
cd ../..
pnpm install # Update lockfile
cd packages/config-updater && pnpm publish --access public --no-git-checks
cd ../..
pnpm install # Update lockfile
# 5. Gemini runner (depends on claude-runner, core, simple-agent-runner)
cd packages/gemini-runner && pnpm publish --access public --no-git-checks
cd ../..
pnpm install # Update lockfile
# 6. Edge worker (depends on all packages above)
cd packages/edge-worker && pnpm publish --access public --no-git-checks
cd ../..
pnpm install # Update lockfile
pnpm install # Final install to ensure all deps are latest
cd apps/cli && pnpm publish --access public --no-git-checks
cd ../..
git tag v0.1.XX
git push origin <branch-name>
git push origin v0.1.XX
Create a GitHub release using the changelog notes as the content:
gh release create v0.1.XX --title "v0.1.XX" --notes-file - << 'EOF'
<paste the changelog notes for this version here>
EOF
Or interactively:
gh release create v0.1.XX --title "v0.1.XX" --notes "$(cat CHANGELOG.md | sed -n '/## \[0.1.XX\]/,/## \[/p' | head -n -1)"
After a successful release, move each Linear issue mentioned in the changelog from 'MergedUnreleased' (Done) status to 'ReleasedMonitoring' (also Done) status.
IMPORTANT: Always create a PR to merge the release changes back to main:
gh pr create --title "Release v0.1.XX" --body "$(cat <<'EOF'
## Summary
- Release v0.1.XX to npm
- Update changelogs
- Create git tag
## Changes
- CHANGELOG.md updated with v0.1.XX release notes
- CHANGELOG.internal.md updated
- Package versions bumped to 0.1.XX
## Links
- [GitHub Release](https://github.com/ceedaragents/cyrus/releases/tag/v0.1.XX)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
--no-git-checks flag to publish from feature branchespnpm install after each publish to update the lockfilesimple-agent-runner package MUST be published before edge-workerworkspace:* references resolve to published versionsdocumentation
Configure Slack integration for Cyrus — create a Slack app from manifest, then guide the user to save credentials.
tools
Configure GitHub for Cyrus — gh CLI login and git config for PRs, with optional webhook setup to enable @mention responses in PR comments, automated rebases and merges, and auto-fixing based on CI failures (coming soon).
testing
Orchestrate F1 test drives to validate the Cyrus agent system end-to-end across issue-tracker, EdgeWorker, and activity rendering.
tools
Create a Linear OAuth application and configure Cyrus to use it — supports agent-browser automation or guided manual setup.