acpx 0.0.1

Simple Rust library and tooling for building on ACP.
Documentation
# acpx

`acpx` is a simple Rust library and tooling for building on Agent Client
Protocol (ACP).

The repo starts at version `0.0.1` as the first intentional release.

## Status

- This repository is still in setup and planning mode.
- We are writing the product contract and development workflow before starting
  ACP feature implementation.
- The current Rust code should be treated as provisional scaffolding, not as the
  final public shape of the library.

## Product Direction

The working direction for `acpx` is:

- A thin client built on top of the ACP Rust SDK.
- Supporting modules such as `agent_server` and a registry client backed by the
  ACP registry.
- Better ergonomics for consumers than using the upstream pieces directly,
  while still staying close to the ACP model.
- Intended for teams building CLI, TUI, desktop, and mobile apps, plus agent
  orchestration engines and broader agentic platforms.
- Minimal dependencies, typed errors, and simple APIs that are easy to test and
  reason about.

## Reference Sources

These are the current primary references for planning:

- ACP Rust SDK: <https://github.com/agentclientprotocol/rust-sdk>
- ACP protocol: <https://github.com/agentclientprotocol/agent-client-protocol>
- ACP registry: <https://github.com/agentclientprotocol/registry>
- ACP introduction docs: <https://agentclientprotocol.com/get-started/introduction>

## Current Scope

The repo currently contains setup, release automation, and planning material.
We are not committing to a stable ACP-facing API yet.

## Not Yet For Use

Do not consume `acpx` as a published SDK yet. Until the ACP-facing spec exists
and the first intentional release is cut, this repo is a design and setup
workspace.

## Future Installation

```toml
[dependencies]
acpx = "0.0.1"
```

## Development

Use `devenv shell` for a reproducible local shell, or `direnv allow` if you use
`direnv`. The shell provides `just`, `git-cliff`, `cargo-nextest`,
`cargo-deny`, `gh`, and `jq`.

Common commands:

- `just ci` runs the full local quality gate.
- `just typos` runs source and docs spell checking.
- `just changelog` regenerates `CHANGELOG.md` from the current git history.
- `just next-version` prints the next version suggested by `git-cliff`.
- `just ref-clone <url> [name]` clones or refreshes upstream reference code in
  `.ref/`.
- `just ref-copy <source> <name>` copies local reference code into `.ref/`.
- `just release [version]` updates `Cargo.toml`, refreshes `CHANGELOG.md`, runs
  the quality gate, creates a release commit, and tags `vX.Y.Z`.

## Working Agreement

- Make it work first, then make it beautiful, then make it fast.
- Leave the codebase better than you found it.
- Prefer simple code over clever code.
- Plan and spec first for ACP behavior; implementation follows the written
  contract.
- Keep dependencies minimal and copy or internalize code only when the
  maintenance tradeoff is clearly better for the crate.
- Write meaningful, spec-driven tests that cover the behavior we actually care
  about.

## Reference Code

Use `.ref/` for cloned or copied upstream implementations while researching or
porting behavior. The folder is intentionally ignored by git and should never
be committed. Use the `just ref-clone` and `just ref-copy` helpers so this
stays consistent.

## Releases

Push the release commit and tag with `git push origin HEAD --follow-tags` after
`just release`. GitHub Actions then verifies the tag, performs a
`cargo publish --dry-run`, publishes the crate, and creates or updates the
GitHub Release using notes rendered from the same `git-cliff` configuration as
`CHANGELOG.md`.

Commit policy:

- The initial repo setup commit is `init: abracadabra`.
- Follow conventional commits for regular work.
- Release preparation commits use `chore(release): vX.Y.Z`.