refactor: actualizar skill execute-parallel con binario y nuevos flags

Documentar arquitectura utils/parallel-executor/, añadir flags
--dry-run, --sort, --cleanup. Actualizar flujo para usar binario
compilado en bin/parallel-executor.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-27 02:15:23 +01:00
parent 650f848ac3
commit 7f4c481e73
+66 -49
View File
@@ -1,7 +1,7 @@
---
name: execute-parallel
description: Ejecuta automáticamente issues del plan de ejecución paralela
argument-hint: [--group N] [--sequential]
argument-hint: [--group N] [--sequential] [--sort] [--dry-run] [--cleanup]
disable-model-invocation: true
user-invocable: true
allowed-tools: Bash, Read, Write
@@ -9,7 +9,7 @@ allowed-tools: Bash, Read, Write
# execute-parallel
Ejecuta automáticamente las issues del plan paralelo. Crea worktrees, ejecuta /fix-issue, mergea y limpia.
Ejecuta automáticamente issues en paralelo usando git worktrees. Unifica sort, plan y ejecución.
## Sintaxis
@@ -17,75 +17,92 @@ Ejecuta automáticamente las issues del plan paralelo. Crea worktrees, ejecuta /
/execute-parallel # Ejecutar TODOS los grupos
/execute-parallel --group 1 # Solo Grupo 1
/execute-parallel --sequential # Sin paralelismo
/execute-parallel --dry-run # Ver plan sin ejecutar
/execute-parallel --sort # Solo analizar y generar plan
/execute-parallel --cleanup # Solo limpiar worktrees
```
## Binario
El orquestador está en `utils/parallel-executor/` y se compila a `bin/parallel-executor`.
```bash
# Si no existe el binario, compilar primero
if [ ! -f "bin/parallel-executor" ]; then
cd utils/parallel-executor && make build && cd ../..
fi
```
## Flujo
### 1. Validar precondiciones
### 1. Verificar binario
```bash
# Si no existe plan, generarlo automáticamente
if [ ! -f "PARALLEL_EXECUTION_ORDER.md" ]; then
/parallel-issues
EXECUTOR="./bin/parallel-executor"
if [ ! -f "$EXECUTOR" ]; then
echo "Compilando parallel-executor..."
cd utils/parallel-executor && make build && cd ../..
fi
```
### 2. Parsear argumentos
### 2. Parsear argumentos del usuario y ejecutar
- `--group <N>`: ejecutar solo ese grupo
- `--sequential`: ejecutar uno a uno
- Sin args: ejecutar todos los grupos
### 3. Ejecutar programa Go
Mapear los argumentos directamente al binario:
```bash
./cmd/parallel-executor/parallel-executor $ARGS
./bin/parallel-executor $ARGS
```
El orquestador Go maneja:
- Creación de worktrees
- Ejecución paralela de `/fix-issue`
- Push de cada rama
- Limpieza de worktrees
- Logging en `logs/`
**Flags disponibles:**
- `--sort` → analizar issues y generar PARALLEL_EXECUTION_ORDER.md
- `--dry-run` → mostrar plan y worktrees que se crearían
- `--group N` → ejecutar solo grupo N
- `--sequential` → ejecutar sin paralelismo
- `--timeout N` → timeout en minutos por issue (default: 30)
- `--cleanup` → solo limpiar worktrees existentes
- `--plan file` → usar plan alternativo
### 4. Mostrar resumen
### 3. Mostrar resumen
Después de ejecutar, mostrar:
- Resultados por issue (éxito/fallo)
- Ruta a logs y summary
- Estado de worktrees
### 4. Limpiar plan si exitoso
Si todos los issues completaron exitosamente, eliminar `PARALLEL_EXECUTION_ORDER.md`.
## Arquitectura
```
Ejecución completada
Logs:
- logs/parallel-execution-*.log
- logs/consolidated-summary.txt
Worktrees restantes: (ninguno)
```
### 5. Eliminar plan
Si exitoso, eliminar `PARALLEL_EXECUTION_ORDER.md`.
## Arquitectura Go
```
cmd/parallel-executor/
├── main.go # CLI
├── parser.go # Parse plan
├── worktree.go # Git worktrees
├── executor.go # Ejecutar claude
├── logger.go # Logging
└── orchestrator.go # Goroutines
utils/parallel-executor/
├── main.go # CLI + orquestación
├── core/
│ ├── parser.go # Parseo del plan markdown (puro)
│ ├── planner.go # Topological sort + conflictos (puro)
│ ├── parser_test.go
│ └── planner_test.go
├── shell/
│ ├── worktree.go # Git worktree CRUD
│ ├── executor.go # Ejecutar claude en worktree
│ └── logger.go # Logging a disco
├── go.mod, go.work # DevFactory como dependencia
└── Makefile
```
## Convenciones
- Logs persistentes por ejecución
- Timeout 30 min por issue
- Limpieza automática de worktrees
- Plan se elimina al completar
- Usa DevFactory: `Result[T]`, `MapSlice`, `FilterSlice`, `Reduce`
- Patrón pure core / impure shell
- Logs persistentes en `logs/`
- Timeout 30 min por issue (configurable)
- Limpieza automática de worktrees al terminar
- Plan se auto-genera si no existe (`--sort` implícito)
## Reglas
- SIEMPRE generar plan si no existe
- Solo advertir si hay cambios (no bloquear)
- SIEMPRE verificar que el binario existe antes de ejecutar
- SIEMPRE mostrar dry-run antes de una ejecución real si el usuario no especificó flags
- SIEMPRE limpiar worktrees al terminar
- Si no hay plan, generarlo automáticamente