mcpField
S
stale-pr-reminder

stale-pr-reminder

github.com/oschina開発584 回インストール28 週間前に更新
リポジトリ

stale-pr-reminder について

stale-pr-reminderは、リポジトリのオープンなPull Requestを確認し、優先度付きレポートを作成するスキルです。経過日数、更新状況、レビュー、マージ競合を基に分類します。

主な機能

  1. 01停滞度に応じたPR分類
  2. 02作成日時と更新日時の確認
  3. 03レビューコメントと競合の考慮
  4. 04リンク付き分類レポートの作成
  5. 05ボットPRの既定除外

活用シーン

  1. 01期限超過PRの対応優先度付け
  2. 02レビュー待ちPRの特定
  3. 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 について:

  1. created_at を解析します(形式:YYYY-MM-DDTHH:MM:SSZ、例:2026-01-15T10:30:00Z)
  2. 同様に updated_at を解析します
  3. created_at から今日(2026-03-17)までの日数を計算します
  4. updated_at から今日までの日数を計算します
  5. mergeable: false(コンフリクトあり)かどうかを確認します
  6. 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」ラベルを尊重してください

コメント