pr について
prは、簡潔な英語のプルリクエスト本文を書くためのスキルです。変更に合った図示形式を選び、根拠とマージリスクを記載する方法を示します。
主な機能
- 01簡潔なPR概要の構成
- 02図やコード形式の表現の選択
- 03変更前後の根拠の提示
- 04マージリスクと影響範囲の説明
活用シーン
- 01英語のPR本文の作成
- 02コードやUI変更の図による説明
- 03テスト結果と変更リスクの記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hu3rror/ my-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>
言語
PR 本文は英語で記述してください。
セクション
前置きは省略し、簡潔に記述してください。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を使用します。トピックに合った形式の 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`;
}
ガイダンス
各図は、それを補足する短い説明のすぐ近くに配置してください。ユーザーの現在の質問や、現在の議論で解決すべき選択肢に答えるために必要な呼び出し、ファイル、プロパティ、状態、境界だけを残してください。
いずれか1つを使っても、複数を使ってもかまいません。すべてを使う必要はまずありません。判断を働かせ、情報を詰め込みすぎないようにしてください。
根拠
変更が機能することを示す、具体的な根拠を記載してください。変更前と変更後を示します。
スクリーンショットは最上位の根拠です。環境が整っていて、変更が視覚的なものであれば活用してください。
実行に基づく根拠は次点です。テスト結果やコンソール出力などを示します。擬似コードを使って、変更前に失敗し、変更後に成功する具体的なテストを示してください。
マージ時のリスク
一方向にしか戻せない変更か、元に戻せる変更かを説明してください。元に戻せる変更は、何度でも戻せます。簡単にロールバックできる PR は、リスクが低くなります。破壊的な操作や、元に戻すことが難しい判断を伴う変更は、一方向にしか戻せません。
影響範囲とは、この PR で導入される変更が及ぼす可能性のある影響や範囲です。レイアウトの変化、利用側での不具合、モバイル対応など、あらゆる可能性を考慮してください。