Skip to content

[Extension]: Add multi-repo #5393

Open
Open

Description

@joaopaschuino

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

https://github.com/joaopaschuino/speckit-multirepo/releases/download/v0.7.1/step-multi-repo-implement-v0.7.1.zip

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.yml manifest 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    triage-must-haveVerdict: high-value, important work for Spec Kit — do first

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions