sync-acp-spec

A workflow for comparing Python data models with the official Rust implementation of the Agent Client Protocol (ACP), a standard for communication between coding agents and their clients.

In plain words
What is it for?
Use it to find upstream ACP changes, inspect protocol types and messages, update Python Pydantic models, and record the synchronized commit.
Why use it?
It helps keep the local schema aligned when the official protocol changes. The workflow uses the upstream repository as the source of truth.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/phil65/agentpool/sync-acp-spec
Any agent
npx skills add phil65/agentpool --skill sync-acp-spec
Clone the repo
git clone --depth 1 https://github.com/phil65/agentpool

Made for: Claude Code, Codex.

Per session 33 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,551 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00033 $0.01551
Opus 5 $0.00016 $0.00776
Sonnet 5 $0.00007 $0.00310
Haiku 4.5 $0.00003 $0.00155

Measured 2d ago against content hash 20409408c350, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade C, and why

sync-acp-spec scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Recursive force deletehighDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

rm -rf "$tmp"
.agents/skills/sync-acp-spec/SKILL.md · 114 lines

How it starts

The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Sync ACP Spec

Keep src/acp/schema/ aligned with the official Agent Client Protocol reference implementation.

Steps

  1. Clone the reference repo into a temporary directory:

    tmp=$(mktemp -d)
    git clone --depth 1 https://github.com/agentclientprotocol/agent-client-protocol "$tmp/acp"
    
  2. Identify new commits since last sync:

    git -C "$tmp/acp" log --oneline <SPEC_SYNCED_COMMIT>..HEAD
    

    The synced commit hash is stored as SPEC_SYNCED_COMMIT in src/acp/__init__.py.

  3. Read the upstream Rust source (the authoritative types):

    • $tmp/acp/src/agent.rs — agent-side types: capabilities, auth methods, session state, config options, slash commands, content blocks, session updates, MCP servers
    • $tmp/acp/src/client.rs — client-side types: client capabilities, requests, responses
    • $tmp/acp/src/error.rs — error codes and Error struct
    • $tmp/acp/src/content.rs — content block types
    • $tmp/acp/src/tool_call.rs — tool call types
    • $tmp/acp/src/plan.rs — plan entry types
    • $tmp/acp/src/rpc.rs — JSON-RPC message types, method strings
    • $tmp/acp/src/ext.rs — extension notifications
    • $tmp/acp/src/version.rs — protocol version constant
    • $tmp/acp/schema/schema.json and schema.unstable.json — JSON Schema (useful for cross-checking)
  4. Compare with our Python implementation (mapping table):

    Upstream Rust file Our Python module
    agent.rs (capabilities) schema/capabilities.py
    agent.rs (auth, common types) schema/common.py
    agent.rs (session updates) schema/session_updates.py
    agent.rs (session state) schema/session_state.py
    agent.rs (slash commands) schema/slash_commands.py
    agent.rs (MCP servers) schema/mcp.py
    agent.rs (responses) schema/agent_responses.py
    agent.rs (requests to client) schema/agent_requests.py
    client.rs (requests) schema/client_requests.py
    client.rs (responses) schema/client_responses.py
    client.rs (capabilities) schema/capabilities.py
    content.rs schema/content_blocks.py
    tool_call.rs schema/tool_call.py
    plan.rs schema/agent_plan.py
    rpc.rs schema/messages.py
    ext.rs schema/notifications.py
    error.rs schema/common.py (Error), exceptions.py (RequestError)
    version.rs schema/__init__.py (PROTOCOL_VERSION)

Read the full file on GitHub · 114 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 114 lines · 33 tokens per session scan C 20409408c350

Subscribe to this mod's changes

sync-acp-spec is a skill published in the GitHub repository phil65/agentpool (186 stars, last pushed 4mo ago), licensed MIT. It adds 33 tokens to every session and 1,551 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

commands-create-slash-command

Create or update Agent Zero slash commands for the built-in Commands plugin. Use when the user asks to add, edit, duplicate, or refine a reusable /command backed by YAML config plus text/python content files.

agent0ai/agent-zero · 48 tokens

braindb

Memory recall and save. Use at every conversation start and whenever the user shares personal information, expertise, project context, preferences, or decisions worth remembering long-term.

dimknaf/braindb · 36 tokens

braindb-agent

Persistent memory across sessions via the BrainDB agent. Use at conversation start and whenever you need to recall what you know about the user or save new information to long-term memory.

dimknaf/braindb · 40 tokens

braindb-custom-profile

How to author a BrainDB custom profile — prompt add/replace fragments and an optional keyless ingestor — that shapes wiki naming/structure and feeds a custom ingestion source, with zero effect on defaults when inactive.

dimknaf/braindb · 49 tokens

geopipe-agent

Use when building AI-driven GIS data pipelines with YAML-defined steps — format conversion, spatial validation, QC reporting, PostGIS loading, WMS publishing. GeoPipe Agent: YAML-driven GIS ETL pipeline agent with quality control.

znlgis/opengis-skills · 50 tokens

macbook-optimizer

Complete MacBook optimization suite: monitoring, troubleshooting, cleanup, and performance tuning. Works on all Macs (Intel & Apple Silicon). No extra tools required.

YunjueTech/Yunjue-Agent · 36 tokens