# マージとデプロイ (land-and-deploy)

> /ship が作った GitHub の PR を引き継ぎ、CI と準備を確認して承認後にマージし、デプロイを監視して本番を検証・報告します。

- カテゴリ: [デプロイ・リリース](https://www.myskills.tools/ja/categories/deploy-release/)
- 提供元: コミュニティ · Garry Tan
- リポジトリ: https://github.com/garrytan/gstack/tree/main/land-and-deploy (commit a77fae2 · v1.0.0)
- SKILL.md: https://github.com/garrytan/gstack/blob/main/land-and-deploy/SKILL.md
- インストールコマンド: `npx skills add garrytan/gstack --skill land-and-deploy`
- ライセンス: MIT
- 対応ツール: Claude Code, Codex, Cursor, Copilot
- 権限: read-repo ✓, write-files ✓, shell ✓, network ✓
- 状態: スキャン済み
- ルールスキャンですべてのリスクを検出できるわけではありません。インストール前にこのスキルの SKILL.md を読み、権限を確認してください。
- ⚠ PR をマージしてブランチを削除し、ロールバック時はベースブランチに revert を push します。gh の認証が必要で、GitHub のみ対応です。

## 基本ルール

force-push、CI の回避、確定済みマージの再実行、証拠の欠落の隠蔽は決して行いません。

## 実行フェーズ

1. **事前確認** — gh の認証を確認して PR とベースブランチを特定し、ローカルが PR の HEAD と一致してクリーンかを確かめます。初回はドライランを行います。
2. **CI と準備確認** — HEAD 上の全 CI、コンフリクト、VERSION のずれを確認し、必要なら CI を待ってからマージ前の準備ゲートを通します。
3. **マージとデプロイ** — 承認後にマージし、デプロイ方式を特定して GitHub Actions や Fly.io、Heroku などで該当リビジョンの反映を確認します。
4. **カナリア検証** — 本番 URL の健全性を確認し、問題があればユーザーの明示的な選択を受けて revert コミットで戻します。
5. **デプロイ報告** — 証拠に基づき「デプロイ・検証済み」「マージ済み（未検証）」などの判定を出し、.gstack/deploy-reports/ に保存して次の手を示します。

## 権限の説明（SKILL.md より）

| 機能 | 必要か | 説明 |
|---|---|---|
| ファイル書き込み | 一部で必要 | .gstack/ 配下のデプロイ報告と一時ファイル、gstack の状態ディレクトリの確認記録とログを書きます。マージ前にコードは直しません。 |
| コマンド実行 | 必要 | git、gh、jq、gstack の補助スクリプト、fly・heroku などの状態確認コマンドを実行し、マージ、revert、push も行います。 |
| 外部通信 | 一部で必要 | GitHub（gh、git fetch/push）、デプロイ先の状態確認、検証対象の本番 URL にアクセスし、gstack のテレメトリも記録します。 |

## SKILL.md のフロントマター（YAML）

```yaml
---
name: land-and-deploy
preamble-tier: 4
version: 1.0.0
description: Land and deploy workflow. (gstack)
allowed-tools:
  - Bash
  - Read
  - Write
  - Glob
  - AskUserQuestion
triggers:
  - merge and deploy
  - land the pr
  - ship to production
---
```

ホーム: https://www.myskills.tools/ja/ · URL: https://www.myskills.tools/ja/skills/land-and-deploy/
