Skip to content
frontmatter
キー値
specdojo.idprj-0001:pjr-wj83-multi-project-build-index-register
specdojo.typeproject
specdojo.statusready
specdojo.rulebookspecdojo:pjr-rulebook
specdojo.part_ofprj-0001:pjr-index
specdojo.item_typeissue
specdojo.item_statusdone
specdojo.priorityhigh
specdojo.ownerDEV
specdojo.registered_at2026-10-11T11:09:50Z
specdojo.completed_at2026-10-11T12:38:51Z
specdojo.conclusion--project なしの specdojo build が全 project の登録簿を生成するよう修正し、prj-0002 の worktree 準備で通過を確認した

PJR-WJ83 project が複数あると specdojo build の index build が他 project の登録簿の欠落で失敗する ​

1. 課題内容 ​

--project なしの specdojo build は current_project の登録簿しか生成しないが、index build は全 project の generated/pjr-index.md を要求するため、生成物のない新しい worktree では project が複数あると必ず失敗する

2. 影響範囲 ​

観点影響
スコープproject を 2 つ以上持つ checkout での specdojo build(--project なし)と、それを使う exec の worktree 準備・commit 前フックの index-build
スケジュール複数 project の構成では worktree 実行ができず、prj-0002 の PJR-CM5W が止まっている
コスト失敗した実行のやり直しと切り分けの手間
品質成果物の隔離という worktree 実行の利点が使えない
関係者複数 project を持つリポジトリの利用者

3. 対応方針 ​

項目内容
原因src/build-command.ts は --project がない場合、current_project(無ければ先頭の project)だけを対象に register build を行う。一方 src/doc-index.ts の index build は、リポジトリ内のすべての登録簿ディレクトリに generated/pjr-index.md があることを前提にする。生成物は git 管理外のため、新しい worktree では対象外の project の一覧が欠け、index build が失敗する。
対応策--project なしの specdojo build では、register build を設定にあるすべての project に対して行う。対象を 1 project に絞る他の段の扱いは変えない。
依存事項なし
完了条件project を 2 つ持つ fixture で、生成物のない状態から specdojo build(--project なし)が通ることをテストで確認する。exec の worktree 準備が同じ fixture で通る。既存のテストが通る。

4. 対応結果 ​

項目内容
解決内容src/build-command.ts に resolveRegisterProjectIds を追加した。--project なしの specdojo build では、project_register_path を持つすべての project について register build --project <id> を順に実行してから index build へ進む。--project を明示した場合は、従来どおりその project だけを対象にする。exec / catalog / dashboard の段は従来どおり 1 project を対象にする。
確認結果単体テスト tests/src/build-command.test.ts で対象 project の解決と段の並びを確認する。統合テスト tests/src/build-command.integration.test.ts では、project を 2 つ持ち生成物のない fixture で、specdojo build(--project なし)と exec の worktree 準備(generateWorktreeArtifacts)が両 project の generated/pjr-index.md を生成して通ることを確認する。テストは親 runner の test:unit / test:integration で実行する。実環境では、#10 で main へ昇格した修正を project/prj-0002/develop へ取り込み、prj-0002 の PJR-CM5W を --worktree --force-restart で再実行した。worktree 準備の specdojo build は register build (prj-0001)、register build (prj-0002)、index build を含む 7 段すべてを通過し、agent の起動まで進んだ(2026-10-11)。
再発防止策2 project の fixture を使う統合テストを追加し、index build が要求する登録簿の生成範囲と build の対象範囲がずれた場合に検知できるようにした。

5. 関連ドキュメント ​