| name | pr-onboarding |
| context | fork |
| description | PR作成時に生成AIがPR本文にオンボーディングを記述するスキル。変更の契約を、レビューア・将来の自分・障害対応者に渡す。理解の再現性・反証可能性・運用可能性を同時に成立させる。トリガー条件: PRを作成する時(「PRを作成して」「プルリクを書いて」)、PR本文を充実させたい時(「PR説明を書いて」「PRオンボーディングして」)、変更の影響を整理したい時(「この変更の影響範囲を整理して」)、レビューの準備をする時(「レビュー用に変更をまとめて」)。 |
PR Onboarding
PR作成時に「説明」ではなく「変更の契約」を記述し、理解負債の蓄積を防ぐ。
目的
PRオンボーディングの目的は、以下3つを同時に成立させること:
- 理解の再現性: 他者が同じ理解に到達できる
- 反証可能性: 正しさの根拠(テスト・観測・仕様)が提示され、間違いなら突ける
- 運用可能性: 壊れたときに検知でき、戻せる(戻せないなら明記)
合格条件(PR Onboarding Done)
PR本文(+リンク先)を読むだけで、レビューアが以下を答えられる状態:
| # | 項目 | 内容 |
|---|
| 1 | What | 何が変わったか |
| 2 | Why | なぜそう変えたか(代替案含む) |
| 3 | Invariants | 何を壊してはいけないか |
| 4 | Blast Radius | どこに影響するか(境界・波及) |
| 5 | Failure Modes | どう壊れうるか |
| 6 | Evidence | どう確かめたか(検証・根拠) |
| 7 | Rollback | どう戻すか(または戻せない条件) |
ワークフロー
1. 契約確立 → 2. 変更理解 → 3. 意図抽出 → 4. 境界特定 → 5. 不変条件 → 6. 失敗モード → 7. 検証証拠化 → 8. リリース戦略 → 9. レビュー誘導 → 10. DocDD同期 → 11. 不確実性管理
入力(AIに渡すもの)
- PR差分(diff)と変更ファイル一覧
- 関連チケット/設計ID(あれば)
- テスト結果(CIログ or 実行コマンド)
- DocDDの正本リンク(あれば)
各ステップの要点
各ステップの出力は、下記のPR本文テンプレートの対応セクションにそのまま落とし込む。ここではテンプレートに書かれていない判断基準のみ示す。
- 契約確立: PR本文に載せる項目を中核6〜8項目に絞り、詳細はリンクに逃がす(本文は1〜2画面に収める)
- 変更理解: 行数差分ではなく振る舞い・責務・契約の変化として要約する(What Changed)
- 意図抽出: Whyは作文ではなく意思決定の記録として書き、代替案と棄却理由を残す
- 境界特定: 呼び出し元/先・データ・外部I/Fへの影響と互換性を確認する(Blast Radius)
- 不変条件: Must stay trueを最大3つに絞り、破ったときの症状を紐づける(Invariants)
- 失敗モード分析: 壊れ方トップ3(起きやすい/致命的/気づきにくい)に検知手段を紐づける
- 検証証拠化: 実施した検証(自動/手動)と再現手順・根拠リンクを揃える(Evidence)
- リリース戦略: ロールアウト/ロールバック手順とロールバック不能条件を明記する
- レビュー誘導: 重点ファイルを最大3〜5に絞り込み、議論すべき論点を示す
- DocDD同期: 参照した正本ドキュメントへのリンクと、更新が必要なドキュメント・差分案を示す
- 不確実性管理: 未確定事項を最大5件に絞り、解消手段とマージ条件/フォローアップの別を明記する
ガードレール(絶対禁止事項)
- 根拠なしの断言: もっともらしい説明ほど危険
- 未実施の検証の捏造: 信用を一撃で破壊する(最重要)
- 長文化で安心させる: 読み手の注意を散らし重要点が埋もれる
- 影響範囲の過小評価: 特にデータ、権限、外部I/F、並行性
- "問題ないはず"の楽観: 不確実なら不確実として扱い検証へ落とす
詳細は references/guardrails.md を参照。
スキル詳細
各ステップの詳細な実行方法と品質ゲートは references/skills-catalog.md を参照。
評価ルーブリック
PRオンボーディングの品質評価基準は references/evaluation-rubric.md を参照。
PR本文テンプレート(出力例)
## Summary
[変更の中心を1〜3文で]
## Why
- **Goal**: [目的]
- **Reason**: [採用理由]
- **Alternatives**: [検討した代替案と棄却理由]
## What Changed
- [振る舞いが変わった点1]
- [振る舞いが変わった点2]
## Blast Radius
- **Affected**: [影響範囲]
- **Compatibility**: [互換性への影響]
## Invariants (Must Stay True)
| 条件 | 根拠 | 破ったときの症状 |
|------|------|-----------------|
| [条件1] | [コード/テスト] | [症状] |
## Failure Modes
| 種類 | パターン | 検知手段 |
|------|---------|---------|
| 起きやすい | [説明] | [テスト/ログ] |
| 致命的 | [説明] | [テスト/ログ] |
| 気づきにくい | [説明] | [テスト/ログ] |
## Evidence
- [x] 自動テスト: `npm test` 全パス
- [x] 手動検証: [手順]
- 根拠: [リンク]
## Rollout & Rollback
- **Rollout**: [手順]
- **Rollback**: [手順]
- **Cannot rollback if**: [条件があれば]
## Review Focus
- [ ] [重点ファイル1]: [観点]
- [ ] [重点ファイル2]: [観点]
## Unknowns
| 項目 | 解消手段 | ブロッカー? |
|------|---------|-----------|
| [未確定事項] | [手段] | Yes/No |
## Related
- Issue: #XXX
- Docs: [リンク]