en un clic
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.
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.
| 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