ship-gate について
Ship Gateは、本番リリース前にコードベースを監査するスキルです。8カテゴリの自動スキャンと手動確認を組み合わせ、重要度やコード上の位置とともに問題を報告します。
主な機能
- 01プロジェクトのスタック検出
- 028カテゴリの監査スキャン
- 03自動チェックと手動確認の区別
- 04重要度とコード位置の報告
- 05問題の修正ガイダンス
活用シーン
- 01デプロイ前のコードベース監査
- 02セキュリティとデータベースのリスク確認
- 03リリース準備に関する手動項目の確認
- 04本番リリース前の監査結果レビュー
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill ship-gateインストール後、Claude Code で/ship-gateを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/checks.mdpatterns.mdscripts/ship_gate_scanner.py詳細
Ship Gate
リリース前にコードベースをスキャンし、本番リリース前に8つのカテゴリについて合格/不合格/手動確認の結果を報告します。
割り込み動作
ユーザーが「本番環境にプッシュ」「デプロイ」「リリースして」「公開して」など、デプロイの意図を示す表現を使った場合は、デプロイを進めてはいけません。代わりに、次の手順を実行します。
- 「Ship Gate を実行しましたか?今スキャンしましょうか?」と尋ねます。
- ユーザーが同意した場合は、以下の監査をすべて実行します。
- すでに実行したとユーザーが答えた場合は、いつ実行したかを尋ねます。24時間以上前の場合、またはその後にコードが変更された場合は、再実行を勧めます。
仕組み
ステップ1:技術スタックの検出
プロジェクトの技術スタックを特定するため、次のチェックを順番に実行します。
Framework detection:
package.json exists -> Node.js project
"next" in dependencies -> Next.js
"react" in dependencies -> React (if not Next.js)
"vue" in dependencies -> Vue
"svelte" in dependencies -> Svelte
"astro" in dependencies -> Astro
"express" in dependencies -> Express
"fastify" in dependencies -> Fastify
"hono" in dependencies -> Hono
requirements.txt or pyproject.toml -> Python project
"django" present -> Django
"flask" present -> Flask
"fastapi" present -> FastAPI
go.mod exists -> Go project
Cargo.toml exists -> Rust project
Database detection:
"@supabase/supabase-js" in package.json -> Supabase
supabase/ directory exists -> Supabase
"prisma" in dependencies -> Prisma (check schema for DB type)
"mongoose" in dependencies -> MongoDB
"pg" or "postgres" in dependencies -> PostgreSQL
firebase.json or .firebaserc exists -> Firebase
Deploy target detection:
vercel.json or .vercel/ exists -> Vercel
netlify.toml exists -> Netlify
Dockerfile exists -> Docker/VPS
fly.toml exists -> Fly.io
railway.json exists -> Railway
.platform/applications.yaml -> Platform.sh
Auth detection:
"@clerk" in dependencies -> Clerk
"next-auth" in dependencies -> NextAuth
"@supabase/auth-helpers" in deps -> Supabase Auth
"firebase/auth" in imports -> Firebase Auth
AI/LLM detection:
"openai" in dependencies -> OpenAI
"@anthropic-ai/sdk" in dependencies -> Claude API
"@google/generative-ai" in deps -> Gemini
続行する前に、検出した技術スタックを報告します。これによって、どのチェックが該当するかが決まります。references/checks.md で特定の技術スタックが指定されているチェックは、その技術スタックが検出されなかった場合にスキップします。
ステップ2:自動チェックの実行
次の順番でカテゴリを実行します:SEC、DB、CODE、DEP、AI、DEPLOY、FE、OBS。重大な問題が最も多く見つかるため、セキュリティとデータベースを最初に実行します。
各カテゴリについて、references/patterns.md のパターンを使用して、references/checks.md にある自動スキャン可能なチェックをすべて実行します。
各カテゴリの完了後に進捗を報告します。
[1/8] Security: 3 FAIL, 12 PASS, 3 SKIP
[2/8] Database: 1 FAIL, 5 PASS, 6 SKIP
...
結果は次のように報告します。
- PASS:チェックに合格
- FAIL:問題を検出(ファイルパスと行番号を含む)
- SKIP:この技術スタックには該当しない
ステップ3:手動確認
自動化できないチェック(バックアップからの復元テスト、ロールバック計画の有無、ステージングテストの合格)はチェックリストとして提示し、それぞれについてユーザーに確認を求めます。
ステップ4:判定
結果を次の3つの重大度に分類します。
- CRITICAL:リリース前に必ず修正(シークレットの露出、ルートに認証がない、HTTPS がない、SQL インジェクションの脆弱性、Supabase テーブルに RLS がない)
- HIGH:リリース前に修正するべき(エラーバウンダリがない、レート制限がない、本番環境に
console.logがある、ページネーションがない) - ADVISORY:推奨事項だが、リリースを妨げない(OG タグがない、カスタム 404 ページがない、アナリティクスがない、SBOM がない)
最終出力:
SHIP GATE REPORT
================
Stack: Next.js + Supabase + Vercel
Scan time: 12s
CRITICAL (3 items, must fix)
FAIL [SEC-01] API key found in src/lib/api.ts:14
FAIL [DB-07] RLS not enabled on "profiles" table
FAIL [SEC-05] No CSRF protection on /api/checkout
HIGH (5 items, should fix)
FAIL [CODE-01] 12 console.log statements in production code
FAIL [CODE-03] Empty catch block in src/utils/auth.ts:45
FAIL [DEP-04] 3 critical npm audit vulnerabilities
FAIL [DEPLOY-05] No rollback plan documented
MANUAL [DEPLOY-06] Staging test not confirmed
ADVISORY (4 items, recommended)
FAIL [FE-01] Missing OG meta tags
FAIL [FE-03] No custom 404 page
PASS [OBS-01] Error monitoring configured
SKIP [AI-01] No AI/LLM usage detected
VERDICT: DO NOT SHIP (3 critical issues)
Fix critical items and re-run.
CRITICAL の項目が残っていない場合、判定は CLEAR TO SHIP です。 HIGH の項目のみが残っている場合、判定は SHIP WITH CAUTION(リスクを承認)です。
カテゴリ
コードプレフィックスが付いた8つのカテゴリがあります。各チェックの詳細は references/checks.md を参照してください。
| Prefix | Category | Auto | Manual | Tool |
|---|---|---|---|---|
| SEC | セキュリティ | 15 | 3 | 0 |
| DB | データベース | 7 | 5 | 0 |
| DEPLOY | デプロイ | 3 | 8 | 0 |
| CODE | コード品質 | 11 | 0 | 1 |
| AI | AI/LLM セキュリティ | 5 | 3 | 0 |
| DEP | 依存関係 | 5 | 0 | 1 |
| FE | フロントエンド品質 | 7 | 3 | 0 |
| OBS | オブザーバビリティ | 2 | 5 | 0 |
対象範囲
このスキルは監査を行います。問題の修正は行いません。問題が見つかった場合は、ファイルの場所と修正方法のガイダンスを添えて報告します。修正はユーザー、または別のスキル(systematic-debugging、backend-patterns、shadcn-stack)が担当します。
このスキルでは、次の作業は行いません。
- CI/CD パイプラインのセットアップ
- インフラストラクチャのプロビジョニング
- 監視ツールの設定
- デプロイ後の実行(デプロイ前のみ)
連携ポイント
- karpathy-coder:karpathy-check の合格後に ship-gate を実行します。まずシンプルさを優先し、その後、本番運用の準備状況を確認します。
- adversarial-reviewer:ship-gate が CRITICAL と判定した項目について、詳細なセキュリティレビューを行います。
- security-pen-testing:SEC カテゴリの検出事項に対する侵入テストの手法を提供します。
- code-reviewer:一般的なコード品質レビューを行い、ship-gate の自動チェックを補完します。