oacp-cli 0.2.0__tar.gz → 0.2.2__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 (118) hide show
  1. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/CHANGELOG.md +28 -1
  2. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/PKG-INFO +76 -83
  3. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/QUICKSTART.md +6 -1
  4. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/README.md +75 -82
  5. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/SPEC.md +95 -25
  6. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/runtime_capability_matrix.md +31 -32
  7. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/setup.md +34 -12
  8. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/dispatch_states.yaml +1 -1
  9. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/oacp/cli.py +3 -0
  10. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/pyproject.toml +2 -1
  11. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/codex_session_init.py +2 -2
  12. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/handoff_schema.py +14 -5
  13. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/oacp_doctor.py +2 -1
  14. oacp_cli-0.2.2/scripts/oacp_watch.py +403 -0
  15. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/send_inbox_message.py +14 -1
  16. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/write_event.py +21 -3
  17. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_handoff_schema.py +20 -1
  18. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_oacp_cli.py +13 -0
  19. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_oacp_doctor.py +8 -5
  20. oacp_cli-0.2.2/tests/test_oacp_watch.py +345 -0
  21. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_send_inbox_message.py +24 -1
  22. oacp_cli-0.2.2/tests/test_write_event.py +146 -0
  23. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/.github/workflows/ci.yml +0 -0
  24. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/.github/workflows/release.yml +0 -0
  25. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/.gitignore +0 -0
  26. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/CONTRIBUTING.md +0 -0
  27. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/LICENSE +0 -0
  28. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/Makefile +0 -0
  29. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/SECURITY.md +0 -0
  30. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/adoption.md +0 -0
  31. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/doctor.md +0 -0
  32. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/prompt_caching.md +0 -0
  33. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/unified_skill_spec.md +0 -0
  34. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/versioning.md +0 -0
  35. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/agent_profiles.md +0 -0
  36. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/agent_safety_defaults.md +0 -0
  37. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/credential_scoping.md +0 -0
  38. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/cross_runtime_sync.md +0 -0
  39. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/inbox_outbox.md +0 -0
  40. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/mcp_integration.md +0 -0
  41. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/multi_agent_shared_workspace.md +0 -0
  42. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/org_memory.md +0 -0
  43. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/packet_states.yaml +0 -0
  44. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/review_loop.md +0 -0
  45. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/runtime_capabilities.md +0 -0
  46. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/session_init.md +0 -0
  47. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/skills_manifest.yaml +0 -0
  48. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/task_negotiation.md +0 -0
  49. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/examples/quickstart/README.md +0 -0
  50. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/mcp_servers/oacp_coordinator.py +0 -0
  51. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/oacp/__init__.py +0 -0
  52. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/_oacp_constants.py +0 -0
  53. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/_oacp_env.py +0 -0
  54. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/add_agent.py +0 -0
  55. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/agent_profile.py +0 -0
  56. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/check_quality_gate.py +0 -0
  57. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/create_handoff_packet.py +0 -0
  58. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/init_org_memory.py +0 -0
  59. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/init_packet.sh +0 -0
  60. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/init_project_workspace.py +0 -0
  61. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/init_project_workspace.sh +0 -0
  62. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/memory_archive_common.py +0 -0
  63. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/memory_cli.py +0 -0
  64. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/normalize_findings.py +0 -0
  65. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/oacp_inbox.py +0 -0
  66. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/preflight.py +0 -0
  67. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/promote_to_archive.py +0 -0
  68. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/restore_from_archive.py +0 -0
  69. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/session_lifecycle_hooks.py +0 -0
  70. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/setup_runtime.py +0 -0
  71. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/update_workspace.sh +0 -0
  72. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/validate_agent_card.py +0 -0
  73. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/validate_message.py +0 -0
  74. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/agent_card.template.yaml +0 -0
  75. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/agent_profile.template.yaml +0 -0
  76. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/agent_status.template.yaml +0 -0
  77. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/checkpoint.template.md +0 -0
  78. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/claude/agents/role_agent.template.md +0 -0
  79. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/claude/rules/guardrail.template.md +0 -0
  80. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/findings_packet.template.yaml +0 -0
  81. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/github_actions_quality_gate.yaml +0 -0
  82. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/guardrails/coding_standards.template.md +0 -0
  83. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/guardrails/safe_commands.template.md +0 -0
  84. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/guardrails/secrets_rules.template.md +0 -0
  85. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/handoff_packet.template.yaml +0 -0
  86. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/inbox_message.template.yaml +0 -0
  87. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/manual_validation.template.md +0 -0
  88. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/merge_decision.template.md +0 -0
  89. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/org-memory/decisions.md +0 -0
  90. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/org-memory/events/.gitkeep +0 -0
  91. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/org-memory/events/20260317-170120-example-api-convention.md +0 -0
  92. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/org-memory/recent.md +0 -0
  93. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/org-memory/rules.md +0 -0
  94. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/review_packet.template.md +0 -0
  95. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/roles/role_baseline.template.md +0 -0
  96. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/roles/role_definition.template.yaml +0 -0
  97. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/runtime_capabilities.yaml +0 -0
  98. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/skills_manifest.template.yaml +0 -0
  99. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/test_packet.template.md +0 -0
  100. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_add_agent.py +0 -0
  101. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_agent_profile.py +0 -0
  102. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_codex_session_init.py +0 -0
  103. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_create_handoff_packet.py +0 -0
  104. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_github_workflows.py +0 -0
  105. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_init_project_workspace.py +0 -0
  106. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_memory_archive.py +0 -0
  107. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_oacp_constants.py +0 -0
  108. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_oacp_coordinator.py +0 -0
  109. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_oacp_env.py +0 -0
  110. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_oacp_inbox.py +0 -0
  111. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_preflight.py +0 -0
  112. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_review_loop.py +0 -0
  113. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_session_lifecycle_hooks.py +0 -0
  114. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_setup_runtime.py +0 -0
  115. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_update_workspace.py +0 -0
  116. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_validate_agent_card.py +0 -0
  117. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_validate_message.py +0 -0
  118. {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_workspace_discovery.py +0 -0
@@ -5,6 +5,30 @@ 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.2] - 2026-04-17
9
+
10
+ ### Added
11
+
12
+ - `oacp watch` — monitor-friendly inbox/outbox watcher with structured output and partial-progress preservation on errors
13
+
14
+ ### Changed
15
+
16
+ - Docs: refreshed cross-runtime capability matrix and public-skill parity framing
17
+
18
+ ## [0.2.1] - 2026-03-22
19
+
20
+ ### Fixed
21
+
22
+ - `oacp doctor` no longer fails when `gh` CLI is not installed — `gh` is now optional (#78)
23
+ - `oacp send` relaxed handoff body schema validation to accept freeform content (#78)
24
+ - `oacp write-event --related` now handles JSON arrays correctly (#76)
25
+
26
+ ### Changed
27
+
28
+ - README: refreshed command table with all v0.2.0 CLI commands, updated workspace layout diagram (#75, #77, #84)
29
+ - SPEC.md: synced with v0.2.0 — version header, org-memory section, kernel inventory with exposure column (#85)
30
+ - 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)
31
+
8
32
  ## [0.2.0] - 2026-03-20
9
33
 
10
34
  ### Added
@@ -22,7 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
22
46
 
23
47
  ### Added
24
48
 
25
- - Memory archive layer with `oacp archive` CLI command for active/archive split (#62, #11)
49
+ - Memory archive layer with `oacp memory archive` CLI command for active/archive split (#62, #11)
26
50
  - Declarative agent profiles with YAML schema and `oacp agent init|show|list` CLI commands (#52, #48)
27
51
  - `known_debt.md` as standard memory file for tracking technical debt (#53, #32)
28
52
 
@@ -86,6 +110,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
86
110
  - Checkout step in github-release workflow job (#19)
87
111
  - Pre-release audit fixes: SHA-pinned actions, dangling doc refs (#15, #16)
88
112
 
113
+ [0.2.2]: https://github.com/kiloloop/oacp/compare/v0.2.1...v0.2.2
114
+ [0.2.1]: https://github.com/kiloloop/oacp/compare/v0.2.0...v0.2.1
115
+ [0.2.0]: https://github.com/kiloloop/oacp/compare/v0.1.9...v0.2.0
89
116
  [0.1.9]: https://github.com/kiloloop/oacp/compare/v0.1.2...v0.1.9
90
117
  [0.1.2]: https://github.com/kiloloop/oacp/compare/v0.1.1...v0.1.2
91
118
  [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.2
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,38 @@ 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
- [+] ghgh version 2.62.0 (2024-11-14)
57
- [+] ruffruff 0.8.1
58
- [-] shellchecknot installed (optional)
59
- Install: brew install shellcheck
60
- [+] pyyamlavailable
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
+ - **Watch CLI** — `oacp watch` emits inbox delta events for Claude Monitor or shell loops
58
+ - **Durable shared memory** project facts, decisions, and known debt with active/archive split
59
+ - **Agent safety defaults** — baseline rules for git, credentials, and scope discipline
60
+ - **Runtime-agnostic** — works with any runtime that reads/writes files
64
61
 
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.
62
+ ## Try It Now
66
63
 
67
- ### Features
64
+ After installing, run `oacp doctor` to verify your environment is wired up:
68
65
 
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
66
+ ```bash
67
+ oacp doctor
68
+ ```
75
69
 
76
70
  ## Why OACP?
77
71
 
@@ -150,13 +144,36 @@ uv tool install .
150
144
 
151
145
  ## Commands
152
146
 
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
147
+ | Command | Description |
148
+ |---------|-------------|
149
+ | `oacp init` | Create a project workspace under `$OACP_HOME/projects/` |
150
+ | `oacp add-agent` | Add an agent to an existing project workspace |
151
+ | `oacp setup` | Generate runtime-specific config files (Claude, Codex, etc.) |
152
+ | `oacp send` | Send a protocol-compliant inbox message (`--from` auto-inferred) |
153
+ | `oacp inbox` | List pending messages across agents (table or `--json`) |
154
+ | `oacp watch` | Emit inbox delta events for one agent across selected projects |
155
+ | `oacp memory` | Archive or restore project memory files |
156
+ | `oacp agent` | Manage global agent profiles (`init`, `show`, `list`) |
157
+ | `oacp org-memory` | Initialize org-level memory at `$OACP_HOME/org-memory/` |
158
+ | `oacp write-event` | Write an event to `org-memory/events/` |
159
+ | `oacp doctor` | Check environment and workspace health |
160
+ | `oacp validate` | Validate an inbox/outbox YAML message |
161
+ | `oacp --version` | Print the installed version |
162
+
163
+ <details>
164
+ <summary>Key flags</summary>
165
+
166
+ **`oacp send`**: `--in-reply-to`, `--expires`, `--body-file`, `--channel`, `--dry-run`, `--json`, `--quiet`
167
+
168
+ **`oacp watch`**: `--agent`, repeatable `--project`, `--all-projects`, `--json`
169
+
170
+ **`oacp doctor`**: `--fix` (auto-fix safe issues), `--json`, `-o/--output`
171
+
172
+ **`oacp memory`**: `oacp memory archive <project> <file>`, `oacp memory restore <project> <file>`
173
+
174
+ </details>
158
175
 
159
- If `OACP_HOME` is unset, workspace commands default to `~/oacp` (underscore).
176
+ If `OACP_HOME` is unset, workspace commands default to `~/oacp`.
160
177
 
161
178
  ## Key Concepts
162
179
 
@@ -174,61 +191,24 @@ If `OACP_HOME` is unset, workspace commands default to `~/oacp` (underscore).
174
191
  ```
175
192
  oacp/
176
193
  ├── docs/
177
- │ ├── protocol/ # Canonical protocol specifications (13 specs)
194
+ │ ├── protocol/ # Canonical protocol specifications
178
195
  │ └── guides/ # Setup, adoption, versioning
179
- ├── scripts/ # 18 kernel scripts (Python + shell)
180
- ├── templates/ # Packet, role, and guardrail templates (19)
196
+ ├── scripts/ # Kernel scripts (Python + shell)
197
+ ├── templates/ # Packet, role, and guardrail templates
181
198
  ├── tests/ # Test suite
182
199
  ├── Makefile # Task runner (make help for all targets)
183
200
  └── SPEC.md # Full protocol specification
184
201
  ```
185
202
 
186
- ## Quick Start
187
-
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:
203
+ ## Related
215
204
 
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.
205
+ - **[agent-estimate](https://github.com/kiloloop/agent-estimate)**Estimate how long agent tasks take. Pairs with OACP dispatch for task sizing.
225
206
 
226
207
  ## Prerequisites
227
208
 
228
209
  - Python 3.9+
229
210
  - Bash 3.2+ (macOS default is fine)
230
- - `gh` CLI (for GitHub operations)
231
- - `pyyaml` (`pip install pyyaml`)
211
+ - `gh` CLI (optional, for GitHub operations)
232
212
 
233
213
  ## Protocol Specification
234
214
 
@@ -244,16 +224,15 @@ Individual protocol specs live in [`docs/protocol/`](docs/protocol/).
244
224
 
245
225
  ## Workspace Layout
246
226
 
247
- When you initialize a project, OACP creates this structure:
227
+ `oacp init` creates a project workspace with this structure:
248
228
 
249
229
  ```
250
230
  $OACP_HOME/projects/<project>/
251
231
  ├── agents/
252
232
  │ ├── <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
233
+ │ │ ├── inbox/ # Other agents write here
234
+ │ │ ├── outbox/ # Sent messages (copies)
235
+ │ │ └── dead_letter/ # Undeliverable messages
257
236
  │ └── <agent-b>/
258
237
  │ └── ...
259
238
  ├── memory/ # Shared durable memory
@@ -262,10 +241,24 @@ $OACP_HOME/projects/<project>/
262
241
  │ ├── open_threads.md
263
242
  │ ├── known_debt.md
264
243
  │ └── archive/
244
+ ├── artifacts/ # Build/research artifacts
245
+ ├── checkpoints/ # Progress checkpoints
246
+ ├── logs/ # Agent session logs
247
+ ├── merges/ # Merge decision records
265
248
  ├── packets/ # Review/findings artifacts
266
249
  └── workspace.json # Project metadata
267
250
  ```
268
251
 
252
+ Optionally, `oacp org-memory init` creates org-level shared memory:
253
+
254
+ ```
255
+ $OACP_HOME/org-memory/
256
+ ├── recent.md # Always-loaded rolling summary
257
+ ├── decisions.md # Org-wide decisions
258
+ ├── rules.md # Standing conventions
259
+ └── events/ # Timestamped event entries
260
+ ```
261
+
269
262
  ## Development
270
263
 
271
264
  ```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,38 @@
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
- [+] ghgh version 2.62.0 (2024-11-14)
31
- [+] ruffruff 0.8.1
32
- [-] shellchecknot installed (optional)
33
- Install: brew install shellcheck
34
- [+] pyyamlavailable
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
+ - **Watch CLI** — `oacp watch` emits inbox delta events for Claude Monitor or shell loops
32
+ - **Durable shared memory** project facts, decisions, and known debt with active/archive split
33
+ - **Agent safety defaults** — baseline rules for git, credentials, and scope discipline
34
+ - **Runtime-agnostic** — works with any runtime that reads/writes files
38
35
 
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.
36
+ ## Try It Now
40
37
 
41
- ### Features
38
+ After installing, run `oacp doctor` to verify your environment is wired up:
42
39
 
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
40
+ ```bash
41
+ oacp doctor
42
+ ```
49
43
 
50
44
  ## Why OACP?
51
45
 
@@ -124,13 +118,36 @@ uv tool install .
124
118
 
125
119
  ## Commands
126
120
 
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
121
+ | Command | Description |
122
+ |---------|-------------|
123
+ | `oacp init` | Create a project workspace under `$OACP_HOME/projects/` |
124
+ | `oacp add-agent` | Add an agent to an existing project workspace |
125
+ | `oacp setup` | Generate runtime-specific config files (Claude, Codex, etc.) |
126
+ | `oacp send` | Send a protocol-compliant inbox message (`--from` auto-inferred) |
127
+ | `oacp inbox` | List pending messages across agents (table or `--json`) |
128
+ | `oacp watch` | Emit inbox delta events for one agent across selected projects |
129
+ | `oacp memory` | Archive or restore project memory files |
130
+ | `oacp agent` | Manage global agent profiles (`init`, `show`, `list`) |
131
+ | `oacp org-memory` | Initialize org-level memory at `$OACP_HOME/org-memory/` |
132
+ | `oacp write-event` | Write an event to `org-memory/events/` |
133
+ | `oacp doctor` | Check environment and workspace health |
134
+ | `oacp validate` | Validate an inbox/outbox YAML message |
135
+ | `oacp --version` | Print the installed version |
136
+
137
+ <details>
138
+ <summary>Key flags</summary>
139
+
140
+ **`oacp send`**: `--in-reply-to`, `--expires`, `--body-file`, `--channel`, `--dry-run`, `--json`, `--quiet`
141
+
142
+ **`oacp watch`**: `--agent`, repeatable `--project`, `--all-projects`, `--json`
143
+
144
+ **`oacp doctor`**: `--fix` (auto-fix safe issues), `--json`, `-o/--output`
145
+
146
+ **`oacp memory`**: `oacp memory archive <project> <file>`, `oacp memory restore <project> <file>`
147
+
148
+ </details>
132
149
 
133
- If `OACP_HOME` is unset, workspace commands default to `~/oacp` (underscore).
150
+ If `OACP_HOME` is unset, workspace commands default to `~/oacp`.
134
151
 
135
152
  ## Key Concepts
136
153
 
@@ -148,61 +165,24 @@ If `OACP_HOME` is unset, workspace commands default to `~/oacp` (underscore).
148
165
  ```
149
166
  oacp/
150
167
  ├── docs/
151
- │ ├── protocol/ # Canonical protocol specifications (13 specs)
168
+ │ ├── protocol/ # Canonical protocol specifications
152
169
  │ └── guides/ # Setup, adoption, versioning
153
- ├── scripts/ # 18 kernel scripts (Python + shell)
154
- ├── templates/ # Packet, role, and guardrail templates (19)
170
+ ├── scripts/ # Kernel scripts (Python + shell)
171
+ ├── templates/ # Packet, role, and guardrail templates
155
172
  ├── tests/ # Test suite
156
173
  ├── Makefile # Task runner (make help for all targets)
157
174
  └── SPEC.md # Full protocol specification
158
175
  ```
159
176
 
160
- ## Quick Start
161
-
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:
177
+ ## Related
189
178
 
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.
179
+ - **[agent-estimate](https://github.com/kiloloop/agent-estimate)**Estimate how long agent tasks take. Pairs with OACP dispatch for task sizing.
199
180
 
200
181
  ## Prerequisites
201
182
 
202
183
  - Python 3.9+
203
184
  - Bash 3.2+ (macOS default is fine)
204
- - `gh` CLI (for GitHub operations)
205
- - `pyyaml` (`pip install pyyaml`)
185
+ - `gh` CLI (optional, for GitHub operations)
206
186
 
207
187
  ## Protocol Specification
208
188
 
@@ -218,16 +198,15 @@ Individual protocol specs live in [`docs/protocol/`](docs/protocol/).
218
198
 
219
199
  ## Workspace Layout
220
200
 
221
- When you initialize a project, OACP creates this structure:
201
+ `oacp init` creates a project workspace with this structure:
222
202
 
223
203
  ```
224
204
  $OACP_HOME/projects/<project>/
225
205
  ├── agents/
226
206
  │ ├── <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
207
+ │ │ ├── inbox/ # Other agents write here
208
+ │ │ ├── outbox/ # Sent messages (copies)
209
+ │ │ └── dead_letter/ # Undeliverable messages
231
210
  │ └── <agent-b>/
232
211
  │ └── ...
233
212
  ├── memory/ # Shared durable memory
@@ -236,10 +215,24 @@ $OACP_HOME/projects/<project>/
236
215
  │ ├── open_threads.md
237
216
  │ ├── known_debt.md
238
217
  │ └── archive/
218
+ ├── artifacts/ # Build/research artifacts
219
+ ├── checkpoints/ # Progress checkpoints
220
+ ├── logs/ # Agent session logs
221
+ ├── merges/ # Merge decision records
239
222
  ├── packets/ # Review/findings artifacts
240
223
  └── workspace.json # Project metadata
241
224
  ```
242
225
 
226
+ Optionally, `oacp org-memory init` creates org-level shared memory:
227
+
228
+ ```
229
+ $OACP_HOME/org-memory/
230
+ ├── recent.md # Always-loaded rolling summary
231
+ ├── decisions.md # Org-wide decisions
232
+ ├── rules.md # Standing conventions
233
+ └── events/ # Timestamped event entries
234
+ ```
235
+
243
236
  ## Development
244
237
 
245
238
  ```bash