[Feature]: support and guidance for multi-repo products (microservices architecture)

Aperta
#4,583 0 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
30/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
cli, documentation

Direzione di ricerca

Non sono indicati file o test. Inizia esaminando le linee guida esistenti del monorepo e i workflow di inizializzazione e dei comandi della CLI, quindi determina dove potrebbe inserirsi un modello multi-repository a livello di prodotto. Il lavoro sarà considerato completato quando saranno documentati o implementati il collegamento tra repository, la gestione delle dipendenze, il versioning, il coordinamento delle release e un esempio completo di microservices.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement needs-triage triage-can-wait
Problem Statement

Spec Kit currently provides guidance for monorepo scenarios, but many real-world products are built as multiple repositories (microservices), where each repository serves a different function within the same product.

For many organizations, monorepo is not viable due to constraints such as:

  • security boundaries,
  • team ownership models,
  • compliance requirements,
  • independent release cadences,
  • operational limitations.

Without a dedicated multi-repo approach, applying Spec-Driven Development consistently at the product level becomes difficult, especially for cross-service changes.

Proposed Solution

Add official support (feature and/or documentation) for a multi-repo product workflow tailored to microservices architectures.

Suggested scope:

  • Define a way to represent a product as a logical grouping of multiple repositories/services.
  • Support linking and tracking spec dependencies across repos.
  • Provide a recommended workflow for cross-repo changes, including:
  • creating/updating specs per service,
  • dependency management,
  • compatibility validation,
  • release coordination.
  • Establish conventions for versioning and traceability across repositories.
  • Include practical, end-to-end examples for non-monorepo microservices.
Alternatives Considered

Use monorepo guidance as-is
Not sufficient when monorepo cannot be adopted for organizational or technical reasons.

Keep ad-hoc team conventions per repo
Leads to inconsistent practices, weak traceability, and higher coordination overhead.

Rely only on external tooling/process docs
Helps partially, but lacks first-class, opinionated support within Spec Kit’s own workflow.

Component

Specify CLI (initialization, commands)

AI Agent (if applicable)

GitHub Copilot

Use Cases
  1. A product is composed of several microservices, each in its own repository.
  2. A product-level feature requires coordinated updates to multiple services/specs.
  3. An API contract change in one service affects dependent services in other repos.
  4. Teams need clear mapping from product intent/spec to implementation across all involved repositories.
  5. Release readiness depends on compatibility and sequencing across multiple repos.
Acceptance Criteria
  • Documentation clearly describes when and how to use a multi-repo workflow (especially when monorepo is not possible).
  • A product-level model/grouping for multiple repos/services is defined.
  • Cross-repo spec linking/dependency handling is documented (or supported as a feature).
  • A recommended end-to-end flow for cross-repo changes is provided.
  • Versioning and traceability conventions across repos are defined.
  • At least one practical microservices example (non-monorepo) is included.
Additional Context

No response

Lingua principale
Python
Stelle
138k
Fork
12.4k
Merge medio
3g 6h
PR unite (30g)
136

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di github/spec-kit

Tutte le issue di github/spec-kit

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.