Repository navigation
Description
Extension ID
multi-repo
Extension Name
Multi-Repo Workspace Orchestration
Version
0.7.1
Description
Orchestrate spec-driven implementation across a workspace: a central specs repository dispatches implementation to member repositories
Author
João Víctor
Repository URL
https://github.com/joaopaschuino/speckit-multirepo
Download URL
License
MIT license
Homepage (optional)
No response
Documentation URL (optional)
No response
Changelog URL (optional)
https://github.com/joaopaschuino/speckit-multirepo/blob/main/CHANGELOG.md
Required Spec Kit Version
=1.1.0
Required Tools (optional)
Number of Commands
5
Number of Hooks (optional)
No response
Tags
multi-repo,orchestration,workspace,spec-driven-development,microservices
Key Features
- Central/member topology — a central repository of specs dispatches implementation to member repositories; all feature state resides in the central repository, member PRs are pure implementation diffs
- Dependency-wave dispatch — execution order calculated from the depends_on graph in workspace.yml, with parallelism by wave (max_concurrency)
- Objective verification: ## Verification commands executed by exit code in the member's repo (not in the agent's report), with verify_retries and automatic feedback
- Cross-repo contract checks — verification-only members validate contracts between producers and consumers after the producers' wave
- Layered governance bundles — constitutions of workspace, type, and location assembled into a bundle by dispatch; Most restrictive rule wins
- Resume & partial workspaces — workflow resumes after failure, skip_completed skips ready members, missing: skip tolerates non-cloned members, ready: false holds participants
- Domain topology mapping — /speckit.multi-repo.domain infers domain/communicates_with by scanning repos and generates a Mermaid diagram
- Workspace doctor — multi-repo-check (dry-run) reports readiness of each member without dispatching anything
- Timeouts & safety — dispatch_timeout with watchdog that kills the agent's process tree; review gates keep a human in the loop
- Zero core changes — uses only stable Spec Kit extension surfaces (commands, hooks, custom step, workflow)
Testing Checklist
- Extension installs successfully via download URL
- All commands execute without errors
- Documentation is complete and accurate
- No security vulnerabilities identified
- Tested on at least one real project
Submission Requirements
- Valid
extension.ymlmanifest included - README.md with installation and usage instructions
- LICENSE file included
- GitHub release created with version tag
- All command files exist and are properly formatted
- Extension ID follows naming conventions (lowercase-with-hyphens)
Testing Details
Automated pytest suite in tests/ (5 files). Unit tests cover the step's dispatch logic, wave ordering, governance bundles, verification/retry, and config validation via a FakeIntegration stub. E2E tests exercise the real specify CLI (extension add, workflow step add, workflow run/resume) against a fake agent executable, covering install, dispatch, resume-after-failure, verification retries, timeout watchdog, and contract-check members. Run with uv sync --extra test && .venv/bin/python -m pytest tests/.
Example Usage
## Example Usage
**Setup** — central specs repo + member repos (e.g. `repo-s3`, `repo-lambda` as siblings):
# in each member repo
specify extension add multi-repo --from https://github.com/joaopaschuino/spec-kit-multirepo/archive/refs/tags/v0.7.1.zip
# in the central repo (extension + step + workflows)
specify extension add multi-repo --from https://github.com/joaopaschuino/spec-kit-multirepo/archive/refs/tags/v0.7.1.zip
specify workflow step add multi-repo-implement --from https://github.com/joaopaschuino/spec-kit-multirepo/releases/download/v0.7.1/step-multi-repo-implement-v0.7.1.zip
specify workflow add multi-repo --from https://raw.githubusercontent.com/joaopaschuino/spec-kit-multirepo/v0.7.1/workflow/multi-repo/workflow.yml
`.specify/workspace.yml` in the central repo:
Should run the `speckit-multi-repo-workspace` skill, that discovery the repositories
schema_version: "1.0"
workspace:
id: my-platform
members:
- id: s3
path: ../repo-s3
- id: lambda
path: ../repo-lambda
depends_on: [s3]
Feature flow (in the central repo):
/speckit.specify <description>
/speckit.plan <description>
/speckit.tasks <description>
/speckit.multi-repo.tasks # splits tasks.md into tasks/s3.md, tasks/lambda.md
specify workflow run multi-repo -i feature=specs/001-my-feature
# → wave 1 dispatches s3, wave 2 dispatches lambda
# → each member's ## Verification commands run by exit code
# → review gate shows verification/report.md
# a member failed? fix it, then:
specify workflow resume <run-id>
Dry-run / doctor (nothing dispatched):
specify workflow run multi-repo-check --json | jq '.step_results.check.output.members'Proposed Catalog Entry
{
"schema_version": "1.0",
"extensions": {
"multi-repo": {
"name": "Multi-Repo Workspace Orchestration",
"version": "0.7.1",
"download_url": "https://github.com/joaopaschuino/spec-kit-multirepo/archive/refs/tags/v0.7.1.zip",
"repository": "https://github.com/joaopaschuino/spec-kit-multirepo",
"description": "Orchestrate spec-driven implementation across a workspace: a central specs repository dispatches implementation to member repositories",
"author": "Joao Victor",
"license": "MIT",
"homepage": "https://github.com/joaopaschuino/spec-kit-multirepo",
"changelog": "https://github.com/joaopaschuino/spec-kit-multirepo/blob/main/CHANGELOG.md",
"requires": {
"speckit_version": ">=1.1.0"
},
"provides": {
"commands": 5,
"hooks": 1
},
"tags": [
"multi-repo",
"orchestration",
"workspace",
"specs",
"spec-driven-development",
"dependency-graph"
],
"created_at": "2026-11-12T00:00:00Z",
"updated_at": "2026-11-12T00:00:00Z",
"releases": {
"0.7.1": {
"download_url": "https://github.com/joaopaschuino/spec-kit-multirepo/archive/refs/tags/v0.7.1.zip",
"released_at": "2026-11-11T00:00:00Z"
}
}
}
}
}Additional Context
No response
Activity