CH

check-review-backlog

Finds PR review comments that remain unresolved for a configurable number of days.

Install

mkdir -p .claude/skills/check-review-backlog && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14689" && unzip -o skill.zip -d .claude/skills/check-review-backlog && rm skill.zip

Installs to .claude/skills/check-review-backlog

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

PR 作成直後の review チェック / 全 open PR の未解決 review thread (isResolved=false) を gh api graphql で集計し、 N 日以上未対応のものを backlog として表示する。 `--pr <N>` で単一 PR の review 即時確認 (PR 作成 chain で発動)、 引数なしで全 PR backlog 監視。 `/loop /check-review-backlog` で週次監視に利用可能。 read-only (POST / mutation なし)。
270 charsno explicit “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Beginner

Key capabilities

  • Check a single PR for unresolved review threads
  • Monitor all open PRs for unresolved review threads
  • Filter unresolved threads by age (days)
  • Filter unresolved threads by specific reviewer
  • Generate a report of review backlog

How it works

The skill queries GitHub's GraphQL API to collect unresolved review threads from open PRs. It then filters these threads based on age and author, and presents them in a structured report.

Inputs & outputs

You give it
Optional PR number, optional number of days, optional author login
You get back
Report of unresolved review threads, including PR title, reviewer, file path, days old, and URL

When to use check-review-backlog

  • Check for pending PR review comments
  • Monitor open PR backlogs
  • Review PR after initial creation

About this skill

Unresolved Review Backlog Monitor

全 open PR を走査して、未解決 (isResolved=false) の review thread のうち N 日以上経過しているものを backlog として集計する。レビュー対応漏れの早期警告が目的。

引数

  • --pr <N> (任意): 単一 PR の review 即時確認モード。 経過日数フィルタを無視し、 全未解決 thread を表示。 /create-pr skill から PR 作成直後に自動 chain される (例: /check-review-backlog --pr 496)
  • --days N (任意): 経過日数の閾値 (デフォルト: 7 日)。 --pr 指定時は無視
  • --author <login> (任意): 特定 reviewer (例: copilot-pull-request-reviewer) のコメントに絞る

実行前の確認

  • 現在時刻 (UTC): !date -u +"%Y-%m-%dT%H:%M:%SZ"
  • 引数: $ARGUMENTS

手順

フェーズ 0: モード判定

$ARGUMENTS を解析:

  • --pr <N> を含む: 単一 PR モード (PR 作成直後の auto chain 用)。 フェーズ 1 を skip、 フェーズ 2 を該当 PR 1 件で実行、 フェーズ 3 (日数フィルタ) を skip、 フェーズ 4 で「PR #N の未解決 thread 全件」レポート
  • それ以外: backlog 監視モード (週次運用)。 全 open PR を走査

フェーズ 1: Open PR 一覧取得 (backlog モードのみ)

gh pr list --state open --json number,title,createdAt,updatedAt --limit 50

各 open PR について、フェーズ 2 を実行する。

フェーズ 2: 未解決 thread の集計

各 PR について、GraphQL で未解決 review thread + 最初のコメントを取得:

gh api graphql -f query='
query($pr: Int!) {
  repository(owner: "ayutaz", name: "piper-plus") {
    pullRequest(number: $pr) {
      title
      reviewThreads(first: 50) {
        nodes {
          id
          isResolved
          comments(first: 1) {
            nodes {
              databaseId
              path
              line
              body
              createdAt
              author { login }
              url
            }
          }
        }
      }
    }
  }
}' -F pr=<PR_NUMBER> --jq '.data.repository.pullRequest | {
  title,
  unresolved: [.reviewThreads.nodes[] | select(.isResolved == false) | .comments.nodes[0]]
}'

フェーズ 3: 経過日数フィルタリング

各 thread の createdAt (ISO8601) と現在時刻を比較し、days_old >= --days のものを抽出:

# 概念 pseudocode (実際は bash + jq + date で実装)
from datetime import datetime, timezone
now = datetime.now(timezone.utc)
threshold_days = int(args.days or 7)
for thread in unresolved_threads:
    created = datetime.fromisoformat(thread["createdAt"].replace("Z", "+00:00"))
    days_old = (now - created).days
    if days_old >= threshold_days:
        backlog.append({**thread, "days_old": days_old})

--author 指定時は comment.author.login == args.author で更に絞る。

フェーズ 4: 集計レポート

backlog を以下の形式で表示 (経過日数の降順):

## Review Backlog (>= <N> days unresolved)

| PR | Title | Reviewer | path:line | Days | URL |
|----|-------|----------|-----------|------|-----|
| #489 | feat: ... | Copilot | src/foo.py:42 | 21 | https://github.com/.../discussion_r... |
| #501 | fix: ...  | human   | docs/bar.md:10 | 9  | https://github.com/.../discussion_r... |
| ... | ...     | ...     | ...           | ... | ...                                  |

Total: <N> threads across <M> PRs

### 統計
- Copilot bot: <n> threads (<x%>)
- Human reviewers: <n> threads (<x%>)
- 最古: PR #<N>, <days> 日経過

backlog が空の場合: OK: 全 open PR で <N> 日以上未対応の review thread はありません。

フェーズ 5: 推奨アクション

状況推奨
backlog ≥ 5 件該当 PR の owner に /reply-review <PR> 実行を促す。Copilot ノイズが多ければ --skip-copilot-style 併用
30 日以上の thread あり該当 PR の状態を確認 (draft / stale / abandoned)。close / resolve 判断を促す
Copilot bot 比率 ≥ 60%/reply-review <PR> --skip-copilot-style を案内
単一 PR で 10+ unresolvedその PR の review 状況が悪化中。優先対応

継続監視モード

/loop /check-review-backlog          # 自動 pace (週次目安)
/loop 24h /check-review-backlog      # 24 時間ごと
/loop /check-review-backlog --days 3  # 3 日閾値で監視

使用例

# 7 日以上未対応の thread を一覧 (デフォルト)
/check-review-backlog

# 3 日以上に閾値を厳しく
/check-review-backlog --days 3

# Copilot コメントのみ
/check-review-backlog --author copilot-pull-request-reviewer

# 週次監視
/loop /check-review-backlog

注意事項

  • read-only: 本 skill は POST/mutation を一切行わない。集計と表示のみ
  • rate limit: 50 open PR × GraphQL query で ~50 req、GitHub API 制限 (5000/h) 内
  • タイムゾーン: createdAt は UTC。日数計算は UTC 基準
  • fork PR: 外部 contributor の fork PR も含む
  • draft PR: 集計対象 (draft でも review コメントが付くため)
  • 集計結果は scrollable な table で、ユーザが目視で優先度判定する想定

期待効果

  • レビュー対応漏れの可視化 (memory feedback_copilot_stale_review の延長線上)
  • /reply-review 実行のトリガとして利用 (どの PR を優先対応すべきか判断材料)
  • 長期 unresolved の発見 → PR の active/abandoned 判定を促進

When not to use it

  • When the user needs to modify PRs or review threads
  • When the user needs to check resolved review threads
  • When the user needs to check PRs that are not open

Limitations

  • The skill is read-only and does not perform POST/mutation operations
  • Limited by GitHub API rate limits (5000 requests/hour)
  • Results are presented as a scrollable table for user's visual priority assessment

How it compares

This skill automates the identification and reporting of stale review comments across multiple PRs, providing an overview that would otherwise require manual inspection of each PR.

Compared to similar skills

check-review-backlog side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
check-review-backlog (this skill)03moReviewBeginner
resolve-conflicts818moReviewIntermediate
dependency-upgrade265moReviewIntermediate
git-commits214moNo flagsBeginner

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry