Plan と Drive で Milestone を進める¶
このページでは、複数の Spec や Direct 項目を含む進行中の Milestone を、計画の確定から実装検証の完了までまとめて進めます。最初にsb-plan --allで計画をレビューし、
その後sb-driveで安全に到達可能な作業を進めるのが通常の推奨経路です。
Drive はリリースを実行しません。局所的な問題があっても独立した作業が残っていればそちらを進め、すべての到達可能な作業が尽きた時点で、必要な判断をまとめて報告します。
1. 前提を確認する¶
先に Discovery でスコープ、Spec、Direct 項目、依存関係を確認し、進行中の Milestone を作成しておきます。開始時には作業ツリーに未コミットの変更がないことを確認してください。
Drive は現在の状態を CLI から毎回読み直します。以前の会話や前回の Drive 報告を、進捗の正規情報として引き継ぎません。
2. Milestone 全体を計画する¶
Plan は、対象となる全 Spec の Requirements、依存順の Design と独立検証、Milestone 全体の Contract レビュー、Tasks を進め、Tasks 承認後に停止します。Direct 項目は Spec 成果物を持たないため、この計画対象には入りません。
実行の最初に、Requirements、Design、Tasks の Gate 承認をこの名前付き実行へ委任するか確認されます。委任は確認箇所をまとめるだけで、レビューや CLI 検査を省略しません。
計画を先に分けることで、Milestone 全体の振る舞い、設計境界、実行順を実装前にまとめてレビューできます。なお Drive を計画途中から実行することもできますが、Drive 自体には Gate 承認権限がありません。必要な承認がなければ、その項目を保留して別の到達可能な作業を探します。
3. 到達可能な作業を Drive する¶
Drive はspecbind milestone status --jsonが示す着手可能な操作だけを選び、1 回に
1 つの所有ワークフローへ委譲します。Requirements や Design を自身で書いたり、Task をまとめて完了扱いにしたりはしません。
代表的な委譲先は次のとおりです。
| 状態 | 所有するワークフロー |
|---|---|
| 未完了の計画 | sb-planと各計画フェーズ |
| Contract レビュー | sb-contract-review |
| 実装 | sb-implement <item-id> |
| Spec 全体の実装検証 | sb-validate-implementation <spec-id> |
| リリース前 | 状態を報告して停止 |
各委譲後に、Drive は Git の作業ツリーと Milestone の状態を読み直します。最初の実装では、 状態を変更するワークフローを並列実行せず、1 件ずつ進めます。
4. 保留と停止の違いを理解する¶
ある項目が進められなくても、Drive が即座に実行全体を止めるとは限りません。
Drive は、問題の原因と実行全体の判断を分けます。
| 原因の例 | 扱い |
|---|---|
HUMAN_DECISION |
スコープ、意味、承認、不可逆な結果をユーザーが判断するまで保留 |
BLOCKED |
所有ワークフローが進行不能と確定した項目を保留 |
WAITING |
依存先や Milestone 全体の障壁が解消されるまで待機 |
REROUTABLE |
Requirements や Design など、より上流の所有フェーズへ戻す |
EXTERNAL_BLOCK |
環境や外部前提を満たせないため保留または停止 |
別の安全な操作があればCONTINUE_ELSEWHERE、無ければSTOP_RUNになります。未完了の
Design は Contract レビューを止めますが、別 Spec の Design までは止めません。未完了の実装はその依存先と Milestone 全体の完了を止めますが、独立した実装までは止めません。
作業ツリーに部分的、拒否済み、無関係、または所有者不明の変更が残った場合は例外です。 別項目へ安全に切り替えられないため、Drive はリセットや stash をせず実行全体を止めます。
5. Drive の結果を確認する¶
Drive は最後に、次の内容をまとめて報告します。
- 到達した Milestone の境界
- 完了した所有ワークフローと増えた正規の状態
- 保留項目、その原因、影響を受ける依存先
- 再開に必要な判断または外部条件
- 次に安全に実行できる操作
- リリースを実行していないこと
保留一覧はその実行だけの報告で、永続的なキューではありません。判断や外部条件を解決したら、
もう一度$sb-driveを実行します。Drive は最新状態から到達可能な作業を再構築します。
6. リリース前で止める¶
すべての実装検証が完了すると、次の境界はリリース準備になります。対象バージョンが未設定なら、Drive は勝手に選ばず人の判断として保留します。バージョンを明示してリリース前の紐付けまで進める場合は、次のように依頼できます。
この指定でも、Drive は配布物の作成、公開、検証、確定処理を実行しません。状態が
release_readyになったところが完了境界です。公開するときは、結果を確認してから
リリースするを別途実行します。
この進め方を選ぶ場面¶
- 複数 Spec や Direct 項目を含む Milestone を依存順に進めたい
- 局所的な判断待ちがあっても独立作業を続けたい
- Tasks 承認後の実装と検証を、正規状態を確認しながら任せたい
- 中断後に、永続的なキューを保守せず最新状態から再開したい
各成果物を段階ごとに確認したい場合は、 1 件ずつ計画・実装するを使ってください。