prlisted
Install: claude install-skill devbasex/ai-plugins
# PR作成
このプロジェクトのコードを commit, push し、GitHub で Pull Request を作る。既に PR があれば本文を最新の変更内容に書き直す。
**制約**: デフォルトブランチ(main, masterなど)で直接コミット禁止
## 引数
`/ndf:pr [--draft] [base] ["メッセージ"]`。`--draft` はドラフト PR、既知のベース名(`main` / `master` /
`qa/*` / `release/*` / `staging/*` 等)はベース、それ以外はコミットメッセージ。既定は `main` ベース・非ドラフト。
## push / PR 作成前の同意取得(必須)
push と PR 作成は取り消しに追加の操作が要る書き込みである。自然文の依頼でも起動するため、この手順で守る。
**手順 3(push)と手順 4(PR 作成)の直前に、`plan` の結果から次を提示する。**
- push 先のブランチ名と、PR のベースブランチ(`metrics.branch` / `metrics.base`)
- コミット対象のファイル一覧と変更量(`items` の `changes`、`metrics.commits` / `metrics.files`)
- 使用するコミットメッセージ
- 既存 PR の有無(`metrics.existing_pr`。新規作成なのか、既存 PR の更新なのか)
同意の扱い:
- 依頼が push と PR 作成まで明示的に含む(`/ndf:pr` の明示起動、「コミットしてPRを作って」等)なら、
依頼を同意とみなす。提示は行い、結果報告に含める
- 作業の流れで暗黙に起動したときは、提示したうえで**明示的な同意を得てから push する**。
同意が無ければ commit までで止める
- ベースブランチが `main`/`master` 以外の場合は、手順 1 の誘導を優先する
## この文書が受け取る値
| 変数 | 値 | 決め方 |
| --- | --- | --- |
| `$SCRIPTS` | プラグインの `scripts/` の絶対パス | [scripts-lookup.md](../development-workflow/references/scripts-lookup.md)。シェルが変わったら決め直す |
## 手順
決まった処理は `pr-steps.py` が行う。各コマンドは 1 行の JSON を返す。`status` が `ok` なら次へ進み、
`stopped` なら `summary` と `next` を読んで直し、同じコマンドを打ち直す(形は `scripts/lib/README.md`)。
### 1. 計画
```bash
python3 "$SCRIPTS/pr-steps.py" plan [--draft] [--base <base>] [--message "<コミットメッセージ>"]
```
- `metrics.redirect` が `worktree`: 起点のブランチにいる。`/ndf:worktree` で作業ツリーを用意し、
そこへ移ってから打ち直す(入れ子の作業ツリーは作らない)
- `metrics.redirect` が `cherry-pick-pr`: 起点が `main`/`master`