option

Suivez une demande de fusion ou un cycle de revue jusqu'à ce qu'elle soit prête à être fusionnée. Utilisez cette option lorsque vous êtes chargé de surveiller, de contrôler ou de vérifier régulièrement les commentaires et les revues de la demande de fusion, ainsi que l'intégration continue (CI), jusqu'à ce que tous les problèmes susceptibles d'être traités soient résolus.

...Développer tout
16
Heure mise à jour 26 août 2026

À propos de babysit

Surveille une demande de tirage (pull request) ou un cycle de revue jusqu'à ce qu'elle soit véritablement prête à être fusionnée, en continuant à vérifier plutôt qu'en s'arrêtant après un seul passage tant que des commentaires ou des fils de revue restent non résolus. Le workflow identifie le numéro de la PR, la branche et la branche de base, confirme que la PR n'est pas un brouillon, et inspecte la possibilité de fusion, les vérifications (checks), la décision de revue, les commentaires et les fils de revue. Les vérifications en attente sont surveillées jusqu'à leur achèvement, avec un sondage (polling) à un intervalle pratique d'environ 30 à 60 secondes, sauf si l'utilisateur demande une fréquence différente. Les nouveaux commentaires et les fils de revue non résolus sont lus, les résumés du bot étant traités comme des résultats utiles mais actionnables, vérifiés par rapport au code.

Les problèmes réels sont corrigés dans des commits ciblés, des tests ou des builds pertinents sont exécutés, les modifications sont poussées, et le cycle revient à réinspecter l'état. Les fils de revue obsolètes ne sont résolus qu'après avoir vérifié que le code ou l'artefact généré adresse désormais le commentaire. Le processus s'arrête uniquement lorsque les vérifications passent ou sont intentionnellement ignorées, que la décision de revue est acceptable, qu'il ne reste aucun commentaire actionnable et qu'il ne reste aucun fil de revue non résolu.

La compétence fournit des recettes concrètes pour la CLI GitHub et GraphQL. gh pr view avec une liste de champs JSON donne un état grossier incluant l'état, le statut de brouillon, la possibilité de fusion, mergeStateStatus, reviewDecision, headRefOid et statusCheckRollup. Le propriétaire et le nom du référentiel sont résolus avec gh repo view et jq avant les requêtes GraphQL. Les fils de revue non résolus sont récupérés avec une requête GraphQL reviewThreads qui inclut pageInfo pour la pagination, avec une boucle documentée qui parcourt les résultats en utilisant endCursor tant que hasNextPage est vrai et filtre les fils non résolus avec jq. Une mutation resolveReviewThread résout un fil uniquement lorsque la correction est vérifiée. Les règles de fonctionnement incluent le maintien du watcher en cours d'exécution pendant les longues vérifications, la confirmation de la pertinence des problèmes signalés par le bot par rapport au code obsolète ou actuel, la vérification que le code source et les artefacts générés concordent avant de résoudre, l'effectuer un dernier balayage frais, et rapporter des preuves concrètes telles que le SHA du dernier commit, les résultats des vérifications, le nombre de fils non résolus, les tests exécutés et tout fichier local modifié non traité.

FAQ

Quand la compétence cesse-t-elle de surveiller une PR ?

Uniquement lorsque les vérifications passent ou sont intentionnellement ignorées, que la décision de revue est acceptable, qu'il ne reste aucun commentaire actionnable et qu'il ne reste aucun fil de revue non résolu. Elle ne s'arrête pas après un seul passage de vérification si des fils sont toujours ouverts.

À quelle fréquence effectue-t-elle un sondage d'état ?

À un intervalle pratique, généralement de 30 à 60 secondes, sauf si l'utilisateur demande une fréquence différente. Le watcher est maintenu en cours d'exécution tant que les longues vérifications sont toujours en attente.

Comment trouve-t-elle les fils de revue non résolus ?

Avec une requête GraphQL reviewThreads qui inclut pageInfo, en parcourant les résultats en utilisant le endCursor précédent tant que hasNextPage est vrai, puis en filtrant les fils où isResolved est faux avec jq.

Quand est-il sûr de résoudre un fil de revue obsolète ?

Uniquement après avoir vérifié que le code ou l'artefact généré adresse désormais le commentaire, en utilisant la mutation resolveReviewThread. Pour les fichiers générés distribués, le code source et l'artefact généré doivent être confirmés comme concordants en premier.

Que doit-on rapporter à la fin ?

Des preuves concrètes : le SHA du dernier commit, les noms et résultats des vérifications, le nombre de fils non résolus, les tests exécutés, et tout fichier local modifié laissé intact, après avoir effectué un dernier balayage frais de l'état de la PR, des fils, des commentaires récents et de l'état git.

Voir sur 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.

Tous les fichiers

0 fichiers

Installer babysit

Téléchargez et extrayez les fichiers de compétences dans votre répertoire .claude/skills/.

Télécharger le ZIP

Clonez le dépôt et copiez les fichiers de compétence dans votre projet.

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

Copier Copier
Configuration rapide: Copiez le dossier de la compétence dans .claude/skills/Claude détectera et utilisera automatiquement la compétence

Compétences similaires

code-simplify
Heure mise à jour 2 juillet 2026
requesting-code-review
Heure mise à jour 29 juin 2026
Git Commit Helper
Heure mise à jour 29 juin 2026
commit-standards
Heure mise à jour 29 juin 2026
OR