delivery-discipline について
delivery-discipline は、検証後の任意のコード配送を調整し、配送要否の判定からコミット、プッシュ、PR/MR の作成・更新までを扱います。統一された配送ゲートを必要とするワークフローホスト向けで、マージ前に停止します。
主な機能
- 01配送要否の確認
- 02git-commit によるコミットとプッシュの調整
- 03PR/MR の作成または更新
- 04ホスト提供の PR/MR 情報の追加
- 05マージ前に停止
活用シーン
- 01公開する変更がない場合に配送を省略
- 02検証済みのブランチ変更を PR/MR で公開
- 03ホスト提供情報で既存 PR/MR を更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fudesign2008/ open-skills --skill delivery-disciplineインストール後、Claude Code で/delivery-disciplineを入力して読み込まれたか確認します。
詳細
デリバリーの規律
共有スキル — 任意の検証後のコードデリバリーに関する唯一の情報源です:デリバリー要否ゲート → コミット/プッシュ → PR/MR を作成または更新。ホストはこれを
dependenciesで宣言し、利用できない場合は中止します。黙って代替処理に切り替えることはありません。レイヤー構成:
git-commit(コミット/プッシュ) → このスキル(デリバリーのオーケストレーション) →feature-branch-closeout(メニュー) →merge-discipline(マージゲート)。マージやリリースの公開処理をこのスキルに含めないでください。
前提スキルの確認
読み込み時に git-commit が利用可能か確認します。利用できない場合は、インストール方法(npx skills add FuDesign2008/open-skills -g --skill git-commit --yes)を案内して中止します。黙って機能を縮小することはありません。
プレースホルダーの契約
| プレースホルダー | 意味 | 提供者 |
|---|---|---|
{pr-body-extra} | ホスト固有の PR/MR 本文セクション(Jira リンク、OpenSpec パス、シナリオテーブルなど) | 呼び出し元のホスト(呼び出し箇所で指定) |
{commit-context} | 任意のコミット項目(type、scope、subject、jira_id) | ホスト、またはブランチ/差分から推定 |
適用条件
検証が成功した後(または保留項目が明示されている場合)、かつホストがデリバリー前のアーカイブを要求している場合は OpenSpec のアーカイブ後に、この実行でコミットや PR/MR が必要になる可能性があるときに適用します。
このスキルの対象外: 保護ブランチへのマージ、リリースタグ付け/release→main のフロー、PR を作成する意図のないコミットのみの処理(git-commit を直接呼び出してください)。
1. デリバリー要否ゲート
次のいずれかに該当する場合、このスキルの残りの処理をスキップします(コミットも PR も行いません)。
| シグナル | 意味 |
|---|---|
| デリバリー対象がクリーン | 未コミットの変更がなく、かつ予定している PR のベースより先行するコミットもない(または公開するフィーチャーブランチの作業がない) |
| ユーザーが辞退 | 今回はデリバリーしない/PR を作成しない/分析のみ、とユーザーが指定した |
| ホストがデリバリー対象外と判断 | ホストの処理経路が分析のみ、またはコード(もしくは成果物)の変更がなく公開対象がない場合の同等の経路 |
スキップする場合:理由を一行で伝え、ホスト(通常は feature-branch-closeout または振り返り処理)に戻ります。空の PR は作成しないでください。
デリバリーが必要な場合(作業ツリーに変更がある、先行コミットがある、またはユーザー/ホストが PR を要求している場合):続行します。
2. コミット/プッシュ
- 未コミットの変更がある場合:ユーザーが手動のコミットコマンドのみを求めていない限り、
execute=trueを指定してgit-commitを読み込みます。ホストに Jira ID または固定のメッセージ形式がある場合は、{commit-context}を渡します。 - 作業ツリーがクリーンでも、ブランチがリモートより先行している場合:
git-commitの自動フローの一環としてプッシュするか、コミットをスキップした場合は明示的にプッシュします。 - すでにコミットとプッシュが完了している場合:再コミットせずに §3 に進みます。
冪等性:空のコミットは作成しないでください。「形式上の儀式」として同じ先端を再コミットしないでください。
3. PR/MR を作成または更新
- リモートホストを検出します(
gh/glab/同等のもの。エージェントはネイティブ CLI を選択します)。 - このヘッドブランチに対するオープン中の PR/MR がすでにある場合:ホストから新しい
{pr-body-extra}が提供されたときはタイトル/本文を更新し、ブランチがプッシュ済みであることを確認します。 - ない場合:デフォルトブランチまたは保護されたベースブランチを対象に作成します。
- 本文に必須の内容(常に含める):目的の概要、変更ファイルの概要、検証状況(ホストに検証メモがある場合は、
completion-evidence-disciplineに従い、実行済み/保留中を正直に記載)。 {pr-body-extra}はホストから提供されたとおりに追加します(Jira/OpenSpec の項目を削除しないでください)。
PR/MR の URL を提示したら終了します。マージしないでください。
4. ホストに戻る
ブランチ名、先端の SHA、PR/MR の URL(または「スキップ — <理由>」)を返します。その後ホストは feature-branch-closeout を読み込み、マージ/維持/続行を判断します(デリバリーを先にスキップした後、ユーザーが PR の作成を選択した場合は、クローズアウトのオプション 1 からこのスキルに戻ります)。
ホストとの統合
- solve-workflow / opsx-solve-workflow:verify(および opsx の場合は archive)の後にこのスキルを読み込み、次に
feature-branch-closeout、その後に retrospective を実行します。 - jira-fix-workflow のステージ 9 / opsx-jira-fix-workflow のアーカイブ後のデリバリー:このスキルを薄く参照し、Jira/OpenSpec のフィールドを
{pr-body-extra}と{commit-context}経由で渡します。 - feature-branch-closeout の「PR を開く/更新する」オプション:このスキルを読み込みます(冪等です)。
- フィールドマップを超えて、コミットメッセージや PR 本文の文章をホストにコピーしないでください。
禁止事項
- このスキルから PR/MR をマージすること
merge-disciplineのパート A~D を埋め込むこと- すべてのホスト実行で PR を必須にすること(§1 のゲートは必須です)
- ユーザーが PR の作成を明示的に依頼し、ツリーに成果物がある場合に何もせず終了すること