Mechanical rename produced by scripts/msd-rename.cjs: gsd/Gsd/GSD -> msd/Msd/MSD across contents and paths, upstream package/repo coordinates -> @golem15/msd-core and golem15com/msd-core. Deep links into upstream history, sibling upstream packages, the GSD-2 import feature, CHANGELOG.md and .changeset/ are kept as-is. Hand edits on top: MSD block-letter banner and logos, LICENSE copyright line, package/plugin identity, regenerated lockfile, install-tree fixtures, derived registries and benchmark baseline; migration checksum baseline re-locked (MSD keeps its own install state, so no install had applied the old sums); sort-order and regex-escaped expectations in tests adjusted.
5.5 KiB
Como isolar trabalho com workspaces
Objetivo: Criar um ambiente MSD completamente isolado — worktree git separado, raiz .planning/ independente e, opcionalmente, múltiplos repositórios — para branches de funcionalidades ou trabalho em múltiplos repositórios.
Pré-requisitos: O git está instalado e o repositório oferece suporte a worktrees. Para workspaces com múltiplos repositórios, os repositórios de destino existem em sua máquina local ou são acessíveis por caminho.
O que são workspaces
Um workspace é um ambiente autocontido que combina um ou mais worktrees git (ou clones) com seu próprio diretório raiz .planning/. Cada workspace possui:
- Seu próprio diretório
.planning/que é completamente independente do.planning/do repositório de origem — não é um subdiretório dele - Seu próprio manifesto
WORKSPACE.mdque rastreia os repositórios membros - Worktrees git (padrão) ou clones completos dos repositórios especificados, com checkout em uma branch dedicada (padrão:
workspace/<nome>)
Por padrão, os workspaces ficam em ~/msd-workspaces/<nome>/.
~/msd-workspaces/
└── feature-b/
├── WORKSPACE.md ← manifesto
├── .planning/ ← estado MSD totalmente independente
│ ├── PROJECT.md
│ ├── ROADMAP.md
│ └── ...
├── hr-ui/ ← worktree ou clone do repositório hr-ui
└── ZeymoAPI/ ← worktree ou clone do repositório ZeymoAPI
Como o .planning/ do workspace é separado dos repositórios de origem, não há sobreposição ou conflito com o estado de planejamento existente nos próprios repositórios de origem.
Criar um workspace para múltiplos repositórios
/msd-workspace --new --name feature-b --repos hr-ui,ZeymoAPI
O MSD cria worktrees de hr-ui e ZeymoAPI dentro de ~/msd-workspaces/feature-b/, faz checkout de uma branch workspace/feature-b em cada um, grava o WORKSPACE.md e cria um diretório .planning/ vazio pronto para /msd-new-project.
Para personalizar o local:
/msd-workspace --new --name feature-b --repos hr-ui,ZeymoAPI --path /projects/feature-b
Criar um workspace para o repositório atual
Quando você deseja isolamento por branch de funcionalidade em um único repositório — branch independente, .planning/ independente, sem vazamento de estado da branch principal:
/msd-workspace --new --name payments-rework --repos .
O . instrui o MSD a criar um worktree do repositório atual. O worktree recebe checkout em workspace/payments-rework.
Para forçar um clone completo em vez de um worktree:
/msd-workspace --new --name payments-rework --repos . --strategy clone
Especificar uma branch explicitamente
/msd-workspace --new --name payments-rework --repos . --branch feature/payments-v2
O flag --branch define o nome da branch para todos os repositórios do workspace. O padrão é workspace/<nome>.
Ignorar perguntas interativas
/msd-workspace --new --name payments-rework --repos . --auto
O MSD aceita todos os padrões sem solicitar confirmação.
Inicializar o MSD dentro do workspace
Após criar um workspace, acesse-o e inicialize um projeto MSD:
cd ~/msd-workspaces/feature-b
/msd-new-project
O diretório .planning/ dentro do workspace é a raiz para todos os comandos MSD subsequentes executados a partir desse diretório. Ele é completamente separado de qualquer .planning/ existente nos repositórios de origem.
Listar workspaces
/msd-workspace --list
Exibe todos os workspaces MSD ativos e seus status.
Remover um workspace
/msd-workspace --remove feature-b
O MSD remove os worktrees git e limpa o diretório do workspace. Isso não exclui as branches do remote de origem — apenas os worktrees locais e o diretório do workspace.
Quando usar workspaces em vez de workstreams
Escolha workspaces quando:
- Você está trabalhando em múltiplos repositórios que precisam ser coordenados sob um único projeto MSD (por exemplo, um repositório de API e um repositório de UI que fazem entregas juntos)
- Você precisa de um worktree git separado com sua própria branch, arquivos de lock e artefatos de build por funcionalidade — para que builds e instalações de dependências em um ambiente não afetem outro
- Você deseja uma raiz
.planning/completamente independente em vez de um subdiretório do.planning/do repositório principal - Você está seguindo um fluxo de trabalho orientado a issues em que cada issue do rastreador é mapeada para um workspace (consulte Conduzir o MSD a partir de uma issue do rastreador)
Escolha workstreams quando:
- Todo o trabalho está em um único repositório e compartilha o mesmo histórico git
- Você deseja executar
/msd-plan-phaseou/msd-discuss-phaseem diferentes áreas de interesse simultaneamente — API, UI, infra — sem vazamento de contexto entre os arquivosSTATE.md - Você não precisa de um worktree separado por área de interesse; alternar o contexto de planejamento é suficiente