Three Version Tracks
This project has three independently versioned things:| Artifact | What it is | Where the version lives | Current |
|---|---|---|---|
| Protocol version | The wire format — what goes in manifests and initialize() | "abp" field in manifests, protocolVersion in code | 0.1 |
| Spec document version | The specification document describing the protocol | **Version:** header in ABP-SPECIFICATION.md | 0.1.0 |
| MCP Bridge version | The reference client implementation (npm package) | "version" in abp-mcp-bridge/package.json | 0.1.0 |
Why three versions?
- Protocol version changes only when the wire format changes (new message types, changed field semantics, breaking schema changes). This is what apps and clients negotiate during
initialize(). - Spec version changes whenever the document changes — including editorial fixes, clarifications, new examples, or new sections that don’t change the wire format.
- Bridge version changes whenever the MCP Bridge code changes, independent of the spec.
How they relate
major.minor only (no patch). The spec version is full semver (major.minor.patch). The relationship:
- Spec patch bump (e.g.,
0.1.0→0.1.1): Editorial change. Typo fix, better examples, clarification. Protocol version unchanged. - Spec minor bump (e.g.,
0.1.0→0.2.0): Protocol change. New capability, new message type, additive change. Protocol version bumps to match (0.1→0.2). - Spec major bump (e.g.,
0.x.y→1.0.0): First stable release (or breaking change after stable). Protocol version bumps to match.
Versioning Scheme
All artifacts use Semantic Versioning 2.0.0:0.x.y= Alpha/development. Anything may change without notice.1.0.0= First stable release. Public API is committed.1.x.y(post-stable) = Standard semver: patch for fixes, minor for additions, major for breaking changes.
When to go to 1.0.0
The project moves to1.0.0 when:
- At least 2-3 independent web apps have implemented ABP successfully
- At least 1 client implementation (the bridge) is production-ready
- No fundamental protocol design changes are planned
- The community has reviewed and validated the core design
0.x.y.
Git Tags
Each release gets a prefixed git tag:| Artifact | Tag format | Example |
|---|---|---|
| Spec | spec/v<semver> | spec/v0.1.0, spec/v0.2.0 |
| Bridge | bridge/v<semver> | bridge/v0.1.0, bridge/v0.2.0 |
Commit Convention
This project uses Conventional Commits:Types
| Type | When to use |
|---|---|
feat | New feature or capability |
fix | Bug fix |
docs | Documentation-only change |
refactor | Code change that doesn’t fix a bug or add a feature |
perf | Performance improvement |
test | Adding or updating tests |
chore | Build, tooling, or maintenance |
Scopes
| Scope | What it covers |
|---|---|
spec | ABP specification changes |
bridge | MCP Bridge code changes |
docs | Documentation (not the spec itself) |
| (none) | Repo-wide changes (CI, tooling, README) |
Examples
Release Workflows
Releasing the Spec
When: After accumulating spec changes worth releasing.Releasing the Bridge
When: After accumulating bridge code changes worth releasing.
For a specific version bump:
Changelogs
Spec Changelog
Maintained manually in the## Changelog section at the bottom of ABP-SPECIFICATION.md. Each entry should:
- State the version and date
- List changes grouped by area (with section references where applicable)
- Note any protocol version changes explicitly
Bridge Changelog
Maintained automatically byrelease-it using Conventional Commits at abp-mcp-bridge/CHANGELOG.md. Entries are generated from commit messages, so write good commit messages.
Common Scenarios
I fixed a typo in the spec
I fixed a typo in the spec
- Commit:
docs(spec): fix typo in capability taxonomy - No release needed immediately. Accumulate small fixes.
- When ready: bump spec patch version (
0.1.0→0.1.1)
I added a new elicitation method to the spec
I added a new elicitation method to the spec
- Commit:
feat(spec): add elicitation/upload method - This is a protocol change. When releasing:
- Bump spec minor version (
0.1.0→0.2.0) - Bump protocol version (
--protocol 0.2)
- Bump spec minor version (
I fixed a bug in the bridge
I fixed a bug in the bridge
- Commit:
fix(bridge): handle missing manifest gracefully - When ready:
cd abp-mcp-bridge && npm run release -- --increment patch
I want to release both spec and bridge
I want to release both spec and bridge
- Release the spec first (since the bridge may implement new spec features)
- Then release the bridge
I'm making a breaking change to the protocol
I'm making a breaking change to the protocol
- Before
1.0.0: just bump the minor version. Breaking changes are expected in0.x. - After
1.0.0: bump the major version. This is a big deal — document migration guides.
Files That Contain Version Numbers
If you need to update versions manually (instead of using the tooling), these are the files:Protocol version (0.1)
- All
protocolVersion: '0.1'andprotocolVersion: "0.1"indocs/*.md - All
"abp": "0.1"in manifest examples acrossdocs/*.md ABP-SPECIFICATION.md(multiple locations)abp-mcp-bridge/src/bridge/ABPSessionManager.tsskills/abp.mdand.claude/skills/abp/SKILL.md
Spec version (0.1.0)
ABP-SPECIFICATION.mdheader (**Version:** 0.1.0)README.md(**Current Version:** 0.1.0-alpha)
Bridge version (0.1.0)
abp-mcp-bridge/package.json("version": "0.1.0")