stale-pr-reminder について
stale-pr-reminderは、リポジトリのオープンなPull Requestを確認し、優先度付きレポートを作成するスキルです。経過日数、更新状況、レビュー、マージ競合を基に分類します。
主な機能
- 01停滞度に応じたPR分類
- 02作成日時と更新日時の確認
- 03レビューコメントと競合の考慮
- 04リンク付き分類レポートの作成
- 05ボットPRの既定除外
活用シーン
- 01期限超過PRの対応優先度付け
- 02レビュー待ちPRの特定
- 03マージ競合がある古いPRの発見
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ oschina/ gitee-agent-skills --skill stale-pr-reminderインストール後、Claude Code で/stale-pr-reminderを入力して読み込まれたか確認します。
詳細
古い PR のリマインダー
リポジトリをスキャンして、対応が遅れているプルリクエストを検出し、優先度を付けた対応レポートを生成します。
「対応が遅れている PR」とは?
対応が遅れている PR とは、次のようなプルリクエストです。
- 長期間オープンのままで、更新がない
- レビュアーによる確認が行われていない
- マージコンフリクトが未解決のままになっている
対応の遅れのレベル
| レベル | 経過期間 | 対応 |
|---|---|---|
| 🔴 重大 | > 28 日 | クローズまたは再作業 |
| 🟠 深刻 | > 14 日更新なし | 作成者に連絡 |
| 🟡 中程度 | > 7 日レビューなし | レビュアーを割り当て |
| 🟢 軽度 | > 3 日アクティビティなし | 状況を監視 |
| ✅ 新しい | < 3 日 | 対応不要 |
手順
ステップ 1:オープン中の PR を取得する
list_repo_pulls を呼び出して、オープン中の PR をすべて取得します。
INPUT:
- owner: repository owner
- repo: repository name
- state: "open"
- sort: "created"
- direction: "asc"
- per_page: 100
ステップ 2:PR の詳細を取得する
各 PR について、get_pull_detail を呼び出します。
EXTRACT:
- number: PR number
- title: PR title
- user.login: author username
- created_at: creation timestamp
- updated_at: last update timestamp
- mergeable: false = has conflicts
- draft: is draft PR
ステップ 3:コメントを取得する(任意)
list_comments(resource_type: pull)を呼び出して、レビューのアクティビティを確認します。
ANALYZE:
- has_reviewer_comments: any comment from non-author
- last_comment_date: most recent comment timestamp
ステップ 4:対応の遅れを計算する
コードを実行する必要はありません。AI はタイムスタンプを直接解析できます。
今日の日付:2026-03-17
各 PR について:
created_atを解析します(形式:YYYY-MM-DDTHH:MM:SSZ、例:2026-01-15T10:30:00Z)- 同様に
updated_atを解析します - created_at から今日(2026-03-17)までの日数を計算します
- updated_at から今日までの日数を計算します
mergeable: false(コンフリクトあり)かどうかを確認しますdraft: trueかどうかを確認します
分類ルール:
critical:経過期間 > 28 日severe:経過期間 > 14 日 AND 更新からの日数 > 14 日moderate:経過期間 > 7 日 AND レビュアーのコメントなしmild:経過期間 > 3 日 AND 更新からの日数 > 3 日fresh:それ以外
ステップ 5:レポートを生成する
リンク付きのグループ化されたレポートを作成します。
## Stale PR Report: {owner}/{repo}
### Critical (> 28 days)
| PR | Title | Age | Author |
|----|-------|-----|--------|
| [#{num}](https://gitee.com/{owner}/{repo}/pulls/{num}) | {title} | {age}d | @{author} |
### Severe (> 14 days no update)
| PR | Title | Age | Last Update |
|----|-------|-----|-------------|
| [#{num}](https://gitee.com/{owner}/{repo}/pulls/{num}) | {title} | {age}d | {days}d ago |
### Moderate (> 7 days no review)
| PR | Title | Age |
|----|-------|-----|
| [#{num}](https://gitee.com/{owner}/{repo}/pulls/{num}) | {title} | {age}d |
### Summary
- Critical: {count}
- Severe: {count}
- Moderate: {count}
- Fresh: {count}
使用例
例 1:基本的な確認
User: "Check for stale PRs in myrepo"
AI: Scanning myrepo...
Found 10 open PRs:
- 2 Critical (> 28 days)
- 3 Severe (> 14 days)
- 5 Moderate (> 7 days)
[Shows report]
例 2:特定の作成者を確認する
User: "Are there any stale PRs from @alice?"
AI: Found 2 stale PRs from @alice:
- PR #42: 25 days old, needs rebase
- PR #45: 12 days old, waiting for review
注意事項
- 対応が遅れている PR に言及する際は、配慮のある表現を使用してください
- デフォルトではボットの PR(dependabot、renovate)を除外してください
- 「wip」、「draft」、「on-hold」ラベルを尊重してください
コメント
Markdown 対応