O que é um Workspace¶
Um workspace é como o N45 trata uma aplicação polyrepo — quando um único produto vive em vários repositórios (por exemplo, um frontend e uma api separados) e uma feature precisa atravessar mais de um deles ao mesmo tempo.
No modo Project você trabalha dentro de um repositório. No modo Workspace você coordena vários — cada repositório é um membro, e uma feature pode tocar quantos membros precisar, planejada e executada de uma sessão só.
Project vs Workspace¶
| Project (single-repo) | Workspace (polyrepo) | |
|---|---|---|
Onde você roda o /n45 |
dentro do repositório | na pasta do workspace |
| Alcance de uma feature | um repositório | um ou mais membros |
| O que coordena | — | o CONTRACT entre os serviços |
| Onde ficam os roadmaps | no próprio repo | em cada membro (um sub-roadmap por membro) |
Uma feature pode tocar só um membro
Você não precisa de dois repositórios pra usar o workspace. Se a feature toca só um membro, o N45 segue normalmente no workspace — você pode adicionar mais membros depois.
O modelo mental¶
- O workspace coordena; os roadmaps moram nos membros. Cada membro é um repositório git independente com o próprio planejamento (discovery, spec, roadmap, tasks).
- A costura entre os serviços é o CONTRACT. Ao planejar uma feature cross-repo, o N45 fecha um CONTRACT — os pontos de integração entre os membros (endpoints, eventos, schemas). Cada membro implementa a fatia dele honrando o CONTRACT, em paralelo.
- Cada membro tem o próprio ritmo. Os membros não andam em lockstep: cada um roda o próprio roadmap, nas próprias fases. O N45 junta tudo no final, na validação unificada, pra conferir que os serviços realmente conversam.
flowchart TD
WS[Workspace] --> Feat[Uma feature cross-repo]
Feat --> Contract[CONTRACT
a costura entre os serviços]
Contract --> A[Membro: frontend
sub-roadmap próprio]
Contract --> B[Membro: api
sub-roadmap próprio]
A --> V[Validação unificada]
B --> V
V --> Finish[Finalização coordenada]
Quando usar¶
- Use um Workspace quando um produto vive em vários repositórios e você quer planejar/executar features que atravessam eles como uma coisa só.
- Use um Project quando o trabalho vive num repositório só (mesmo que seja um monorepo — um monorepo é um repositório).
Veja também¶
- Configurar o workspace — criar e adicionar os membros
- Planejar uma feature — do
/n45-featao CONTRACT e ao fan-out