oacp-cli 0.2.0__tar.gz → 0.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/CHANGELOG.md +17 -1
  2. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/PKG-INFO +72 -83
  3. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/QUICKSTART.md +6 -1
  4. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/README.md +71 -82
  5. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/SPEC.md +95 -25
  6. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/guides/setup.md +34 -12
  7. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/pyproject.toml +1 -1
  8. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/handoff_schema.py +14 -5
  9. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/oacp_doctor.py +2 -1
  10. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/send_inbox_message.py +14 -1
  11. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/write_event.py +21 -3
  12. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_handoff_schema.py +20 -1
  13. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_oacp_doctor.py +8 -5
  14. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_send_inbox_message.py +24 -1
  15. oacp_cli-0.2.1/tests/test_write_event.py +146 -0
  16. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/.github/workflows/ci.yml +0 -0
  17. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/.github/workflows/release.yml +0 -0
  18. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/.gitignore +0 -0
  19. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/CONTRIBUTING.md +0 -0
  20. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/LICENSE +0 -0
  21. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/Makefile +0 -0
  22. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/SECURITY.md +0 -0
  23. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/guides/adoption.md +0 -0
  24. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/guides/doctor.md +0 -0
  25. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/guides/prompt_caching.md +0 -0
  26. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/guides/runtime_capability_matrix.md +0 -0
  27. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/guides/unified_skill_spec.md +0 -0
  28. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/guides/versioning.md +0 -0
  29. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/agent_profiles.md +0 -0
  30. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/agent_safety_defaults.md +0 -0
  31. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/credential_scoping.md +0 -0
  32. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/cross_runtime_sync.md +0 -0
  33. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/dispatch_states.yaml +0 -0
  34. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/inbox_outbox.md +0 -0
  35. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/mcp_integration.md +0 -0
  36. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/multi_agent_shared_workspace.md +0 -0
  37. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/org_memory.md +0 -0
  38. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/packet_states.yaml +0 -0
  39. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/review_loop.md +0 -0
  40. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/runtime_capabilities.md +0 -0
  41. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/session_init.md +0 -0
  42. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/skills_manifest.yaml +0 -0
  43. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/docs/protocol/task_negotiation.md +0 -0
  44. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/examples/quickstart/README.md +0 -0
  45. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/mcp_servers/oacp_coordinator.py +0 -0
  46. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/oacp/__init__.py +0 -0
  47. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/oacp/cli.py +0 -0
  48. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/_oacp_constants.py +0 -0
  49. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/_oacp_env.py +0 -0
  50. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/add_agent.py +0 -0
  51. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/agent_profile.py +0 -0
  52. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/check_quality_gate.py +0 -0
  53. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/codex_session_init.py +0 -0
  54. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/create_handoff_packet.py +0 -0
  55. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/init_org_memory.py +0 -0
  56. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/init_packet.sh +0 -0
  57. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/init_project_workspace.py +0 -0
  58. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/init_project_workspace.sh +0 -0
  59. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/memory_archive_common.py +0 -0
  60. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/memory_cli.py +0 -0
  61. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/normalize_findings.py +0 -0
  62. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/oacp_inbox.py +0 -0
  63. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/preflight.py +0 -0
  64. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/promote_to_archive.py +0 -0
  65. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/restore_from_archive.py +0 -0
  66. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/session_lifecycle_hooks.py +0 -0
  67. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/setup_runtime.py +0 -0
  68. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/update_workspace.sh +0 -0
  69. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/validate_agent_card.py +0 -0
  70. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/scripts/validate_message.py +0 -0
  71. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/agent_card.template.yaml +0 -0
  72. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/agent_profile.template.yaml +0 -0
  73. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/agent_status.template.yaml +0 -0
  74. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/checkpoint.template.md +0 -0
  75. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/claude/agents/role_agent.template.md +0 -0
  76. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/claude/rules/guardrail.template.md +0 -0
  77. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/findings_packet.template.yaml +0 -0
  78. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/github_actions_quality_gate.yaml +0 -0
  79. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/guardrails/coding_standards.template.md +0 -0
  80. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/guardrails/safe_commands.template.md +0 -0
  81. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/guardrails/secrets_rules.template.md +0 -0
  82. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/handoff_packet.template.yaml +0 -0
  83. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/inbox_message.template.yaml +0 -0
  84. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/manual_validation.template.md +0 -0
  85. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/merge_decision.template.md +0 -0
  86. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/org-memory/decisions.md +0 -0
  87. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/org-memory/events/.gitkeep +0 -0
  88. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/org-memory/events/20260317-170120-example-api-convention.md +0 -0
  89. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/org-memory/recent.md +0 -0
  90. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/org-memory/rules.md +0 -0
  91. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/review_packet.template.md +0 -0
  92. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/roles/role_baseline.template.md +0 -0
  93. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/roles/role_definition.template.yaml +0 -0
  94. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/runtime_capabilities.yaml +0 -0
  95. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/skills_manifest.template.yaml +0 -0
  96. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/templates/test_packet.template.md +0 -0
  97. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_add_agent.py +0 -0
  98. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_agent_profile.py +0 -0
  99. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_codex_session_init.py +0 -0
  100. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_create_handoff_packet.py +0 -0
  101. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_github_workflows.py +0 -0
  102. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_init_project_workspace.py +0 -0
  103. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_memory_archive.py +0 -0
  104. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_oacp_cli.py +0 -0
  105. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_oacp_constants.py +0 -0
  106. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_oacp_coordinator.py +0 -0
  107. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_oacp_env.py +0 -0
  108. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_oacp_inbox.py +0 -0
  109. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_preflight.py +0 -0
  110. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_review_loop.py +0 -0
  111. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_session_lifecycle_hooks.py +0 -0
  112. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_setup_runtime.py +0 -0
  113. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_update_workspace.py +0 -0
  114. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_validate_agent_card.py +0 -0
  115. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_validate_message.py +0 -0
  116. {oacp_cli-0.2.0 → oacp_cli-0.2.1}/tests/test_workspace_discovery.py +0 -0
@@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.2.1] - 2026-03-22
9
+
10
+ ### Fixed
11
+
12
+ - `oacp doctor` no longer fails when `gh` CLI is not installed — `gh` is now optional (#78)
13
+ - `oacp send` relaxed handoff body schema validation to accept freeform content (#78)
14
+ - `oacp write-event --related` now handles JSON arrays correctly (#76)
15
+
16
+ ### Changed
17
+
18
+ - README: refreshed command table with all v0.2.0 CLI commands, updated workspace layout diagram (#75, #77, #84)
19
+ - SPEC.md: synced with v0.2.0 — version header, org-memory section, kernel inventory with exposure column (#85)
20
+ - Onboarding docs: setup.md uses `pip install` as primary install, QUICKSTART.md adds `--agents`/`--repo` flags, CHANGELOG.md fixes `oacp memory archive` command name (#86)
21
+
8
22
  ## [0.2.0] - 2026-03-20
9
23
 
10
24
  ### Added
@@ -22,7 +36,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
22
36
 
23
37
  ### Added
24
38
 
25
- - Memory archive layer with `oacp archive` CLI command for active/archive split (#62, #11)
39
+ - Memory archive layer with `oacp memory archive` CLI command for active/archive split (#62, #11)
26
40
  - Declarative agent profiles with YAML schema and `oacp agent init|show|list` CLI commands (#52, #48)
27
41
  - `known_debt.md` as standard memory file for tracking technical debt (#53, #32)
28
42
 
@@ -86,6 +100,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
86
100
  - Checkout step in github-release workflow job (#19)
87
101
  - Pre-release audit fixes: SHA-pinned actions, dangling doc refs (#15, #16)
88
102
 
103
+ [0.2.1]: https://github.com/kiloloop/oacp/compare/v0.2.0...v0.2.1
104
+ [0.2.0]: https://github.com/kiloloop/oacp/compare/v0.1.9...v0.2.0
89
105
  [0.1.9]: https://github.com/kiloloop/oacp/compare/v0.1.2...v0.1.9
90
106
  [0.1.2]: https://github.com/kiloloop/oacp/compare/v0.1.1...v0.1.2
91
107
  [0.1.1]: https://github.com/kiloloop/oacp/compare/v0.1.0...v0.1.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oacp-cli
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Open Agent Coordination Protocol CLI for file-based multi-agent workflows
5
5
  Project-URL: Homepage, https://github.com/kiloloop/oacp
6
6
  Project-URL: Repository, https://github.com/kiloloop/oacp
@@ -34,44 +34,37 @@ Description-Content-Type: text/markdown
34
34
 
35
35
  > **[Try the quickstart →](examples/quickstart/)** — send your first message to an AI agent in 5 minutes.
36
36
 
37
- **Empowering solo founders to coordinate AI agents, with human-in-the-loop for control.**
37
+ **Coordinate agents without the chaos.**
38
38
 
39
- A file-based coordination protocol for multi-agent engineering workflows. OACP defines the message formats, state machines, review processes, and safety rules that enable AI agents on different runtimes to collaborate asynchronously through a shared filesystem.
39
+ A file-based protocol for multi-agent engineering workflows. OACP defines the message formats, review processes, and safety rules that let AI agents on different runtimes collaborate through a shared filesystem. Not a framework or SDK — just conventions, YAML schemas, and scripts that any runtime can implement.
40
40
 
41
- **OACP is not a framework or SDK.** It is a set of conventions, YAML schemas, and shell scripts that any agent runtime can implement — Claude, Codex, Gemini, or your own.
42
-
43
- ## Try it now
44
-
45
- See if your machine is ready for multi-agent workflows — no project setup required:
41
+ ## Quick Start
46
42
 
47
43
  ```bash
48
44
  pip install oacp-cli
49
- oacp doctor
45
+ oacp init my-project --agents alice,bob
46
+ oacp send my-project --from alice --to bob --type task_request \
47
+ --subject "Implement feature X" --body "Details here..."
50
48
  ```
51
49
 
52
- ```
53
- [-] Environment
54
- [+] git — git version 2.47.0
55
- [+] python3 — Python 3.12.4
56
- [+] gh — gh version 2.62.0 (2024-11-14)
57
- [+] ruff — ruff 0.8.1
58
- [-] shellcheck — not installed (optional)
59
- Install: brew install shellcheck
60
- [+] pyyaml — available
61
-
62
- No issues found.
63
- ```
50
+ When running inside a configured agent runtime, `--from` can be omitted — OACP infers the sender from `OACP_AGENT`, `AGENT_NAME`, or the agent card. See [QUICKSTART.md](QUICKSTART.md) for a full walkthrough.
51
+
52
+ ### What you get
53
+
54
+ - **Inbox/outbox messaging** — async YAML messages with threading, broadcast, and expiry
55
+ - **Structured review loop** — severity-graded findings, quality gates, multi-round review
56
+ - **Inbox CLI** — `oacp inbox` lists pending messages across agents with table or `--json` output
57
+ - **Durable shared memory** — project facts, decisions, and known debt with active/archive split
58
+ - **Agent safety defaults** — baseline rules for git, credentials, and scope discipline
59
+ - **Runtime-agnostic** — works with any runtime that reads/writes files
64
60
 
65
- Doctor checks your CLI tools, and with `--project` it audits workspace structure, inbox health, YAML schemas, and agent status. See the [full doctor guide](docs/guides/doctor.md) for details.
61
+ ## Try It Now
66
62
 
67
- ### Features
63
+ After installing, run `oacp doctor` to verify your environment is wired up:
68
64
 
69
- - **Inbox/outbox messaging** — async YAML-based communication with threading, broadcast, and expiry
70
- - **Structured review loop** — severity-graded findings, quality gates, and multi-round review
71
- - **Durable shared memory** — project facts, decisions, open threads, and known debt with an explicit active/archive split
72
- - **Dispatch state machine** — full task lifecycle tracking from assignment to merge
73
- - **Agent safety defaults** — baseline rules for git, credentials, staging, and scope discipline
74
- - **Runtime-agnostic** — works with any agent runtime that can read/write files
65
+ ```bash
66
+ oacp doctor
67
+ ```
75
68
 
76
69
  ## Why OACP?
77
70
 
@@ -150,13 +143,33 @@ uv tool install .
150
143
 
151
144
  ## Commands
152
145
 
153
- - `oacp init` creates a project workspace under `$OACP_HOME/projects/`
154
- - `oacp memory` archives or restores project memory files
155
- - `oacp send` sends a protocol-compliant inbox message
156
- - `oacp doctor` checks environment and workspace health
157
- - `oacp validate` validates an inbox/outbox YAML message
146
+ | Command | Description |
147
+ |---------|-------------|
148
+ | `oacp init` | Create a project workspace under `$OACP_HOME/projects/` |
149
+ | `oacp add-agent` | Add an agent to an existing project workspace |
150
+ | `oacp setup` | Generate runtime-specific config files (Claude, Codex, etc.) |
151
+ | `oacp send` | Send a protocol-compliant inbox message (`--from` auto-inferred) |
152
+ | `oacp inbox` | List pending messages across agents (table or `--json`) |
153
+ | `oacp memory` | Archive or restore project memory files |
154
+ | `oacp agent` | Manage global agent profiles (`init`, `show`, `list`) |
155
+ | `oacp org-memory` | Initialize org-level memory at `$OACP_HOME/org-memory/` |
156
+ | `oacp write-event` | Write an event to `org-memory/events/` |
157
+ | `oacp doctor` | Check environment and workspace health |
158
+ | `oacp validate` | Validate an inbox/outbox YAML message |
159
+ | `oacp --version` | Print the installed version |
160
+
161
+ <details>
162
+ <summary>Key flags</summary>
163
+
164
+ **`oacp send`**: `--in-reply-to`, `--expires`, `--body-file`, `--channel`, `--dry-run`, `--json`, `--quiet`
158
165
 
159
- If `OACP_HOME` is unset, workspace commands default to `~/oacp` (underscore).
166
+ **`oacp doctor`**: `--fix` (auto-fix safe issues), `--json`, `-o/--output`
167
+
168
+ **`oacp memory`**: `oacp memory archive <project> <file>`, `oacp memory restore <project> <file>`
169
+
170
+ </details>
171
+
172
+ If `OACP_HOME` is unset, workspace commands default to `~/oacp`.
160
173
 
161
174
  ## Key Concepts
162
175
 
@@ -174,61 +187,24 @@ If `OACP_HOME` is unset, workspace commands default to `~/oacp` (underscore).
174
187
  ```
175
188
  oacp/
176
189
  ├── docs/
177
- │ ├── protocol/ # Canonical protocol specifications (13 specs)
190
+ │ ├── protocol/ # Canonical protocol specifications
178
191
  │ └── guides/ # Setup, adoption, versioning
179
- ├── scripts/ # 18 kernel scripts (Python + shell)
180
- ├── templates/ # Packet, role, and guardrail templates (19)
192
+ ├── scripts/ # Kernel scripts (Python + shell)
193
+ ├── templates/ # Packet, role, and guardrail templates
181
194
  ├── tests/ # Test suite
182
195
  ├── Makefile # Task runner (make help for all targets)
183
196
  └── SPEC.md # Full protocol specification
184
197
  ```
185
198
 
186
- ## Quick Start
199
+ ## Related
187
200
 
188
- ```bash
189
- # 1. Clone the repo
190
- git clone https://github.com/kiloloop/oacp.git
191
- cd oacp
192
-
193
- # 2. Install the CLI
194
- uv tool install oacp-cli
195
-
196
- # 3. Initialize a project workspace
197
- export OACP_HOME="$HOME/oacp"
198
- oacp init my-project
199
-
200
- # 4. Send your first message
201
- oacp send my-project \
202
- --from alice --to bob --type task_request \
203
- --subject "Implement feature X" \
204
- --body "Details here..."
205
-
206
- # 5. Check environment health
207
- oacp doctor
208
- ```
209
-
210
- See [QUICKSTART.md](QUICKSTART.md) for a complete 5-minute walkthrough.
211
-
212
- ## Scripts
213
-
214
- OACP ships kernel scripts — the key CLI commands you'll use most:
215
-
216
- - **`oacp init`** — create a new project workspace (the first command you run)
217
- - **`oacp add-agent`** — add an agent to an existing project workspace
218
- - **`oacp memory`** — archive or restore project memory files
219
- - **`oacp setup`** — generate runtime-specific config files (Claude, Codex, Gemini)
220
- - **`oacp send`** — send protocol-compliant messages between agents
221
- - **`oacp doctor`** — environment and workspace health check
222
- - **`oacp validate`** — validate inbox/outbox YAML messages
223
-
224
- Run `make help` to see all available Makefile targets, or see [SPEC.md](SPEC.md) for the full script inventory.
201
+ - **[agent-estimate](https://github.com/kiloloop/agent-estimate)** — Estimate how long agent tasks take. Pairs with OACP dispatch for task sizing.
225
202
 
226
203
  ## Prerequisites
227
204
 
228
205
  - Python 3.9+
229
206
  - Bash 3.2+ (macOS default is fine)
230
- - `gh` CLI (for GitHub operations)
231
- - `pyyaml` (`pip install pyyaml`)
207
+ - `gh` CLI (optional, for GitHub operations)
232
208
 
233
209
  ## Protocol Specification
234
210
 
@@ -244,16 +220,15 @@ Individual protocol specs live in [`docs/protocol/`](docs/protocol/).
244
220
 
245
221
  ## Workspace Layout
246
222
 
247
- When you initialize a project, OACP creates this structure:
223
+ `oacp init` creates a project workspace with this structure:
248
224
 
249
225
  ```
250
226
  $OACP_HOME/projects/<project>/
251
227
  ├── agents/
252
228
  │ ├── <agent-a>/
253
- │ │ ├── inbox/ # Other agents write here
254
- │ │ ├── outbox/ # Sent messages (copies)
255
- │ │ ├── status.yaml # Dynamic agent state
256
- │ │ └── agent_card.yaml # Static agent identity
229
+ │ │ ├── inbox/ # Other agents write here
230
+ │ │ ├── outbox/ # Sent messages (copies)
231
+ │ │ └── dead_letter/ # Undeliverable messages
257
232
  │ └── <agent-b>/
258
233
  │ └── ...
259
234
  ├── memory/ # Shared durable memory
@@ -262,10 +237,24 @@ $OACP_HOME/projects/<project>/
262
237
  │ ├── open_threads.md
263
238
  │ ├── known_debt.md
264
239
  │ └── archive/
240
+ ├── artifacts/ # Build/research artifacts
241
+ ├── checkpoints/ # Progress checkpoints
242
+ ├── logs/ # Agent session logs
243
+ ├── merges/ # Merge decision records
265
244
  ├── packets/ # Review/findings artifacts
266
245
  └── workspace.json # Project metadata
267
246
  ```
268
247
 
248
+ Optionally, `oacp org-memory init` creates org-level shared memory:
249
+
250
+ ```
251
+ $OACP_HOME/org-memory/
252
+ ├── recent.md # Always-loaded rolling summary
253
+ ├── decisions.md # Org-wide decisions
254
+ ├── rules.md # Standing conventions
255
+ └── events/ # Timestamped event entries
256
+ ```
257
+
269
258
  ## Development
270
259
 
271
260
  ```bash
@@ -5,7 +5,6 @@ Get from zero to your first agent-to-agent message in 5 minutes.
5
5
  ## Prerequisites
6
6
 
7
7
  - Python 3.9+ and Bash 3.2+
8
- - `pip install pyyaml`
9
8
 
10
9
  ## 1. Set Up OACP Home
11
10
 
@@ -34,6 +33,12 @@ pipx install oacp-cli
34
33
 
35
34
  Every project gets its own workspace with agent inboxes, shared memory, and packet directories.
36
35
 
36
+ ```bash
37
+ oacp init my-first-project --agents claude,codex,gemini --repo /path/to/repo
38
+ ```
39
+
40
+ Or with defaults (agents: claude, codex, gemini):
41
+
37
42
  ```bash
38
43
  oacp init my-first-project
39
44
  ```
@@ -8,44 +8,37 @@
8
8
 
9
9
  > **[Try the quickstart →](examples/quickstart/)** — send your first message to an AI agent in 5 minutes.
10
10
 
11
- **Empowering solo founders to coordinate AI agents, with human-in-the-loop for control.**
11
+ **Coordinate agents without the chaos.**
12
12
 
13
- A file-based coordination protocol for multi-agent engineering workflows. OACP defines the message formats, state machines, review processes, and safety rules that enable AI agents on different runtimes to collaborate asynchronously through a shared filesystem.
13
+ A file-based protocol for multi-agent engineering workflows. OACP defines the message formats, review processes, and safety rules that let AI agents on different runtimes collaborate through a shared filesystem. Not a framework or SDK — just conventions, YAML schemas, and scripts that any runtime can implement.
14
14
 
15
- **OACP is not a framework or SDK.** It is a set of conventions, YAML schemas, and shell scripts that any agent runtime can implement — Claude, Codex, Gemini, or your own.
16
-
17
- ## Try it now
18
-
19
- See if your machine is ready for multi-agent workflows — no project setup required:
15
+ ## Quick Start
20
16
 
21
17
  ```bash
22
18
  pip install oacp-cli
23
- oacp doctor
19
+ oacp init my-project --agents alice,bob
20
+ oacp send my-project --from alice --to bob --type task_request \
21
+ --subject "Implement feature X" --body "Details here..."
24
22
  ```
25
23
 
26
- ```
27
- [-] Environment
28
- [+] git — git version 2.47.0
29
- [+] python3 — Python 3.12.4
30
- [+] gh — gh version 2.62.0 (2024-11-14)
31
- [+] ruff — ruff 0.8.1
32
- [-] shellcheck — not installed (optional)
33
- Install: brew install shellcheck
34
- [+] pyyaml — available
35
-
36
- No issues found.
37
- ```
24
+ When running inside a configured agent runtime, `--from` can be omitted — OACP infers the sender from `OACP_AGENT`, `AGENT_NAME`, or the agent card. See [QUICKSTART.md](QUICKSTART.md) for a full walkthrough.
25
+
26
+ ### What you get
27
+
28
+ - **Inbox/outbox messaging** — async YAML messages with threading, broadcast, and expiry
29
+ - **Structured review loop** — severity-graded findings, quality gates, multi-round review
30
+ - **Inbox CLI** — `oacp inbox` lists pending messages across agents with table or `--json` output
31
+ - **Durable shared memory** — project facts, decisions, and known debt with active/archive split
32
+ - **Agent safety defaults** — baseline rules for git, credentials, and scope discipline
33
+ - **Runtime-agnostic** — works with any runtime that reads/writes files
38
34
 
39
- Doctor checks your CLI tools, and with `--project` it audits workspace structure, inbox health, YAML schemas, and agent status. See the [full doctor guide](docs/guides/doctor.md) for details.
35
+ ## Try It Now
40
36
 
41
- ### Features
37
+ After installing, run `oacp doctor` to verify your environment is wired up:
42
38
 
43
- - **Inbox/outbox messaging** — async YAML-based communication with threading, broadcast, and expiry
44
- - **Structured review loop** — severity-graded findings, quality gates, and multi-round review
45
- - **Durable shared memory** — project facts, decisions, open threads, and known debt with an explicit active/archive split
46
- - **Dispatch state machine** — full task lifecycle tracking from assignment to merge
47
- - **Agent safety defaults** — baseline rules for git, credentials, staging, and scope discipline
48
- - **Runtime-agnostic** — works with any agent runtime that can read/write files
39
+ ```bash
40
+ oacp doctor
41
+ ```
49
42
 
50
43
  ## Why OACP?
51
44
 
@@ -124,13 +117,33 @@ uv tool install .
124
117
 
125
118
  ## Commands
126
119
 
127
- - `oacp init` creates a project workspace under `$OACP_HOME/projects/`
128
- - `oacp memory` archives or restores project memory files
129
- - `oacp send` sends a protocol-compliant inbox message
130
- - `oacp doctor` checks environment and workspace health
131
- - `oacp validate` validates an inbox/outbox YAML message
120
+ | Command | Description |
121
+ |---------|-------------|
122
+ | `oacp init` | Create a project workspace under `$OACP_HOME/projects/` |
123
+ | `oacp add-agent` | Add an agent to an existing project workspace |
124
+ | `oacp setup` | Generate runtime-specific config files (Claude, Codex, etc.) |
125
+ | `oacp send` | Send a protocol-compliant inbox message (`--from` auto-inferred) |
126
+ | `oacp inbox` | List pending messages across agents (table or `--json`) |
127
+ | `oacp memory` | Archive or restore project memory files |
128
+ | `oacp agent` | Manage global agent profiles (`init`, `show`, `list`) |
129
+ | `oacp org-memory` | Initialize org-level memory at `$OACP_HOME/org-memory/` |
130
+ | `oacp write-event` | Write an event to `org-memory/events/` |
131
+ | `oacp doctor` | Check environment and workspace health |
132
+ | `oacp validate` | Validate an inbox/outbox YAML message |
133
+ | `oacp --version` | Print the installed version |
134
+
135
+ <details>
136
+ <summary>Key flags</summary>
137
+
138
+ **`oacp send`**: `--in-reply-to`, `--expires`, `--body-file`, `--channel`, `--dry-run`, `--json`, `--quiet`
132
139
 
133
- If `OACP_HOME` is unset, workspace commands default to `~/oacp` (underscore).
140
+ **`oacp doctor`**: `--fix` (auto-fix safe issues), `--json`, `-o/--output`
141
+
142
+ **`oacp memory`**: `oacp memory archive <project> <file>`, `oacp memory restore <project> <file>`
143
+
144
+ </details>
145
+
146
+ If `OACP_HOME` is unset, workspace commands default to `~/oacp`.
134
147
 
135
148
  ## Key Concepts
136
149
 
@@ -148,61 +161,24 @@ If `OACP_HOME` is unset, workspace commands default to `~/oacp` (underscore).
148
161
  ```
149
162
  oacp/
150
163
  ├── docs/
151
- │ ├── protocol/ # Canonical protocol specifications (13 specs)
164
+ │ ├── protocol/ # Canonical protocol specifications
152
165
  │ └── guides/ # Setup, adoption, versioning
153
- ├── scripts/ # 18 kernel scripts (Python + shell)
154
- ├── templates/ # Packet, role, and guardrail templates (19)
166
+ ├── scripts/ # Kernel scripts (Python + shell)
167
+ ├── templates/ # Packet, role, and guardrail templates
155
168
  ├── tests/ # Test suite
156
169
  ├── Makefile # Task runner (make help for all targets)
157
170
  └── SPEC.md # Full protocol specification
158
171
  ```
159
172
 
160
- ## Quick Start
173
+ ## Related
161
174
 
162
- ```bash
163
- # 1. Clone the repo
164
- git clone https://github.com/kiloloop/oacp.git
165
- cd oacp
166
-
167
- # 2. Install the CLI
168
- uv tool install oacp-cli
169
-
170
- # 3. Initialize a project workspace
171
- export OACP_HOME="$HOME/oacp"
172
- oacp init my-project
173
-
174
- # 4. Send your first message
175
- oacp send my-project \
176
- --from alice --to bob --type task_request \
177
- --subject "Implement feature X" \
178
- --body "Details here..."
179
-
180
- # 5. Check environment health
181
- oacp doctor
182
- ```
183
-
184
- See [QUICKSTART.md](QUICKSTART.md) for a complete 5-minute walkthrough.
185
-
186
- ## Scripts
187
-
188
- OACP ships kernel scripts — the key CLI commands you'll use most:
189
-
190
- - **`oacp init`** — create a new project workspace (the first command you run)
191
- - **`oacp add-agent`** — add an agent to an existing project workspace
192
- - **`oacp memory`** — archive or restore project memory files
193
- - **`oacp setup`** — generate runtime-specific config files (Claude, Codex, Gemini)
194
- - **`oacp send`** — send protocol-compliant messages between agents
195
- - **`oacp doctor`** — environment and workspace health check
196
- - **`oacp validate`** — validate inbox/outbox YAML messages
197
-
198
- Run `make help` to see all available Makefile targets, or see [SPEC.md](SPEC.md) for the full script inventory.
175
+ - **[agent-estimate](https://github.com/kiloloop/agent-estimate)** — Estimate how long agent tasks take. Pairs with OACP dispatch for task sizing.
199
176
 
200
177
  ## Prerequisites
201
178
 
202
179
  - Python 3.9+
203
180
  - Bash 3.2+ (macOS default is fine)
204
- - `gh` CLI (for GitHub operations)
205
- - `pyyaml` (`pip install pyyaml`)
181
+ - `gh` CLI (optional, for GitHub operations)
206
182
 
207
183
  ## Protocol Specification
208
184
 
@@ -218,16 +194,15 @@ Individual protocol specs live in [`docs/protocol/`](docs/protocol/).
218
194
 
219
195
  ## Workspace Layout
220
196
 
221
- When you initialize a project, OACP creates this structure:
197
+ `oacp init` creates a project workspace with this structure:
222
198
 
223
199
  ```
224
200
  $OACP_HOME/projects/<project>/
225
201
  ├── agents/
226
202
  │ ├── <agent-a>/
227
- │ │ ├── inbox/ # Other agents write here
228
- │ │ ├── outbox/ # Sent messages (copies)
229
- │ │ ├── status.yaml # Dynamic agent state
230
- │ │ └── agent_card.yaml # Static agent identity
203
+ │ │ ├── inbox/ # Other agents write here
204
+ │ │ ├── outbox/ # Sent messages (copies)
205
+ │ │ └── dead_letter/ # Undeliverable messages
231
206
  │ └── <agent-b>/
232
207
  │ └── ...
233
208
  ├── memory/ # Shared durable memory
@@ -236,10 +211,24 @@ $OACP_HOME/projects/<project>/
236
211
  │ ├── open_threads.md
237
212
  │ ├── known_debt.md
238
213
  │ └── archive/
214
+ ├── artifacts/ # Build/research artifacts
215
+ ├── checkpoints/ # Progress checkpoints
216
+ ├── logs/ # Agent session logs
217
+ ├── merges/ # Merge decision records
239
218
  ├── packets/ # Review/findings artifacts
240
219
  └── workspace.json # Project metadata
241
220
  ```
242
221
 
222
+ Optionally, `oacp org-memory init` creates org-level shared memory:
223
+
224
+ ```
225
+ $OACP_HOME/org-memory/
226
+ ├── recent.md # Always-loaded rolling summary
227
+ ├── decisions.md # Org-wide decisions
228
+ ├── rules.md # Standing conventions
229
+ └── events/ # Timestamped event entries
230
+ ```
231
+
243
232
  ## Development
244
233
 
245
234
  ```bash