coprogrammer 0.1.0__tar.gz → 0.2.0a1__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 (69) hide show
  1. coprogrammer-0.2.0a1/PKG-INFO +379 -0
  2. coprogrammer-0.2.0a1/README.md +338 -0
  3. {coprogrammer-0.1.0 → coprogrammer-0.2.0a1}/pyproject.toml +4 -1
  4. {coprogrammer-0.1.0 → coprogrammer-0.2.0a1}/src/coprogrammer/__init__.py +1 -1
  5. coprogrammer-0.2.0a1/src/coprogrammer/assets/skills/coprogrammer-active-sync/SKILL.md +150 -0
  6. coprogrammer-0.2.0a1/src/coprogrammer/assets/skills/coprogrammer-integration-plan/SKILL.md +58 -0
  7. coprogrammer-0.2.0a1/src/coprogrammer/assets/skills/coprogrammer-pr-digest-review/SKILL.md +52 -0
  8. coprogrammer-0.2.0a1/src/coprogrammer/assets/skills/coprogrammer-project-covenant/SKILL.md +48 -0
  9. coprogrammer-0.2.0a1/src/coprogrammer/assets/skills/coprogrammer-project-setup/SKILL.md +50 -0
  10. coprogrammer-0.2.0a1/src/coprogrammer/assets/skills/coprogrammer-task-brief/SKILL.md +49 -0
  11. coprogrammer-0.2.0a1/src/coprogrammer/assets/templates/AGENTS.md +19 -0
  12. coprogrammer-0.2.0a1/src/coprogrammer/assets/templates/CLAUDE.md +10 -0
  13. coprogrammer-0.2.0a1/src/coprogrammer/assets/templates/COORDINATION.md +108 -0
  14. coprogrammer-0.2.0a1/src/coprogrammer/assets/templates/copilot-instructions.md +15 -0
  15. coprogrammer-0.2.0a1/src/coprogrammer/assets/templates/handoff.md +25 -0
  16. coprogrammer-0.2.0a1/src/coprogrammer/assets/templates/task-brief.md +24 -0
  17. coprogrammer-0.2.0a1/src/coprogrammer/briefing.py +117 -0
  18. coprogrammer-0.2.0a1/src/coprogrammer/channels.py +101 -0
  19. {coprogrammer-0.1.0 → coprogrammer-0.2.0a1}/src/coprogrammer/cli.py +494 -162
  20. coprogrammer-0.2.0a1/src/coprogrammer/collaboration.py +341 -0
  21. coprogrammer-0.2.0a1/src/coprogrammer/collaboration_cli.py +105 -0
  22. coprogrammer-0.2.0a1/src/coprogrammer/collaboration_mcp.py +66 -0
  23. coprogrammer-0.2.0a1/src/coprogrammer/demo.py +243 -0
  24. coprogrammer-0.2.0a1/src/coprogrammer/integrations.py +143 -0
  25. coprogrammer-0.2.0a1/src/coprogrammer/knowledge.py +77 -0
  26. coprogrammer-0.2.0a1/src/coprogrammer/knowledge_mcp.py +146 -0
  27. coprogrammer-0.2.0a1/src/coprogrammer/manager_store.py +237 -0
  28. coprogrammer-0.2.0a1/src/coprogrammer/mcp_server.py +697 -0
  29. coprogrammer-0.2.0a1/src/coprogrammer/providers.py +279 -0
  30. coprogrammer-0.2.0a1/src/coprogrammer/review.py +295 -0
  31. coprogrammer-0.2.0a1/src/coprogrammer/review_summary.py +285 -0
  32. coprogrammer-0.2.0a1/src/coprogrammer/scheduler.py +414 -0
  33. coprogrammer-0.2.0a1/src/coprogrammer/scheduler_cli.py +92 -0
  34. coprogrammer-0.2.0a1/src/coprogrammer/scheduler_mcp.py +52 -0
  35. coprogrammer-0.2.0a1/src/coprogrammer/setup.py +180 -0
  36. coprogrammer-0.2.0a1/src/coprogrammer.egg-info/PKG-INFO +379 -0
  37. coprogrammer-0.2.0a1/src/coprogrammer.egg-info/SOURCES.txt +62 -0
  38. coprogrammer-0.2.0a1/tests/test_briefing.py +157 -0
  39. coprogrammer-0.2.0a1/tests/test_channels.py +181 -0
  40. {coprogrammer-0.1.0 → coprogrammer-0.2.0a1}/tests/test_cli.py +60 -3
  41. coprogrammer-0.2.0a1/tests/test_collaboration.py +267 -0
  42. coprogrammer-0.2.0a1/tests/test_collaboration_processes.py +152 -0
  43. coprogrammer-0.2.0a1/tests/test_demo.py +111 -0
  44. coprogrammer-0.2.0a1/tests/test_integrations.py +99 -0
  45. coprogrammer-0.2.0a1/tests/test_knowledge.py +79 -0
  46. coprogrammer-0.2.0a1/tests/test_knowledge_mcp.py +199 -0
  47. coprogrammer-0.2.0a1/tests/test_manager_performance.py +155 -0
  48. coprogrammer-0.2.0a1/tests/test_manager_store.py +336 -0
  49. coprogrammer-0.2.0a1/tests/test_mcp_robustness.py +261 -0
  50. coprogrammer-0.2.0a1/tests/test_plugin_package.py +80 -0
  51. coprogrammer-0.2.0a1/tests/test_providers.py +277 -0
  52. coprogrammer-0.2.0a1/tests/test_review.py +312 -0
  53. coprogrammer-0.2.0a1/tests/test_review_summary.py +337 -0
  54. coprogrammer-0.2.0a1/tests/test_review_summary_cli.py +160 -0
  55. coprogrammer-0.2.0a1/tests/test_scheduler.py +300 -0
  56. coprogrammer-0.2.0a1/tests/test_scheduling_integration.py +218 -0
  57. coprogrammer-0.2.0a1/tests/test_setup.py +200 -0
  58. coprogrammer-0.2.0a1/tests/test_upgrade_cli.py +96 -0
  59. coprogrammer-0.1.0/PKG-INFO +0 -250
  60. coprogrammer-0.1.0/README.md +0 -209
  61. coprogrammer-0.1.0/src/coprogrammer/mcp_server.py +0 -371
  62. coprogrammer-0.1.0/src/coprogrammer.egg-info/PKG-INFO +0 -250
  63. coprogrammer-0.1.0/src/coprogrammer.egg-info/SOURCES.txt +0 -13
  64. {coprogrammer-0.1.0 → coprogrammer-0.2.0a1}/LICENSE +0 -0
  65. {coprogrammer-0.1.0 → coprogrammer-0.2.0a1}/setup.cfg +0 -0
  66. {coprogrammer-0.1.0 → coprogrammer-0.2.0a1}/src/coprogrammer/__main__.py +0 -0
  67. {coprogrammer-0.1.0 → coprogrammer-0.2.0a1}/src/coprogrammer.egg-info/dependency_links.txt +0 -0
  68. {coprogrammer-0.1.0 → coprogrammer-0.2.0a1}/src/coprogrammer.egg-info/entry_points.txt +0 -0
  69. {coprogrammer-0.1.0 → coprogrammer-0.2.0a1}/src/coprogrammer.egg-info/top_level.txt +0 -0
@@ -0,0 +1,379 @@
1
+ Metadata-Version: 2.4
2
+ Name: coprogrammer
3
+ Version: 0.2.0a1
4
+ Summary: Open protocol and toolkit for semantic integration in multi-agent software development.
5
+ Author: Qiu Guanzong
6
+ License: MIT License
7
+
8
+ Copyright (c) 2026 Qiu Guanzong
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: Homepage, https://github.com/QIU-Guanzong/CoProgrammer
29
+ Project-URL: Repository, https://github.com/QIU-Guanzong/CoProgrammer
30
+ Project-URL: Issues, https://github.com/QIU-Guanzong/CoProgrammer/issues
31
+ Keywords: ai,software-development,multi-agent,merge,code-review
32
+ Classifier: Development Status :: 2 - Pre-Alpha
33
+ Classifier: Intended Audience :: Developers
34
+ Classifier: License :: OSI Approved :: MIT License
35
+ Classifier: Programming Language :: Python :: 3
36
+ Classifier: Programming Language :: Python :: 3 :: Only
37
+ Requires-Python: >=3.10
38
+ Description-Content-Type: text/markdown
39
+ License-File: LICENSE
40
+ Dynamic: license-file
41
+
42
+ # CoProgrammer
43
+
44
+ **Shared tasks, file leases and handoffs for Codex, Claude Code and Copilot.**
45
+
46
+ CoProgrammer coordinates coding agents working in separate Git worktrees.
47
+ Claim scoped tasks atomically, spot blocked work, exchange durable handoffs,
48
+ and turn branch changes into reviewable digests through a local CLI and MCP
49
+ server. Python 3.10+, Git 2.36+, no runtime Python dependencies.
50
+
51
+ Use **Codex, Claude Code, or GitHub Copilot** for development, **GitHub** for PR
52
+ review, and optionally **Claude, GLM, or DeepSeek** for a second opinion on a
53
+ specific set of commits. Maintainers decide what reaches `main`.
54
+
55
+ [简体中文](README.zh-CN.md) · [Run the demo](#try-the-preview) ·
56
+ [Connect a client](docs/knowledge/README.md) ·
57
+ [Ecosystem comparison](docs/research/ecosystem-2026-09-30.md) ·
58
+ [Contributing](CONTRIBUTING.md) · [MIT](LICENSE)
59
+
60
+ > **0.2.0a1 source preview.** The multi-platform upgrade is available in
61
+ > [PR #1](https://github.com/QIU-Guanzong/CoProgrammer/pull/1).
62
+ > Client configuration generators and provider adapters are implemented;
63
+ > live client/provider verification is still pending. Use the source setup below.
64
+
65
+ ## New in this source update
66
+
67
+ - **One-command offline demo:** two real Git worktrees exercise claims,
68
+ dependency and path guards, message receipt and task completion. No model key.
69
+ - **One collaboration briefing:** ready work, blockers, stale windows, open
70
+ decisions and next actions, available through both CLI and MCP.
71
+ - **Less repeated state replay:** status views reuse validation within a
72
+ snapshot, while transactions and standalone history checks stay intact.
73
+ See the [reproducible benchmark](docs/upgrade-2026-09-30/performance.md).
74
+ - **A complete Chinese entrypoint** and a [six-project research update](docs/research/ecosystem-2026-09-30.md)
75
+ explaining the choices behind this increment.
76
+
77
+ ## When it helps
78
+
79
+ Suppose Codex is changing an API while Claude Code updates its callers in
80
+ another worktree. Both branches may pass their own tests while disagreeing on
81
+ the interface. A clean Git merge alone does not resolve that disagreement.
82
+
83
+ CoProgrammer gives the team a shared record:
84
+
85
+ | During the work | What reviewers can inspect |
86
+ | --- | --- |
87
+ | Define a task and its allowed paths | Intent, scope and shared contracts |
88
+ | Register each coding window | Client, task, worktree, branch and pulse freshness |
89
+ | Claim ready work and its path lease together | One owner per task and worktree, dependency and client checks |
90
+ | Check the claim before edits and commit | Current token, branch, lease and permitted paths |
91
+ | Exchange task messages and acknowledge receipt | Durable handoffs, replies and pending inboxes across restarts |
92
+ | Request an advisory lease and publish heartbeats | Current ownership, overlap and blockers |
93
+ | Generate a branch digest | Changed files, commits, protected paths and risk signals |
94
+ | Request optional model review | Suggestions tied to exact commits and captured diff evidence |
95
+ | Compare named review artifacts | Missing, stale, duplicate or partial reviews, risk notes and file-level disagreements |
96
+ | Prepare an integration plan | What to preserve, drop, rebuild or defer, plus required human decisions |
97
+
98
+ ```text
99
+ Task scope → shared work state → branch digest → integration plan
100
+ ↓
101
+ maintainer review + project CI
102
+ ```
103
+
104
+ The local CLI, MCP server and GitHub Action use the same core. Leases coordinate
105
+ cooperating agents; they do not lock files. Integration plans remain drafts:
106
+ patch application, approval and merging stay with your existing review process.
107
+
108
+ ## Try the preview
109
+
110
+ Requires **Python 3.10+** and **Git 2.36+**. Start with the offline demo; no model key
111
+ is needed.
112
+
113
+ ```sh
114
+ git clone --branch codex/multi-platform-upgrade https://github.com/QIU-Guanzong/CoProgrammer.git
115
+ cd CoProgrammer
116
+ python3 -m venv .venv
117
+ source .venv/bin/activate
118
+ python -m pip install -e .
119
+
120
+ coprogrammer demo
121
+ ```
122
+
123
+ On Windows, create the environment with `python -m venv .venv` and activate it
124
+ in PowerShell with `.venv/Scripts/Activate.ps1`. The clone command above selects
125
+ the upgrade branch explicitly. For your own project, keep this environment
126
+ active, change to that project's checkout, and use its base branch.
127
+
128
+ The demo creates and cleans up a temporary repository and two worktrees. It
129
+ exercises the actual coordination code; the Codex/Claude names are local
130
+ session labels, not connected coding clients. Use `coprogrammer demo --json`
131
+ for step-by-step evidence. See [what the demo checks](docs/DEMO.md).
132
+
133
+ Then inspect your own repository:
134
+
135
+ ```sh
136
+ coprogrammer integrations doctor
137
+ coprogrammer manager briefing
138
+ coprogrammer digest --base origin/main --head HEAD
139
+ ```
140
+
141
+ `doctor` checks local tools and credential-variable presence without contacting
142
+ providers. `briefing` summarizes current local coordination. `digest` produces
143
+ a Markdown report; add `--language zh-CN` for Chinese output. Choose your own
144
+ repository's base branch when it differs from `origin/main`.
145
+
146
+ ## Read the room before editing
147
+
148
+ ```sh
149
+ coprogrammer manager briefing --session codex-api
150
+ coprogrammer manager briefing --json --limit 20 --fail-on-attention
151
+ ```
152
+
153
+ Register the session first (below), or omit `--session` for a repository-wide
154
+ summary. The briefing explains blocked tasks and suggests the next checks.
155
+ Its MCP equivalent is `manager_briefing`. Message bodies and claim tokens are
156
+ omitted; counts remain complete when rows are truncated. A ready task still
157
+ needs a successful claim. [Briefing semantics and exit codes](docs/BRIEFING.md).
158
+
159
+ ## Where it fits
160
+
161
+ CoProgrammer connects independent coding windows to the project's existing
162
+ review process. It complements tools that manage specifications, task memory
163
+ or terminal sessions.
164
+
165
+ | Your need | Start here |
166
+ | --- | --- |
167
+ | Exercise coordination before configuring any client | `coprogrammer demo` |
168
+ | Resume work and understand blockers | `coprogrammer manager briefing` |
169
+ | Add Skills, project instructions and MCP configuration | `coprogrammer setup --client codex` (preview) |
170
+ | Reserve a scoped task across worktrees | `coprogrammer manager task claim` |
171
+ | Review what changed and what evidence is missing | `digest` and `review-summary` |
172
+
173
+ The [source-backed comparison](docs/research/ecosystem-2026-09-30.md) covers
174
+ Beads, MCP Agent Mail, Overstory, agent-deck, GitHub Spec Kit and LangGraph,
175
+ including current maintenance and license observations. It is a comparison,
176
+ not a claim that those tools are installed or interoperable out of the box.
177
+
178
+ ## Connect your tools
179
+
180
+ | Tool or service | Available in the preview |
181
+ | --- | --- |
182
+ | Codex | Native TOML configuration for the local MCP server |
183
+ | Claude Code | Project MCP configuration for the same coordination tools |
184
+ | GitHub Copilot in VS Code | Native MCP configuration |
185
+ | GitHub | Read-only PR handoff with base/head commits; branch digest Action |
186
+ | Claude API, GLM, DeepSeek | Optional structured review through explicit provider calls |
187
+
188
+ From the project you want to coordinate, generate the configuration for your
189
+ client:
190
+
191
+ ```sh
192
+ coprogrammer integrations config --client codex
193
+ # Other clients: --client claude or --client copilot
194
+
195
+ coprogrammer manager lease request --holder codex-api --pattern 'src/api/**'
196
+ coprogrammer manager heartbeat --agent codex-api --task 'Update API response'
197
+ coprogrammer manager status
198
+ ```
199
+
200
+ Configuration is printed for you to add to the client; existing settings are
201
+ not overwritten. The local MCP server exposes branch digests, status, conflict
202
+ forecasts, leases, heartbeats, contract proposals, window sessions, task dispatch,
203
+ discussions and bounded change waiting. Git worktrees share the repository's
204
+ local coordination log by default.
205
+
206
+ ## Coordinate two coding windows
207
+
208
+ To add reusable workflows and project guidance before starting the windows:
209
+
210
+ ```sh
211
+ coprogrammer knowledge list
212
+ coprogrammer setup --client codex --include-content # preview only
213
+ coprogrammer setup --client codex --apply
214
+ ```
215
+
216
+ Use `claude` or `copilot` for those clients. Setup includes six Skills,
217
+ Markdown instructions and task/handoff templates, plus native MCP configuration.
218
+ It creates missing files, preserves existing project instructions, and refuses
219
+ conflicting skills, generated documents or MCP settings. Use `--no-mcp` when
220
+ keeping existing configuration and integrating the server separately.
221
+
222
+ The MCP server also exposes twelve bundled Markdown resources and two prompt
223
+ templates for task briefs and handoffs. Resources are read-only catalog entries;
224
+ prompts prepare document context and do not execute tasks. Setup does not prove
225
+ the client connected. See the [setup and knowledge guide](docs/knowledge/README.md)
226
+ for native paths, conflict handling and connection verification.
227
+
228
+ After installing the preview, run each block in that window's existing Git
229
+ worktree. Each window gets a unique session ID, even if both use the same client.
230
+
231
+ ```sh
232
+ # Window A: Codex, API worktree
233
+ coprogrammer manager session register --session codex-api --client codex --task API-42
234
+
235
+ # Window B: Claude Code, UI worktree
236
+ coprogrammer manager session register --session claude-ui --client claude --task API-42
237
+ ```
238
+
239
+ From window A, save a handoff; from window B, read it:
240
+
241
+ ```sh
242
+ # Window A
243
+ coprogrammer manager message send --from codex-api --to claude-ui \
244
+ --task API-42 --kind handoff --key api-handoff-v1 \
245
+ --body 'API changes are ready for review. Check the caller and report the checks you ran.'
246
+
247
+ # Window B
248
+ coprogrammer manager sync --session claude-ui
249
+ coprogrammer manager message inbox --session claude-ui --task API-42
250
+ # Replace msg_... with the returned message ID.
251
+ coprogrammer manager message ack --session claude-ui --id msg_...
252
+ ```
253
+
254
+ Use `session pulse` to report progress or blockers, and `manager sync --after
255
+ evt_...` to resume from the previous `next_cursor`. Unacknowledged messages remain
256
+ in the inbox after restart. Identical sends with the same sender and `--key`
257
+ return the original message. Replies use `--reply-to msg_...`.
258
+
259
+ These operations also have MCP tools. Sessions carry optional provider/model
260
+ labels, so an OpenCode or other MCP-capable client using GLM or DeepSeek can use
261
+ the same workflow. Labels do not verify a provider connection. Freshness measures
262
+ explicit pulses, not whether a process is alive. Messages are local and pulled
263
+ by clients; they do not wake or inject text into another window. Receipt never
264
+ approves code or transfers a lease. See the [full workflow and limits](docs/collaboration/README.md)
265
+ and [comparison with Agent Mail, agent-deck, Overstory and Claude Teams](docs/collaboration/research.md).
266
+
267
+ ## Dispatch work without conflicting owners
268
+
269
+ In a registered window, create a task with its allowed paths and optional
270
+ dependencies or client labels. A worker claims a compatible ready task:
271
+
272
+ ```sh
273
+ coprogrammer manager task create --session codex-api --id api-v2 \
274
+ --title 'Update the API response' --pattern 'src/api/**' --client codex
275
+ coprogrammer manager task claim --session codex-api --id api-v2
276
+ # Save the returned claim_id and substitute it below.
277
+ coprogrammer manager task guard --session codex-api --id api-v2 \
278
+ --claim claim_... --file src/api/routes.py
279
+ coprogrammer manager task board
280
+ ```
281
+
282
+ Claiming atomically reserves the paths. Competing tasks, unfinished dependencies,
283
+ stale windows and another task in the same worktree block the claim. Use separate
284
+ worktrees for parallel development. Before committing, run the guard with
285
+ `--working-tree` to check staged, unstaged and untracked nonignored paths,
286
+ including both sides of renames. Renew long-running claims with `task renew`.
287
+
288
+ Use `task finish` with an accurate work summary to release the lease, or
289
+ `task release` to requeue. An expired claim needs explicit creator recovery;
290
+ it never silently moves to a new owner. Guards are cooperative checks and do
291
+ not intercept arbitrary writes. Completion does not certify tests or approval.
292
+
293
+ After draining `manager sync`, use `manager wait --session claude-ui --after
294
+ evt_...` for a bounded wait, and `manager message thread --session claude-ui
295
+ --task api-v2` for the task conversation. See the
296
+ [complete CLI/MCP workflow, recovery and platform limits](docs/scheduling/README.md).
297
+
298
+ ## Request and compare model reviews
299
+
300
+ To preview an optional review request locally:
301
+
302
+ ```sh
303
+ coprogrammer review --provider deepseek --model YOUR_MODEL_ID \
304
+ --base origin/main --head HEAD
305
+ ```
306
+
307
+ Replace `YOUR_MODEL_ID` with an available model from your provider. Review
308
+ commands contact the provider only when you add `--send`; this sends the
309
+ captured diff and may incur provider charges. Model advice is distinct from a
310
+ maintainer approval. See the [multi-platform guide](docs/MULTI_PLATFORM_QUICKSTART.md)
311
+ for credentials, request limits, client setup and draft plan generation.
312
+
313
+ After saving review artifacts, compare them locally against the same commits:
314
+
315
+ ```sh
316
+ coprogrammer review-summary --base origin/main --head HEAD \
317
+ --review claude=.coprogrammer/claude-review.json \
318
+ --review glm=.coprogrammer/glm-review.json \
319
+ --expect deepseek --format markdown
320
+ ```
321
+
322
+ Missing files and expected reviewers stay visible. The summary checks recorded
323
+ evidence, preserves risks and conflicting recommendations, and never calls a
324
+ provider or selects a winning review. Reviewer identity and independence are
325
+ not authenticated. The same read-only operation is available through the
326
+ `review_summary` MCP tool. See the [review summary guide](docs/review-summary/README.md).
327
+
328
+ ## Build a shared workflow
329
+
330
+ Assign roles by task, independently of which model or client performs them.
331
+ Each handoff should name the goal, scope, base/head commits, checks actually
332
+ run, unresolved questions and next owner. Keep review disagreements visible.
333
+
334
+ We draw on [gstack](https://github.com/garrytan/gstack)'s explicit planning,
335
+ review and verification stages, alongside GitHub's maintainer review model.
336
+ For CoProgrammer, that means portable artifacts and checks tied to the code
337
+ being reviewed. See the [design notes and sources](docs/github-intro/collaboration-notes.md)
338
+ and [contributor handoff checklist](CONTRIBUTING.md#handoff-and-review).
339
+
340
+ ## Documentation
341
+
342
+ | Start here | Purpose |
343
+ | --- | --- |
344
+ | [Offline demo](docs/DEMO.md) | A repeatable two-worktree example without credentials |
345
+ | [Collaboration briefing](docs/BRIEFING.md) | Ready work, blockers, bounded output and CLI/MCP semantics |
346
+ | [Chinese introduction](README.zh-CN.md) | Installation, demonstration and everyday use in Chinese |
347
+ | [Multi-platform quickstart](docs/MULTI_PLATFORM_QUICKSTART.md) | Codex, Claude, Copilot, GitHub and model-provider setup |
348
+ | [Coordination lifecycle](docs/COORDINATION_LIFECYCLE.md) | Before, during and after coding |
349
+ | [Multi-window collaboration](docs/collaboration/README.md) | Sessions, task inboxes, acknowledgements and resumable CLI/MCP sync |
350
+ | [Task scheduling and communication](docs/scheduling/README.md) | Atomic claims, dependency routing, edit guards, recovery, waits and discussions |
351
+ | [Skills, MCP and Markdown](docs/knowledge/README.md) | Project setup, packaged knowledge catalog and MCP resources/prompts |
352
+ | [Collaboration research](docs/collaboration/research.md) | Current open-source approaches and the implementation choices they informed |
353
+ | [Configuration](docs/CONFIGURATION.md) | Protected paths, language and project policy |
354
+ | [GitHub Actions](docs/GITHUB_ACTIONS.md) | PR digests and workflow setup |
355
+ | [Agent Plugins and Claude Code](docs/PLUGIN_QUICKSTART.md) | Installable package for Codex-compatible clients and Claude Code |
356
+ | [Architecture](docs/ARCHITECTURE.md) | Components and artifact boundaries |
357
+ | [Research landscape](docs/RESEARCH_LANDSCAPE.md) | Prior art and research questions |
358
+ | [Latest ecosystem research](docs/research/ecosystem-2026-09-30.md) | Six adjacent projects and the changes they informed |
359
+ | [Portable distribution research](docs/RESEARCH_UPDATE_2026-09-27.md) | Plugin packaging and content-bound evidence |
360
+ | [Evaluation plan](docs/EVAL_PLAN.md) | How we intend to measure integration quality |
361
+ | [Acknowledgments](ACKNOWLEDGMENTS.md) | Sources, design influences and attribution |
362
+
363
+ The repository contains implemented tooling and research proposals. In design
364
+ documents, sections marked "future" describe planned work. A hosted Manager,
365
+ automatic patch reconstruction and automatic merging are outside this preview.
366
+
367
+ ## Contribute
368
+
369
+ Useful contributions include reproducible coordination failures, client setup
370
+ reports, focused fixes and evidence from real PRs. Start with a small issue or
371
+ change that explains the problem, expected behavior and validation.
372
+
373
+ ```sh
374
+ python -m unittest discover -s tests
375
+ coprogrammer config validate
376
+ ```
377
+
378
+ Read [CONTRIBUTING.md](CONTRIBUTING.md) for development rules and review
379
+ artifacts. Source code is under [MIT](LICENSE).