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.
6.6 KiB
ワークスペースで作業を分離する方法
目標: 独立した git ワークツリー、独自の .planning/ ルート、そして必要に応じて複数リポジトリを持つ、完全に分離された MSD 環境をフィーチャーブランチやマルチリポジトリ作業のために作成する。
前提条件: git がインストールされており、リポジトリがワークツリーをサポートしていること。マルチリポジトリのワークスペースの場合、対象リポジトリがローカルマシン上に存在するか、パスでアクセス可能であること。
ワークスペースとは
ワークスペースは、1 つ以上の git ワークツリー(またはクローン)と独自の .planning/ ルートディレクトリを組み合わせた、自己完結型の環境です。各ワークスペースには以下が含まれます。
- ソースリポジトリの
.planning/とは完全に独立した独自の.planning/ディレクトリ(サブディレクトリではない) - メンバーリポジトリを追跡する独自の
WORKSPACE.mdマニフェスト - 指定されたリポジトリの git ワークツリー(デフォルト)またはフルクローン(専用ブランチ
workspace/<name>でチェックアウト)
ワークスペースはデフォルトで ~/msd-workspaces/<name>/ 以下に配置されます。
~/msd-workspaces/
└── feature-b/
├── WORKSPACE.md ← マニフェスト
├── .planning/ ← 完全に独立した MSD 状態
│ ├── PROJECT.md
│ ├── ROADMAP.md
│ └── ...
├── hr-ui/ ← hr-ui リポジトリのワークツリーまたはクローン
└── ZeymoAPI/ ← ZeymoAPI リポジトリのワークツリーまたはクローン
ワークスペースの .planning/ はソースリポジトリとは独立しているため、ソースリポジトリ内に存在する計画状態との重複や競合は発生しません。
複数リポジトリのワークスペースを作成する
/msd-workspace --new --name feature-b --repos hr-ui,ZeymoAPI
MSD は ~/msd-workspaces/feature-b/ 内に hr-ui と ZeymoAPI のワークツリーを作成し、それぞれに workspace/feature-b ブランチをチェックアウトし、WORKSPACE.md を書き込み、/msd-new-project に備えた空の .planning/ ディレクトリを作成します。
場所をカスタマイズするには:
/msd-workspace --new --name feature-b --repos hr-ui,ZeymoAPI --path /projects/feature-b
現在のリポジトリのワークスペースを作成する
単一リポジトリでフィーチャーブランチの分離が必要な場合(独立したブランチ、独立した .planning/、main からの状態汚染なし):
/msd-workspace --new --name payments-rework --repos .
. は現在のリポジトリのワークツリーを作成するよう MSD に指示します。ワークツリーは workspace/payments-rework でチェックアウトされます。
ワークツリーの代わりにフルクローンを強制するには:
/msd-workspace --new --name payments-rework --repos . --strategy clone
ブランチを明示的に指定する
/msd-workspace --new --name payments-rework --repos . --branch feature/payments-v2
--branch フラグはワークスペース内のすべてのリポジトリのブランチ名を設定します。デフォルトは workspace/<name> です。
対話的な質問をスキップする
/msd-workspace --new --name payments-rework --repos . --auto
MSD はプロンプトなしですべてのデフォルト値を適用します。
ワークスペース内で MSD を初期化する
ワークスペースを作成したら、その中に移動して MSD プロジェクトを初期化します。
cd ~/msd-workspaces/feature-b
/msd-new-project
ワークスペース内の .planning/ ディレクトリは、そのディレクトリから実行されるすべての MSD コマンドのルートとなります。ソースリポジトリ内に存在する .planning/ とは完全に独立しています。
ワークスペースを一覧表示する
/msd-workspace --list
アクティブなすべての MSD ワークスペースとそのステータスを表示します。
ワークスペースを削除する
/msd-workspace --remove feature-b
MSD は git ワークツリーを削除し、ワークスペースディレクトリをクリーンアップします。リモートのブランチは削除されません。ローカルのワークツリーとワークスペースディレクトリのみが対象です。
ワークストリームではなくワークスペースを選ぶ場面
ワークスペースを選ぶべき場合:
- 1 つの MSD プロジェクトとして連携させる必要がある複数のリポジトリ(例:一緒にリリースする API リポジトリと UI リポジトリ)にまたがって作業している
- フィーチャーごとに独自のブランチ、ロックファイル、ビルド成果物を持つ独立した git ワークツリーが必要(あるビルド環境での依存関係インストールが他に影響しない)
- メインリポジトリの
.planning/のサブディレクトリではなく、完全に独立した.planning/ルートが必要 - 各トラッカーイシューをワークスペースにマッピングするイシュー駆動ワークフローを採用している(トラッカーイシューから MSD を操作するを参照)
代わりにワークストリームを選ぶべき場合:
- すべての作業が1 つのリポジトリ内にあり、同じ git 履歴を共有している
- API、UI、インフラなどの異なる関心領域で
/msd-plan-phaseや/msd-discuss-phaseを並行して実行したいが、各領域のSTATE.mdファイル間でのコンテキスト汚染を避けたい - 関心領域ごとに別のワークツリーは不要で、計画コンテキストの切り替えで十分