This project follows the ACP schema version published by
agentclientprotocol/agent-client-protocol.
Each Go release should align with a specific schema tag so that the generated
code, helper APIs, and library version remain in sync.
- Go 1.21 or newer.
make,curl, andgitin yourPATH.- Nix is required for
make fmtandmake check(they invokenix fmtandnix flake check). Usenix developor an equivalent environment before running these targets. - The repository must have an Actions secret named
ANTHROPIC_API_KEYso the release-notes workflow can update GitHub Release bodies after publication.
- Decide which upstream ACP schema tag to adopt (for example
v0.4.3). - Update
schema/versionand regenerate code. There are two supported ways to do this:
make release VERSION=0.4.3The helper performs the following steps:
- writes the requested number to
schema/version - runs
make versionto download the new schema files and regenerate Go code - runs
make fmt,make test, andmake check - asserts that
schema/versionandversionnow match
If any command fails, fix the issue and rerun the helper. The target does not create commits or tags; it just prepares the tree.
printf '0.4.3\n' > schema/version
make version
make fmt
GOCACHE=$(pwd)/.gocache make test
make check
cmp -s schema/version versionmake version downloads the schema files for the requested ACP tag, regenerates
all Go code, and formats the repository with gofumpt. The cmp command is a
lightweight guard that ensures both schema/version and the top-level version
file agree before you publish.
- Inspect the changes:
git statusandgit diffshould show updated schema files, generated Go code, and the version files. - Commit with a descriptive message such as
release: v0.4.3. - Push the branch to GitHub and open a pull request if review is required.
-
Tag the release commit with a Go-compatible tag:
git tag v0.4.3 git push origin v0.4.3
-
Create a GitHub release for the tag. Include a summary of notable changes and reference the upstream ACP schema version.
After the GitHub release is published, CI runs communique and replaces the
release body with generated notes. The workflow requires a v* release tag and
the ANTHROPIC_API_KEY Actions secret.
Consumers rely on the vX.Y.Z semver tag for go get, so ensure the tag is
pushed before announcing the release.
- If the new schema introduces breaking changes, update examples and docs in the same commit.
- Release-note automation updates GitHub Release bodies only; it does not
maintain a
CHANGELOG.md. - The helper uses a repository-local Go build cache (
.gocache) to avoid sandbox restrictions in CI and local development. You can delete it withrm -rf .gocacheif needed. make cleanremoves the downloaded schema files and theversionfile; rerun the release steps afterwards if you invoke it.