Que fait clawsweeper ?
ClawSweeper réside dans ~/Projects/clawsweeper. C'est l'unique
bot de maintenance d'OpenClaw pour les opérations de sweep, les tâches de réparation et les PR de correction vérifiées.
Utilisez cette compétence à chaque fois que vous êtes interrogé sur des rapports, des conclusions, l'état des dispatchs,
la création de PR de réparation/cloud, les commandes de commentaire, l'automerge, les permissions ou les portes.
Démarrage
Inspectez git status --short --branch dans le répertoire de travail ClawSweeper. Les demandes de statut et de
rapport restent en lecture seule : utilisez les rapports actuels et les API de lecture en direct lorsque
la fraîcheur est importante, sans tirer ni construire juste pour les inspecter.
Pour une implémentation ou une exécution autorisée, mettez à jour un répertoire de travail propre et dédié à la tâche et ne construisez que lorsque la commande sélectionnée en a besoin. Préservez les modifications non liées et les workflows actifs des autres opérateurs.
Un Bot, Une Application
Utilisez le dépôt ClawSweeper et l'application GitHub clawsweeper. Utilisez uniquement
la configuration CLAWSWEEPER_* pour cette automatisation. N'utilisez pas d'applications,
de variables, d'étiquettes ou de compétences héritées.
Configuration requise de l'application :
CLAWSWEEPER_APP_CLIENT_ID: ID client public de l'application pourclawsweeper.CLAWSWEEPER_APP_PRIVATE_KEY: clé privée utilisée uniquement à l'intérieur des étapesactions/create-github-app-token.- Permissions de l'application cible : lire le contexte de scan cible ; écrire les issues et les pull
requests ; écrire le contenu pour les commits de rapport, les branches de réparation et les entrées
de workflow ; écrire Actions sur
openclaw/clawsweeperpour le dispatch de re-revue du routeur de commentaires, le dispatch de workflow, l'annulation d'exécution et l'auto-guérison.
Limite des jetons :
- Les travailleurs Codex n'obtiennent pas d'informations d'identification de mutation.
- Les travailleurs de révision s'exécutent avec les variables d'environnement de secret/jeton dépouillées.
- Les scripts déterministes possèdent les commentaires, les étiquettes, les push de branche, la création de PR, les fermetures et les fusions via des jetons d'application GitHub de courte durée.
- Les portes de fusion et d'écriture sont par défaut fermées.
Révisions de Commits Hébergées
Les rapports par commit hébergés et les vérifications de commit Check Runs sont retirés. Pour la révision
hors ligne conservée d'une branche commitée, utilisez pnpm local-review -- --base main.
$autoreview --mode commit --commit <sha> reste un chemin de révision séparé à usage général.
Rapports de Sweep
Les rapports Issues/PR se trouvent ici :
records/<slug-du-dépôt>/items/<numéro>.md
records/<slug-du-dépôt>/closed/<numéro>.md
Commencez par des comptes, des conclusions concrètes et des liens vers les rapports. Ne publiez pas de commentaires non sollicités sur GitHub à partir d'un travail de lecture de rapport. Les surfaces publiques sont les rapports markdown, les commentaires de révision durables de ClawSweeper et les vérifications optionnelles.
Les rapports PR incluent des reviewFindings de style /review de Codex avec priorité,
confiance, fichier relatif au dépôt et plage de lignes. Les commentaires publics de PR montrent une
courte liste Review findings: lorsque des conclusions existent ; les commentaires de révision complets,
les preuves, les propriétaires probables et les détails d'exécution restent à l'intérieur du bloc
Review details réduit.
Pour une simple demande de statut, lisez les rapports existants et l'état limité du workflow en direct.
Utilisez pnpm run audit uniquement pour un audit complet demandé.
La réconciliation est une mutation autorisée séparée : pnpm run reconcile brut
déplace/supprime les fichiers de rapport et de plan de travail. Inspectez son dry-run uniquement lorsque
cette tâche de maintenance est demandée ; n'exécutez pas la réconciliation pendant les lectures de statut/rapport.
De même, apply-decisions appartient à un workflow d'application explicitement autorisé, commençant par son dry-run.
Créer une Tâche de Réparation
Créez une tâche à partir de références issues/PR et d'un prompt de mainteneur :
pnpm run repair:create-job -- \
--repo openclaw/openclaw \
--refs 123,456 \
--prompt-file /tmp/clawsweeper-prompt.md
Créez à partir d'un rapport ClawSweeper existant :
pnpm run repair:create-job -- \
--from-report ../clawsweeper/records/openclaw-openclaw/items/123.md
Le créateur de tâche vérifie la présence d'une PR ouverte existante, d'une correspondance de corps ou d'une branche
clawsweeper/<cluster-id> distante avant d'écrire une autre tâche. Utilisez --dry-run
pour inspecter. Utilisez --force uniquement après avoir décidé que la protection contre les doublons est obsolète.
Validez, commitez, puis dispatchez :
pnpm run repair:validate-job -- jobs/openclaw/inbox/clawsweeper-openclaw-openclaw-123.md
pnpm run repair:dispatch -- jobs/openclaw/inbox/clawsweeper-openclaw-openclaw-123.md \
--mode autonomous \
--runner blacksmith-4vcpu-ubuntu-2404 \
--execution-runner blacksmith-16vcpu-ubuntu-2404 \
--model gpt-6-astra
Ne dispatchez pas une tâche juste créée avant que le fichier de tâche ne soit commité et pushé ; le workflow lit le chemin de la tâche depuis GitHub.
PR de Remplacement
Pour une PR source utile mais non modifiable/obsolète/dangereuse, rendez le prompt du mainteneur explicite :
Considérez #123 comme un travail source utile. Si la branche source ne peut pas être mise à jour en toute sécurité
parce qu'elle est non modifiable, obsolète, uniquement en brouillon, non fusionnable ou dangereuse, créez une
PR de remplacement ClawSweeper étroite au lieu d'attendre. Préservez l'auteur de la PR source comme co-auteur,
mentionnez la PR source dans le corps de la PR de remplacement et fermez
uniquement cette PR source après l'ouverture de la PR de remplacement.
Le travailleur doit émettre repair_strategy=replace_uneditable_branch et lister
l'URL de la PR source dans source_prs. L'exécuteur déterministe ouvre ou met à jour
clawsweeper/<cluster-id>, ajoute les auteurs sources non-bot comme en-têtes Co-authored-by,
et ferme les PR sources remplacées uniquement après que le remplacement existe.
Portes
Modifiez les portes d'exécution uniquement sous autorisation explicite pour cette fenêtre. Enregistrez l'état d'origine et toute restauration convenue avant de le modifier :
gh variable set CLAWSWEEPER_ALLOW_EXECUTE --repo openclaw/clawsweeper --body 1
gh variable set CLAWSWEEPER_ALLOW_FIX_PR --repo openclaw/clawsweeper --body 1
gh variable set CLAWSWEEPER_ALLOW_MERGE --repo openclaw/clawsweeper --body 1
gh variable set CLAWSWEEPER_ALLOW_AUTOMERGE --repo openclaw/clawsweeper --body 1
Restaurez une porte uniquement lorsque la fenêtre autorisée inclut cette restauration et
que sa propriété/état correspondent toujours. Sinon, ne la modifiez pas ; une autre fenêtre active d'un mainteneur
peut intentionnellement la maintenir à 1. Ne réinitialisez jamais toutes les portes comme un nettoyage générique.
Portes importantes :
CLAWSWEEPER_ALLOW_EXECUTE: autorise les canaux d'écriture déterministes.CLAWSWEEPER_ALLOW_FIX_PR: autorise les PR de correction/remplacement de branche.CLAWSWEEPER_ALLOW_MERGE: autorise les applicateurs capables de fusion.CLAWSWEEPER_ALLOW_AUTOMERGE: autorise l'automerge du routeur de commentaires.CLAWSWEEPER_COMMENT_ROUTER_EXECUTE: permet au routage programmé des commentaires de poster des réponses et de dispatcher des réparations.
Mentions du Mainteneur
Préférez les commentaires @clawsweeper pour tout contrôle destiné au mainteneur. Les
commandes slash sont toujours analysées comme alias de compatibilité, mais les exemples et les conseils en direct
doivent utiliser les mentions.
@clawsweeper status
@clawsweeper re-review
@clawsweeper review
@clawsweeper fix ci
@clawsweeper address review
@clawsweeper rebase
@clawsweeper autofix
@clawsweeper automerge
@clawsweeper approve
@clawsweeper explain
@clawsweeper stop
@clawsweeper <question ou demande d'action sécurisée>
@clawsweeper[bot] re-review
@openclaw-clawsweeper fix ci
@openclaw-clawsweeper[bot] fix ci
Alias acceptés : review, re-review, rereview, review again,
rerun review et run review. review et re-review déclenchent une nouvelle
révision d'issue/PR ClawSweeper sans démarrer de réparation. fix ci,
address review et rebase déclenchent le
travailleur de réparation uniquement pour les PR ClawSweeper ou les PR ayant opté pour
clawsweeper:autofix ou clawsweeper:automerge. autofix exécute la boucle de révision/correction
limitée sans fusion. automerge exécute la boucle de révision/correction/fusion limitée,
mais les PR en brouillon restent en mode correction uniquement jusqu'à ce que GitHub les marque prêtes pour la révision.
Les mentions libres du mainteneur telles que @clawsweeper pourquoi l'automerge s'est-il arrêté ?
ou @clawsweeper : pouvez-vous expliquer cet échec ? déclenchent une révision d'assistance
en lecture seule avec le texte de la mention comme instructions ponctuelles. La réponse apparaît dans le
prochain commentaire de révision public de ClawSweeper. Un texte qui semble être une action ne mute pas directement
GitHub ; il doit correspondre aux recommandations structurées existantes et passer les portes déterministes
normales.
Mainteneurs acceptés par défaut : OWNER, MEMBER, COLLABORATOR ; la permission de dépôt
de repli accepte admin, maintain ou write. Les commentaires des contributeurs sont ignorés sans réponse.
Exécutez le routeur manuellement :
pnpm run repair:comment-router -- --repo openclaw/openclaw --lookback-minutes 180
pnpm run repair:comment-router -- --repo openclaw/openclaw --execute --wait-for-capacity
Le routage programmé reste en dry-run sauf si
CLAWSWEEPER_COMMENT_ROUTER_EXECUTE=1.
Autofix et Automerge Approuvés
@clawsweeper autofix opte une PR existante dans la boucle de révision/correction limitée.
@clawsweeper automerge opte une PR existante dans la boucle de révision/correction/fusion limitée.
Le routeur :
- vérifie l'autorisation du mainteneur ;
- étiquette la PR
clawsweeper:autofixouclawsweeper:automerge; - déclenche une révision ClawSweeper pour le SHA de tête actuel ;
- crée ou réutilise une tâche adoptée durable ;
- corrige au maximum les limites configurées ;
- ne fusionne jamais les PR autofix ou les PR en brouillon ;
- fusionne les PR automerge uniquement lorsque ClawSweeper a approuvé la tête actuelle exacte, les vérifications sont vertes, GitHub indique fusionnable, aucune étiquette de révision humaine n'est présente, la PR n'est pas en brouillon et les deux portes de fusion sont ouvertes.
Un changelog manquant n'est jamais une conclusion de révision ou un bloqueur de fusion. CHANGELOG.md est réservé aux versions ; enregistrez le contexte de note de version destinée à l'utilisateur dans le corps de la PR ou le message de squash, ne modifiez jamais le changelog pour les réparations normales.
Si ClawSweeper approuve alors que les portes de fusion sont fermées, il étiquette
clawsweeper:merge-ready et commente au lieu de fusionner. @clawsweeper stop
ajoute clawsweeper:human-review.
Lorsqu'on vous demande de créer une PR et d'activer l'automerge ClawSweeper, ne
laissez pas le répertoire de travail local OpenClaw sur la branche de la PR. Après la création de la PR,
le push, et la demande @clawsweeper automerge postée ou autrement
confirmée, revenez au répertoire de travail local sur main et avancez-le rapidement lorsque l'arbre
de travail est propre :
git switch main
git pull --ff-only
Si des modifications locales non liées ou un rebase en cours empêchent le changement, signalez le bloqueur au lieu de stash, supprimer ou écraser le travail.
Limites de correction :
CLAWSWEEPER_MAX_REPAIRS_PER_PR=10
CLAWSWEEPER_MAX_REPAIRS_PER_HEAD=1
Périmètre de Sécurité
Ne mettez pas en scène un travail sensible à la sécurité non approuvé pour la réparation ClawSweeper. Acheminez les rapports de vulnérabilité, le travail CVE/GHSA/avis, les secrets/ jetons/clés divulgués, le stockage en texte clair des secrets, SSRF, XSS, CSRF, RCE, contournement d'authentification, élévation de privilège et exposition de données sensibles vers le traitement central de sécurité d'OpenClaw.
Pour les PR ayant explicitement opté pour clawsweeper:autofix ou
clawsweeper:automerge, les conclusions de révision sensibles à la sécurité peuvent déclencher une
réparation limitée, mais la fusion reste bloquée jusqu'à ce qu'une révision ultérieure de la tête exacte soit
propre et que les portes de fusion normales passent. Appuyez-vous sur les marqueurs de sécurité déterministes de ClawSweeper,
les étiquettes et le frontmatter de la tâche ; n'inférez pas le traitement de sécurité à partir d'un texte vague.
Surveillance
Workflows récepteurs :
gh run list --repo openclaw/clawsweeper --workflow sweep.yml \
--limit 12 --json databaseId,displayTitle,event,status,conclusion,createdAt,updatedAt,url
gh run list --repo openclaw/clawsweeper --workflow repair-cluster-worker.yml \
--limit 12 --json databaseId,displayTitle,event,status,conclusion,createdAt,updatedAt,url
gn run list --repo openclaw/clawsweeper --workflow repair-comment-router.yml \
--limit 12 --json databaseId,displayTitle,event,status,conclusion,createdAt,updatedAt,url
gn run list --repo openclaw/clawsweeper --workflow github-activity.yml \
--limit 12 --json databaseId,displayTitle,event,status,conclusion,createdAt,updatedAt,url
Dispatch cible :
gh run list --repo openclaw/openclaw --workflow "ClawSweeper Dispatch" \
--limit 8 --json databaseId,displayTitle,event,status,conclusion,headSha,url
Lecture des Sorties
Pour les conclusions ou les échecs, résumez :
- dépôt cible, élément/PR, exécution, chemin du rapport
- résultat, confiance, gravité et bloqueur exact
- fichiers affectés ou références de cluster
- commandes de validation et si elles ont réussi
- si les portes de mutation étaient ouvertes ou fermées
- prochaine action déterministe
Gardez le balai petit : un cluster, une branche, une PR, une preuve étroite, des preuves visibles par le propriétaire claires.