pr について
簡潔なプルリクエスト本文を作成するためのライティングスキルです。変更内容に合わせて、疑似コード、呼び出しツリー、差分、Mermaid 図などの形式を選ぶ指針を示します。
主な機能
- 01Summary と Evidence の構成
- 02変更やリファクタリングの形式ガイド
- 03変更前後の証拠を示す指針
- 04マージリスクと影響範囲のガイド
活用シーン
- 01疑似コードによるロジック変更の要約
- 02コンポーネントや実行フローの表示
- 03ツリー形式でのファイル構成変更の記録
- 04ロールバックリスクと影響の評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mattpocock/ skills --skill prインストール後、Claude Code で/prを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yamlCREDITS.md
詳細
PR 本文の作成には、次のテンプレートを使用します。
## Summary
<diagram, diff-sketch, or tree>
## Evidence
- **Before:** <screenshot/output/failing test run>
**After:** <screenshot/output/passing test run>
## Merge Danger
**Door:** <one-way or two-way>
<optional: description>
**Blast Radius:** <one-word description>
<optional: potential ramifications of merge>
セクション
前置きは省略し、文章は簡潔にしてください。GLOSSARY.md にあるユーザーのドメイン用語を使用してください。
概要
要点が伝わる、最小限の表現を選んでください。
- ロジックやアルゴリズムは、疑似コードで示します。
on(save)
if content is unchanged
return cached result
write new content
return fresh result
- 実行時の制御フローは、呼び出しツリーで示します。
submitForm
createSession
persistPrompt
launchAgent
navigateToSession
- UI の構造は、重要な状態とモジュール境界を含め、コンポーネントツリーで示します。
<SessionPage> (apps/example/src/routes/session.tsx)
useSessionEvents()
<SessionToolbar>
<RunSkillButton> (packages/ui)
- ファイルの役割や大規模なリファクタリングは、簡潔なファイルツリーで示します。
src/
├── commands/ # parses user actions
├── sessions/ # owns session state
└── transport/ # sends API requests
- コンポーネント間のやり取り、制御フロー、データフローは、Mermaid で示します。
sequenceDiagram
participant User
participant UI
participant Daemon
User->>UI: choose command
UI->>Daemon: send expanded prompt
Daemon-->>UI: stream result
- 変更点が主題で、周囲の構造がすでに存在する場合は
diffを使用します。トピックに合った差分の形にしてください。
コンポーネントの変更の場合:
<SessionPage>
useSessionEvents()
<SessionToolbar>
+ <RunSkillButton />
<SessionTimeline>
+ <SkillResultCard />
ファイルレイアウトの変更の場合:
src/
├── commands/
+│ └── show-me.ts # expands the slash command
├── sessions/
-└── transport.ts
+└── transport/
+ ├── client.ts
+ └── stream.ts
呼び出しツリーまたはコールスタックの変更の場合:
submitForm
createSession
persistPrompt
+ expandSkillMention
launchAgent
- navigateToSession
+ navigateToSession
+ subscribeToEvents
状態または制御フローの変更の場合:
on(save)
- write content
+ if content is unchanged
+ return cached result
+ write new content
+ invalidate cache
- 大部分が新規の場合、省略すると所有関係や順序がわからなくなる場合、またはユーザーがコピーして使える形を必要としている場合は、ブロック全体を示します。
function expandSkill(command: string): string {
const skillName = command.slice(1);
return `use the ${skillName} skill`;
}
ガイダンス
各図は、それを補足する短い文章の近くに配置してください。ユーザーの現在の質問に答えるため、または現在の議論で挙がっている選択肢を解決するために必要な呼び出し、ファイル、props、状態、境界だけを残してください。
これらのうち1つを使っても、複数を使ってもかまいません。すべて使うことはほとんどありません。判断して、情報を詰め込みすぎないようにしてください。
根拠
変更が機能することを示す具体的な根拠を提示します。変更前と変更後を示してください。
スクリーンショットは最上位の根拠です。環境が整っており、変更が視覚的なものである場合に使用してください。
実行に基づく根拠は、その次に有効です。テスト結果やコンソール出力を示してください。疑似コードを使って、これまで失敗していたテストと、現在成功するテストを正確に示してください。
マージ時のリスク
一方通行の変更か、双方向の変更かを説明してください。双方向の変更は元に戻せますが、一方通行の変更は元に戻せません。簡単にロールバックできる PR はリスクが低くなります。破壊的な操作や、元に戻しにくい決定を伴う変更は一方通行です。
影響範囲とは、この PR によって導入される変更が及ぼす可能性のある影響や範囲です。あらゆる可能性を検討してください。たとえば、レイアウトのずれ、利用側の破損、モバイル対応などです。