Skip to content

Commit d058fad

Browse files
committed
Add spec-kit workflow commands and documentation
1 parent bfb8fda commit d058fad

17 files changed

Lines changed: 1956 additions & 1 deletion

.claude/commands/checklist.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
description: "OPCIONAL — Valida la calidad de los requirements antes de implementar. Puede ejecutarse en cualquier momento."
3+
---
4+
5+
## Propósito
6+
7+
Genera un checklist que valida que el spec, el plan y las tareas están bien escritos, son completos y no tienen ambigüedades. No bloquea el flujo — es una herramienta de calidad opcional.
8+
9+
Recuerda: el checklist valida los **requirements**, no el código. Es un "test unitario del spec escrito en inglés".
10+
11+
---
12+
13+
## Ejecución
14+
15+
### 1. Verificar rama y PR
16+
17+
```bash
18+
git branch --show-current
19+
gh pr view --json number,state,url,body
20+
```
21+
22+
- Si la rama es `main` o `master`: ERROR "No estás en una rama de feature. Ejecuta /status."
23+
- Si no hay PR: ERROR "No hay PR abierto. ¿Ejecutaste /start?"
24+
25+
### 2. Verificar que hay algo que revisar
26+
27+
Confirmar que existe al menos `spec.md` en el directorio de la feature.
28+
29+
```bash
30+
ls specs/<directorio-rama>/
31+
```
32+
33+
Si no hay spec: ERROR "No hay spec para revisar. Ejecuta /start primero."
34+
35+
### 3. Delegar en speckit.checklist
36+
37+
Invocar `/speckit.checklist` con el contexto de la fase actual.
38+
39+
`speckit.checklist` se encarga de:
40+
- Detectar qué artefactos están disponibles (spec, plan, tasks)
41+
- Hacer preguntas de clarificación sobre el enfoque del checklist
42+
- Generar el fichero en `specs/<directorio>/checklists/<dominio>.md`
43+
- Validar completeness, clarity, consistency, measurability, coverage
44+
45+
**Esperar a que `speckit.checklist` termine completamente antes de continuar.**
46+
47+
### 4. Commit del checklist
48+
49+
```bash
50+
git add specs/
51+
git commit -m "docs: añadir checklist de requirements"
52+
git push origin HEAD
53+
```
54+
55+
### 5. Informe final
56+
57+
```
58+
✅ Checklist generado
59+
60+
📋 <ruta-al-checklist>
61+
62+
Revisa los items marcados como [Gap], [Ambiguity]
63+
o [Conflict] antes de continuar con /implement.
64+
65+
─────────────────────────────────────────
66+
➡️ SIGUIENTE PASO
67+
─────────────────────────────────────────
68+
Cuando estés listo para implementar:
69+
/implement
70+
─────────────────────────────────────────
71+
```
72+
73+
### Cierre de sesión
74+
75+
Leer el contexto actual de la sesión (igual que `/context`).
76+
77+
- **🟢 / 🟡**: No mostrar nada.
78+
- **🟠**: Mostrar al final del informe:
79+
```
80+
🟠 El contexto está alto. Abre una sesión nueva antes del siguiente comando.
81+
```
82+
- **🔴**: Mostrar antes del informe final e interrumpir si el usuario intenta continuar:
83+
```
84+
🔴 Contexto crítico. Abre una sesión nueva AHORA antes de continuar.
85+
```
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
description: "PASO 2 — Integra el feedback del equipo en el spec. Ejecutar después de que hayan comentado en el PR. Repetible."
3+
---
4+
5+
## Ejecución
6+
7+
### 1. Verificar rama y PR
8+
9+
```bash
10+
git branch --show-current
11+
gh pr view --json number,state,url,body
12+
```
13+
14+
- Si la rama es `main` o `master`: ERROR "No estás en una rama de feature. Ejecuta /status."
15+
- Si no hay PR: ERROR "No hay PR abierto. ¿Ejecutaste /start?"
16+
17+
### 2. Gate: spec creado
18+
19+
Verificar en el body del PR: `- [x] Spec creado`
20+
21+
Si no está marcado: ERROR "El spec no existe todavía. Ejecuta /start primero."
22+
23+
### 3. Verificar que hay comentarios
24+
25+
```bash
26+
gh pr view --json comments -q '.comments[].body'
27+
```
28+
29+
Si no hay comentarios: ERROR "No hay comentarios en el PR todavía. Comparte el PR con el equipo y espera su feedback."
30+
31+
### 4. Delegar en speckit.clarify
32+
33+
Invocar `/speckit.clarify` con el contexto de los comentarios del PR.
34+
35+
`speckit.clarify` se encarga de:
36+
- Leer el spec actual
37+
- Procesar las clarificaciones necesarias
38+
- Actualizar `spec.md` con las decisiones tomadas
39+
40+
**Esperar a que `speckit.clarify` termine completamente antes de continuar.**
41+
Si produce ERROR: propagar y parar.
42+
43+
### 5. Commit del spec actualizado
44+
45+
```bash
46+
git add specs/
47+
git commit -m "docs: actualizar spec con feedback del equipo"
48+
git push origin HEAD
49+
```
50+
51+
### 6. Actualizar historial del PR
52+
53+
Añadir fila a la tabla:
54+
```
55+
| Spec revisado | YYYY-MM-DD | Feedback integrado vía speckit.clarify |
56+
```
57+
58+
```bash
59+
gh pr edit --body "<body-actualizado>"
60+
```
61+
62+
### 7. Informe final
63+
64+
```
65+
✅ Spec actualizado
66+
67+
─────────────────────────────────────────
68+
➡️ SIGUIENTE PASO
69+
─────────────────────────────────────────
70+
Si hay más rondas de feedback:
71+
Vuelve a ejecutar /consolidate-spec
72+
73+
Si el spec está listo para aprobación:
74+
Pide al equipo que apruebe el spec en el PR.
75+
Cuando lo hagan, ejecuta: /plan
76+
─────────────────────────────────────────
77+
```
78+
79+
### Cierre de sesión
80+
81+
Leer el contexto actual de la sesión (igual que `/context`).
82+
83+
- **🟢 / 🟡**: No mostrar nada.
84+
- **🟠**: Mostrar al final del informe:
85+
```
86+
🟠 El contexto está alto. Abre una sesión nueva antes del siguiente comando.
87+
```
88+
- **🔴**: Mostrar antes del informe final e interrumpir si el usuario intenta continuar:
89+
```
90+
🔴 Contexto crítico. Abre una sesión nueva AHORA antes de continuar.
91+
```

.claude/commands/context.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
description: "UTILIDAD — Muestra cuánta memoria le queda a Claude en esta sesión."
3+
---
4+
5+
## Ejecución
6+
7+
### 1. Leer contexto real de la sesión
8+
9+
```bash
10+
ls -t ~/.claude/sessions/ 2>/dev/null | head -1
11+
```
12+
13+
Leer `remaining_percentage` o calcular desde `used_tokens` / `total_tokens`.
14+
Si no se puede leer: usar estimación conservadora basada en la longitud de la conversación.
15+
16+
### 2. Determinar nivel
17+
18+
| % usado | Nivel | Emoji |
19+
|---------|-------|-------|
20+
| < 50% | Puedes continuar | 🟢 |
21+
| 50–79% | Termina el paso actual | 🟡 |
22+
| 80–89% | Abre sesión nueva pronto | 🟠 |
23+
| ≥ 90% | Abre sesión nueva YA | 🔴 |
24+
25+
### 3. Mostrar informe
26+
27+
Mostrar SOLO el nivel actual, la barra y la recomendación correspondiente. Ejemplo para 🟠:
28+
29+
```
30+
[████████████████░░░░] 83% usado
31+
32+
🟠 Abre sesión nueva pronto
33+
```
34+
35+
La recomendación es obligatoria y se muestra siempre debajo de la barra.
36+
37+
### 4. Mostrar siguiente paso
38+
39+
Mostrar el siguiente paso pendiente del flujo (igual que `/status`) para que al abrir sesión nueva el usuario sepa qué ejecutar.
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
---
2+
description: "PASO 7 — Publica a main con squash merge. Requiere que el PR esté aprobado."
3+
---
4+
5+
## Propósito
6+
7+
Fusiona la feature a `main` con squash merge — todos los commits de iteración se aplanan en uno solo. GitHub Actions despliega automáticamente al detectar el merge.
8+
9+
---
10+
11+
## Ejecución
12+
13+
### 1. Verificar rama y PR
14+
15+
```bash
16+
git branch --show-current
17+
gh pr view --json number,state,url,body,reviewDecision
18+
```
19+
20+
- Si la rama es `main`: ERROR "Ya estás en main."
21+
- Si no hay PR: ERROR "No hay PR abierto para esta rama."
22+
23+
### 2. Gate: código entregado
24+
25+
Verificar en el body del PR: `- [x] En revisión de código`
26+
27+
Si no está marcado: ERROR "El código no ha sido entregado. Ejecuta /submit primero."
28+
29+
### 3. Gate: PR aprobado
30+
31+
Comprobar `reviewDecision`.
32+
33+
Si NO es `APPROVED`:
34+
35+
```
36+
🚫 BLOQUEADO
37+
38+
El PR no tiene aprobación todavía.
39+
40+
El equipo debe revisar y aprobar el PR en GitHub
41+
antes de poder publicar a main.
42+
43+
🔗 PR: <PR_URL>
44+
```
45+
46+
**PARAR.**
47+
48+
### 4. Squash merge a main
49+
50+
```bash
51+
gh pr merge --squash --delete-branch
52+
```
53+
54+
Si falla por conflictos:
55+
56+
```
57+
🚫 ERROR: Hay conflictos al fusionar con main.
58+
59+
No se ha realizado ningún cambio.
60+
Resuelve los conflictos manualmente antes de continuar.
61+
```
62+
63+
**PARAR.**
64+
65+
### 5. Verificar que GitHub Actions se ha disparado
66+
67+
```bash
68+
gh run list --limit 3
69+
```
70+
71+
Mostrar los workflows activos para confirmar que el deploy arrancó.
72+
73+
### 6. Informe final
74+
75+
```
76+
✅ Publicado en main
77+
78+
🌿 Fusionado: <BRANCH> → main (squash)
79+
🗑️ Rama eliminada
80+
🚀 Deploy en curso — GitHub Actions desplegando
81+
82+
─────────────────────────────────────────
83+
Esta feature está completa.
84+
─────────────────────────────────────────
85+
```
86+
87+
### Cierre de sesión
88+
89+
Leer el contexto actual de la sesión (igual que `/context`).
90+
91+
- **🟢 / 🟡**: No mostrar nada.
92+
- **🟠**: Mostrar al final del informe:
93+
```
94+
🟠 El contexto está alto. Abre una sesión nueva antes del siguiente comando.
95+
```
96+
- **🔴**: Mostrar antes del informe final e interrumpir si el usuario intenta continuar:
97+
```
98+
🔴 Contexto crítico. Abre una sesión nueva AHORA antes de continuar.
99+
```

0 commit comments

Comments
 (0)