@cristiancorreau/forge 2.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.
Files changed (153) hide show
  1. package/CHANGELOG.md +228 -0
  2. package/LICENSE +191 -0
  3. package/README.md +156 -0
  4. package/assets/adapters/claude-code/commands/deploy-check.md +12 -0
  5. package/assets/adapters/claude-code/commands/new-feature.md +11 -0
  6. package/assets/adapters/claude-code/commands/plan.md +116 -0
  7. package/assets/adapters/claude-code/commands/review.md +219 -0
  8. package/assets/adapters/claude-code/commands/session-close.md +109 -0
  9. package/assets/adapters/claude-code/commands/session-start.md +59 -0
  10. package/assets/adapters/claude-code/commands/ship.md +133 -0
  11. package/assets/adapters/claude-code/commands/wiki-ingest.md +7 -0
  12. package/assets/adapters/claude-code/commands/wiki-lint.md +5 -0
  13. package/assets/adapters/claude-code/commands/wiki-query.md +7 -0
  14. package/assets/adapters/claude-code/commands/work.md +101 -0
  15. package/assets/adapters/claude-code/generate-claude-md.py +304 -0
  16. package/assets/adapters/codex/commands/plan.md +63 -0
  17. package/assets/adapters/codex/commands/review.md +53 -0
  18. package/assets/adapters/codex/commands/session-close.md +53 -0
  19. package/assets/adapters/codex/commands/session-start.md +49 -0
  20. package/assets/adapters/codex/commands/ship.md +53 -0
  21. package/assets/adapters/codex/commands/work.md +53 -0
  22. package/assets/adapters/codex/generate-codex-config.py +269 -0
  23. package/assets/adapters/codex/hooks/codex.yaml.tpl +43 -0
  24. package/assets/adapters/codex/hooks/forge-codex-finish.sh +158 -0
  25. package/assets/adapters/codex/hooks/forge-codex-start.sh +186 -0
  26. package/assets/adapters/kiro/generate-steering.py +367 -0
  27. package/assets/adapters/opencode/HOOKS.md +123 -0
  28. package/assets/adapters/opencode/commands/plan.md +119 -0
  29. package/assets/adapters/opencode/commands/review.md +164 -0
  30. package/assets/adapters/opencode/commands/session-close.md +111 -0
  31. package/assets/adapters/opencode/commands/session-start.md +62 -0
  32. package/assets/adapters/opencode/commands/ship.md +135 -0
  33. package/assets/adapters/opencode/commands/work.md +82 -0
  34. package/assets/adapters/opencode/generate-agents-md.py +262 -0
  35. package/assets/core/agents/backend-engineer.md +61 -0
  36. package/assets/core/agents/compliance-reviewer.md +83 -0
  37. package/assets/core/agents/docs-writer.md +77 -0
  38. package/assets/core/agents/frontend-engineer.md +70 -0
  39. package/assets/core/agents/orchestrator.md +104 -0
  40. package/assets/core/agents/security-auditor.md +54 -0
  41. package/assets/core/agents/test-engineer.md +57 -0
  42. package/assets/core/hooks/hooks-registry.yaml +48 -0
  43. package/assets/core/hooks/post-turn-check.sh +139 -0
  44. package/assets/core/hooks/pre-bash-check.py +202 -0
  45. package/assets/core/hooks/pre-edit-check.py +317 -0
  46. package/assets/core/hooks/session-start.sh +184 -0
  47. package/assets/core/schemas/project.schema.json +503 -0
  48. package/assets/core/skills/README.md +88 -0
  49. package/assets/core/skills/aitmpl-search/SKILL.md +74 -0
  50. package/assets/core/skills/browser-test/SKILL.md +177 -0
  51. package/assets/core/skills/db-migrate/SKILL.md +163 -0
  52. package/assets/core/skills/local2prod/SKILL.md +147 -0
  53. package/assets/core/skills/new-feature/SKILL.md +155 -0
  54. package/assets/core/skills/obsidian-sync/SKILL.md +152 -0
  55. package/assets/core/skills/phase-kickoff/SKILL.md +69 -0
  56. package/assets/core/skills/security-audit/SKILL.md +125 -0
  57. package/assets/core/skills/spec/SKILL.md +72 -0
  58. package/assets/core/skills/wiki-ingest/SKILL.md +183 -0
  59. package/assets/core/skills/wiki-lint/SKILL.md +109 -0
  60. package/assets/core/skills/wiki-query/SKILL.md +100 -0
  61. package/assets/core/templates/claude-md/architecture.rules +20 -0
  62. package/assets/core/templates/claude-md/global.md +30 -0
  63. package/assets/core/templates/claude-md/project.md +36 -0
  64. package/assets/core/templates/daily-note.md +38 -0
  65. package/assets/core/templates/spec-template.md +43 -0
  66. package/assets/core/workflows/sdd.md +69 -0
  67. package/assets/core/workflows/sprint.md +59 -0
  68. package/assets/forge.py +1265 -0
  69. package/assets/hooks/pre-commit +43 -0
  70. package/assets/manifest.json +274 -0
  71. package/assets/profiles/astro/README.md +24 -0
  72. package/assets/profiles/astro/agents/frontend-engineer.md +74 -0
  73. package/assets/profiles/django/agents/api-engineer.md +83 -0
  74. package/assets/profiles/expo/README.md +24 -0
  75. package/assets/profiles/expo/agents/mobile-engineer.md +69 -0
  76. package/assets/profiles/express/agents/api-engineer.md +60 -0
  77. package/assets/profiles/fastapi/README.md +32 -0
  78. package/assets/profiles/fastapi/agents/api-engineer.md +87 -0
  79. package/assets/profiles/go-gin/agents/api-engineer.md +98 -0
  80. package/assets/profiles/hono-drizzle/README.md +31 -0
  81. package/assets/profiles/hono-drizzle/agents/api-engineer.md +82 -0
  82. package/assets/profiles/laravel/README.md +32 -0
  83. package/assets/profiles/laravel/agents/api-engineer.md +114 -0
  84. package/assets/profiles/laravel/agents/fullstack-engineer.md +67 -0
  85. package/assets/profiles/laravel/agents/migration-specialist.md +420 -0
  86. package/assets/profiles/nestjs/agents/api-engineer.md +79 -0
  87. package/assets/profiles/nextjs-admin/README.md +32 -0
  88. package/assets/profiles/nextjs-admin/agents/admin-engineer.md +78 -0
  89. package/assets/profiles/playwright-crawler/agents/scanner-engineer.md +51 -0
  90. package/assets/profiles/rails/agents/fullstack-engineer.md +61 -0
  91. package/assets/profiles/sveltekit/agents/frontend-engineer.md +96 -0
  92. package/assets/profiles/vuenuxt/agents/frontend-engineer.md +82 -0
  93. package/assets/profiles/wordpress/README.md +30 -0
  94. package/assets/profiles/wordpress/agents/divi-engineer.md +273 -0
  95. package/assets/profiles/wordpress/agents/elementor-engineer.md +310 -0
  96. package/assets/profiles/wordpress/agents/wp-engineer.md +216 -0
  97. package/assets/requirements.txt +2 -0
  98. package/assets/scripts/aitmpl-search.py +808 -0
  99. package/assets/scripts/forge-add-opportunities.py +92 -0
  100. package/assets/scripts/forge-audit.py +1061 -0
  101. package/assets/scripts/forge-generate-all.py +283 -0
  102. package/assets/scripts/forge-init.py +900 -0
  103. package/assets/scripts/forge-migrate-project-yaml.py +397 -0
  104. package/assets/scripts/forge-scaffold-profile.py +181 -0
  105. package/assets/scripts/forge-teardown.py +193 -0
  106. package/assets/scripts/forge-validate-project-yaml.py +457 -0
  107. package/assets/scripts/forge-wizard.py +1003 -0
  108. package/assets/scripts/setup-codex.sh +229 -0
  109. package/assets/scripts/team-install.sh +147 -0
  110. package/assets/scripts/token-stats.py +201 -0
  111. package/assets/templates/modes/enterprise.yaml.tpl +114 -0
  112. package/assets/templates/modes/multi-runtime.yaml.tpl +89 -0
  113. package/assets/templates/modes/new-stack.yaml.tpl +101 -0
  114. package/assets/templates/modes/startup.yaml.tpl +74 -0
  115. package/assets/templates/project.yaml.tpl +185 -0
  116. package/assets/templates/wiki/concepts/_template.md +22 -0
  117. package/assets/templates/wiki/entities/_template.md +19 -0
  118. package/assets/templates/wiki/index.md +32 -0
  119. package/assets/templates/wiki/log.md +6 -0
  120. package/assets/templates/wiki/sources/_template.md +25 -0
  121. package/dist/cli.d.ts +3 -0
  122. package/dist/cli.d.ts.map +1 -0
  123. package/dist/cli.js +64 -0
  124. package/dist/cli.js.map +1 -0
  125. package/dist/commands/audit.d.ts +2 -0
  126. package/dist/commands/audit.d.ts.map +1 -0
  127. package/dist/commands/audit.js +21 -0
  128. package/dist/commands/audit.js.map +1 -0
  129. package/dist/commands/doctor.d.ts +2 -0
  130. package/dist/commands/doctor.d.ts.map +1 -0
  131. package/dist/commands/doctor.js +58 -0
  132. package/dist/commands/doctor.js.map +1 -0
  133. package/dist/commands/generate.d.ts +2 -0
  134. package/dist/commands/generate.d.ts.map +1 -0
  135. package/dist/commands/generate.js +27 -0
  136. package/dist/commands/generate.js.map +1 -0
  137. package/dist/commands/init.d.ts +2 -0
  138. package/dist/commands/init.d.ts.map +1 -0
  139. package/dist/commands/init.js +22 -0
  140. package/dist/commands/init.js.map +1 -0
  141. package/dist/commands/validate.d.ts +2 -0
  142. package/dist/commands/validate.d.ts.map +1 -0
  143. package/dist/commands/validate.js +20 -0
  144. package/dist/commands/validate.js.map +1 -0
  145. package/dist/lib/paths.d.ts +10 -0
  146. package/dist/lib/paths.d.ts.map +1 -0
  147. package/dist/lib/paths.js +49 -0
  148. package/dist/lib/paths.js.map +1 -0
  149. package/dist/lib/python.d.ts +4 -0
  150. package/dist/lib/python.d.ts.map +1 -0
  151. package/dist/lib/python.js +46 -0
  152. package/dist/lib/python.js.map +1 -0
  153. package/package.json +46 -0
@@ -0,0 +1,100 @@
1
+ # Skill: wiki-query
2
+
3
+ Responde preguntas usando el wiki del proyecto como base de conocimiento,
4
+ citando las páginas relevantes. Opcionalmente archiva la respuesta como página
5
+ de síntesis.
6
+
7
+ Triggers: /wiki-query, "¿qué dice el wiki sobre", "buscar en wiki", "qué
8
+ sabemos de", "wiki:", "query:", "consultar wiki", "what does the wiki say about",
9
+ "look up in wiki".
10
+
11
+ ---
12
+
13
+ ## Cuándo usar este skill
14
+
15
+ - Antes de implementar algo que el wiki podría ya tener documentado
16
+ - Para responder preguntas sobre decisiones pasadas, conceptos técnicos o regulación
17
+ - Cuando el usuario pregunta por algo que podría estar en el conocimiento acumulado del proyecto
18
+
19
+ ---
20
+
21
+ ## Protocolo de consulta
22
+
23
+ ### Paso 1 — Leer el índice
24
+
25
+ Leer `docs/wiki/index.md` para identificar qué páginas son relevantes a la pregunta.
26
+
27
+ Si no hay wiki (`docs/wiki/` no existe o está vacío): indicar que el wiki está vacío
28
+ y sugerir usar `/wiki-ingest` para agregar conocimiento.
29
+
30
+ ### Paso 2 — Leer páginas relevantes
31
+
32
+ Leer las páginas identificadas. Prioridad:
33
+
34
+ 1. `synthesis/` — síntesis cross-cutting ya compiladas
35
+ 2. `concepts/` — definiciones y detalles técnicos
36
+ 3. `entities/` — contexto sobre proyectos, personas, sistemas
37
+ 4. `sources/` — si se necesita detalle de una fuente específica
38
+
39
+ Leer solo lo necesario — no cargar todo el wiki si la pregunta es acotada.
40
+
41
+ ### Paso 3 — Responder con citas
42
+
43
+ Formato de respuesta:
44
+
45
+ ```
46
+ <Respuesta concisa y directa>
47
+
48
+ **Fuentes wiki:**
49
+ - [[concepts/nombre]] — extracto relevante
50
+ - [[entities/nombre]] — extracto relevante
51
+
52
+ **Gaps detectados:** <páginas que harían falta pero no existen>
53
+ ```
54
+
55
+ Si el wiki no tiene suficiente información, decirlo explícitamente y sugerir
56
+ qué fuentes ingestar para cubrir el gap.
57
+
58
+ ### Paso 4 — Archivar (opcional)
59
+
60
+ Si la pregunta produjo una síntesis nueva (no trivial, reutilizable), archivarla:
61
+
62
+ ```
63
+ docs/wiki/synthesis/<tema>.md
64
+ ```
65
+
66
+ Formato:
67
+ ```markdown
68
+ ---
69
+ title: <Pregunta o tema>
70
+ tags: [tag1, tag2]
71
+ sources: [[[concepts/X]], [[entities/Y]]]
72
+ date: YYYY-MM-DD
73
+ ---
74
+
75
+ # <Título>
76
+
77
+ <Síntesis completa con citas>
78
+
79
+ ## Páginas relacionadas
80
+ - [[concepts/X]]
81
+ - [[entities/Y]]
82
+ ```
83
+
84
+ Agregar al `index.md` y al `log.md`.
85
+
86
+ ---
87
+
88
+ ## Cuándo NO usar este skill
89
+
90
+ - Para preguntas sobre el estado actual del código → leer el código directamente
91
+ - Para preguntas sobre PRs o git → usar `git log` / `gh`
92
+ - Para preguntas donde el wiki claramente no tiene la respuesta → decirlo y sugerir ingest
93
+
94
+ ---
95
+
96
+ ## Relación con otros skills
97
+
98
+ - `wiki-ingest` popula el wiki que este skill consulta
99
+ - `wiki-lint` mantiene la integridad de los links que este skill cita
100
+ - Invocado implícitamente por `new-feature` para leer contexto antes de implementar
@@ -0,0 +1,20 @@
1
+ # Convenciones de arquitectura — <NOMBRE_PROYECTO>
2
+
3
+ Reglas específicas de arquitectura que Claude debe seguir en este proyecto.
4
+ Editar directamente — no se regenera con forge-init.
5
+
6
+ ## Estructura de directorios
7
+
8
+ <A completar por el equipo según el proyecto>
9
+
10
+ ## Convenciones de naming
11
+
12
+ <A completar>
13
+
14
+ ## Patrones prohibidos
15
+
16
+ <A completar: qué NO hacer en este codebase>
17
+
18
+ ## Decisiones de arquitectura (ADRs)
19
+
20
+ Ver `docs/architecture/adr/` para decisiones formales e inmutables.
@@ -0,0 +1,30 @@
1
+ # Instrucciones globales — <NOMBRE_DEV>
2
+
3
+ Reglas que aplican a todos mis proyectos con Claude Code.
4
+
5
+ ## Idioma y comunicación
6
+ - Responder en español por defecto. Cambiar a inglés si el proyecto lo requiere.
7
+ - Respuestas concisas — ir directo al punto.
8
+ - No usar emojis salvo que los use yo primero.
9
+
10
+ ## Commits (todos mis proyectos)
11
+ - Conventional Commits: feat:, fix:, docs:, refactor:, chore:, test:
12
+ - Mensajes en inglés, tiempo presente imperativo
13
+ - Siempre incluir: Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
14
+
15
+ ## Seguridad (todos mis proyectos)
16
+ - Nunca hardcodear tokens, passwords o claves en archivos que van a git
17
+ - Verificar autenticación Y autorización en cada endpoint
18
+ - Usar parámetros preparados — nunca concatenar input del usuario en SQL
19
+ - No exponer error.message al cliente en producción
20
+
21
+ ## Herramientas
22
+ - Preferir Read/Edit/Write sobre Bash(cat/sed/echo) para archivos
23
+ - Reservar Bash para operaciones de sistema sin herramienta dedicada
24
+ - Usar Grep para buscar en código, Glob para listar archivos
25
+
26
+ ## Deploy (todos mis proyectos)
27
+ - Esperar state: READY antes de dar deploy por terminado
28
+ - Verificar runtime logs después del deploy, no solo el build
29
+ - Nunca force push a main/master
30
+ - Max 1 poll/minuto a APIs de deploy
@@ -0,0 +1,36 @@
1
+ # <NOMBRE_PROYECTO> — Contexto del proyecto
2
+
3
+ Generado por forge v<VERSION>. Actualizar con `/forge generate-claude-md` o `python3 .agentic/scripts/forge-init.py --tool claude-code --force`.
4
+
5
+ ## Stack
6
+
7
+ - Backend: <BACKEND>
8
+ - Frontend: <FRONTEND>
9
+ - Base de datos: <DATABASE>
10
+ - Package manager: <PACKAGE_MANAGER>
11
+
12
+ ## Agentes disponibles
13
+
14
+ <TABLA_AGENTES_CON_SCOPE>
15
+
16
+ ## Slash commands
17
+
18
+ | Comando | Cuándo usarlo |
19
+ |---------|---------------|
20
+ | `/session-start` | Inicio de cada sesión de trabajo |
21
+ | `/session-close` | Cierre de sesión: commit, daily-note, PR |
22
+ | `/plan <fase> "<título>"` | Crear spec antes de implementar |
23
+ | `/work` | Implementar una spec aprobada con agent team |
24
+ | `/review` | Revisión de código antes de ship |
25
+ | `/ship` | Deploy con verificación en producción |
26
+
27
+ ## Reglas del proyecto
28
+
29
+ 1. Spec antes que código — sin spec en `docs/specs/`, sin implementación.
30
+ 2. No editar código en main — crear feature branch con `/session-start`.
31
+ 3. Conventional Commits siempre.
32
+ 4. Compliance reviewer obligatorio si toca datos de usuarios (mode: <MODE>).
33
+
34
+ ## Estructura del proyecto
35
+
36
+ <ESTRUCTURA_DIRECTORIOS>
@@ -0,0 +1,38 @@
1
+ # Session {{DATE}} — {{TOPIC}}
2
+
3
+ **Branch:** `{{BRANCH}}`
4
+ **Dev:** {{DEV_NAME}}
5
+
6
+ ## Completado en esta sesión
7
+
8
+ <!-- Lista de qué se implementó/cambió -->
9
+ -
10
+
11
+ ## Archivos modificados
12
+
13
+ <!-- Output de: git diff --stat HEAD~1..HEAD -->
14
+ ```
15
+ {{GIT_DIFF_STAT}}
16
+ ```
17
+
18
+ ## Commits
19
+
20
+ <!-- Output de: git log --oneline HEAD~5..HEAD -->
21
+ ```
22
+ {{GIT_LOG}}
23
+ ```
24
+
25
+ ## Decisiones tomadas
26
+
27
+ <!-- Decisiones de diseño o arquitectura que vale registrar -->
28
+ -
29
+
30
+ ## Blockers para próxima sesión
31
+
32
+ <!-- ¿Quedó algo incompleto o bloqueado? -->
33
+ -
34
+
35
+ ## Issues trabajados
36
+
37
+ <!-- Si el proyecto tiene GitHub Project configurado -->
38
+ {{GITHUB_ISSUES}}
@@ -0,0 +1,43 @@
1
+ # [ID] Título de la Feature
2
+
3
+ > Estado: DRAFT | REVIEW | APPROVED | IMPLEMENTED
4
+ > Responsable: [nombre o rol]
5
+ > Creada: YYYY-MM-DD | Actualizada: YYYY-MM-DD
6
+
7
+ ## Contexto
8
+
9
+ Por qué existe esta feature. Qué problema resuelve. Qué pasa si no la hacemos.
10
+
11
+ ## Decisión
12
+
13
+ Qué vamos a implementar exactamente. Ser específico: endpoints, tablas, componentes.
14
+
15
+ ## Alternativas consideradas
16
+
17
+ | Opción | Pros | Contras | Descartada por |
18
+ |--------|------|---------|----------------|
19
+ | Opción A | ... | ... | ... |
20
+ | Opción B | ... | ... | ... |
21
+
22
+ ## Criterios de aceptación
23
+
24
+ - [ ] Criterio verificable 1
25
+ - [ ] Criterio verificable 2
26
+ - [ ] Criterio verificable N
27
+
28
+ ## Impacto de compliance
29
+
30
+ Si el proyecto tiene `compliance.frameworks` configurado, completar:
31
+
32
+ - **Ley 21.719**: art. X → [descripción del impacto]
33
+ - **GDPR**: Art. Y → [descripción del impacto]
34
+ - No aplica (si no hay impacto de compliance)
35
+
36
+ ## Dependencias
37
+
38
+ - Requiere que [otra spec ID] esté implementada
39
+ - Bloqueada por [issue/ticket]
40
+
41
+ ## Notas de implementación
42
+
43
+ Cualquier decisión tomada durante la implementación que no estaba en la spec original.
@@ -0,0 +1,69 @@
1
+ # Spec-Driven Development (SDD)
2
+
3
+ El flujo de trabajo central del framework forge.
4
+
5
+ ## Principio
6
+
7
+ **Spec antes que código, siempre.**
8
+
9
+ Si no hay spec aprobada en `docs/specs/`, no se empieza a implementar.
10
+ Esta regla no tiene excepciones.
11
+
12
+ ## Flujo completo
13
+
14
+ ```
15
+ 1. SPEC
16
+ ├── Identificar la feature a implementar
17
+ ├── Crear spec en docs/specs/[ID]-[nombre].md
18
+ │ (usar skill: spec para la plantilla)
19
+ ├── Revisar dependencias (¿qué specs deben estar listas primero?)
20
+ └── Estado: DRAFT → [humano/lead aprueba] → APPROVED
21
+
22
+ 2. KICKOFF
23
+ ├── Leer spec aprobada
24
+ ├── Mapear agentes necesarios
25
+ ├── Identificar trabajo paralelo vs secuencial
26
+ └── Spawnear team (usar skill: phase-kickoff)
27
+
28
+ 3. IMPLEMENTACIÓN
29
+ ├── Cada agente trabaja en su scope
30
+ ├── Tests junto con el código (no al final)
31
+ └── Si hay decisión no contemplada → actualizar spec antes de continuar
32
+
33
+ 4. REVIEW
34
+ ├── Compliance review (si el proyecto tiene frameworks configurados)
35
+ ├── Security review (si hay endpoints nuevos o manejo de auth)
36
+ └── Test coverage satisfactorio
37
+
38
+ 5. MERGE
39
+ ├── Actualizar spec a estado IMPLEMENTED
40
+ ├── Actualizar CLAUDE.md sección "Phases activas"
41
+ └── Tag de release si corresponde
42
+ ```
43
+
44
+ ## Reglas del flujo
45
+
46
+ - **Sin spec → sin código**: el orchestrator rechaza spawnear agentes sin spec aprobada.
47
+ - **Una spec por feature atómica**: si no puede implementarse en un sprint, dividirla.
48
+ - **Specs son living documents**: actualizarlas durante la implementación, no solo al inicio.
49
+ - **Los ADRs son inmutables**: una vez aprobado, crear uno nuevo para cambiar una decisión.
50
+
51
+ ## Cómo crear una spec rápido
52
+
53
+ ```bash
54
+ # 1. Crear el archivo
55
+ cp docs/specs/_template.md docs/specs/[ID]-[nombre].md
56
+
57
+ # 2. Completar los campos
58
+ # - Contexto: por qué existe esta feature
59
+ # - Decisión: qué vamos a implementar exactamente
60
+ # - Criterios de aceptación: lista de checkboxes verificables
61
+
62
+ # 3. Marcar como APPROVED cuando el humano/lead da el OK
63
+ ```
64
+
65
+ ## Señales de alerta
66
+
67
+ - "Lo hacemos rápido y documentamos después" → STOP. Spec primero.
68
+ - "Esto es tan chico que no necesita spec" → Si tarda más de 2h, necesita spec.
69
+ - "Ya sé lo que hay que hacer" → Escríbelo en la spec. Si es obvio, tardás 10 minutos.
@@ -0,0 +1,59 @@
1
+ # Sprint Workflow
2
+
3
+ Cómo gestionar sprints en proyectos forge.
4
+
5
+ ## Estructura de un sprint
6
+
7
+ ```
8
+ Sprint N (14 días por defecto)
9
+ ├── Día 1-2: Kickoff
10
+ │ ├── Revisar specs pendientes de la phase
11
+ │ ├── Aprobar specs DRAFT que estén listas
12
+ │ └── Asignar trabajo al team
13
+ ├── Día 3-11: Implementación
14
+ │ ├── Agentes trabajan en sus specs
15
+ │ ├── Daily: actualizar CLAUDE.md con bloqueadores
16
+ │ └── PRs abiertos por feature (no por archivo)
17
+ ├── Día 12-13: Review
18
+ │ ├── Compliance review (si aplica)
19
+ │ ├── Security review (si aplica)
20
+ │ └── Testing E2E
21
+ └── Día 14: Cierre
22
+ ├── Mergear PRs aprobados
23
+ ├── Actualizar sección "Phases activas" en CLAUDE.md
24
+ └── Tag de release
25
+ ```
26
+
27
+ ## Tracking de progreso
28
+
29
+ El progreso se visualiza en `docs/progress.html`.
30
+
31
+ Para actualizar manualmente:
32
+ ```bash
33
+ python3 .agentic/scripts/token-stats.py --patch-html docs/progress.html
34
+ ```
35
+
36
+ Se actualiza automáticamente en cada commit si el pre-commit hook está activo.
37
+
38
+ ## Estado de las specs en CLAUDE.md
39
+
40
+ Mantener esta sección actualizada:
41
+
42
+ ```markdown
43
+ ## Phases activas y estado
44
+
45
+ - **Sprint actual:** Sprint N
46
+ - **Completadas:** A1, A2, A3
47
+ - **En curso:** B1, B2
48
+ - **Pendientes:** B3, B4, C1
49
+ - **Bloqueadores:** [descripción si hay]
50
+ ```
51
+
52
+ ## Criterios para "completada"
53
+
54
+ Una spec está COMPLETADA cuando:
55
+ - [ ] Código implementado y mergeado a main
56
+ - [ ] Tests pasando en CI
57
+ - [ ] Spec actualizada a estado IMPLEMENTED
58
+ - [ ] Compliance review aprobado (si aplica)
59
+ - [ ] Documentación actualizada (si aplica)