gvkhosla/compound-engineering-pi

Clasificar y categorizar hallazgos para el sistema de tareas CLI.

¿Qué es compound-engineering-pi?

Esta skill permite a un agente de IA (como Claude Code) realizar una sesión de triaje estructurada sobre hallazgos categorizados (revisiones de código, auditorías de seguridad, análisis de rendimiento, etc.) y convertirlos en tareas accionables dentro de un sistema de tareas CLI basado en archivos. El agente presenta cada hallazgo uno por uno con un formato detallado (gravedad, categoría, descripción, ubicación, solución propuesta y esfuerzo estimado). Luego, el usuario decide si agregarlo a la lista de tareas pendientes como una tarea 'lista para trabajar', omitirlo (eliminándolo) o personalizarlo antes de crearlo. La skill maneja automáticamente la creación, renombrado y actualización de archivos de tareas con metadatos YAML, así como el registro de decisiones en un resumen final. Es útil para desarrolladores que usan herramientas como Claude Code, Cursor o Codex y necesitan un flujo de trabajo disciplinado para priorizar y gestionar hallazgos técnicos sin codificar durante el triaje.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gvkhosla/compound-engineering-pi/tree/HEAD/skills/triage

Installed? Explore more Productividad y colaboración skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Preguntar en tu IA favorita

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

Documentación

  • Primero establece /model a Haiku
  • Luego lee todas las tareas pendientes de los directorios .context/compound-engineering/todos/ y todos/ heredados

Presenta todos los hallazgos, decisiones o problemas aquí uno por uno para su triaje. El objetivo es revisar cada elemento y decidir si agregarlo al sistema de tareas CLI.

IMPORTANTE: ¡NO CODIFIQUES NADA DURANTE EL TRIAJE!

Este comando es para:

  • Triaje de hallazgos de revisión de código
  • Procesamiento de resultados de auditorías de seguridad
  • Revisión de análisis de rendimiento
  • Manejo de cualquier otro hallazgo categorizado que necesite seguimiento

Flujo de Trabajo

Paso 1: Presentar Cada Hallazgo

Para cada hallazgo, preséntalo en este formato:

---
Problema #X: [Título Breve]

Gravedad: 🔴 P1 (CRÍTICO) / 🟡 P2 (IMPORTANTE) / 🔵 P3 (OPCIONAL)

Categoría: [Seguridad/Rendimiento/Arquitectura/Error/Característica/etc.]

Descripción:
[Explicación detallada del problema o mejora]

Ubicación: [ruta_del_archivo:número_de_línea]

Escenario del Problema:
[Paso a paso qué está mal o qué podría pasar]

Solución Propuesta:
[Cómo solucionarlo]

Esfuerzo Estimado: [Pequeño (< 2 horas) / Mediano (2-8 horas) / Grande (> 8 horas)]

---
¿Quieres agregar esto a la lista de tareas?
1. sí - crear archivo de tarea
2. siguiente - omitir este elemento
3. personalizado - modificar antes de crear

Paso 2: Manejar la Decisión del Usuario

Cuando el usuario dice "sí":

  1. Actualiza el archivo de tarea existente (si existe) o Crea un nuevo nombre de archivo:

    Si la tarea ya existe (de una revisión de código):

    • Renombra el archivo de {id}-pendiente-{prioridad}-{desc}.md → {id}-lista-{prioridad}-{desc}.md
    • Actualiza el frontmatter YAML: status: pendiente → status: lista
    • Mantén issue_id, prioridad y descripción sin cambios

    Si se crea una nueva tarea:

    {siguiente_id}-lista-{prioridad}-{descripción-breve}.md
    

    Mapeo de prioridades:

    • 🔴 P1 (CRÍTICO) → p1
    • 🟡 P2 (IMPORTANTE) → p2
    • 🔵 P3 (OPCIONAL) → p3

    Ejemplo: 042-lista-p1-limites-transaccion.md

  2. Actualiza el frontmatter YAML:

    ---
    status: lista # IMPORTANTE: Cambia de "pendiente" a "lista"
    priority: p1 # o p2, p3 según la gravedad
    issue_id: "042"
    tags: [categoría, etiquetas-relevantes]
    dependencies: []
    ---
    
  3. Rellena o actualiza el archivo:

    # [Título del Problema]
    
    ## Enunciado del Problema
    [Descripción del hallazgo]
    
    ## Hallazgos
    - [Descubrimientos clave]
    - Ubicación: [ruta_del_archivo:número_de_línea]
    - [Detalles del escenario]
    
    ## Soluciones Propuestas
    
    ### Opción 1: [Solución principal]
    - **Pros**: [Beneficios]
    - **Contras**: [Inconvenientes si los hay]
    - **Esfuerzo**: [Pequeño/Mediano/Grande]
    - **Riesgo**: [Bajo/Medio/Alto]
    
    ## Acción Recomendada
    [Completado durante el triaje - plan de acción específico]
    
    ## Detalles Técnicos
    - **Archivos Afectados**: [Lista de archivos]
    - **Componentes Relacionados**: [Componentes afectados]
    - **Cambios en Base de Datos**: [Sí/No - describir si es sí]
    
    ## Recursos
    - Hallazgo original: [Fuente de este problema]
    - Problemas relacionados: [Si los hay]
    
    ## Criterios de Aceptación
    - [ ] [Criterios de éxito específicos]
    - [ ] Pruebas pasan
    - [ ] Código revisado
    
    ## Registro de Trabajo
    
    ### {fecha} - Aprobado para Trabajar
    **Por:** Sistema de Triaje de Claude
    **Acciones:**
    - Problema aprobado durante sesión de triaje
    - Estado cambiado de pendiente → lista
    - Listo para ser recogido y trabajado
    
    **Aprendizajes:**
    - [Contexto e ideas]
    
    ## Notas
    Fuente: Sesión de triaje del {fecha}
    
  4. Confirma la aprobación: "✅ Aprobado: {nuevo_nombre_archivo} (Problema #{issue_id}) - Estado: lista → Listo para trabajar"

Cuando el usuario dice "siguiente":

  • Elimina el archivo de tarea - Bórralo de su ubicación actual ya que no es relevante
  • Salta al siguiente elemento
  • Guarda un registro de los elementos omitidos para el resumen

Cuando el usuario dice "personalizado":

  • Pregunta qué modificar (prioridad, descripción, detalles)
  • Actualiza la información
  • Presenta la versión revisada
  • Pregunta de nuevo: sí/siguiente/personalizado

Paso 3: Continuar Hasta Procesar Todo

  • Procesa todos los elementos uno por uno
  • Realiza un seguimiento con tareas basadas en archivos (todos/ + /skill:file-todos) para visibilidad
  • No esperes la aprobación entre elementos - sigue adelante

Paso 4: Resumen Final

Después de procesar todos los elementos:

## Triaje Completado

**Elementos Totales:** [X] **Tareas Aprobadas (lista):** [Y] **Omitidas:** [Z]

### Tareas Aprobadas (Listas para Trabajar):

- `042-lista-p1-limites-transaccion.md` - Problema de límites de transacción
- `043-lista-p2-optimizacion-cache.md` - Mejora de rendimiento de caché ...

### Elementos Omitidos (Eliminados):

- Elemento #5: [razón] - Eliminado
- Elemento #12: [razón] - Eliminado

### Resumen de Cambios Realizados:

Durante el triaje, ocurrieron las siguientes actualizaciones de estado:

- **Pendiente → Lista:** Nombres de archivo y frontmatter actualizados para reflejar el estado de aprobación
- **Eliminados:** Archivos de tarea para hallazgos omitidos
- Cada archivo aprobado ahora tiene `status: lista` en el frontmatter YAML

### Próximos Pasos:

1. Ver las tareas aprobadas listas para trabajar:
   ```bash
   ls .context/compound-engineering/todos/*-lista-*.md todos/*-lista-*.md 2>/dev/null
   ```
  1. Comenzar a trabajar en los elementos aprobados:

    /resolver-todo-paralelo  # Trabajar en múltiples tareas aprobadas de manera eficiente
    
  2. O seleccionar elementos individuales para trabajar

  3. A medida que trabajes, actualiza el estado de la tarea:

    • Lista → En Progreso (en tu contexto local mientras trabajas)
    • En Progreso → Completado (renombrar archivo: lista → completado, actualizar frontmatter)

Formato de Respuesta de Ejemplo

---
Problema #5: Faltan Límites de Transacción para Operaciones de Múltiples Pasos

Gravedad: 🔴 P1 (CRÍTICO)

Categoría: Integridad de Datos / Seguridad

Descripción: La devolución de llamada google_oauth2_connected en la preocupación GoogleOauthCallbacks realiza múltiples operaciones de base de datos sin protección de transacción. Si algún paso falla a medio camino, la base de datos queda en un estado inconsistente.

Ubicación: app/controllers/concerns/google_oauth_callbacks.rb:13-50

Escenario del Problema:
1. User.update tiene éxito (correo electrónico cambiado)
2. Account.save! falla (error de validación)
3. Resultado: User tiene correo electrónico cambiado pero no hay Account asociada
4. El siguiente intento de inicio de sesión falla por completo

Operaciones Sin Transacción:
- Confirmación de usuario (línea 13)
- Eliminación de lista de espera (línea 14)
- Actualización de perfil de usuario (línea 21-23)
- Creación de cuenta (línea 28-37)
- Adjuntar avatar (línea 39-45)
- Creación de viaje (línea 47)

Solución Propuesta: Envolver todas las operaciones en un bloque ApplicationRecord.transaction do ... end

Esfuerzo Estimado: Pequeño (30 minutos)

---
¿Quieres agregar esto a la lista de tareas?
1. sí - crear archivo de tarea
2. siguiente - omitir este elemento
3. personalizado - modificar antes de crear

Detalles de Implementación Importantes

Transiciones de Estado Durante el Triaje

Cuando se selecciona "sí":

  1. Renombra el archivo: {id}-pendiente-{prioridad}-{desc}.md → {id}-lista-{prioridad}-{desc}.md
  2. Actualiza el frontmatter YAML: status: pendiente → status: lista
  3. Actualiza el Registro de Trabajo con la entrada de aprobación de triaje
  4. Confirma: "✅ Aprobado: {nombre_archivo} (Problema #{issue_id}) - Estado: lista"

Cuando se selecciona "siguiente":

  1. Elimina el archivo de tarea de su ubicación actual
  2. Salta al siguiente elemento
  3. No queda ningún archivo en el sistema

Seguimiento del Progreso

Cada vez que presentes una tarea como encabezado, incluye:

  • Progreso: X/Y completados (ej., "3/10 completados")
  • Tiempo restante estimado: Basado en qué tan rápido estás progresando
  • Ritmo: Monitorea el tiempo por hallazgo y ajusta la estimación en consecuencia

Ejemplo:


Progreso: 3/10 completados | Tiempo estimado: ~2 minutos restantes

No Codificar Durante el Triaje

  • ✅ Presentar hallazgos
  • ✅ Tomar decisiones sí/siguiente/personalizado
  • ✅ Actualizar archivos de tarea (renombrar, frontmatter, registro de trabajo)
  • ❌ NO implementar correcciones ni escribir código
  • ❌ NO agregar detalles de implementación
  • ❌ Eso es para la fase /resolver-todo-paralelo

Cuando termines, da estas opciones:

¿Qué te gustaría hacer a continuación?

1. ejecutar /resolver-todo-paralelo para resolver las tareas
2. confirmar las tareas
3. nada, a relajarse

Skills relacionados