¿Qué hace clawsweeper?
ClawSweeper se encuentra en ~/Projects/clawsweeper. Es el bot de mantenimiento
principal de OpenClaw para barridos, trabajos de reparación y PRs de corrección
controlados. Usa esta habilidad siempre que se te pregunte sobre informes,
resultados, salud de envíos, creación de PRs de reparación/nube, comandos de
comentarios, automerge, permisos o puertas.
Inicio
Inspecciona git status --short --branch en el checkout de ClawSweeper. Las
solicitudes de estado e informes permanecen en modo solo lectura: usa los
informes actuales y las APIs de lectura en vivo cuando la actualidad sea
importante, sin hacer pull ni compilar solo para inspeccionarlos.
Para implementación o ejecución autorizada, actualiza un checkout limpio asignado a la tarea y compila solo cuando el comando seleccionado lo necesite. Preserva las ediciones no relacionadas y los flujos de trabajo activos de otros operadores.
Un bot, una aplicación
Usa el repositorio de ClawSweeper y la aplicación de GitHub clawsweeper. Usa
solo la configuración CLAWSWEEPER_* para esta automatización. No uses
aplicaciones heredadas, variables, etiquetas ni habilidades.
Configuración requerida de la aplicación:
CLAWSWEEPER_APP_CLIENT_ID: ID de cliente público de la aplicación paraclawsweeper.CLAWSWEEPER_APP_PRIVATE_KEY: clave privada usada solo dentro de los pasosactions/create-github-app-token.- Permisos de la aplicación de destino: lectura del contexto de escaneo de
destino; escritura en issues y pull requests; escritura de contenidos para
confirmaciones de informes, ramas de reparación y entradas de flujo de trabajo;
escritura de Actions en
openclaw/clawsweeperpara el reenvío de revisión del enrutador de comentarios, envío de flujo de trabajo, cancelación de ejecución y autocuración.
Límite de tokens:
- Los trabajadores de Codex no reciben credenciales de mutación.
- Los trabajadores de revisión se ejecutan con el entorno de token/secret vacío.
- Los scripts deterministas gestionan comentarios, etiquetas, envíos a ramas, creación de PRs, cierres y fusiones a través de tokens de aplicación de GitHub de corta duración.
- Las puertas de fusión y escritura están cerradas por defecto.
Revisiones de confirmaciones alojadas
Los informes por confirmación y las ejecuciones de verificación de confirmaciones
están retirados. Para la revisión fuera de línea de una rama confirmada, usa
pnpm local-review -- --base main.
$autoreview --mode commit --commit <sha> sigue siendo una ruta de revisión
general separada.
Informes de barrido
Los informes de Issues/PRs se encuentran en:
records/<repo-slug>/items/<number>.md
records/<repo-slug>/closed/<number>.md
Comienza con recuentos, hallazgos concretos y enlaces a informes. No publiques comentarios no solicitados en GitHub a partir del trabajo de lectura de informes. Las superficies públicas son informes en markdown, comentarios de revisión duraderos de ClawSweeper y verificaciones opcionales.
Los informes de PR incluyen reviewFindings al estilo de /review de Codex
con prioridad, confianza, archivo relativo al repositorio y rango de líneas.
Los comentarios públicos de PR muestran una lista breve Hallazgos de revisión:
cuando existen hallazgos; los comentarios de revisión completos, enlaces a
evidencia, propietarios probables y detalles de ejecución permanecen dentro del
bloque colapsado Detalles de revisión.
Para una solicitud de estado simple, lee los informes existentes y el estado
del flujo de trabajo en vivo acotado. Usa pnpm run audit solo para una
auditoría completa solicitada.
La reconciliación es una mutación autorizada separada: pnpm run reconcile
sin argumentos mueve/elimina archivos de informe y plan de trabajo. Inspecciona
su ejecución en seco solo cuando se solicite esa tarea de mantenimiento; no
ejecutes la reconciliación durante lecturas de estado/informe. Del mismo modo,
apply-decisions pertenece a un flujo de trabajo de aplicación explícitamente
autorizado, comenzando con su ejecución en seco.
Crear un trabajo de reparación
Crea un trabajo a partir de referencias de issues/PRs y un prompt de mantenedor:
pnpm run repair:create-job -- \
--repo openclaw/openclaw \
--refs 123,456 \
--prompt-file /tmp/clawsweeper-prompt.md
Crea a partir de un informe existente de ClawSweeper:
pnpm run repair:create-job -- \
--from-report ../clawsweeper/records/openclaw-openclaw/items/123.md
El creador de trabajos verifica si existe un PR abierto, una coincidencia en el
cuerpo o una rama remota clawsweeper/<cluster-id> antes de escribir otro
trabajo. Usa --dry-run para inspeccionar. Usa --force solo después de
decidir que la protección contra duplicados está obsoleta.
Valida, confirma y luego envía:
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
No envíes un trabajo recién creado antes de que el archivo de trabajo esté confirmado y enviado; el flujo de trabajo lee la ruta del trabajo desde GitHub.
PRs de reemplazo
Para un PR fuente útil pero no editable/obsoleto/inseguro, haz explícito el prompt del mantenedor:
Trata #123 como trabajo fuente útil. Si la rama fuente no se puede actualizar de
forma segura porque no es editable, está obsoleta, es solo borrador, no se puede
fusionar o es insegura, crea un PR de reemplazo estrecho de ClawSweeper en lugar
de esperar. Preserva al autor del PR fuente como coautor, acredita el PR fuente
en el cuerpo del PR de reemplazo y cierra solo ese PR fuente después de que se
abra el PR de reemplazo.
El trabajador debe emitir repair_strategy=replace_uneditable_branch y listar
la URL del PR fuente en source_prs. El ejecutor determinista abre o actualiza
clawsweeper/<cluster-id>, agrega autores fuente que no son bots como
trailers Co-authored-by y cierra los PRs fuente superados solo después de que
exista el reemplazo.
Puertas
Cambia las puertas de ejecución solo bajo autorización explícita para esa ventana. Registra el estado original y cualquier restauración acordada antes de cambiarlo:
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
Restaura una puerta solo cuando la ventana autorizada incluya esa restauración
y su propiedad/estado aún coincidan. De lo contrario, déjala sin cambios; otra
ventana activa de mantenedor puede mantenerla intencionalmente en 1. Nunca
restablezcas todas las puertas como limpieza genérica.
Puertas importantes:
CLAWSWEEPER_ALLOW_EXECUTE: permite los carriles de escritura deterministas.CLAWSWEEPER_ALLOW_FIX_PR: permite PRs de reparación/reemplazo de ramas.CLAWSWEEPER_ALLOW_MERGE: permite aplicadores con capacidad de fusión.CLAWSWEEPER_ALLOW_AUTOMERGE: permite el automerge del enrutador de comentarios.CLAWSWEEPER_COMMENT_ROUTER_EXECUTE: permite que el enrutamiento de comentarios programado publique respuestas y envíe reparaciones.
Menciones a mantenedores
Prefiere los comentarios @clawsweeper para todo el control orientado a
mantenedores. Los comandos de barra aún se analizan como alias de
compatibilidad, pero los ejemplos y la guía en vivo deben usar menciones.
@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 <pregunta o solicitud de acción segura>
@clawsweeper[bot] re-review
@openclaw-clawsweeper fix ci
@openclaw-clawsweeper[bot] fix ci
Alias aceptados: review, re-review, rereview, review again,
rerun review y run review. review y re-review envían una revisión
nueva de issue/PR de ClawSweeper sin iniciar reparación. fix ci,
address review y rebase envían el trabajador de reparación solo para PRs
de ClawSweeper o PRs que hayan optado por clawsweeper:autofix o
clawsweeper:automerge. autofix ejecuta el bucle de revisión/corrección
acotado sin fusionar. automerge ejecuta el bucle de revisión/corrección/fusión
acotado, pero los PRs en borrador permanecen solo en modo de corrección hasta
que GitHub los marque como listos para revisión.
Las menciones de forma libre a mantenedores, como @clawsweeper why did automerge stop? o @clawsweeper: can you explain this failure?, envían una revisión de
asistencia de solo lectura con el texto de la mención como instrucciones
únicas. La respuesta aparece en el siguiente comentario de revisión pública de
ClawSweeper. El texto con apariencia de acción no muta directamente GitHub;
debe asignarse a recomendaciones estructuradas existentes y pasar las puertas
deterministas normales.
Mantenedores aceptados por defecto: OWNER, MEMBER, COLLABORATOR; el
permiso de repositorio alternativo acepta admin, maintain o write. Los
comentarios de colaboradores se ignoran sin respuesta.
Ejecuta el enrutador manualmente:
pnpm run repair:comment-router -- --repo openclaw/openclaw --lookback-minutes 180
pnpm run repair:comment-router -- --repo openclaw/openclaw --execute --wait-for-capacity
El enrutamiento programado permanece en seco a menos que
CLAWSWEEPER_COMMENT_ROUTER_EXECUTE=1.
Autofix y Automerge de confianza
@clawsweeper autofix habilita un PR existente en el bucle de
revisión/corrección acotado. @clawsweeper automerge habilita un PR existente
en el bucle de revisión/corrección/fusión acotado. El enrutador:
- verifica la autorización del mantenedor;
- etiqueta el PR como
clawsweeper:autofixoclawsweeper:automerge; - envía una revisión de ClawSweeper para el SHA actual de la cabecera;
- crea o reutiliza un trabajo adoptado duradero;
- repara como máximo los límites configurados;
- nunca fusiona PRs de autofix ni PRs en borrador;
- fusiona PRs de automerge solo cuando ClawSweeper haya aprobado la cabecera exacta actual, las verificaciones estén en verde, GitHub indique que se puede fusionar, no haya una etiqueta de revisión humana, el PR no sea un borrador y ambas puertas de fusión estén abiertas.
La falta de changelog nunca es un hallazgo de revisión ni un bloqueador de
fusión. CHANGELOG.md es solo para lanzamientos; registra el contexto de las
notas de lanzamiento visibles para el usuario en el cuerpo del PR o en el
mensaje de squash, nunca edites el changelog para reparaciones normales.
Si ClawSweeper aprueba mientras las puertas de fusión están cerradas, etiqueta
clawsweeper:merge-ready y comenta en lugar de fusionar. @clawsweeper stop
agrega clawsweeper:human-review.
Cuando se te pida crear un PR y habilitar el automerge de ClawSweeper, no
dejes el checkout local de OpenClaw en la rama del PR. Después de crear el PR,
enviarlo y publicar la solicitud @clawsweeper automerge o confirmarla de
otra manera, regresa el checkout local a main y haz un fast-forward cuando
el árbol de trabajo esté limpio:
git switch main
git pull --ff-only
Si hay ediciones locales no relacionadas o un rebase en curso que impiden el cambio, informa el bloqueador en lugar de ocultar, eliminar o sobrescribir el trabajo.
Límites de reparación:
CLAWSWEEPER_MAX_REPAIRS_PER_PR=10
CLAWSWEEPER_MAX_REPAIRS_PER_HEAD=1
Límite de seguridad
No prepares trabajo no aprobado sensible a la seguridad para ClawSweeper Repair. Dirige los informes de vulnerabilidad, trabajo de CVE/GHSA/asesoría, secretos/tokens/claves filtrados, almacenamiento de secretos en texto plano, SSRF, XSS, CSRF, RCE, bypass de autenticación, escalada de privilegios y exposición de datos sensibles al manejo central de seguridad de OpenClaw.
Para PRs que hayan optado explícitamente por clawsweeper:autofix o
clawsweeper:automerge, los hallazgos de revisión sensibles a la seguridad
pueden enviar reparaciones acotadas, pero la fusión permanece bloqueada hasta
que una revisión posterior de la cabecera exacta esté limpia y las puertas de
fusión normales pasen. Confía en los marcadores de seguridad deterministas de
ClawSweeper, las etiquetas y el frontmatter del trabajo; no infieras el manejo
de seguridad a partir de prosa vaga.
Monitoreo
Flujos de trabajo receptores:
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
gh run list --repo openclaw/clawsweeper --workflow repair-comment-router.yml \
--limit 12 --json databaseId,displayTitle,event,status,conclusion,createdAt,updatedAt,url
gh run list --repo openclaw/clawsweeper --workflow github-activity.yml \
--limit 12 --json databaseId,displayTitle,event,status,conclusion,createdAt,updatedAt,url
Despachador de destino:
gh run list --repo openclaw/openclaw --workflow "ClawSweeper Dispatch" \
--limit 8 --json databaseId,displayTitle,event,status,conclusion,headSha,url
Lectura de resultados
Para hallazgos o fallos, resume:
- repositorio de destino, elemento/PR, ejecución, ruta del informe
- resultado, confianza, gravedad y bloqueador exacto
- archivos afectados o referencias de clúster
- comandos de validación y si pasaron
- si las puertas de mutación estaban abiertas o cerradas
- siguiente acción determinista
Mantén la escoba pequeña: un clúster, una rama, un PR, evidencia estrecha, evidencia clara visible para el propietario.