Proposal: Add workspace control plane proposal#956
Proposal: Add workspace control plane proposal#956rajashree-n wants to merge 3 commits intoFission-AI:mainfrom
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughAdds design, proposal, specs, and task documentation for a new first-class multi-repo "workspace" control-plane in OpenSpec, plus a small Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant CLI as "openspec CLI"
participant Manifest as "openspec-workspace.yaml"
participant RepoFS as "Sibling Repos / Filesystem"
participant Generator as "Router Generator"
User->>CLI: run `openspec workspace init` (root)
CLI->>RepoFS: discover candidate repos + instruction files
RepoFS-->>CLI: list of candidates
CLI->>User: present discovered entries for review
User-->>CLI: confirm selections
CLI->>Manifest: write `openspec-workspace.yaml` (normalized paths)
CLI->>RepoFS: scaffold control-plane repo files if missing
User->>CLI: run `openspec workspace sync`
CLI->>Manifest: read manifest
CLI->>Generator: generate routers (.agents.md) per manifest config
Generator->>RepoFS: write generated router files (unless repo-local preserved)
CLI->>User: report summary & drift info
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
openspec/changes/add-workspace-control-plane/tasks.md (1)
17-17: Clarify scope of instruction file detection.The phrasing "such as
AGENTS.md" suggests support for multiple instruction file formats, but the design and specs consistently reference onlyAGENTS.md. If other formats are intended, they should be documented in the design/specs; otherwise, consider simplifying to "Detect candidateAGENTS.mdinstruction files".🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@openspec/changes/add-workspace-control-plane/tasks.md` at line 17, Update the checklist entry text in tasks.md to clarify scope: replace the ambiguous item "Detect candidate instruction files such as `AGENTS.md`" with a specific form—either "Detect candidate `AGENTS.md` instruction files" if only AGENTS.md is supported, or enumerate the supported filenames/formats (e.g., `AGENTS.md`, `INSTRUCTIONS.md`) if multiple are intended; adjust the string in the checklist line so the wording in the document matches the actual supported formats referenced by the design/specs.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@openspec/changes/add-workspace-control-plane/tasks.md`:
- Line 17: Update the checklist entry text in tasks.md to clarify scope: replace
the ambiguous item "Detect candidate instruction files such as `AGENTS.md`" with
a specific form—either "Detect candidate `AGENTS.md` instruction files" if only
AGENTS.md is supported, or enumerate the supported filenames/formats (e.g.,
`AGENTS.md`, `INSTRUCTIONS.md`) if multiple are intended; adjust the string in
the checklist line so the wording in the document matches the actual supported
formats referenced by the design/specs.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 85ab990f-78d5-4082-a663-75310442c6af
📒 Files selected for processing (6)
openspec/changes/add-workspace-control-plane/.openspec.yamlopenspec/changes/add-workspace-control-plane/design.mdopenspec/changes/add-workspace-control-plane/proposal.mdopenspec/changes/add-workspace-control-plane/specs/cli-workspace/spec.mdopenspec/changes/add-workspace-control-plane/specs/workspace-manifest/spec.mdopenspec/changes/add-workspace-control-plane/tasks.md
alfred-openspec
left a comment
There was a problem hiding this comment.
Thanks for putting this together. It's a thoughtful draft and it points at a real gap, but I don't think we should merge this shape as written.
The main mismatch is that it makes a checked-in, path-based workspace manifest and control-plane repo the primary abstraction. Our current workspace direction has shifted toward initiative-first coordination, repo-local changes as the execution units, stable project identifiers instead of sibling-relative paths, and workspace state that is optional/lazy rather than required up front.
So I'd treat this PR as a useful exploration signal, not the proposal we merge. The pieces worth carrying forward are the generated router idea, the explicit review-before-write discovery flow, and possibly workspace sync / workspace doctor, but they should sit inside the thinner coordination-workspace model rather than a mandatory openspec-workspace.yaml control plane.
alfred-openspec
left a comment
There was a problem hiding this comment.
Did a deeper pass against the current workspace exploration docs and I still think the main issue is architectural, not editorial.
openspec/explorations/workspace-architecture.md now sets three constraints this proposal fights: initiative-first planning for cross-repo work, stable project identifiers instead of sibling-relative paths, and workspace state that is optional/lazy rather than required up front.
So I'd keep this PR as a useful exploration signal, but I would not merge a mandatory openspec-workspace.yaml + control-plane-repo model as the primary shape. The reusable pieces are the review-before-write discovery flow, generated routing as a derived output, and possibly workspace sync / workspace doctor, but they should hang off the thinner coordination-workspace model rather than define it.
Summary
This PR adds a draft OpenSpec proposal for first-class multi-repo workspace support using a dedicated control-plane pattern.
The new change introduces:
openspec-workspace.yamlmanifest as the source of truth for workspace topologyopenspec workspacecommand surface withinit,sync, anddoctor.agents.mdderived from the manifestContext
This draft is based on the multi-repo workspace pattern described in my comment on issue #725:
#725 (comment)
Why
OpenSpec is currently project-root centric. That works well for single repos, but it leaves multi-repo teams without a standard way to keep agents grounded across a shared workspace.
This proposal targets a common setup like:
The goal is to let teams manage shared specs, schemas, and repo routing from a single control plane while preserving repo-local ownership of existing
AGENTS.mdfiles.What’s Included
proposal.mddesign.mdtasks.mdcli-workspaceworkspace-manifestKey Design Choices
openspec initremains project-scopedopenspec workspacecommand group.agents.mdis treated as a generated artifact, not the primary contractAGENTS.mdfiles are referenced, not overwrittenValidation
openspec validate add-workspace-control-planepassed locallyStatus
Draft proposal only. No runtime CLI implementation is included in this PR.
Summary by CodeRabbit
openspec workspacewithinit,sync, anddoctorcommands and expected workflows.