mcpField
S
ship

ship

github.com/raphaelsalajaクラウド・DevOps6294 回インストール4 日前に更新
リポジトリ

ship について

shipは、完了した変更を作業ツリーからコミット、プッシュ、デプロイ確認まで進めるスキルです。変更ごとのコミットやプルリクエスト、CIの監視、本番環境での確認を支援します。

主な機能

  1. 01変更ファイルの確認と秘密情報の検査
  2. 02論理的な変更ごとにコミット
  3. 03Conventional Commit形式のメッセージ
  4. 04プッシュ、マージ、ブランチ管理
  5. 05CIチェックの監視
  6. 06本番デプロイの確認

活用シーン

  1. 01完了した機能や修正のリリース
  2. 02変更ごとにプルリクエストを準備
  3. 03CIと本番環境の状態を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/raphaelsalaja/skills --skill ship

インストール後、Claude Code で/shipを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yaml

詳細

リリース

このスキルは、作業ツリー内の完成した変更を本番環境へリリースします。変更を小さく分けてコミットし、プッシュし、マージし、チェックの結果を監視して、変更が公開されたことを確認します。

プッシュするなら最後までプッシュ

ユーザーが「プッシュ」「リリース」または「マージ」と言ったら、最後までの手順をすべて実行してください。ユーザーの認証情報や承認が必要な場合を除き、コマンドをユーザーに渡すのは不備です。コミットに含まれたシークレットは常に HIGH です。

変更自体の確認は、このスキルを開始する前に verify で実行します。

1. ツリーを確認する

git status を実行し、変更されたファイルをすべて読みます。このタスクで変更していないファイルがあれば名前を挙げ、コミットする前に確認を求めます。無関係なファイルのコミットは ship-flag-stray-files です。差分をスキャンして、キー、トークン、パスワード、.env ファイルを確認します。シークレットのコミットは ship-no-secrets です。

2. 変更ごとにコミットする

論理的な変更ごとにコミットを1つ作成します。機能、修正、名前変更を1つのコミットにまとめるのは ship-commit-per-change です。各メッセージは Conventional Commit の形式で記述します。形式は type(scope): summary とし、命令形、小文字、ピリオドなしにします。feat、fix、docs、refactor、chore またはその他の標準的なタイプを使い、破壊的変更にはタイプの後に ! を付けます。「Remove the archive.」のようなメッセージは ship-conventional-commits です。リリースを公開するパッケージでは、変更と一緒に changeset を追加します。リリース対象の変更に changeset がない場合は ship-changeset-for-packages です。

3. プッシュ、マージ、整理

ブランチをプッシュします。マージを依頼された場合は、マージしてブランチを削除し、デフォルトブランチに戻ります。マージ後もブランチが残っているのは ship-merge-and-tidy です。バグまたは機能ごとにプルリクエストを1つ作成します。修正を3つまとめたプルリクエストは ship-one-pr-per-bug です。UIを変更するプルリクエストにはスクリーンショットを添付します。これは ship-screenshot-ui-prs です。

4. チェックを監視する

CIを待ち、失敗した項目を修正します。チェックが赤または実行中の状態で「プッシュしました」と報告するのは ship-watch-checks です。

5. 最後まで対応する

変更でイシューを修正した場合は、イシューへのリンクを追加し、クローズして、報告された場所で返信します。修正済みのバグのイシューが未解決のままなのは ship-close-the-loop です。変更がデプロイされたら、本番URLまたは公開済みバージョンを開いて確認します。本番環境を確認せずに「デプロイしました」と報告するのは ship-confirm-live です。

6. ユーザーが行う必要のあることだけを引き継ぐ

自分で実行できる手順はすべて実行します。ログイン、2要素認証コード、または承認だけを求めます。必要なものを具体的に伝えます。ユーザーが実行するコマンドの一覧を渡すのは ship-do-the-steps です。

対比

すべてのチェックは対になっています。問題のある行の隣に、それを置き換える行があります。

ルール問題のある例置き換え
ship-flag-stray-files他の人のファイルがツリーにある状態での git add -Aファイル名を挙げてから確認する
ship-no-secrets.env.local をコミットする.env.local を無視し、シークレットのローテーションが必要だと伝える
ship-commit-per-change機能、修正、名前変更を1つのコミットにまとめる変更ごとに1つ、計3つのコミット
ship-conventional-commitsRemove the archive.chore: remove the archive
ship-changeset-for-packageschangeset のないパッケージ修正同じコミットに changeset を含める
ship-merge-and-tidyマージしたが、ブランチをチェックアウトしたままマージし、ブランチを削除して main に戻る
ship-one-pr-per-bugバグ3件に対してプルリクエストを1つ作成するプルリクエストを3つ作成する
ship-screenshot-ui-prs画像のないUI変更のプルリクエスト説明にスクリーンショットを添付する
ship-watch-checksCIの実行中に「プッシュしました」と報告する「プッシュしました。すべてのチェックに合格しています」
ship-close-the-loop修正をマージしたが、イシューは未解決イシューにリンクし、クローズして返信する
ship-confirm-live「デプロイしました」「本番URLで公開されていることを確認しました」
ship-do-the-steps「準備ができたら npm publish を実行してください」公開するか、「2要素認証コードが必要です」と伝える

報告

重大度。 HIGH は、コミットされたシークレット、誤ってコミットされたファイル、またはチェックに失敗したリリースです。MEDIUM は、まとめて作成されたコミットまたはプルリクエスト、修正後も未解決の課題、または実行できたはずの手順を差し戻したものです。LOW は、Conventional Commit ではないメッセージ、スクリーンショットの欠落、またはマージ後に残されたブランチです。

形式。 根本原因ごとに1件の指摘を記載し、該当するファイルがない場合は手順を示します。

file:line - [rule-id] what is wrong
step 3 - [rule-id] what is wrong

続いて Rule | Count | Severity の概要を記載します。HIGH が1件でも残っている場合は Block、それ以外は Approve とします。最後まで確認できなかったチェックはすべて Not verified と記載します。

コメント