pr-implement について
pr-implementは、fork上で計画済みのオープンソース貢献を実装するスキルです。実装の前後に分離チェックを必須とし、PRの変更範囲を絞り込みます。
主な機能
- 01競合するPRとIssueの担当状況を確認
- 02最新のforkと独立したworktreeを用意
- 03事前チェック失敗時に実装を停止
- 04実装後に範囲とコミットの一貫性を確認
- 05$pr-prepへの引き継ぎを準備
活用シーン
- 01完了済みの計画に沿った貢献の実装
- 02PRブランチを単一の目的に限定
- 03PR準備前の範囲逸脱の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ boshu2/ agentops --skill pr-implementインストール後、Claude Code で/pr-implementを入力して読み込まれたか確認します。
同梱ファイルreferences/pr-implement.featurescripts/validate.sh
詳細
PR 実装スキル
オープンソースへの貢献を、必須の分離チェックを実施しながらフォークベースで実装します。
概要
フォークの分離を確保しながら、貢献計画を実行します。実装の前と実装中に分離チェックを実行し、PR をクリーンで焦点の定まったものにします。
入力: $pr-research の後に $plan から得られる計画成果物、またはリポジトリの URL
使用する場合:
- 計画済みの OSS への貢献を実装する場合
- クリーンな PR のために分離を徹底する必要がある場合
$pr-researchと$planの完了後
使用しない場合:
- 内部プロジェクトの作業(
$implementを使用してください) - まだ計画を立てていない場合(まず
$pr-researchを実行し、次に$planを実行してください)
ワークフロー
-1. Prior Work Check -> BLOCKING: Check for competing PRs
0. Input Discovery -> Find plan artifact or repo
1. Fork Setup -> Ensure fork exists and is current
2. Worktree Creation -> Create isolated worktree
3. Isolation Pre-Check -> BLOCK if mixed concerns
4. Implementation -> Execute plan
5. Isolation Post-Check -> BLOCK if scope creep
6. Commit Preparation -> Stage with proper commit type
7. Handoff -> Ready for $pr-prep
フェーズ -1: 先行作業の確認(ブロッキング)
# Search for open PRs on this topic
gh pr list -R <owner/repo> --state open --search "<topic>" --limit 10
# Check target issue status
gh issue view <issue-number> -R <repo> --json state,assignees
| 確認結果 | 対応 |
|---|---|
| オープン PR がある | 調整するか、待機する |
| Issue に担当者が割り当てられている | 調整するか、別の方法を探す |
| 競合する作業がない | 続行する |
フェーズ 3: 分離の事前チェック(ブロッキング)
# Commit type analysis
git log --oneline main..HEAD | sed 's/^[^ ]* //' | grep -oE '^[a-z]+(\([^)]+\))?:' | sort -u
# File theme analysis
git diff --name-only main..HEAD | cut -d'/' -f1-2 | sort -u
| チェック項目 | 合格基準 |
|---|---|
| コミットの種類が単一 | プレフィックスが 0 個または 1 個 |
| 主題に沿ったファイル | すべて計画の範囲に合致している |
| ブランチが新しい | 最近の main をベースにしている |
事前チェックに失敗した場合は、続行しないでください。
フェーズ 4: 実装
ガイドライン
| ガイドライン | 理由 |
|---|---|
| 関心事を一つにする | 各コミットは、論理的な変更を一つだけ含みます |
| 規約に合わせる | プロジェクトのスタイルに厳密に従います |
| 段階的にテストする | 変更のたびにテストを実行します |
コミット規約
git commit -m "type(scope): brief description
Longer explanation if needed.
Related: #issue-number"
フェーズ 5: 分離の事後チェック(ブロッキング)
# Commit type analysis
git log --oneline main..HEAD | sed 's/^[^ ]* //' | grep -oE '^[a-z]+(\([^)]+\))?:' | sort -u
# Summary stats
git diff --stat main..HEAD
| チェック項目 | 合格基準 |
|---|---|
| コミットの種類が単一 | すべてのコミットでプレフィックスが同じ |
| 主題に沿ったファイル | すべてのファイルが PR の範囲に関連している |
| アトミックな範囲 | 1 文で説明できる |
フェーズ 7: 引き継ぎ
Implementation complete. Isolation checks passed.
Branch: origin/$BRANCH_NAME
Commits: N commits, +X/-Y lines
Next step: $pr-prep
アンチパターン
| してはいけないこと | 代わりにすること |
|---|---|
| 分離の事前チェックを省略する | まずフェーズ 3 を実行する |
| 分離の事後チェックを省略する | プッシュ前にフェーズ 5 を実行する |
| コミットに複数の関心事を混在させる | PR ごとに一つの種類のプレフィックスを使う |
| 計画なしに実装する | まず $pr-research を実行し、次に $plan を実行する |
例
貢献計画に基づいて実装する
ユーザーの指示:「分離チェックを行いながら、この外部 PR の計画を実装してください。」
実行内容:
- ブランチと範囲の分離について事前チェックを実行します。
- 計画されたファイル/領域だけを実装します。
- 事後チェックを実行し、PR 準備に向けた引き継ぎを用意します。
関心事を一つに絞ったコミット群を徹底する
ユーザーの指示:「PR の準備に入る前に、このブランチの目的が一つに絞られているか確認してください。」
実行内容:
- コミット/ファイルのパターンを、明示された範囲と照合します。
- 関心事の混在を指摘し、切り分けの手順を提案します。
$pr-prepへのクリーンな引き継ぎを作成します。
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
| 分離チェックに失敗する | ブランチに無関係な変更がある | 無関係な編集を別のブランチ/PR に移す |
| コミットに複数の関心事が混在している | 実装が計画から逸れている | 関心事ごとにコミットを再分割し、再検証する |
| 範囲が拡大し続ける | 計画の境界が不明確 | Out of Scope を基準に見直し、追加の変更を止める |
| 引き継ぎが難しい | 概要やテストの情報が不足している | 簡潔な変更概要と検証内容を追加する |
参考ドキュメント
- references/pr-implement.feature — 実行可能な仕様:フォークブランチで計画を実行し、実装の前と実装中に必須の分離チェックを行い、範囲を絞った焦点の定まった PR を作成します(soc-qk4b)
コメント
Markdown 対応