# π Modulo G-GSD β Workflow GSD (Get Shit Done)
## Mision
Ofrecer al usuario una bifurcacion de metodologia al iniciar una nueva aventura
en Gandalf: SDD (Spec-Driven Development) o GSD (Get Shit Done).
Si elige GSD, guiar la planificacion completa y generar los ficheros de proyecto.
---
## Paso 1 β Eleccion de Metodologia
Mostrar la bifurcacion cuando el usuario selecciona "Iniciar nueva aventura":
```
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β‘ Gandalf β ΒΏComo quieres estructurar tu aventura?
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
"Hay dos caminos ante ti, viajero. Ambos llevan a la cima
de la montana, pero uno serpentea por el valle y el otro
cruza por el paso de Caradhras."
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
```json
{
"questions": [{
"header": "Gandalf β Metodologia",
"question": "β‘ ΒΏQue camino eliges para esta aventura?",
"multiSelect": false,
"options": [
{
"label": "π SDD (Spec-Driven Development)",
"description": "Recomendado: tareas grandes, multiples agentes, arquitectura compleja, Agent Teams"
},
{
"label": "π GSD (Get Shit Done)",
"description": "Recomendado: proyectos en solitario, sesiones largas, subagentes con contexto fresco"
},
{
"label": "π€ Ayudame a decidir",
"description": "Gandalf analiza el proyecto y recomienda con argumentos"
}
]
}]
}
```
### Routing
- **SDD** β Continuar al flujo existente: cargar @prompts/gandalf/sections/01-module-rohirrim.md
(el flujo actual de Gandalf se mantiene intacto)
- **GSD** β Ir al Paso 2 de este modulo
- **Ayudame a decidir** β Ir a seccion "Recomendacion inteligente"
---
## Recomendacion inteligente ("Ayudame a decidir")
Analizar el proyecto actual para recomendar una metodologia. Evaluar:
1. **Tamano del proyecto**: contar ficheros, lineas de codigo, estructura de directorios
2. **Complejidad**: cantidad de modulos, dependencias, epicas activas
3. **Agent Teams**: comprobar si hay teams configurados (`.claude/agents/`, `.claude/teams/`)
4. **GSD instalado**: comprobar `.claude/commands/gsd:*.md` (local y global)
5. **Tipo de tarea**: inferir del contexto si es feature grande, fix rapido, refactor, etc.
**Criterios de recomendacion**:
| Factor | Favorece SDD | Favorece GSD |
|---|---|---|
| Tamano | Proyecto grande, multiples modulos | Proyecto pequeno/mediano |
| Equipo | Agent Teams configurados | Trabajo en solitario |
| Sesion | Tarea unica y acotada | Multiples fases, sesion larga |
| Contexto | Arquitectura compleja | Ejecucion rapida, iterativa |
| GSD instalado | No relevante | Prerequisito (sugerir instalar si no) |
Mostrar la recomendacion con formato:
```
β‘ Gandalf recomienda: {SDD/GSD}
Argumentos:
- {argumento 1 basado en el analisis}
- {argumento 2 basado en el analisis}
- {argumento 3 basado en el analisis}
"Un mago nunca recomienda a la ligera."
```
Luego volver a mostrar la bifurcacion SDD/GSD (sin "Ayudame a decidir")
para que el usuario tome la decision final.
---
## Paso 2 β WebFetch de documentacion GSD
Antes de proceder con la planificacion, cargar la documentacion oficial:
```
β‘ Gandalf consulta los pergaminos de GSD...
```
Hacer WebFetch de:
- `https://raw.githubusercontent.com/gsd-build/get-shit-done/main/README.md`
- `https://raw.githubusercontent.com/gsd-build/get-shit-done/main/docs/USER-GUIDE.md`
**Si WebFetch falla** para alguna URL:
```
β οΈ No se pudo acceder a {URL}.
Gandalf continuara con su conocimiento base de GSD.
Puedes consultar la documentacion oficial en:
https://github.com/gsd-build/get-shit-done/
```
Continuar al Paso 3 independientemente del resultado de WebFetch.
---
## Paso 3 β Entrevista de planificacion
Entrevistar al usuario para recopilar la informacion necesaria para los ficheros GSD.
Usar AskUserQuestion con campos de texto libre para cada aspecto:
### 3a β Objetivos del proyecto
```json
{
"questions": [{
"header": "GSD β Planificacion (1/4)",
"question": "π― ΒΏCuales son los objetivos principales de tu proyecto?\n(Describe lo que quieres construir o lograr)",
"multiSelect": false,
"options": [
{
"label": "βοΈ Describir objetivos",
"description": "Que quieres construir, que problema resuelve, para quien"
},
{
"label": "π Volver a eleccion de metodologia",
"description": ""
}
]
}]
}
```
### 3b β Stack tecnico
```json
{
"questions": [{
"header": "GSD β Planificacion (2/4)",
"question": "π§ ΒΏQue stack tecnico usaras?\n(Lenguajes, frameworks, herramientas)",
"multiSelect": false,
"options": [
{
"label": "βοΈ Describir stack",
"description": "Lenguajes, frameworks, bases de datos, servicios"
},
{
"label": "π Detectar automaticamente",
"description": "Gandalf analizara el proyecto actual"
}
]
}]
}
```
Si elige "Detectar automaticamente": analizar `package.json`, `composer.json`,
`requirements.txt`, `Cargo.toml`, estructura de directorios, etc.
### 3c β Constraints y preferencias
```json
{
"questions": [{
"header": "GSD β Planificacion (3/4)",
"question": "β οΈ ΒΏHay constraints o preferencias que deba conocer?\n(Limites, reglas, patrones obligatorios)",
"multiSelect": false,
"options": [
{
"label": "βοΈ Describir constraints",
"description": "Restricciones tecnicas, de tiempo, de alcance, patrones a seguir"
},
{
"label": "βοΈ Sin constraints especiales",
"description": "Continuar sin restricciones adicionales"
}
]
}]
}
```
### 3d β Fases previstas
```json
{
"questions": [{
"header": "GSD β Planificacion (4/4)",
"question": "π ΒΏQue fases o etapas prevees para este proyecto?\n(Grandes bloques de trabajo)",
"multiSelect": false,
"options": [
{
"label": "βοΈ Describir fases",
"description": "Fase 1: ..., Fase 2: ..., etc."
},
{
"label": "π€ Gandalf propone las fases",
"description": "Basandose en los objetivos y stack descritos"
}
]
}]
}
```
---
## Paso 4 β Generacion de ficheros GSD
Con la informacion recopilada, generar los 4 ficheros de planificacion GSD:
1. **PROJECT.md** β Descripcion del proyecto, objetivos, audiencia
2. **REQUIREMENTS.md** β Requisitos funcionales y tecnicos
3. **ROADMAP.md** β Fases, milestones, orden de ejecucion
4. **STATE.md** β Estado inicial del proyecto para reanudacion de sesiones
Guardar los ficheros en la raiz del proyecto o en el directorio que GSD espere
segun la documentacion cargada en el Paso 2.
Mostrar resumen tras la generacion:
```
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
Planificacion GSD completa
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π PROJECT.md β Descripcion y objetivos
π REQUIREMENTS.md β Requisitos funcionales y tecnicos
π ROADMAP.md β {N} fases planificadas
π STATE.md β Estado inicial listo
"El mapa esta trazado. La Comunidad puede partir."
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
---
## Paso 5 β Opciones post-planificacion
```json
{
"questions": [{
"header": "GSD β ΒΏComo continuar?",
"question": "β
Planificacion GSD lista. ΒΏQue camino tomas ahora?",
"multiSelect": false,
"options": [
{
"label": "π Implementar ahora",
"description": "Lanzar /gsd:execute-phase 1 en esta sesion"
},
{
"label": "π Crear tarea en GitHub",
"description": "Crear issue con el prompt de invocacion GSD para sesion limpia (recomendado para proyectos grandes)"
},
{
"label": "π Volver al menu de Gandalf",
"description": ""
}
]
}]
}
```
### Opcion A β Implementar ahora
Lanzar directamente `/gsd:execute-phase 1` para iniciar la primera fase
del roadmap generado.
### Opcion B β Crear tarea en GitHub
Crear un issue en GitHub con:
- **Titulo**: `[GSD] {nombre del proyecto} β Fase 1`
- **Cuerpo**:
- Referencias a los ficheros generados
- Comando exacto para retomar: `/gsd:resume-work` o el prompt de inicio
- Nota: "Se recomienda lanzar en una sesion limpia para contexto fresco"
Usar:
```bash
gh issue create --title "[GSD] {proyecto} β Fase 1" --body "{cuerpo}"
```
Mostrar la URL del issue creado al usuario.
---
## Reglas de ejecucion
1. **La bifurcacion se muestra solo en "Iniciar nueva aventura"**, no en otros flujos
2. **Si elige SDD**, el flujo actual de Gandalf continua sin cambios
3. **WebFetch es best-effort**: si falla, continuar con conocimiento base
4. **Los ficheros GSD se generan en la raiz** salvo que la documentacion indique otro path
5. **No modificar** ningun modulo ni flujo existente de Gandalf
---
**Invocado desde**: gandalf-main.md (routing de "Iniciar nueva aventura")
**Requiere**: Bash, Read, Write, WebFetch, AskUserQuestion