{"id":51307644,"url":"https://github.com/block/coplan","last_synced_at":"2026-07-01T01:02:38.692Z","repository":{"id":339665977,"uuid":"1162905606","full_name":"block/coplan","owner":"block","description":"Planning With Agents","archived":false,"fork":false,"pushed_at":"2026-06-17T14:07:13.000Z","size":10071,"stargazers_count":8,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-29T19:29:13.520Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/block.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-20T20:58:18.000Z","updated_at":"2026-06-17T13:26:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/block/coplan","commit_stats":null,"previous_names":["block/planning-department","block/coplan"],"tags_count":7,"template":false,"template_full_name":"block/oss-project-template","purl":"pkg:github/block/coplan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Fcoplan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Fcoplan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Fcoplan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Fcoplan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/block","download_url":"https://codeload.github.com/block/coplan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/block%2Fcoplan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34988714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-30T02:00:05.919Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-01T01:02:37.948Z","updated_at":"2026-07-01T01:02:38.670Z","avatar_url":"https://github.com/block.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CoPlan\n\nEngineering design doc review, purpose-built for AI-assisted planning. Built with Rails 8, Hotwire, and a semantic operations API.\n\n## Why CoPlan?\n\nPlans get better when more eyes see them. An engineer drafts a plan — often with AI help — and CoPlan gives it a home where teammates can review it, leave inline feedback, and iterate. Domain experts catch things the author missed. AI agents respond to feedback and apply edits automatically. The result is higher-quality plans before a single line of code is written.\n\n**The editing model is intentionally asymmetric:** humans comment, AI agents edit. When a reviewer leaves feedback and the author accepts it, an agent applies the change — creating a new immutable version with full provenance (who changed what, why, and which comment triggered it). This keeps the version history clean and auditable.\n\n## How It Works\n\n- **Plans are Markdown documents** that move through a lifecycle: `brainstorm → considering → developing → live` (or `→ abandoned`). Brainstorm plans are private; once a plan moves to *considering*, it's published to the whole org.\n- **Inline commenting** — select any text in the rendered plan to leave a comment, Google Docs-style. Comments are threaded and anchor to the selected text.\n- **AI agents edit via semantic operations** — `replace_exact`, `insert_under_heading`, `delete_paragraph_containing` — not brittle line numbers. Agents acquire an edit lease (one at a time), submit operations against a base revision, and the server creates a new version.\n- **Cloud Personas** — server-side AI reviewers (security, scalability, routing) that automatically review plans when they reach certain statuses, or on demand.\n- **Realtime** — comments, edits, and status changes broadcast instantly to all viewers via Turbo Streams.\n- **Full provenance** — every version records the actor (human, local agent, or cloud persona), the AI model used, the prompt, and which comments triggered the change.\n\n## Tech Stack\n\n- **Ruby on Rails 8+** — importmaps, Hotwire, Stimulus\n- **MySQL 8+** — UUID primary keys\n- **SolidQueue** — background jobs\n- **SolidCable** — ActionCable adapter\n\n## Installation\n\nAdd to your Gemfile:\n\n```ruby\ngem \"coplan-engine\", require: \"coplan\"\n```\n\nSee the [Host App Integration Guide](./docs/HOST_APP_GUIDE.md) for full setup instructions.\n\n## Development Setup\n\n```bash\nbin/setup\nbin/rails db:seed\nbin/dev\n```\n\nSign in with any `@example.com` email (stub OIDC).\n\n## Tests\n\n```bash\nbin/rails test\n```\n\n## API\n\nAgents authenticate with `Authorization: Bearer \u003ctoken\u003e`. Key endpoints:\n\n- `GET /api/v1/plans/:id` — read a plan\n- `POST /api/v1/plans/:id/lease` — acquire edit lease\n- `POST /api/v1/plans/:id/operations` — apply semantic edits\n- `POST /api/v1/plans/:id/comments` — comment on a plan\n\nSee [docs/PLAN.md](./docs/PLAN.md) for full architecture.\n\n## Project Resources\n\n| Resource | Description |\n|----------|-------------|\n| [CODEOWNERS](./CODEOWNERS) | Project lead(s) |\n| [GOVERNANCE.md](./GOVERNANCE.md) | Project governance |\n| [LICENSE](./LICENSE) | Apache License, Version 2.0 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblock%2Fcoplan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblock%2Fcoplan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblock%2Fcoplan/lists"}