オプション

プルリクエストまたはレビューサイクルを、マージ可能になるまで監視します。PRのコメント、レビュー、CIをすべて確認し、対応すべき問題がすべて解決されるまで、監視や確認を依頼された場合に使用します。

...すべて拡張します
16
更新された時間 2026年8月26日

ベビーシットについて

実際にマージ可能な状態になるまで、プルリクエストまたはレビューサイクルを監視し、コメントやレビュースレッドが未解決のままの場合、単一の確認で停止するのではなく、継続してチェックを行います。このワークフローは、PR番号、ブランチ、ベースブランチを特定し、PRがドラフトでないことを確認し、マージ可能性、チェック、レビューの決定、コメント、およびレビュースレッドを検査します。保留中のチェックは、ユーザーが異なる間隔を指定しない限り、実用的な約30〜60秒の間隔でポーリングして完了するまで監視されます。新しいコメントと未解決のレビュースレッドが読み取られ、ボットによるサマリーは有用な情報として扱われますが、コードに対して検証可能な実行可能な発見として扱われます。

実際の問題は集中的なコミットで修正され、関連するテストやビルドが実行され、変更がプッシュされ、サイクルはステータスの再検査に戻ります。コードまたは生成されたアーティファクトがコメントに対処していることが確認されて初めて、古いレビュースレッドは解決されます。このプロセスは、チェックがパスしているか意図的にスキップされ、レビューの決定が受け入れ可能であり、実行可能なコメントが残っておらず、未解決のレビュースレッドが残っていない場合にのみ停止します。

このスキルは、具体的なGitHub CLIおよびGraphQLのレシピを提供します。gh pr viewにJSONフィールドリストを指定すると、状態、ドラフトステータス、マージ可能性、mergeStateStatusreviewDecisionheadRefOid、およびstatusCheckRollupを含む大まかなステータスが取得されます。リポジトリのオーナーと名前は、GraphQLクエリ前にgh repo viewおよびjqを使用して解決されます。未解決のレビュースレッドは、ページネーション用のpageInfoを含むreviewThreads GraphQLクエリで取得され、hasNextPageがtrueの間、endCursorを使用して結果をページネートする文書化されたループにより、jqで未解決のスレッドがフィルタリングされます。resolveReviewThreadミューテーションは、修正が検証された場合にのみスレッドを解決します。運用ルールには、長時間のチェック中にウォッチャーを実行し続けます、ボットが報告した問題が古いコードまたは現在のコードに反するかどうかを確認します、解決する前にソースと生成されたアーティファクトが一致していることを確認します、新鮮な最終スキャンを実行し、最新のコミットSHA、チェック結果、未解決スレッド数、実行されたテスト、および汚れたローカルファイルなどの具体的な証拠を報告することが含まれます。

よくある質問

このスキルはいつPRの監視を停止しますか?

チェックがパスしているか意図的にスキップされ、レビューの決定が受け入れ可能であり、実行可能なコメントが残っておらず、未解決のレビュースレッドが残っていない場合のみです。スレッドがまだ開いている場合、単一のチェックパス後に停止することはありません。

ステータスのポーリングはどのくらいの頻度で行われますか?

ユーザーが異なる間隔を要求しない限り、実用的な間隔、通常は30〜60秒です。長時間のチェックが保留中の間は、ウォッチャーは実行され続けます。

未解決のレビュースレッドはどのように見つけられますか?

pageInfoを含むGraphQLのreviewThreadsクエリを使用し、hasNextPageがtrueの間、前のendCursorを使用して結果をページネートし、その後、jqisResolvedがfalseのスレッドをフィルタリングします。

古いレビュースレッドを解決するのはいつ安全ですか?

resolveReviewThreadミューテーションを使用して、コードまたは生成されたアーティファクトがコメントに対処していることが確認された後のみです。分散された生成ファイルの場合、ソースと生成されたアーティファクトが最初に一致していることを確認する必要があります。

最終的に何を報告すべきですか?

具体的な証拠:最新のコミットSHA、チェック名と結果、未解決スレッド数、実行されたテスト、および untouched のまま残っている汚れたローカルファイル。これらは、PRのステータス、スレッド、最近のコメント、およびgitステータスの新鮮なスキャンを1回行った後に行われます。

GitHubで見る

Stay with the PR until it is actually clean. Do not stop after one check pass if comments or review threads are still unresolved.

Workflow

  1. Identify the PR number, branch, and base branch.
  2. Confirm the PR is not draft and inspect mergeability, checks, review decision, comments, and review threads.
  3. Watch pending checks until they finish. Poll at a practical interval, usually 30-60 seconds unless the user asks for a different cadence.
  4. Read new comments and unresolved review threads. Treat bot summaries as useful, but verify actionable findings against the code.
  5. Fix real issues in focused commits, run relevant tests/builds, push, and return to step 2.
  6. Resolve stale review threads only after verifying the code or generated artifact now addresses the comment.
  7. Stop only when checks are passing or intentionally skipped, review decision is acceptable, no actionable comments remain, and no unresolved review threads remain.

GitHub CLI Checks

Use gh pr view for the coarse status:

gh pr view <number> --json \  number,state,isDraft,mergeable,mergeStateStatus,reviewDecision,headRefOid,statusCheckRollup,url

Resolve the repository owner/name before using GraphQL:

repo_json=$(gh repo view --json owner,name)owner=$(jq -r '.owner.login // .owner.name' <<<"$repo_json")repo=$(jq -r '.name' <<<"$repo_json")

Use GraphQL for unresolved review threads. Include pageInfo; omit cursor on the first page, then pass the previous endCursor with -f cursor="$cursor" while hasNextPage is true.

gh api graphql \  -f query='query($owner:String!,$repo:String!,$number:Int!,$cursor:String){repository(owner:$owner,name:$repo){pullRequest(number:$number){reviewThreads(first:100,after:$cursor){pageInfo{hasNextPage endCursor}nodes{id,isResolved,isOutdated,path,line,comments(last:1){nodes{author{login},body,createdAt,url}}}}}}}' \  -f owner="$owner" -f repo="$repo" -F number=<number>

Use this loop when a PR may have many review threads:

thread_query='query($owner:String!,$repo:String!,$number:Int!,$cursor:String){repository(owner:$owner,name:$repo){pullRequest(number:$number){reviewThreads(first:100,after:$cursor){pageInfo{hasNextPage endCursor}nodes{id,isResolved,isOutdated,path,line,comments(last:1){nodes{author{login},body,createdAt,url}}}}}}}'cursor_args=()while :; do  page=$(gh api graphql -f query="$thread_query" -f owner="$owner" -f repo="$repo" -F number=<number> "${cursor_args[@]}")  printf '%s' "$page" | jq -r '.data.repository.pullRequest.reviewThreads.nodes[]    | select(.isResolved==false)    | [.id,.path,(.line//""),(.isOutdated|tostring),(.comments.nodes[-1].author.login//""),(.comments.nodes[-1].body|gsub("";" ")|.[0:240])]    | @tsv'  jq -e '.data.repository.pullRequest.reviewThreads.pageInfo.hasNextPage' >/dev/null <<<"$page" || break  cursor=$(jq -r '.data.repository.pullRequest.reviewThreads.pageInfo.endCursor' <<<"$page")  cursor_args=(-f cursor="$cursor")done

Filter unresolved threads with jq:

jq -r '.data.repository.pullRequest.reviewThreads.nodes[]  | select(.isResolved==false)  | [.id,.path,(.line//""),(.isOutdated|tostring),(.comments.nodes[-1].author.login//""),(.comments.nodes[-1].body|gsub("";" ")|.[0:240])]  | @tsv'

Resolve a stale thread only when the fix is verified:

gh api graphql \  -f query='mutation($threadId:ID!){resolveReviewThread(input:{threadId:$threadId}){thread{id,isResolved}}}' \  -f threadId=<thread-id>

Operating Rules

  • Keep the watcher running while long checks are pending.
  • If a generated file is part of the distribution, verify the source and generated artifact agree before resolving comments.
  • If a bot reports an issue against stale code, confirm whether the thread is outdated or addressed in the latest head.
  • Before final reporting, do one fresh sweep of PR status, unresolved threads, recent comments, and local git status.
  • Report concrete evidence: latest commit SHA, check names and results, unresolved thread count, tests run, and any dirty local files left untouched.

すべてのファイル

0件のファイル

babysitをインストール

スキルファイルをダウンロードして、.claude/skills/ ディレクトリに展開してください。

ZIPをダウンロード

リポジトリをクローンし、スキルファイルをプロジェクトにコピーしてください。

git clone https://github.com/thedotmack/claude-mem/blob/main/plugin/skills/babysit/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

コピー コピー
クイックセットアップ: スキルフォルダを .claude/skills にコピーしてください。Claude はそのスキルを自動的に検出し、使用します。
リポジトリ thedotmack/claude-mem

関連スキル

code-simplify
更新された時間 2026年7月2日
requesting-code-review
更新された時間 2026年6月29日
Git Commit Helper
更新された時間 2026年6月29日
commit-standards
更新された時間 2026年6月29日
OR