mcpField
L
live-dev-deploy

live-dev-deploy

github.com/drgarbageクラウド・DevOps054 回インストール9 週間前に更新
リポジトリ

live-dev-deploy について

Git Flow と Vercel を使うチーム向けに、開発検証とリリースの手順を定めるスキルです。ローカル QA のゲート、テスト失敗時の修復、プレビュー URL の共有、本番リリースとロールバックを扱います。

主な機能

  1. 01Git Flow のリリース手順
  2. 02Playwright、lint、build のゲート
  3. 03ステージ済み変更のシークレット検査
  4. 04テスト失敗時の修復ループ
  5. 05プレビュー URL の共有
  6. 06本番リリースとロールバック

活用シーン

  1. 01コミットや push 前の変更検証
  2. 02レビュー用デプロイプレビューの共有
  3. 03承認済み変更の本番リリース
  4. 04障害がある本番リリースの取り消し

インストール

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

$npx skills add https://github.com/drgarbage/ag-course-index --skill live-dev-deploy

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
references/
playwright-qa-rules.md
resources/
resolve-preview-url.js
vercel-preview.yml

詳細

live-dev-deploy

このスキルでは、ローカルでの検証、テスト駆動の自動修復、プレビュー URL の提供、Git Flow によるリリースデプロイを案内します。

bash ブロックは POSIX(Windows では Git Bash)用です。1 つのコマンド/パイプを超えるロジックは、シェルの制御フローではなく、resources/*.js に記述します。Bash ツールが cmd.exe または PowerShell の場合は、実行前に各スニペットを変換してください。

1. Git Flow とリリースのライフサイクル

遷移トリガーゲート
develop → feature/*新しい依頼—
feature/* → developQA ループ + ローカルでのシークレットスキャン PASSgh pr checks <PR#> --watch が成功。ローカル ≠ CI:CI ではさらに lint + build も実行されます。
develop → mainユーザーが以下のリリース確認プロンプトを承認同じ CI 完了待ち → マージ → タグ付け → バージョン更新
main → developリリース PR のマージ直後バックマージします。PR は不要です。バージョン更新コミットは main にのみ存在します。ブランチ間のバージョン衝突を防ぐため、この手順はスキップしてください。

リリース確認プロンプト(原文のまま):"Would you like to release this to the production environment?"

  • バージョン更新: リリース PR にはタグ v<major>.<minor>.<patch> と、それに一致する package.json:version の両方を含めます(現在の値を確認し、デフォルトは 0.0.0 として、特に指示がなければパッチバージョンを上げます)。
  • マージ制限: CI が失敗中または保留中の場合は、絶対にマージしないでください。ローカルで成功した後に CI が失敗した場合は、QA の修復ループに戻り、プッシュして完了を待ちます。
  • マージコンフリクト: コンフリクトをユーザーに提示してください。手書きのソースコードのコンフリクトを自分で解決してはいけません。
  • ステージングと本番のデプロイ: Vercel GitHub integration を使ってデプロイします。本番デプロイでは、デフォルトで Vercel Deployment Protection(パスワード保護または Vercel Authentication)を無効にし、一般公開されるようにしてください。
  • 公開アクセスの検証: 本番デプロイに一般公開でアクセスできない(ログイン画面にリダイレクトされる/ping に失敗する)場合は、「The production deployment is not publicly accessible. Would you like to enable public access?」と尋ね、Vercel Project Dashboard(Settings -> Deployment Protection)で保護を無効にするよう案内してください。
  • ロールバック: 本番環境に問題が発生した場合は、main 上でマージコミットを git revert してからプッシュします。

2. ローカル検証と自動修復

セットアップ、ポートの検出、テストのテンプレートについては、references/playwright-qa-rules.md を参照してください。開発サーバー、baseURL、テスト URL には同じポートを使用します。

コミットまたはプッシュの前に、すべてのゲートが成功している必要があります。失敗中のゲートがある状態で、絶対にコミットまたはプッシュしないでください。Playwright スイート、lint、build に加え、コミットのたびに gitleaks protect --staged(detect ではなく、ステージ済み差分を対象)を実行します。

  • 失敗時: エラー/トレースを解析し、実装コードのみを修正してから、references/playwright-qa-rules.md の修復ループに従って再実行します(試行は最大 3 回。その後は停止して報告します)。
  • シークレットスキャンゲート: シークレットが検出された場合、コミットをブロックします。シークレットは Vault に移し、process.env 経由で参照してください。
  • Firestore のローカル検証: 機能が Firestore に関わる場合は、実際のプロジェクトではなく、Local Emulator Suite を使って QA ループを実行します(references/react-firestore-rules.md)。
  • フック: lint とシークレットスキャンをコミット前に実行する、コミット済みで自動インストール可能なフックマネージャー(Husky/Lefthook)をインストールします。

3. プレビューを優先した提供

検証用に localhost のリンクをユーザーに渡してはいけません。次を実行します。

node resources/resolve-preview-url.js   # exit 0 -> prints PREVIEW_URL=<url>
  • ポーリングには resolve-preview-url.js を使い、GitHub Deployments API に問い合わせます。
  • 時間がかかりすぎる場合は、次のようにエスカレーションします。
    • 60s:試行回数を増やし、ビルド中であることをユーザーに伝えます。
    • 約 5 分:プッシュしたコミットで絞り込んだ、非対話型の JSON vercel list を使います。
    • それ以降:ダッシュボード URL または vercel inspect を報告します。
⚡️ Features deployed successfully! Preview URL: https://project-git-develop-user.vercel.app

4. ガードレール

問題のあるパターン(Context を使わずに prop drilling を行う、GitHub automation を迂回する、プレビュー用データベースを本番で再利用する、など)を求められた場合は、停止して次を提示します。

依頼内容提案する代替案
セキュリティリスク
保守コスト

原文どおりの文字列 "I understand the risk and insist on this." が示された場合にのみ再開してください。

5. 出力形式

検証ログ
  • Vercel デプロイリンク:[プレビューまたは本番 URL]
  • Git ブランチ:[feature ブランチ/develop/main]
  • PLAYWRIGHT テストの状態:[PASS/FAIL]
チェックリスト
ID項目結果証拠
F1ローカル QA テストPASS / FAIL / N/A[テストログの抜粋]
F2プレビュー URLPASS / FAIL / N/A[稼働中の Vercel プレビュー URL]
F3シークレットスキャンPASS / FAIL / N/A[スキャン結果の概要]
コードの変更
  • [file path]: [変更内容]
スモークテストの出力
[Playwright execution output]
残存するリスク
  • [未テストの機能、認証情報の分離、または「なし」]
再発防止策
  • [ルール / フック / テスト / スキル / 「不要」+理由。リポジトリ URL、Vercel プロジェクト、Firebase プロジェクト ID も記載]

コメント