CommunityProgramación y desarrollogithub.com

clawsweeper

Úsalo para todo el trabajo con ClawSweeper: informes de barrido de issues/PRs de OpenClaw, trabajos de reparación, PRs de correcciones en la nube, comandos de mención @clawsweeper para mantenedores, autofix/automerge revisado por ClawSweeeper de confianza, monitoreo de GitHub Actions, permisos, puertas y rellenos manuales.

¿Qué es clawsweeper?

ClawSweeper es un bot de mantenimiento para el repositorio OpenClaw que automatiza tareas como el barrido de issues y PRs, la creación y gestión de trabajos de reparación, la creación de PRs de reemplazo, el monitoreo de flujos de trabajo de GitHub Actions y el control de puertas de ejecución. Soporta comandos mediante menciones como `@clawsweeper` para solicitar estado, revisiones, autofix, automerge y más. Funciona con una única aplicación de GitHub configurada con variables `CLAWSWEEPER_*` y sigue estrictos límites de seguridad: los tokens no se comparten entre operadores, las puertas de escritura están cerradas por defecto y solo los mantenedores autorizados pueden mutar el repositorio. El bot utiliza un sistema de trabajos deterministas con archivos de trabajo en `jobs/<repo>/inbox/` y se ejecuta a través de flujos de trabajo de GitHub Actions en el repositorio `openclaw/clawsweeper`.

Compatible con~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/clawsweeper

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿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 para clawsweeper.
  • CLAWSWEEPER_APP_PRIVATE_KEY: clave privada usada solo dentro de los pasos actions/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/clawsweeper para 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:autofix o clawsweeper: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.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Skills relacionados