CommunityProgramación y desarrollogithub.com

pr-simplify

Simplifica tu cambio a su corrección completa más pequeña. Úsalo antes de abrir un PR, antes de enviar reparaciones grandes a uno, o cuando te pidan reducir un PR o limpiar el código.

¿Qué es pr-simplify?

Este skill guía al autor de un cambio a través de un proceso de edición estructurado para reducirlo a su corrección completa más pequeña, antes de que un revisor humano lo evalúe. Es útil porque evita que los PRs se conviertan en cambios monolíticos difíciles de revisar, manteniendo el enfoque en la solución mínima necesaria. Funciona en cualquier repositorio que use flujos de trabajo con PRs y que tenga un archivo `AGENTS.md` con secciones de diseño gobernantes. El proceso consta de cuatro pasos: (1) re-derivar la corrección más pequeña completa a partir del diff y el alcance, (2) eliminar arquitectura innecesaria aplicando seis reglas de simplificación (como mover decisiones al dueño adecuado y reutilizar estado existente), (3) conservar solo las pruebas que detectan fallos reales, y (4) probar el cambio más pequeño y generar un reporte claro. El skill prioriza mantener el comportamiento soportado y la compatibilidad pública, y puede concluir que no se necesita ningún cambio si la forma actual está justificada.

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

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

Simplifica el cambio

Una pasada de edición por el autor del cambio: ejecútala en tu propia rama antes de abrir el PR, y de nuevo antes de enviar reparaciones grandes. Precede a la revisión y nunca la reemplaza. Hereda el alcance de la tarea y la autoridad de reparación; una solicitud solo de revisión recibe hallazgos en lugar de ediciones. El flujo de trabajo del mantenedor elegido gestiona la publicación, revisión y fusión.

El diff es una propuesta. Que las pruebas pasen demuestra que funciona, no que su arquitectura o cada prueba añadida sean necesarias.

Reglas: las secciones "Prioridades de diseño", "Un solo dueño, migración completa", "Salvaguardas de tiempo de ejecución y código" y "Producto y validación" del archivo raíz AGENTS.md, más el AGENTS.md con alcance más cercano. Los pasos 2 y 3 aplican cada regla a cada archivo modificado.

1. Re-derivar la corrección completa más pequeña

Lee el resultado del usuario y el alcance más reciente, el diff completo contra la base de fusión objetivo, y la evidencia conservada. Reutiliza el contexto de la sesión ya recopilado. Luego pregunta:

Comenzando desde la base, ¿cuál es la corrección completa más pequeña usando los dueños ya presentes? ¿Seguiría introduciendo esta arquitectura?

Inspecciona primero los módulos, estado, adaptadores y andamios de prueba más grandes añadidos. Lee sus llamadores directos y el historial relevante: un comportamiento aparentemente redundante puede proteger una configuración ya enviada o una regresión anterior. El alcance es el sistema modificado y las rutas que reemplaza.

Rastrea cada fragmento modificado hasta el resultado indicado. Un fragmento que sirve a otro objetivo abandona este cambio: elimínalo o muévelo a su propio PR.

Cuenta las líneas modificadas no mecánicas. Por encima de aproximadamente 800, o aproximadamente 500 para lógica compleja, nombra la etapa coherente más pequeña que pueda llegar primero y reduce el cambio a esa etapa.

Terminado cuando puedas enunciar el defecto, el invariante requerido y la corrección completa más pequeña en una oración cada uno, y cada fragmento restante sirve a esa corrección.

2. Eliminar arquitectura innecesaria

Aplica cada simplificación soportada en el diff:

  • Un solo dueño de la decisión. Mueve la política repetitiva del lado del llamador a la operación que posee la decisión. Migra los llamadores afectados y elimina las implementaciones antiguas, las exportaciones y las ramas de reparación. Diferentes transportes pueden compartir una decisión manteniendo sus propios contratos de entrega.
  • Estado existente primero. Cuestiona nuevos esquemas, gestores, cachés y representaciones combinadas. Reutiliza un dueño existente cuando su ciclo de vida, autoridad, atomicidad y limpieza encajen. Elimina una migración propuesta solo cuando sea genuinamente innecesaria; conserva la migración que mantiene la configuración y el estado existentes funcionando después de la actualización. El nuevo estado pertenece a un campo que lo significa.
  • Elimina la ruta redundante. Elimina renderizadores paralelos, analizadores duplicados, operaciones de ciclo de vida falsas usadas solo para obtener un resultado, estado derivado que los llamadores ya pueden obtener, y envoltorios que solo reenvían o renombran. Prefiere una representación más simple en lugar de modos alternativos alrededor de la antigua.
  • Pule al final. En cada fragmento modificado, conserva solo lo que un mantenedor del archivo circundante escribiría:
    • comentarios que expliquen propiedad, ciclo de vida, ordenamiento o restricciones;
    • comprobaciones y bloques try/catch que coincidan con el módulo circundante y protejan estados reales;
    • tipos reales en lugar de conversiones de tipo que desinfectan (as any, as unknown as T, ampliar y luego afirmar);
    • variables y ayudantes que añadan significado de dominio, eliminen duplicación o simplifiquen el flujo de control;
    • shims, alias, reintentos y alternativas respaldados por un contrato con nombre enviado y un plan de eliminación;
    • nombres, flujo de control, importaciones y formato que coincidan con el archivo circundante.

Preserva la corrección solicitada y el comportamiento soportado, no el diseño accidental de la propuesta. Mantén diferencias reales de dominio y compatibilidad pública justificada. Cuando el historial (git log -p -S <símbolo>) deje poco claro el propósito de una ruta, consérvala e infórmalo. Informa nuevas decisiones de producto, contratos rotos, limpieza no relacionada y reemplazo destructivo de ramas como hallazgos para el dueño.

3. Conservar pruebas para fallos

Para cada grupo de pruebas añadido o modificado y sus ayudantes de configuración, nombra el fallo observable distinto que detecta.

Conserva regresiones para el defecto real y límites distintos: ordenamiento, cancelación, autoridad obsoleta, reinicio, rechazo, errores reales y diferencias de consumidores afectados. Conserva guardianes de contrato estáticos que protejan de forma independiente un límite real. Elimina casos duplicados de la misma ruta, ecos de simulaciones, aserciones incidentales de copia de campo o redacción, aserciones sobre valores definidos estáticamente, pruebas que solo prueban que la lógica eliminada se ha ido, pruebas de implementaciones obsoletas, y andamios o enlaces de prueba solo para producción. Consolida casos útiles en un conjunto de pruebas de un dueño existente.

Eliminar pruebas nunca debilita las aserciones, la cobertura de límites reales o las líneas base que permanecen.

Terminado cuando cada grupo de pruebas restante tiene un fallo nombrado.

4. Probar el cambio más pequeño y pasarlo

Agrupa las ediciones, luego vuelve a ejecutar la reproducción y las comprobaciones enfocadas para los contratos modificados y los consumidores afectados. Reutiliza evidencia cuyas entradas no hayan cambiado. Una afirmación conservada de reinicio, actualización o transporte necesita evidencia aplicable. El flujo de trabajo existente selecciona comprobaciones más amplias.

Terminado cuando el diff completo es inspeccionado, cada regla tiene un veredicto para cada archivo modificado, las simplificaciones soportadas se aplican, las rutas reemplazadas son inalcanzables y el comportamiento afectado aún tiene evidencia. Ningún cambio es un resultado válido cuando la forma existente está justificada. Apunta a código neto negativo, no a una cuota de eliminación.

Informa en el cuerpo del PR o en la evidencia de la tarea existente: la responsabilidad o maquinaria que desapareció, el comportamiento aún protegido, y los deltas de producción/prueba contra la base de fusión. Etiqueta una reducción contra una revisión anterior por separado del delta de todo el cambio. Nombra cualquier crecimiento necesario restante o decisión no resuelta.

Luego abre o actualiza el PR. Después de reparaciones posteriores, simplifica solo los nuevos cambios y los dueños que tocan antes de enviarlos.

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, Grok Build, 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