Flujo de trabajo con gstack
Flujo de trabajo con gstack
Qué es
gstack es el paquete de skills (/spec, /qa, /review, etc.) instalado para apoyar el ciclo de desarrollo. Programar el código en sí no tiene skill — eso se pide directo, sin slash, como cualquier otro pedido.
⚠️ Excepciones de este proyecto (leer antes de usar /ship, /qa o un flujo que toque varios repos)
-
No usar
/shippara pushear o abrir PR automático. CLAUDE.md dice: "Los commits los hace el usuario — Claude solo edita archivos."/shipsincroniza, testea y audita cobertura sin problema, pero el commit/push/PR lo confirmas tú explícitamente antes de que se ejecute. -
Son 3 repos independientes, no uno solo.
team-safety-backend,team-safety-frontendyteam-safety-botson cada uno su propio git. La raízE:\Ejercicios\tsno es un repo. Si una feature toca 2 repos (ej. endpoint nuevo + pantalla que lo consume), corre el flujo (/review,/ship, etc.) una vez por repo, no una sola vez para todo el cambio. -
/qa(navegador) no aplica al repobot.team-safety-botno tiene UI propia — es Puppeteer automatizando el portal del Ministerio. Para bugs ahí:/investigate+ prueba manual contra el portal, no/qa.
Uso cotidiano
/review — revisa el diff actual como ingeniero senior buscando bugs que pasan CI pero rompen en producción. Si encuentra algo, lo corrige.
Ejemplo: tocaste
approveCourse→/review→ detecta que la aprobación masiva no valida el examen médico y lo corrige.
/qa-only — abre el navegador, prueba lo que tocaste, entrega la lista de bugs sin corregir nada.
Ejemplo: cambiaste el formulario de inscripción →
/qa-only→ "el botón Guardar queda habilitado sin adjuntar la planilla" — decides si lo arreglas o pasas a/qa.
/diagram — genera un diagrama (mermaid/excalidraw/svg) desde una descripción en texto.
Ejemplo:
/diagram el flujo del QR desde inscripción hasta firma del aprendiz→ diagrama de secuencia, sin herramienta externa.
Para un bug
/investigate+ descripción del síntoma → rastrea causa raíz antes de tocar código.Ejemplo: "el ícono de requisitos no se actualiza al cerrar el modal" → causa:
onModalRequirementCloseno recargaba la lista.- Corregir — con la causa identificada, aplicas el fix.
/review— valida que el fix no rompa nada nuevo./qa— reproduce el bug original en navegador, confirma que ya no pasa, deja un test de regresión.Ejemplo: tras el fix del ícono →
/qaabre el modal, lo cierra, confirma que el ícono ya refleja el estado real.
Para módulo/servicio nuevo desde cero (grande)
/spec— convierte la idea en spec ejecutable (problema, alcance, criterios de aceptación).Ejemplo:
/spec necesito digitalizar el examen escrito del curso Coordinador (F-GF-36)→ casos de uso, modelo de datos, qué queda fuera de alcance./autoplan— encadena revisión de producto, diseño y arquitectura sobre esa spec.Ejemplo: devuelve "falta el estado de calificación pendiente en la UI".
- Implementar — con el plan validado. Si el alcance debe quedar contenido a una carpeta,
/guard <ruta>antes de arrancar.Ejemplo:
/guard team-safety-backend/src/main/java/com/teamsafety/service/coordinadorevita que el modelo toque por error el módulo de certificados. /review→/qa→/cso— mismo review y qa de siempre;/csoaudita OWASP Top 10.Ejemplo
/cso: detecta que el nuevo endpoint no valida que el coach solo vea sus propios cursos./document-release— actualiza docs para que coincidan con lo shippeado./ship— hasta dejar el cambio probado y listo; el commit/push lo confirmas tú (ver excepción #1).
Para feature nueva en un módulo existente
/speccon alcance acotado.Ejemplo:
/spec agregar exportación a Excel en el listado de asistencia./plan-eng-review— mirada de arquitectura: qué se reutiliza, qué edge cases hay.Ejemplo: "ya existe lógica de export en
CertificateService, reusar el mismo patrón en vez de crear uno nuevo"./plan-design-review(solo si tiene UI) — audita el plan de diseño antes de implementar.Ejemplo: marca "falta definir el estado de carga mientras se genera el Excel".
- Implementar →
/review→/qa→/cso→/document-release→/ship— igual que el flujo grande.
Para actualizar algo que ya existe
/plan-eng-review(si el cambio toca varias partes) — chequea qué más consume esa función antes de tocarla.Ejemplo: vas a cambiar
evaluate-rule(vigencia PILA) → revisa que Planilla y ARL usan la misma regla antes de modificarla./guard(opcional) — si quieres que el cambio no se escape del archivo/módulo puntual.- Implementar — el cambio en sí.
/review— valida que no rompiste nada al modificar./qa— prueba el comportamiento nuevo y que lo viejo alrededor sigue funcionando.Ejemplo: actualizaste el cálculo de vigencia →
/qaprueba un registro nuevo y uno viejo, confirma que el resultado no cambió donde no debía./document-release(solo si el cambio es visible para otros, no un detalle interno).