Files
repo_Claude/.claude/commands/issues/auto-create.md
T

276 lines
7.1 KiB
Markdown

---
version: 2.0.0
updated: 2026-03-11
tags: [issues, documentation, workflow, automation]
---
# Command: auto-create-issue
Crea un issue nuevo en `dev/issues/` y lo integra automáticamente a master **sin pedir confirmación**.
## Para el usuario
### Cuándo usar este comando
Usar cuando estés completamente seguro del contenido del issue y quieras saltear la confirmación manual. El comando ejecuta todo el flujo automáticamente sin pausar.
**⚠️ Advertencia:** Este comando no pide confirmación. Si no estás seguro, usa `/issues:create-issue` en su lugar.
### Sintaxis
```bash
/issues:auto-create
```
El comando preguntará interactivamente por los datos necesarios, pero NO pausará para confirmar.
### Ejemplos
**Ejemplo 1: Issue simple automatizado**
```bash
/issues:auto-create
# Título: Actualizar dependencias
# Descripción: Upgrade de módulos Go
```
Crea, commitea, mergea y pushea automáticamente sin confirmación.
**Ejemplo 2: Issue multi-parte automatizado**
```bash
/issues:auto-create
# Título: Sistema de notificaciones
# Descripción: Email, SMS, y push notifications
```
Crea sub-issues y feature flag, integra todo automáticamente.
## Para Claude
### Precondiciones
Verificar antes de ejecutar:
- [ ] Directorio `dev/issues/` existe
- [ ] Archivo `dev/issues/README.md` existe
- [ ] Template `.claude/templates/issue.md` existe
- [ ] Working tree limpio (para poder crear rama)
### Inputs
Se necesitan los datos del issue. Si no se proporcionan, preguntar:
- `titulo`: título corto y descriptivo
- `descripcion`: objetivo/descripción de lo que se quiere lograr
- `dependencias` (opcional): issues de los que depende
### Flujo obligatorio
#### 1-7. Crear el issue (igual que `/issues:create-issue`)
{{include: issue-numbering}}
**Seguir los pasos 1-7 de `/issues:create-issue`:**
1. Determinar número del issue
2. Generar slug
3. Evaluar tamaño (simple vs multi-issue)
4. Crear issue desde template
5. Agregar sección de desglose si es multi-issue
6. Registrar feature flag si aplica
7. Actualizar índice en `dev/issues/README.md`
**⚠️ DIFERENCIA CLAVE:** NO mostrar contenido ni pedir confirmación. Continuar directamente al paso 8.
#### 8. Integración automática a master
**SIN pedir confirmación**, ejecutar el flujo completo de git:
##### 8.1. Crear rama quick
{{include: git-update-master}}
```bash
git checkout master
git pull --rebase
git checkout -b quick/issues:create-issue-<NNNN>
```
##### 8.2. Crear commits atómicos
**Si es issue simple:**
```bash
git add dev/issues/<NNNN>-<slug>.md dev/issues/README.md
git commit -m "docs: crear issue <NNNN>-<slug>" -m "Crea issue <NNNN>: <titulo>
Objetivo: <resumen del objetivo>
Tipo: issue simple
Archivos: dev/issues/<NNNN>-<slug>.md, dev/issues/README.md
Este issue define <descripción breve del alcance>."
```
**Si es multi-issue:**
Commit 1 (archivos de issues - SOLO sub-issues, NO archivo principal):
```bash
git add dev/issues/<NNNN>*.md dev/issues/README.md
git commit -m "docs: crear sub-issues para <NNNN>-<slug>" -m "Crea sub-issues <NNNN>a-<NNNN>d: <titulo>
Objetivo: <resumen>
Sub-issues creados (sin archivo principal):
- <NNNN>a-<sub-slug>: <alcance>
- <NNNN>b-<sub-slug>: <alcance>
- <NNNN>c-<sub-slug>: <alcance>
Cada sub-issue es autocontenido con toda la información necesaria.
Feature flag: <nombre-del-flag> (activado en último sub-issue)."
```
Commit 2 (feature flag):
```bash
git add dev/feature_flags.json
git commit -m "feat: agregar feature flag <nombre-del-flag>" -m "Agrega feature flag para issue multi-issue <NNNN>-<slug>
Flag: <nombre-del-flag>
Estado inicial: disabled
Issue: <NNNN>
Descripción: <descripción>
Se activará cuando todos los sub-issues estén integrados y validados."
```
##### 8.3. Ejecutar tests (si aplican)
{{include: run-tests}}
```bash
go test -tags goolm ./...
```
- Si fallan → **STOP** y reportar error al usuario
- Si pasan o no aplican → continuar
##### 8.4. Merge a master
{{include: git-merge-to-master}}
```bash
git checkout master
git pull --rebase
git merge --no-ff quick/issues:create-issue-<NNNN> -m "merge: quick/issues:create-issue-<NNNN> — crear issue <NNNN>-<slug>" -m "Integra issue <NNNN>: <titulo>
Tipo: [issue simple / issue multi-issue con N sub-issues]
Archivos: dev/issues/<NNNN>*.md, dev/issues/README.md[, dev/feature_flags.json]
Listo para implementación con /issues:fix-issue <NNNN>[a/b/...]"
```
##### 8.5. Push a remoto
```bash
git push
```
##### 8.6. Limpiar rama local
```bash
git branch -d quick/issues:create-issue-<NNNN>
```
### Verificación final
Informar al usuario:
**Issue simple:**
```
✓ Issue <NNNN>-<slug> creado e integrado a master automáticamente
Tipo: issue simple
Rama: quick/issues:create-issue-<NNNN> (mergeada y limpiada)
Archivos creados:
- dev/issues/<NNNN>-<slug>.md
- dev/issues/README.md (actualizado)
Para implementar:
/issues:fix-issue <NNNN>
```
**Issue multi-issue:**
```
✓ Sub-issues <NNNN>a-<NNNN>d creados e integrados a master automáticamente
Tipo: issue multi-issue con N sub-issues (sin archivo principal)
Rama: quick/issues:create-issue-<NNNN> (mergeada y limpiada)
Archivos creados:
- dev/issues/<NNNN>a-<sub-slug>.md
- dev/issues/<NNNN>b-<sub-slug>.md
- dev/issues/<NNNN>c-<sub-slug>.md
- dev/issues/README.md (actualizado)
- dev/feature_flags.json (actualizado)
⚠️ NO se creó archivo principal <NNNN>-<slug>.md (solo sub-issues)
Para implementar:
/issues:fix-issue <NNNN>a [implementar sub-issues en orden]
/issues:fix-issue <NNNN>b
/issues:fix-issue <NNNN>c
```
## Convenciones
- **Sin confirmación**: diferencia clave con `/issues:create-issue`
- **Flujo idéntico**: usa la misma lógica de creación de issues
- **Trunk-based**: usa rama `quick/` y merge inmediato
- **Commits atómicos**: separar issues de feature flags
- **Mismo formato**: sigue template y convenciones estándar
## Troubleshooting
### Error: "Working tree not clean"
**Causa:** Hay cambios pendientes que impiden crear rama.
**Solución:**
```bash
git status
# Commitear o hacer stash de cambios primero
git stash
/issues:auto-create
git stash pop
```
### Error: "Tests failing"
**Causa:** Los tests fallan después de crear el issue (raro pero posible si se modificó feature_flags.json).
**Solución:**
El comando se detiene automáticamente. Revisar logs de tests, corregir problema, y ejecutar `/git:push` manualmente para completar la integración.
### Error: "Merge conflict"
**Causa:** Alguien más modificó `dev/issues/README.md` o `dev/feature_flags.json` simultáneamente.
**Solución:**
1. Resolver conflictos manualmente:
```bash
git status
# Editar archivos en conflicto
git add <archivos-resueltos>
git commit
git push
git branch -d quick/issues:create-issue-<NNNN>
```
## Reglas críticas
- **NO pedir confirmación**: este es el comportamiento esperado y correcto
- **MISMO formato que /issues:create-issue**: no tomar atajos en la calidad del issue
- **STOP si tests fallan**: no integrar issues que rompan el build
- **Informar claramente al usuario**: mostrar qué se creó y cómo continuar
- **Trunk-based estricto**: siempre usar rama quick/ y merge inmediato
- **Commits descriptivos**: seguir convención de mensajes de commit