Agent skill

Release A2a

by a2aproject in a2aproject/a2a-java

Guide maintainers through the multi-step release process — version bump, CI verification, tagging, Maven Central deployment, SNAPSHOT bump, and versioned documentation.

Apache-2.0Auto-check passedDevOps & Cloud

Install Release A2a

skills CLI
$ npx skills add a2aproject/a2a-java --skill release-a2a -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install a2aproject/a2a-java release-a2a --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/a2aproject/a2a-java.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release-a2a .claude/skills/release-a2a && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
release-a2a
GitHub stars
504
Token cost
~2.3k tokens
SKILL.md length
892 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
Apache-2.0

At a glance

Guide maintainers through the multi-step release process — version bump, CI verification, tagging, Maven Central deployment, SNAPSHOT bump, and versioned documentation.

  • Works in 6 steps: Determine Release Parameters → Pre-Release Verification → Version Bump & Release PR → …
  • Tasks that involve Deployment
  • SKILL.md covers Phase 0: Determine Release…, Phase 1: Pre-Release…, Phase 2: Version Bump &… and Phase 3: Tag & Deploy, plus 2 more sections
  • Calls git, gh and mvn; reaches central.sonatype.com

What it does

Release A2a is an agent skill from a2aproject/a2a-java. Guide maintainers through the multi-step release process — version bump, CI verification, tagging, Maven Central deployment, SNAPSHOT bump, and versioned documentation.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Requires gh CLI, mvn, and git

It sits in DevOps & Cloud, covering Deployment. It works with Agent2Agent Protocol, Java and Git. The repository describes itself as: Official Java SDK for the Agent2Agent (A2A) Protocol. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Deployment

Example prompts

  • “/release-a2a”

Requirements

  • Compatibility (from SKILL.md): Requires gh CLI, mvn, and git
  • Pre-approved tools (allowed-tools): Bash(gh:*), Bash(mvn:*), Bash(git:*), Bash(./update-version.sh:*), Read, Edit, Write, Glob, Grep

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Determine Release Parameters
  2. Pre-Release Verification
  3. Version Bump & Release PR
  4. Tag & Deploy
  5. Documentation, SNAPSHOT Bump & Post-Release PR
  6. Verify Deployment

What it can do on your machine

Read from SKILL.md and the folder at commit fc2e96e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(gh:*)
    • Bash(mvn:*)
    • Bash(git:*)
    • Bash(./update-version.sh:*)
    • Read
    • Edit
    • Write
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh
    • mvn

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • central.sonatype.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires gh CLI, mvn, and git

    From compatibility in the SKILL.md frontmatter.

Context cost

Release A2a loads about 2.3k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 892 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~45
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from a2aproject/a2a-java at commit fc2e96e, republished under its Apache-2.0 licence (© a2aproject). 892 words, ~2,265 tokens.

Download SKILL.mdSave it as .claude/skills/release-a2a/SKILL.md (or your agent's skills folder).
name
release-a2a
description
Guide maintainers through the multi-step release process — version bump, CI verification, tagging, Maven Central deployment, SNAPSHOT bump, and versioned documentation.
allowed-tools
Bash(gh:*), Bash(mvn:*), Bash(git:*), Bash(./update-version.sh:*), Read, Edit, Write, Glob, Grep
compatibility
Requires gh CLI, mvn, and git

Release Process

Guide the full release lifecycle. Proceed autonomously through mechanical steps (running scripts, polling CI, creating PRs) and pause only for genuine decisions, failures, or destructive actions.

Phase 0: Determine Release Parameters

  1. Read the current version from the root pom.xml — the -SNAPSHOT suffix indicates the current dev version.

  2. Ask the user which version to release if not already specified.

  3. Apply the Final suffix convention: if the user specifies a plain version like 1.2.0, the release version is 1.2.0.Final. Pre-release qualifiers (Alpha1, Beta1, CR1) are used as-is.

  4. Suggest a sensible next SNAPSHOT version and confirm with the user:

    • Final: 1.1.0.Final → 1.1.1.Final-SNAPSHOT
    • Pre-release: 1.1.0.Alpha1 → 1.1.0.Alpha2-SNAPSHOT
  5. Determine the documentation plan:

    • Skip for micro/patch releases (X.Y.Z where Z > 0)
    • Ask for pre-releases (Alpha/Beta/CR)
    • Yes for major/minor Final releases (X.Y.0.Final)
  6. Detect git remotes. Run git remote -v and identify:

    • Upstream remote: the remote whose URL contains a2aproject/a2a-java (this is the canonical repo — it may be called upstream, origin, or anything else).
    • Fork remote: a different remote owned by the current user (typically origin). Extract the fork owner from its URL (e.g., kabir from github.com:kabir/a2a-java.git).

    Throughout this skill, <upstream> refers to the detected upstream remote name and <fork> refers to the fork remote name. All PRs are created from the fork, and tags/main are pushed to/pulled from upstream.

Phase 1: Pre-Release Verification

  1. Verify gh CLI is installed and authenticated:

    bash
    gh auth status

    If not installed or not logged in, stop and ask the user to run gh auth login.

  2. Verify clean working tree:

    bash
    git status

    If there are uncommitted changes, stop and ask.

  3. Verify we are on main and in sync with upstream. Fetch first to ensure the remote ref is current:

    bash
    git fetch <upstream> main
    git log --oneline HEAD..<upstream>/main
    git log --oneline <upstream>/main..HEAD

    If local main is behind or ahead of <upstream>/main, stop and ask the user.

  4. Check latest CI status on main:

    bash
    gh run list --repo a2aproject/a2a-java --branch main --limit 5

    If CI is failing, alert the user and stop.

  5. Confirm the current SNAPSHOT version in pom.xml matches expectations.

Phase 2: Version Bump & Release PR

  1. Preview version changes:

    bash
    ./update-version.sh <current-SNAPSHOT> <release-version> --dry-run
  2. Apply version update:

    bash
    ./update-version.sh <current-SNAPSHOT> <release-version>
  3. Verify the build compiles (tests will run in CI):

    bash
    mvn clean install -DskipTests

    If the build fails, stop and report.

  4. Create the release PR (pushed from fork):

    bash
    git checkout -b release/<version>
    git add -A
    git commit -m "chore: release <version>"
    git push <fork> release/<version>
    gh pr create --repo a2aproject/a2a-java --head <fork-owner>:release/<version> --base main --title "chore: release <version>" --body "Release <version>"
  5. Wait for CI:

    bash
    gh pr checks <pr-number> --repo a2aproject/a2a-java --watch

    If there are flaky failures, rerun with gh run rerun <run-id> --repo a2aproject/a2a-java --failed and watch again.

  6. Ask the user for confirmation before merging. Then merge:

    bash
    gh pr merge <pr-number> --repo a2aproject/a2a-java --squash

Phase 3: Tag & Deploy

  1. Update local main:

    bash
    git checkout main
    git pull <upstream> main
  2. Create annotated tag:

    bash
    git tag -a v<version> -m "Release <version>"
  3. Ask the user for confirmation before pushing the tag — this is irreversible and triggers Maven Central deployment.

  4. Push the tag:

    bash
    git push <upstream> v<version>

    This triggers release-to-maven-central.yml and create-github-release.yml.

Phase 4: Documentation, SNAPSHOT Bump & Post-Release PR

This phase combines documentation (when applicable) and the SNAPSHOT version bump into a single PR to avoid redundant CI waits.

Step 1: Update local main
bash
git checkout main
git pull <upstream> main
Show full SKILL.md (454 more words)Show less
Step 2: Documentation (conditional)

Documentation is created before the SNAPSHOT bump so that Javadoc generation uses release version strings.

Decision rules:

  • Skip for micro/patch releases (X.Y.Z where Z > 0)
  • Ask the user for pre-releases (Alpha/Beta/CR)
  • Always do for major/minor Final releases (X.Y.0.Final)

When applicable:

  1. Copy dev docs to the new version (replace dots with underscores in directory names to work around a Roq bug where dots break GitHub Pages serving):

    bash
    cp -r docs/content/dev docs/content/<version_underscored>

    For example, 1.2.0.Final → directory name 1_2_0_Final.

  2. Create the version data file by copying dev.yml (it has the most up-to-date menu):

    bash
    cp docs/data/versions/dev.yml docs/data/versions/<version>.yml
  3. Edit docs/data/versions/<version>.yml:

    • Set label to "<version>"
    • Set path to "<version_underscored>" (underscores, matching the content directory name)
    • Set sortOrder to the next value — scan existing ymls for max sortOrder excluding dev.yml (which uses 999 as a sentinel), then increment by 1
    • Set defaultVersion to true only for Final releases
    • Set devVersion to false
  4. For Final releases: set the previous default version's defaultVersion to false.

  5. For pre-releases superseding a prior pre-release in the same X.Y.Z series: remove the old pre-release's content folder (docs/content/<old-version_underscored>), version yml (docs/data/versions/<old-version>.yml), and apidocs folder (docs/public/<old-version_underscored>/apidocs/).

  6. Generate Javadoc. The site-javadoc profile outputs to docs/public/dev/apidocs/:

    bash
    mvn javadoc:aggregate -Psite-javadoc
    cp -r docs/public/dev/apidocs docs/public/<version_underscored>/apidocs

    If the site-javadoc profile doesn't exist, note it and skip.

  7. Add Javadoc menu entry to the version yml if not already present.

  8. Add a row for the new version to the compatibility table in docs/content/index.html. The table is in the <section class="roq-section"> block with heading Compatibility. Insert a new <tr> for the released version immediately before the <tr> for dev (unreleased), using the same A2A Protocol and Java columns as the previous row. Example:

    html
    <tr>
      <td>1.3.0.Final</td>
      <td>1.0, 0.3</td>
      <td>17+</td>
    </tr>
Step 3: Bump to next SNAPSHOT
bash
./update-version.sh <release-version> <next-SNAPSHOT>
Step 4: Create and merge the post-release PR

Use the branch name and PR title/body based on what the PR contains:

  • With docs: branch chore/post-release-<version>, title "chore: <version> docs and bump to <next-SNAPSHOT>", body "Versioned documentation for <version> and bump to <next-SNAPSHOT>"
  • Without docs: branch chore/bump-to-<next-SNAPSHOT>, title "chore: bump version to <next-SNAPSHOT>", body "Bump version to <next-SNAPSHOT>"
bash
git checkout -b <branch-name>
git add -A
git commit -m "<commit-message>"
git push <fork> <branch-name>
gh pr create --repo a2aproject/a2a-java --head <fork-owner>:<branch-name> --base main --title "<title>" --body "<body>"
gh pr checks <pr-number> --repo a2aproject/a2a-java --watch

If there are flaky failures, rerun with gh run rerun <run-id> --repo a2aproject/a2a-java --failed and watch again.

Step 5: Verify Maven Central deployment

Check that the Maven Central deployment workflow completed successfully:

bash
gh run list --repo a2aproject/a2a-java --workflow=release-to-maven-central.yml --limit 5

If the release workflow failed, stop and guide troubleshooting (check logs — common causes: expired tokens, javadoc issues). May need to delete the tag and retag.

Step 6: Merge

Once CI and Maven Central deployment are both green:

bash
gh pr merge <pr-number> --repo a2aproject/a2a-java --squash

Phase 5: Verify Deployment

Print the following URLs for the maintainer to check:

  • Maven Central: https://central.sonatype.com/artifact/org.a2aproject.sdk/a2a-java-sdk-parent/<version>
  • GitHub Release: https://github.com/a2aproject/a2a-java/releases/tag/v<version>

Note that Maven Central propagation can take up to 2 hours.

© a2aproject, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/release-a2a of a2aproject/a2a-java.

Open the folder on GitHubat commit fc2e96e

Compare with similar skills

Release A2a next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Release A2a compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release A2a this skilla2aproject/a2a-java504—~2.3kAutomated safety check: PassApache-2.0
Agr Releasecomputerlovetech/agr451—~1.6kAutomated safety check: PassMIT
GitOps with ArgoCD and Fluxwshobson/agents40k11 repos~1.5kAutomated safety check: PassMIT
Demo Local Rolloutcarverauto/serviceradar921—~4.2kAutomated safety check: PassApache-2.0
Homerail Install Opsxiaotianfotos/homerail991—~2kAutomated safety check: PassMIT
Buzz Self Hostingtonbistudio/buzz-skills274—~2.2kAutomated safety check: NotesMIT

Similar skills

  • Agr Release

    computerlovetech/agr

    Release process for the agr package. An agent skill from computerlovetech/agr.

    451 GitHub stars~1.6k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check passed
  • Sets up GitOps continuous delivery for Kubernetes with ArgoCD or Flux, covering installation, repository layout, sync policies, progressive delivery and secrets.

    40k GitHub starsUsed in 11 repos~1.5k tokens
    DevOps & CloudAuto-check passed
  • Demo Local Rollout

    carverauto/serviceradar

    Build unpublished sha-... An agent skill from carverauto/serviceradar.

    921 GitHub stars~4.2k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Homerail Install Ops

    xiaotianfotos/homerail

    Install, configure, start, verify, update, and troubleshoot a local-source HomeRail deployment for AI-agent use.

    991 GitHub stars~2k tokensUpdated 12 days ago
    DevOps & CloudAuto-check passed
  • Buzz Self Hosting

    tonbistudio/buzz-skills

    A skill your agent uses when helping a user set up, debug, or operate a self-hosted Buzz relay through Docker Compose.

    274 GitHub stars~2.2k tokensUpdated 2 mo ago
    DevOps & CloudAuto-check: notes
  • Update Qm

    yc-software/qm

    Update a QM source fork by merging upstream, or upgrade a package deployment dependency, and open a PR.

    15k GitHub stars~1.8k tokensUpdated yesterday
    DevOps & CloudAuto-check passed

More from a2aproject/a2a-java

  • Update A2a Proto

    a2aproject/a2a-java

    Update the A2A Protobuf file (a2a.proto) when the A2A protocol specification changes.

    504 GitHub stars~738 tokensUpdated yesterday
    Auto-check passed
  • Fix Tck Issue

    a2aproject/a2a-java

    Analyzes and fixes A2A Transport Compatibility Kit (TCK) issues by understanding the specification, reproducing the failure, implementing the fix, and validating it works.

    504 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Release A2a

What does Release A2a do?

Guide maintainers through the multi-step release process — version bump, CI verification, tagging, Maven Central deployment, SNAPSHOT bump, and versioned documentation. Release A2a is an agent skill from a2aproject/a2a-java. Guide maintainers through the multi-step release process — version bump, CI verification, tagging, Maven Central deployment, SNAPSHOT bump, and versioned documentation.

When should I use Release A2a?

Release A2a fits situations like: tasks that involve Deployment.

How do I install Release A2a in Claude Code?

Run `npx skills add a2aproject/a2a-java --skill release-a2a -a claude-code`. Or copy the skill folder (.agents/skills/release-a2a in a2aproject/a2a-java) into .claude/skills/release-a2a in your project. Claude Code loads it when a task matches its description.

How do I install Release A2a in Codex?

Run `npx skills add a2aproject/a2a-java --skill release-a2a -a codex`. Or copy the skill folder (.agents/skills/release-a2a in a2aproject/a2a-java) into .agents/skills/release-a2a in your project. Codex loads it when a task matches its description.

Can I use Release A2a in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add a2aproject/a2a-java --skill release-a2a -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-a2a, .gemini/skills/release-a2a, .github/skills/release-a2a and .opencode/skills/release-a2a in your project.

What does Release A2a need to run?

Going by SKILL.md and its folder, Release A2a needs the command-line tools its instructions call (git, gh and mvn). Its frontmatter pre-approves these tools: Bash(gh:*), Bash(mvn:*), Bash(git:*), Bash(./update-version.sh:*), Read, Edit, Write, Glob, Grep. Compatibility (from SKILL.md): Requires gh CLI, mvn, and git.

Does Release A2a access the network?

SKILL.md names 1 domain. In commands or code: central.sonatype.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Release A2a safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Release A2a use?

Release A2a is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Release A2a use?

About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Release A2a?

Skills that share tags, products or a category with Release A2a: Agr Release (computerlovetech/agr, 451 stars), GitOps with ArgoCD and Flux (wshobson/agents, 40k stars), Demo Local Rollout (carverauto/serviceradar, 921 stars) and Homerail Install Ops (xiaotianfotos/homerail, 991 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release A2a?

a2aproject (a GitHub organization) maintains it in a2aproject/a2a-java, which has 504 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 6, 2026.

Source: a2aproject/a2a-java on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.