AgentSkillsCN

jp-describe-pr

分析代码变更,执行验证测试,生成结构化的文档,从而生成全面的 Pull Request 说明。适用于需要创建或更新 Pull Request 说明的场景。

SKILL.md
--- frontmatter
name: jp-describe-pr
description: コード変更を分析し、検証テストを実行し、構造化されたドキュメントを作成して包括的なPR説明を生成します。プルリクエストの説明を作成または更新する必要がある場合に使用します。
compatibility: GitHub Copilot CLI用に設計。gh CLIが必要です。
metadata:
  author: humanlayer
  version: "1.0"
  original-source: https://github.com/humanlayer/humanlayer

PR説明の生成

包括的なプルリクエストの説明を生成するタスクです。

実行手順

1. 説明するPRを特定する

  • 現在のブランチに関連するPRがあるか確認する:
    bash
    gh pr view --json url,number,title,state 2>/dev/null
    
  • 現在のブランチにPRが存在しない場合、またはmain/masterにいる場合、オープンなPRをリストする:
    bash
    gh pr list --limit 10 --json number,title,headRefName,author
    
  • 不明な場合はユーザーにどのPRを説明したいか確認する

2. 包括的なPR情報を収集する

  • 完全なPR diffを取得する:
    bash
    gh pr diff {number}
    
  • デフォルトのリモートリポジトリに関するエラーが発生した場合、ユーザーに gh repo set-default の実行を指示する
  • コミット履歴を取得する:
    bash
    gh pr view {number} --json commits
    
  • ベースブランチを確認する:
    bash
    gh pr view {number} --json baseRefName
    
  • PRメタデータを取得する:
    bash
    gh pr view {number} --json url,title,number,state
    

3. 変更を徹底的に分析する

  • diff全体を注意深く読み込む
  • コンテキストのため、diffに表示されていないが参照されているファイルを読み込む
  • 各変更の目的と影響を理解する
  • ユーザー向けの変更と内部実装の詳細を区別する
  • 破壊的変更やマイグレーション要件を特定する

4. 検証要件を処理する

  • 自動化可能な検証ステップ(テスト、リント、ビルド)を探す
  • 各検証ステップについて:
    • 実行可能なコマンド(make testnpm testなど)の場合、実行する
    • 合格した場合、検証済みと記録する
    • 失敗した場合、何が失敗したかを記録する
    • 手動テストが必要な場合、ユーザーに記録する

5. 説明を生成する

以下のテンプレート構造を使用する:

markdown
## 概要
[このPRが何をするか、なぜ行うかの簡単な説明]

## 変更内容
- [変更1]
- [変更2]
- [変更3]

## 変更の種類
- [ ] バグ修正(問題を修正する非破壊的変更)
- [ ] 新機能(機能を追加する非破壊的変更)
- [ ] 破壊的変更(既存の機能を変更する修正または機能)
- [ ] ドキュメントの更新

## テスト方法
1. [ステップ1]
2. [ステップ2]
3. [ステップ3]

## 検証
- [ ] テスト合格
- [ ] リンティング合格
- [ ] ビルド成功
- [ ] 手動テスト完了

## 追加の注意事項
[追加のコンテキスト、スクリーンショット、または情報]

6. PRを更新する

  • PR説明を直接更新する:
    bash
    gh pr edit {number} --body "$(cat description.md)"
    
  • または生成された説明をユーザーにレビュー用に表示する
  • 更新が成功したことを確認する

重要な注意事項

  • 徹底的かつ簡潔に - 説明はスキャン可能であるべき
  • 「何を」と同様に「なぜ」に焦点を当てる
  • 破壊的変更やマイグレーションの注意事項を目立つように含める
  • PRが複数のコンポーネントに触れる場合、説明をそれに応じて整理する
  • 可能な場合は常に検証コマンドの実行を試みる
  • どの検証ステップが手動テストを必要とするかを明確に伝える