with one click
release
Use this skill when asked to create a release, publish to Maven Central, create GitHub releases, or manage version tagging. It guides through the complete release workflow for this Gradle project.
Menu
Use this skill when asked to create a release, publish to Maven Central, create GitHub releases, or manage version tagging. It guides through the complete release workflow for this Gradle project.
| name | release |
| description | Use this skill when asked to create a release, publish to Maven Central, create GitHub releases, or manage version tagging. It guides through the complete release workflow for this Gradle project. |
This skill guides release and snapshot operations for Corvus across Gradle/KMP, Rust, npm, Docker images, and GitHub Releases.
Before publishing, ensure the user has:
SIGNING_IN_MEMORY_KEY: GPG private keySIGNING_IN_MEMORY_KEY_PASSWORD: GPG key passphraseMAVEN_CENTRAL_USERNAME: Maven Central usernameMAVEN_CENTRAL_PASSWORD: Maven Central passwordCARGO_REGISTRY_TOKEN: crates.io tokenNPM_TOKEN: npm token for @dallay/corvusDOCKERHUB_USERNAME: Docker Hub usernameDOCKERHUB_TOKEN: Docker Hub tokenIf any prerequisite is missing, inform the user and guide them to the GPG Setup Guide first.
For publish-release.yml (tag vX.Y.Z), expect:
clients/agent-runtime to crates.io@dallay/corvus and platform packages under clients/agent-runtime/npm/*For publish-snapshot.yml:
This project uses a two-branch model:
main: Stable releases (bug fixes, non-breaking changes)minor: Next minor version development (features)Ask the user which type of release they want to make:
mainminorFollow these steps:
Ensure all changes to be released are in the correct branch:
mainminorHelp the user verify with:
git checkout main # or minor
git pull origin main # or minor
git log --oneline -10
The user has two options for version management:
Option A - Manual (update code first, then tag):
gradle.properties:
VERSION=1.2.3
gradle/build-logic/gradle.properties:
VERSION=1.2.3
clients/web/package.jsonclients/web/apps/*/package.jsonclients/web/packages/*/package.jsonclients/agent-runtime/Cargo.toml version fieldCargo.lock — the CI build uses --locked, so the lockfile must be
committed and in sync with Cargo.toml before pushing the tag:
cd clients/agent-runtime
cargo generate-lockfile
cd -
git add clients/agent-runtime/Cargo.lock
Why this matters:
cargo build --lockedfails with exit code 101 ifCargo.lockis stale. Always regenerate and commit it as part of the version bump commit.
clients/agent-runtime/npm/corvus-cli/package.jsonclients/agent-runtime/npm/corvus/package.jsonclients/agent-runtime/npm/corvus-darwin-arm64/package.jsonclients/agent-runtime/npm/corvus-darwin-x64/package.jsonclients/agent-runtime/npm/corvus-linux-arm64/package.jsonclients/agent-runtime/npm/corvus-linux-x64/package.jsonclients/agent-runtime/npm/corvus-windows-arm64/package.jsonclients/agent-runtime/npm/corvus-windows-x64/package.jsonclients/agent-runtime/src/main.rs, update the #[command(version = "...")] attribute to match the new version. This value is shown by the CLI with corvus --version and must be kept in sync with all other version targets.Option B - Sync from Git tag (if tag exists first):
# Sync version files to the latest tag
make sync-version
# Review changes
git diff gradle.properties gradle/build-logic/gradle.properties clients/web/package.json clients/web/apps/*/package.json clients/web/packages/*/package.json clients/agent-runtime/Cargo.toml clients/agent-runtime/npm/corvus-cli/package.json clients/agent-runtime/npm/corvus/package.json clients/agent-runtime/npm/corvus-*/package.json
The make sync-version command runs ./scripts/sync-version-with-tag.sh which:
vX.Y.Z)v)# Create annotated tag matching the pattern vX.Y.Z
git tag -a v1.2.3 -m "Release version 1.2.3"
# Push the tag (triggers release workflow)
git push origin v1.2.3
Important: Tag must match ^v[0-9]+\.[0-9]+\.[0-9]+$ (e.g., v1.2.3)
The workflow will:
Snapshots are useful for testing changes before a stable release.
The publish-snapshot.yml workflow runs daily at 02:12 UTC.
main or minor)Snapshots use version with -SNAPSHOT suffix (e.g., 1.2.3-SNAPSHOT).
./gradlew check locally firstclients/agent-runtime/npm/*)cargo build --locked fails (exit 101): Cargo.lock is stale — run
cargo generate-lockfile inside clients/agent-runtime/, commit the result, and
push before creating the release tag. See Step 2 for
the full procedure.Maven Central doesn't allow overwriting releases:
v1.2.4 instead of v1.2.3)Snapshots can be cached. Force update:
./gradlew build --refresh-dependencies
Before publishing, verify:
./gradlew check)Cargo.lock regenerated and committed (cd clients/agent-runtime && cargo generate-lockfile)vX.Y.Z format# Sync version from latest Git tag
make sync-version
# Verify current version
rg '^VERSION=' gradle.properties
# Regenerate Cargo.lock after bumping Cargo.toml version (REQUIRED before tagging)
cd clients/agent-runtime && cargo generate-lockfile && cd -
git add clients/agent-runtime/Cargo.lock
# Run all checks before release
./gradlew check
# Create annotated tag
git tag -a v1.2.3 -m "Release v1.2.3"
# Push tag (triggers release)
git push origin v1.2.3
Use AgentSync correctly and consistently to inspect repository agent setup, manage installable skills, and apply agent configuration changes. Trigger: when an agent needs to use the agentsync CLI, inspect AI agent symlinks, suggest/install/update skills, or initialize/sync AgentSync-managed configuration.
Create production-grade frontend interfaces with strong visual direction while avoiding generic AI-generated UI patterns. Trigger: building or modifying web components, pages, dashboards, or application UI.
GitHub Actions CI/CD best practices for workflow design, security hardening, and pipeline optimization. Trigger: When creating, reviewing, or auditing GitHub Actions workflows (.github/workflows/*.{yml,yaml}), fixing CI/CD issues, or hardening pipeline security.
Vite build tool configuration, plugin API, SSR, and Vite 8 Rolldown migration. Use when working with Vite projects, vite.config.ts, Vite plugins, or building libraries/SSR apps with Vite.
Corvus-specific Rust runtime guidance. Trigger: When working in clients/agent-runtime on providers, channels, tools, security, memory, gateway, runtime adapters, or other trait-driven runtime boundaries.
General Rust engineering guidance grounded in Rust Book best practices. Trigger: When creating, modifying, or reviewing Rust code, especially around ownership, error handling, traits, modules, testing, async boundaries, or performance-sensitive logic.