guild-agents 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,113 @@
1
+ ---
2
+ name: guild-specialize
3
+ description: "Enriquece CLAUDE.md explorando el proyecto y especializa los agentes al stack real"
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Guild Specialize
8
+
9
+ Explora el proyecto real del usuario y enriquece toda la configuracion de Guild con informacion concreta del stack, arquitectura y convenciones detectadas.
10
+
11
+ Este skill se ejecuta una vez despues de `guild init`. Transforma los placeholders genericos en informacion real del proyecto.
12
+
13
+ ## Cuando usarlo
14
+
15
+ - Inmediatamente despues de ejecutar `guild init`
16
+ - Cuando se agrega un stack nuevo al proyecto (nueva base de datos, nuevo framework)
17
+ - Cuando la estructura del proyecto cambio significativamente
18
+
19
+ ## Proceso
20
+
21
+ ### Paso 1 — Leer contexto base
22
+
23
+ Lee los archivos de configuracion de Guild:
24
+
25
+ - `CLAUDE.md` — instrucciones actuales (contiene placeholders `[PENDIENTE: guild-specialize]`)
26
+ - `PROJECT.md` — identidad y stack declarado durante init
27
+ - `SESSION.md` — estado de sesion actual
28
+
29
+ ### Paso 2 — Explorar el proyecto real
30
+
31
+ Investiga la estructura real del proyecto buscando:
32
+
33
+ **Dependencias y versiones:**
34
+ - `package.json` (Node.js/frontend)
35
+ - `pom.xml` o `build.gradle` (Java)
36
+ - `requirements.txt` o `pyproject.toml` (Python)
37
+ - `Gemfile` (Ruby)
38
+ - `go.mod` (Go)
39
+ - `Cargo.toml` (Rust)
40
+
41
+ **Arquitectura y estructura:**
42
+ - Carpetas `src/`, `app/`, `lib/`, `pkg/`, `internal/`
43
+ - Patron de organizacion: por capas, por features, por dominio
44
+ - Entry points del proyecto
45
+
46
+ **Configuracion y convenciones:**
47
+ - `tsconfig.json`, `eslint.config.*`, `.prettierrc`
48
+ - `.env.example`, `.env.local` (variables de entorno — NO leer `.env` real)
49
+ - `Dockerfile`, `docker-compose.yml`
50
+ - CI/CD: `.github/workflows/`, `.gitlab-ci.yml`
51
+
52
+ **Base de datos y migraciones:**
53
+ - Carpeta `migrations/`, `db/`, `prisma/`, `drizzle/`
54
+ - ORM o query builder configurado
55
+ - Schema existente
56
+
57
+ **Documentacion existente:**
58
+ - `README.md` — vision general del proyecto
59
+ - Documentacion interna en `docs/`
60
+
61
+ ### Paso 3 — Enriquecer CLAUDE.md
62
+
63
+ Reemplaza todos los placeholders `[PENDIENTE: guild-specialize]` en CLAUDE.md con informacion real:
64
+
65
+ - **Stack con versiones exactas**: extraidas de los archivos de dependencias
66
+ - **Estructura de carpetas explicada**: que hace cada carpeta principal
67
+ - **Convenciones de codigo detectadas**: linter, formatter, estilo de imports
68
+ - **Patrones de arquitectura identificados**: MVC, hexagonal, modular, etc.
69
+ - **Variables de entorno conocidas**: listadas desde `.env.example`
70
+ - **Limitaciones y deuda tecnica visible**: dependencias desactualizadas, TODOs encontrados
71
+ - **Comandos utiles del proyecto**: scripts de npm/make/cargo detectados
72
+
73
+ ### Paso 4 — Especializar agentes
74
+
75
+ Para cada agente en `.claude/agents/*.md`, agrega contexto especifico del proyecto:
76
+
77
+ - **advisor.md**: dominio real del proyecto, usuarios objetivo
78
+ - **tech-lead.md**: stack especifico, patrones detectados, decisiones de arquitectura
79
+ - **product-owner.md**: funcionalidades existentes, backlog visible
80
+ - **developer.md**: convenciones de codigo, framework principal, estructura de archivos
81
+ - **code-reviewer.md**: reglas de lint, patrones del proyecto, anti-patrones a vigilar
82
+ - **qa.md**: framework de testing, comandos para ejecutar tests, cobertura actual
83
+ - **bugfix.md**: stack de debugging, logs, herramientas disponibles
84
+ - **db-migration.md**: ORM, herramienta de migraciones, schema actual (si aplica)
85
+
86
+ Usa el tool `Task` para invocar cada agente leyendo su `.claude/agents/[nombre].md` si necesitas perspectiva especializada para enriquecer su configuracion.
87
+
88
+ ### Paso 5 — Confirmar
89
+
90
+ Presenta un resumen de lo detectado:
91
+
92
+ ```
93
+ Guild v1 especializado para [nombre-proyecto]
94
+
95
+ Stack detectado:
96
+ - [lista de tecnologias con versiones]
97
+
98
+ Arquitectura:
99
+ - [patron identificado]
100
+ - [estructura principal]
101
+
102
+ Agentes actualizados:
103
+ - [lista de agentes con su especializacion aplicada]
104
+
105
+ Ejecuta /status para ver el estado completo.
106
+ ```
107
+
108
+ ## Notas importantes
109
+
110
+ - NUNCA leas archivos `.env` reales — solo `.env.example` o `.env.local`
111
+ - Si no puedes detectar algo con certeza, pregunta al usuario en vez de asumir
112
+ - Prioriza precision sobre completitud — es mejor decir "no detectado" que inventar
113
+ - Los agentes deben quedar especializados al stack real, no generico
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: new-feature
3
+ description: "Crea branch y scaffold para una nueva feature"
4
+ user-invocable: true
5
+ ---
6
+
7
+ # New Feature
8
+
9
+ Prepara el entorno para trabajar en una nueva feature: crea branch, actualiza SESSION.md y opcionalmente crea un GitHub Issue.
10
+
11
+ ## Cuando usarlo
12
+
13
+ - Al iniciar una feature nueva antes de escribir codigo
14
+ - Cuando quieres dejar registrado el contexto de la feature en SESSION.md
15
+
16
+ ## Uso
17
+
18
+ `/new-feature [nombre-de-la-feature]`
19
+
20
+ ## Proceso
21
+
22
+ ### Paso 1 — Obtener nombre
23
+
24
+ Si el usuario no proporciono nombre, preguntale:
25
+ - Nombre corto para la feature (se usara en el nombre del branch)
26
+ - Descripcion breve (1-2 oraciones)
27
+
28
+ ### Paso 2 — Crear branch
29
+
30
+ Crea un branch git para la feature:
31
+
32
+ ```bash
33
+ git checkout -b feature/[nombre-de-la-feature]
34
+ ```
35
+
36
+ Si el branch ya existe, pregunta si quiere cambiarse a el o crear uno nuevo.
37
+
38
+ ### Paso 3 — Actualizar SESSION.md
39
+
40
+ Actualiza SESSION.md con el contexto de la nueva feature:
41
+
42
+ - **Fecha:** fecha actual
43
+ - **Tarea en curso:** nombre de la feature
44
+ - **Estado:** Feature iniciada — pendiente de implementacion
45
+
46
+ ### Paso 4 — GitHub Issue (opcional)
47
+
48
+ Si el proyecto tiene integracion GitHub configurada en PROJECT.md:
49
+ 1. Pregunta si quiere crear un GitHub Issue para la feature
50
+ 2. Si acepta, crea el issue con `gh issue create`
51
+ 3. Registra la URL del issue en SESSION.md
52
+
53
+ ### Paso 5 — Confirmar
54
+
55
+ Confirma al usuario:
56
+ - Branch creado: `feature/[nombre]`
57
+ - SESSION.md actualizado
58
+ - GitHub Issue creado (si aplica)
59
+ - Sugiere: "Ejecuta /build-feature para implementar la feature completa"
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: qa-cycle
3
+ description: "Ciclo QA + bugfix hasta que pase"
4
+ user-invocable: true
5
+ ---
6
+
7
+ # QA Cycle
8
+
9
+ Ejecuta un ciclo de validacion QA seguido de bugfix hasta que todos los criterios pasen limpio. Util para validar implementaciones sin el pipeline completo de build-feature.
10
+
11
+ ## Cuando usarlo
12
+
13
+ - Despues de implementar cambios que necesitan validacion
14
+ - Para verificar que una correccion de bug no introdujo regresiones
15
+ - Como ciclo final antes de crear un PR
16
+
17
+ ## Uso
18
+
19
+ `/qa-cycle`
20
+
21
+ ## Proceso
22
+
23
+ ### Paso 1 — Validacion QA
24
+
25
+ Invoca el agente QA usando Task tool:
26
+ 1. Lee `.claude/agents/qa.md` para asumir el rol de QA
27
+ 2. Lee CLAUDE.md y SESSION.md para contexto
28
+ 3. Revisa los criterios de aceptacion de la tarea en curso (si existen en SESSION.md)
29
+ 4. Ejecuta los tests del proyecto
30
+ 5. Valida edge cases y escenarios de error
31
+ 6. Reporta resultados
32
+
33
+ ### Paso 2 — Bugfix (si hay bugs)
34
+
35
+ Si QA reporta bugs, invoca el agente Bugfix usando Task tool:
36
+ 1. Lee `.claude/agents/bugfix.md` para asumir el rol de Bugfix
37
+ 2. Recibe el reporte de bugs de QA como input
38
+ 3. Diagnostica la causa raiz de cada bug
39
+ 4. Implementa la correccion minima
40
+ 5. Verifica que el fix resuelve el problema
41
+
42
+ ### Paso 3 — Re-validacion
43
+
44
+ Vuelve al Paso 1 para re-validar despues del bugfix.
45
+ Maximo 3 ciclos de QA-bugfix para evitar loops infinitos.
46
+
47
+ ### Paso 4 — Resultado final
48
+
49
+ Presenta el resultado:
50
+ - **Aprobado**: Todos los criterios pasan, no hay bugs pendientes
51
+ - **Con advertencias**: Pasa pero hay warnings menores
52
+ - **Rechazado**: Hay bugs criticos que no se pudieron resolver — escalar al Tech Lead
53
+
54
+ Actualiza SESSION.md con el resultado del ciclo QA.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: review
3
+ description: "Code review standalone sobre el diff actual"
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Review
8
+
9
+ Ejecuta un code review independiente sobre los cambios actuales del proyecto. Invoca al agente Code Reviewer para analizar calidad, patrones, seguridad y deuda tecnica.
10
+
11
+ ## Cuando usarlo
12
+
13
+ - Antes de crear un PR
14
+ - Para revisar cambios propios antes de pedir review a otros
15
+ - Cuando quieres una segunda opinion sobre el codigo que escribiste
16
+
17
+ ## Uso
18
+
19
+ `/review`
20
+
21
+ ## Proceso
22
+
23
+ ### Paso 1 — Obtener diff
24
+
25
+ Obtiene los cambios actuales:
26
+ 1. Primero intenta `git diff --staged` (cambios en staging)
27
+ 2. Si no hay cambios en staging, usa `git diff` (cambios sin stage)
28
+ 3. Si no hay ningun cambio, informa que no hay nada que revisar
29
+
30
+ ### Paso 2 — Invocar Code Reviewer
31
+
32
+ Invoca al agente Code Reviewer usando Task tool:
33
+ 1. Lee `.claude/agents/code-reviewer.md` para asumir el rol
34
+ 2. Lee CLAUDE.md para entender las convenciones del proyecto
35
+ 3. Revisa el diff completo
36
+ 4. Clasifica cada hallazgo por severidad:
37
+ - **Blocker**: Debe corregirse antes de merge
38
+ - **Warning**: Deberia corregirse, introduce deuda tecnica
39
+ - **Suggestion**: Mejora opcional
40
+
41
+ ### Paso 3 — Presentar hallazgos
42
+
43
+ Presenta el reporte organizado por severidad:
44
+ - Cantidad total de hallazgos por tipo
45
+ - Detalle de cada hallazgo: archivo, descripcion, sugerencia de correccion
46
+ - Veredicto final: Aprobado / Aprobado con warnings / Bloqueado
47
+
48
+ Si hay blockers, sugiere corregirlos y ejecutar `/review` de nuevo.
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: session-end
3
+ description: "Guarda estado actual en SESSION.md"
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Session End
8
+
9
+ Guarda el estado actual del trabajo en SESSION.md para poder retomarlo en la siguiente sesion. Ejecuta este skill antes de cerrar la sesion de trabajo.
10
+
11
+ ## Cuando usarlo
12
+
13
+ - Antes de cerrar la sesion de trabajo
14
+ - Cuando necesitas pausar y quieres guardar el contexto
15
+
16
+ ## Uso
17
+
18
+ `/session-end`
19
+
20
+ ## Proceso
21
+
22
+ ### Paso 1 — Recopilar estado actual
23
+
24
+ Analiza el estado actual del trabajo:
25
+ - Que tarea estaba en curso
26
+ - En que fase del pipeline se encuentra (si aplica)
27
+ - Que archivos se modificaron (via `git status`)
28
+ - Que commits se hicieron en esta sesion
29
+
30
+ ### Paso 2 — Actualizar SESSION.md
31
+
32
+ Actualiza SESSION.md con la siguiente informacion:
33
+
34
+ - **Fecha:** fecha actual
35
+ - **Tarea en curso:** nombre de la tarea o "ninguna"
36
+ - **GitHub Issue:** URL del issue asociado (si existe)
37
+ - **Agente activo:** ultimo agente utilizado o "ninguno"
38
+ - **Estado:** descripcion concreta de donde quedo el trabajo
39
+
40
+ **Contexto relevante:**
41
+ - Decisiones tomadas en esta sesion
42
+ - Problemas encontrados y como se resolvieron
43
+ - Informacion importante para retomar
44
+
45
+ **Proximos pasos:**
46
+ - Las 2-3 acciones concretas mas importantes al retomar
47
+ - Skill sugerido para continuar (ej: "ejecutar /build-feature para continuar desde Fase 4")
48
+
49
+ ### Paso 3 — Confirmar
50
+
51
+ Confirma al usuario:
52
+ - SESSION.md actualizado con el estado actual
53
+ - Proximos pasos registrados
54
+ - Puedes cerrar la sesion con seguridad
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: session-start
3
+ description: "Carga contexto y retoma trabajo desde SESSION.md"
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Session Start
8
+
9
+ Carga el contexto del proyecto y retoma el trabajo desde donde se dejo en la sesion anterior. Este es el primer skill que debes ejecutar al iniciar una sesion de trabajo.
10
+
11
+ ## Cuando usarlo
12
+
13
+ - Al inicio de cada sesion de trabajo con el proyecto
14
+ - Cuando quieres retomar el contexto despues de una pausa
15
+
16
+ ## Uso
17
+
18
+ `/session-start`
19
+
20
+ ## Proceso
21
+
22
+ ### Paso 1 — Cargar contexto
23
+
24
+ Lee los archivos de estado de Guild:
25
+ - `CLAUDE.md` — instrucciones, convenciones y reglas del proyecto
26
+ - `SESSION.md` — estado de la ultima sesion, tarea en curso, proximos pasos
27
+ - `PROJECT.md` — identidad del proyecto, stack, agentes configurados
28
+
29
+ ### Paso 2 — Presentar estado
30
+
31
+ Muestra un resumen de la sesion anterior:
32
+ - Fecha de la ultima sesion
33
+ - Tarea en curso (si existe)
34
+ - Estado en que quedo el trabajo
35
+ - Decisiones tomadas previamente
36
+ - Proximos pasos registrados
37
+
38
+ ### Paso 3 — Sugerir como continuar
39
+
40
+ Si hay tarea en curso:
41
+ - Muestra el estado de la tarea
42
+ - Sugiere continuar con el skill apropiado (ej: `/build-feature` si esta en implementacion)
43
+ - Muestra los proximos pasos registrados en SESSION.md
44
+
45
+ Si no hay tarea en curso, sugiere opciones:
46
+ - `/build-feature [descripcion]` — para implementar una feature nueva
47
+ - `/new-feature [nombre]` — para preparar el entorno de una feature
48
+ - `/status` — para ver el estado general del proyecto
49
+ - `/council [pregunta]` — para debatir una decision importante
50
+
51
+ ### Paso 4 — Actualizar sesion
52
+
53
+ Actualiza SESSION.md con la fecha actual para registrar que la sesion inicio.
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: status
3
+ description: "Muestra estado actual del proyecto y sesion"
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Status
8
+
9
+ Muestra un resumen completo del estado actual del proyecto, la sesion activa y los recursos disponibles de Guild.
10
+
11
+ ## Cuando usarlo
12
+
13
+ - Al inicio de una sesion para orientarte
14
+ - Para verificar que Guild esta correctamente configurado
15
+ - Para ver que agentes y skills estan disponibles
16
+
17
+ ## Uso
18
+
19
+ `/status`
20
+
21
+ ## Proceso
22
+
23
+ ### Paso 1 — Leer archivos de estado
24
+
25
+ Lee los archivos de configuracion de Guild:
26
+ - `CLAUDE.md` — instrucciones y convenciones del proyecto
27
+ - `PROJECT.md` — identidad, stack y agentes configurados
28
+ - `SESSION.md` — estado de la sesion actual
29
+
30
+ ### Paso 2 — Presentar estado
31
+
32
+ Muestra el resumen con el siguiente formato:
33
+
34
+ ```
35
+ Guild v1 — [nombre del proyecto]
36
+
37
+ Sesion actual:
38
+ - Fecha: [fecha de SESSION.md]
39
+ - Tarea en curso: [tarea o "ninguna"]
40
+ - Estado: [estado actual]
41
+
42
+ Stack:
43
+ - [tecnologias listadas en PROJECT.md]
44
+
45
+ Agentes disponibles:
46
+ - [lista de archivos .md en .claude/agents/]
47
+
48
+ Skills disponibles:
49
+ - [lista de directorios en .claude/skills/]
50
+
51
+ Proximos pasos:
52
+ - [extraidos de SESSION.md]
53
+ ```
54
+
55
+ ### Paso 3 — Sugerir acciones
56
+
57
+ Si no hay tarea en curso, sugiere:
58
+ - `/build-feature` para implementar algo nuevo
59
+ - `/new-feature` para preparar el entorno de una feature
60
+ - `/council` para debatir una decision
61
+
62
+ Si hay tarea en curso, sugiere continuar con el skill apropiado segun el estado.
@@ -0,0 +1,82 @@
1
+ /**
2
+ * files.js — Utilidades de sistema de archivos para Guild v1
3
+ */
4
+
5
+ import { mkdirSync, copyFileSync, existsSync, readdirSync, readFileSync } from 'fs';
6
+ import { join, dirname } from 'path';
7
+ import { fileURLToPath } from 'url';
8
+
9
+ const __dirname = dirname(fileURLToPath(import.meta.url));
10
+ const TEMPLATES_DIR = join(__dirname, '..', 'templates');
11
+ const AGENTS_DIR = join('.claude', 'agents');
12
+ const SKILLS_DIR = join('.claude', 'skills');
13
+
14
+ /**
15
+ * Lista los nombres de los 8 agentes v1.
16
+ */
17
+ export function getAgentNames() {
18
+ return [
19
+ 'advisor',
20
+ 'product-owner',
21
+ 'tech-lead',
22
+ 'developer',
23
+ 'code-reviewer',
24
+ 'qa',
25
+ 'bugfix',
26
+ 'db-migration',
27
+ ];
28
+ }
29
+
30
+ /**
31
+ * Copia los templates de agentes y skills al proyecto del usuario.
32
+ */
33
+ export async function copyTemplates() {
34
+ mkdirSync(AGENTS_DIR, { recursive: true });
35
+ mkdirSync(SKILLS_DIR, { recursive: true });
36
+
37
+ // Copy flat agent .md files
38
+ for (const name of getAgentNames()) {
39
+ const src = join(TEMPLATES_DIR, 'agents', `${name}.md`);
40
+ const dest = join(AGENTS_DIR, `${name}.md`);
41
+ if (existsSync(src)) {
42
+ copyFileSync(src, dest);
43
+ }
44
+ }
45
+
46
+ // Copy skill directories with SKILL.md
47
+ const skillsTemplate = join(TEMPLATES_DIR, 'skills');
48
+ if (existsSync(skillsTemplate)) {
49
+ const skills = readdirSync(skillsTemplate, { withFileTypes: true })
50
+ .filter(d => d.isDirectory())
51
+ .map(d => d.name);
52
+
53
+ for (const skill of skills) {
54
+ const skillDir = join(SKILLS_DIR, skill);
55
+ mkdirSync(skillDir, { recursive: true });
56
+
57
+ const src = join(skillsTemplate, skill, 'SKILL.md');
58
+ const dest = join(skillDir, 'SKILL.md');
59
+ if (existsSync(src)) {
60
+ copyFileSync(src, dest);
61
+ }
62
+ }
63
+ }
64
+ }
65
+
66
+ /**
67
+ * Lee el contenido de PROJECT.md si existe.
68
+ */
69
+ export function readProjectMd() {
70
+ const path = 'PROJECT.md';
71
+ if (!existsSync(path)) return null;
72
+ return readFileSync(path, 'utf8');
73
+ }
74
+
75
+ /**
76
+ * Lee el contenido de SESSION.md si existe.
77
+ */
78
+ export function readSessionMd() {
79
+ const path = 'SESSION.md';
80
+ if (!existsSync(path)) return null;
81
+ return readFileSync(path, 'utf8');
82
+ }
@@ -0,0 +1,104 @@
1
+ /**
2
+ * generators.js — Genera los archivos de estado del proyecto (v1)
3
+ */
4
+
5
+ import { writeFileSync } from 'fs';
6
+
7
+ /**
8
+ * Genera PROJECT.md con los datos del onboarding.
9
+ * V1: solo metadata cruda — CLAUDE.md tiene el contexto enriquecido.
10
+ */
11
+ export async function generateProjectMd(data) {
12
+ const date = new Date().toISOString().split('T')[0];
13
+
14
+ let content = `# PROJECT.md
15
+ > Generado por Guild v1 el ${date}
16
+
17
+ ## Proyecto
18
+ - **Nombre:** ${data.name}
19
+ - **Tipo:** ${data.type}
20
+ - **Stack:** ${data.stack}
21
+ - **Codigo existente:** ${data.hasExistingCode ? 'Si' : 'No'}
22
+ `;
23
+
24
+ if (data.github?.repoUrl) {
25
+ content += `
26
+ ## GitHub
27
+ - **Repositorio:** ${data.github.repoUrl}
28
+ `;
29
+ }
30
+
31
+ writeFileSync('PROJECT.md', content, 'utf8');
32
+ }
33
+
34
+ /**
35
+ * Genera CLAUDE.md — documento central con placeholders para guild-specialize.
36
+ */
37
+ export async function generateClaudeMd(data) {
38
+ const content = `# ${data.name}
39
+
40
+ ## Framework
41
+ Este proyecto usa Guild. Leer SESSION.md al inicio de cada sesion.
42
+
43
+ ## Stack
44
+ ${data.stack}
45
+
46
+ ## Estructura del proyecto
47
+ [PENDIENTE: guild-specialize]
48
+
49
+ ## Convenciones de codigo
50
+ [PENDIENTE: guild-specialize]
51
+
52
+ ## Patrones de arquitectura
53
+ [PENDIENTE: guild-specialize]
54
+
55
+ ## Variables de entorno
56
+ [PENDIENTE: guild-specialize]
57
+
58
+ ## Reglas globales
59
+ - No implementar sin plan aprobado
60
+ - Actualizar SESSION.md al cerrar cada sesion
61
+ - ESModules en todo el codigo
62
+ - path.join() siempre para construir paths
63
+
64
+ ## Skills disponibles
65
+ - /guild-specialize — enriquecer CLAUDE.md explorando el proyecto real
66
+ - /build-feature — pipeline completo de desarrollo
67
+ - /new-feature — crear branch y scaffold para feature
68
+ - /council — debatir decisiones con multiples agentes
69
+ - /review — code review sobre el diff actual
70
+ - /qa-cycle — ciclo QA + bugfix
71
+ - /status — ver estado del proyecto
72
+ - /dev-flow — ver fase actual del pipeline
73
+ - /session-start — cargar contexto y retomar trabajo
74
+ - /session-end — guardar estado en SESSION.md
75
+ `;
76
+
77
+ writeFileSync('CLAUDE.md', content, 'utf8');
78
+ }
79
+
80
+ /**
81
+ * Genera SESSION.md inicial.
82
+ */
83
+ export async function generateSessionMd() {
84
+ const date = new Date().toISOString().split('T')[0];
85
+
86
+ const content = `# SESSION.md
87
+
88
+ ## Sesion activa
89
+ - **Fecha:** ${date}
90
+ - **Tarea en curso:** —
91
+ - **Agente activo:** —
92
+ - **Estado:** Proyecto recien inicializado con Guild v1
93
+
94
+ ## Contexto relevante
95
+ - Onboarding completado. Ver PROJECT.md para datos del proyecto.
96
+ - CLAUDE.md tiene placeholders — ejecutar /guild-specialize para enriquecer.
97
+
98
+ ## Proximos pasos
99
+ 1. Abrir Claude Code y ejecutar /guild-specialize
100
+ 2. Definir la primera feature con /build-feature
101
+ `;
102
+
103
+ writeFileSync('SESSION.md', content, 'utf8');
104
+ }