@cristiancorreau/forge 2.9.4 → 2.9.5

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 (30) hide show
  1. package/assets/core/agents/backend-engineer.md +3 -3
  2. package/assets/core/agents/compliance-reviewer.md +2 -2
  3. package/assets/core/agents/docs-writer.md +1 -1
  4. package/assets/core/agents/frontend-engineer.md +2 -2
  5. package/assets/core/agents/orchestrator.md +8 -6
  6. package/assets/core/agents/security-auditor.md +1 -1
  7. package/assets/core/agents/test-engineer.md +1 -1
  8. package/assets/profiles/astro/agents/frontend-engineer.md +4 -3
  9. package/assets/profiles/django/agents/api-engineer.md +3 -2
  10. package/assets/profiles/expo/agents/mobile-engineer.md +3 -2
  11. package/assets/profiles/express/agents/api-engineer.md +1 -0
  12. package/assets/profiles/fastapi/agents/api-engineer.md +3 -2
  13. package/assets/profiles/go-gin/agents/api-engineer.md +1 -0
  14. package/assets/profiles/hono-drizzle/agents/api-engineer.md +3 -2
  15. package/assets/profiles/laravel/agents/api-engineer.md +5 -4
  16. package/assets/profiles/laravel/agents/fullstack-engineer.md +2 -1
  17. package/assets/profiles/laravel/agents/migration-specialist.md +1 -0
  18. package/assets/profiles/nestjs/agents/api-engineer.md +2 -1
  19. package/assets/profiles/nextjs-admin/agents/admin-engineer.md +6 -5
  20. package/assets/profiles/playwright-crawler/agents/scanner-engineer.md +1 -0
  21. package/assets/profiles/rails/agents/fullstack-engineer.md +2 -1
  22. package/assets/profiles/sveltekit/agents/frontend-engineer.md +1 -0
  23. package/assets/profiles/vuenuxt/agents/frontend-engineer.md +4 -3
  24. package/assets/profiles/wordpress/agents/divi-engineer.md +1 -1
  25. package/assets/profiles/wordpress/agents/elementor-engineer.md +3 -3
  26. package/assets/profiles/wordpress/agents/wp-engineer.md +2 -2
  27. package/dist/commands/init.js +1 -1
  28. package/dist/version.d.ts +1 -1
  29. package/dist/version.js +1 -1
  30. package/package.json +1 -1
@@ -54,8 +54,8 @@ Implementás el backend del proyecto. Tu scope está definido en el `project.yam
54
54
  - `/review` para revisar tu propio trabajo antes de reportar al orchestrator
55
55
 
56
56
  **Hooks que aplican a tu trabajo:**
57
- - `pre-edit-check.py`: te va a advertir si dejás `console.log` o credenciales en código
57
+ - `pre-edit-check.js`: te va a advertir si dejás `console.log` o credenciales en código
58
58
  - `post-turn-check.sh`: correrá typecheck sobre los archivos que modificaste
59
- - `pre-bash-check.py` (en proyectos standard/enterprise): bloquea comandos destructivos en producción — si necesitás hacer algo en producción, coordiná con el humano explícitamente
59
+ - `pre-bash-check.js` (en proyectos standard/enterprise): bloquea comandos destructivos en producción — si necesitás hacer algo en producción, coordiná con el humano explícitamente
60
60
 
61
- **Scope:** Operar solo en los directorios de tu scope (ver `scope:` en el frontmatter de este agente). No tocar archivos de frontend o mobile sin autorización explícita.
61
+ **Scope:** Operar solo en el directorio de backend del proyecto (el derivado de `stack.backend` en `project.yaml`, o `paths.api` si está definido). No tocar archivos de frontend o mobile sin autorización explícita.
@@ -79,5 +79,5 @@ Este agente opera sobre el conocimiento de entrenamiento del modelo, **no sobre
79
79
  - ¿Hay logs de auditoría para las acciones del PR?
80
80
 
81
81
  **Hooks relacionados:**
82
- - En mode=enterprise existe `compliance-pre-edit.py` que detecta patrones peligrosos antes de que edites
83
- - Si ves que ese hook no está activo, notificar al equipo
82
+ - Los hooks de guardrail instalados (`pre-edit-check.js`, `pre-bash-check.js`) detectan secrets, debug y comandos destructivos antes de que se editen archivos
83
+ - Si el proyecto define un hook de compliance adicional (ej: detección de PII en logs) y no está activo, notificar al equipo
@@ -72,6 +72,6 @@ Si aplica: qué artículos o secciones de las leyes relevantes toca esta feature
72
72
  - No editar manualmente — son el registro de sesión
73
73
 
74
74
  **Wiki (docs/wiki/):**
75
- - index.md: actualizar con `/forge wiki ingest`
75
+ - index.md: actualizar con el skill `/wiki-ingest` (consultas con `/wiki-query`, validación con `/wiki-lint`)
76
76
  - log.md: append-only — nunca editar entradas pasadas
77
77
  - raw/: fuentes originales inmutables
@@ -63,8 +63,8 @@ Implementás el frontend del proyecto. Tu scope está definido en el `project.ya
63
63
  - `/review` para revisar tu propio trabajo antes de reportar al orchestrator
64
64
 
65
65
  **Hooks que aplican a tu trabajo:**
66
- - `pre-edit-check.py`: detecta `console.log` en TypeScript y credenciales hardcodeadas — corregí antes de reportar listo
66
+ - `pre-edit-check.js`: detecta `console.log` en TypeScript y credenciales hardcodeadas — corregí antes de reportar listo
67
67
  - `post-turn-check.sh`: correrá `tsc` sobre los archivos que modificaste — asegurate de que typechecks pasan
68
- - `pre-bash-check.py` (en proyectos standard/enterprise): bloquea comandos destructivos en producción
68
+ - `pre-bash-check.js` (en proyectos standard/enterprise): bloquea comandos destructivos en producción
69
69
 
70
70
  **Scope:** Operar solo en archivos de UI y componentes (ver `stack.frontend` en `project.yaml`). No tocar archivos de backend, API ni base de datos sin autorización explícita del orchestrator.
@@ -16,7 +16,7 @@ Sos el lead de un agent team. Tu trabajo es coordinar, no implementar.
16
16
  1. **Recibir tareas** del humano y entenderlas en profundidad.
17
17
  2. **Identificar la spec** correspondiente en `docs/specs/`. Si no existe, parar y pedir que se cree.
18
18
  3. **Descomponer la tarea** en sub-tareas independientes que distintos agentes puedan tomar en paralelo.
19
- 4. **Spawnear el team** con los agentes apropiados (ver roster en AGENTS.md del proyecto).
19
+ 4. **Spawnear el team** con los agentes apropiados. El roster se descubre desde `.claude/agents/*.md` (o el `AGENTS.md` que `forge init` genera en la raíz del proyecto; si no existe, usá los agentes instalados en `.claude/agents/`).
20
20
  5. **Sintetizar** los resultados al final y reportar al humano.
21
21
 
22
22
  ## Cómo spawnear agentes
@@ -40,6 +40,8 @@ Agent({
40
40
 
41
41
  ### Coordinación con SendMessage
42
42
 
43
+ `SendMessage` e `isolation: "worktree"` son capacidades del runtime de teams — no necesitan declararse en el campo `tools:` del frontmatter.
44
+
43
45
  ```
44
46
  SendMessage({ to: "backend-engineer", message: "Tipos listos. Podés continuar." })
45
47
  ```
@@ -71,12 +73,12 @@ Esperá aprobación antes de spawnear el team.
71
73
 
72
74
  ## Reglas
73
75
 
74
- - Leé `CLAUDE.md` y `AGENTS.md` raíz antes de spawnear cualquier agente.
76
+ - Leé `CLAUDE.md` raíz y, si existe, `AGENTS.md` (generado por `forge init`) antes de spawnear cualquier agente.
75
77
  - Sin spec en `docs/specs/` → no empieces. Pedí que se cree primero.
76
78
  - Mínimo número de agentes que la tarea justifica. <3 archivos → un solo agente basta.
77
79
  - Incluí al `compliance-reviewer` si la tarea toca datos de usuarios, consentimientos o logs.
78
80
  - Pedí aprobación al humano antes de mergear cuando >5 archivos del mismo módulo fueron tocados.
79
- - Máximo 3 agentes simultáneos en suscripción Pro / hasta 7-8 con Max 20x o API directa.
81
+ - **Techo de paralelismo (concurrentes):** máximo 3 agentes simultáneos en suscripción Pro / hasta 7-8 con Max 20x o API directa. Este es el único límite de agentes concurrentes.
80
82
 
81
83
  ## No hagas
82
84
 
@@ -95,10 +97,10 @@ Esperá aprobación antes de spawnear el team.
95
97
  **Reglas obligatorias para el team:**
96
98
  1. Nunca delegues implementación sin spec aprobada en `docs/specs/`
97
99
  2. El team no edita código en main — verificar branch antes de spawnear teammates
98
- 3. Máximo 5-6 tasks por teammate, 3-5 teammates por sesión
100
+ 3. Como guía de carga: ~5-6 tasks por teammate y 3-5 teammates totales por sesión (el techo de *concurrencia* es el de la sección Reglas: 3 Pro / 7-8 Max)
99
101
  4. Si el proyecto es enterprise: incluir compliance-reviewer en PRs que toquen datos de usuarios
100
102
 
101
103
  **Hooks activos que el team debe respetar:**
102
- - `pre-edit-check.py`: bloquea edits en main y detecta credenciales hardcodeadas
104
+ - `pre-edit-check.js`: bloquea edits en main y detecta credenciales hardcodeadas
103
105
  - `post-turn-check.sh`: corre typecheck al terminar cada turno
104
- - `pre-bash-check.py` (si mode=standard/enterprise): bloquea comandos destructivos en producción
106
+ - `pre-bash-check.js` (si mode=standard/enterprise): bloquea comandos destructivos en producción
@@ -50,5 +50,5 @@ con severidad y recomendación de fix.
50
50
  **Checklist adicional para Forge v2:**
51
51
  - ¿El PR agrega variables de entorno? Verificar que están documentadas en `.env.example`
52
52
  - ¿Hay cambios en permisos de `settings.json`? Revisar que el allow-list es mínimo necesario
53
- - ¿Los hooks de producción están activos? (pre-bash-check.py para mode=standard/enterprise)
53
+ - ¿Los hooks de producción están activos? (pre-bash-check.js para mode=standard/enterprise)
54
54
  - ¿El deploy pipeline de `/ship` incluye verificación de runtime logs?
@@ -25,7 +25,7 @@ testeable, se lo pedís al agente que corresponda y esperás.
25
25
  - **No escribís código de producción.** Si algo no se puede testear, lo reportás.
26
26
  - Tests determinísticos — sin `Math.random()` ni `Date.now()` sin mockear.
27
27
  - Nombres descriptivos: `describe("cuando X") / it("debería Y")`.
28
- - Tests de integración deben usar base de datos real, no mocks del ORM.
28
+ - Cuando el proyecto tiene base de datos (según `stack` en `project.yaml`), los tests de integración deben usar una instancia real (o un contenedor efímero), no mocks del ORM.
29
29
  - Limpiar fixtures después de cada test (transacciones o truncate).
30
30
  - Sin `console.log` en tests — el runner lo reportará como falla en CI.
31
31
 
@@ -5,6 +5,7 @@ model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: astro
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # Frontend Engineer — Astro
@@ -15,7 +16,7 @@ ni backend fuera de las integraciones de Astro.
15
16
 
16
17
  ## Stack
17
18
 
18
- - **Framework:** Astro 4.x
19
+ - **Framework:** Astro (última versión estable)
19
20
  - **Rendering:** SSG por defecto; SSR con adaptadores (Vercel, Cloudflare, Node)
20
21
  - **UI Islands:** React, Svelte, Vue o Lit según el proyecto
21
22
  - **Contenido:** MDX, Content Collections, Markdown
@@ -36,7 +37,7 @@ ni backend fuera de las integraciones de Astro.
36
37
 
37
38
  - **Sin JavaScript innecesario:** Astro carga 0 JS por defecto — mantenerlo así salvo islands explícitas.
38
39
  - **Content Collections tipadas:** toda colección define su schema Zod en `src/content/config.ts`.
39
- - **Sin secrets en el cliente:** variables de entorno con `VITE_` prefix son públicas — solo usarlas para config no sensible.
40
+ - **Sin secrets en el cliente:** variables de entorno con prefijo `PUBLIC_` son públicas (`import.meta.env.PUBLIC_*`) — solo usarlas para config no sensible.
40
41
  - **Accesibilidad:** HTML semántico, atributos `alt`, roles ARIA cuando el HTML no es suficiente.
41
42
  - **Sin spec, sin código:** la spec debe existir en `docs/specs/` antes de implementar.
42
43
 
@@ -66,7 +67,7 @@ Antes de tocar cualquier archivo, verificar que existe una spec en `docs/specs/`
66
67
  Este agente puede invocar los slash commands definidos en `.claude/commands/` del proyecto. Revisar qué comandos están disponibles con `/help` antes de empezar.
67
68
 
68
69
  ### Hooks activos en este stack
69
- - **`pre-edit-check.py`**: se ejecuta antes de cada edición y bloquea debug statements en archivos `.astro`, `.ts` y `.tsx`. No dejes `console.log`, `debugger` ni comentarios `// TODO` sin ticket.
70
+ - **`pre-edit-check.js`**: se ejecuta antes de cada edición y bloquea debug statements en archivos `.astro`, `.ts` y `.tsx`. No dejes `console.log`, `debugger` ni comentarios `// TODO` sin ticket.
70
71
  - **`post-turn-check.sh`**: se ejecuta al terminar cada turno. Verifica que `astro build` no tenga errores de TypeScript ni warnings de compilación.
71
72
 
72
73
  ### Reglas de scope
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  name: api-engineer
3
- description: "Implementa el backend del proyecto. Django 4.x/5.x + DRF/Django Ninja + PostgreSQL. Scope: apps/ y config/."
3
+ description: "Implementa el backend del proyecto. Django (última versión estable) + DRF/Django Ninja + PostgreSQL. Scope: apps/ y config/."
4
4
  model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: django
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # API Engineer — Django
@@ -14,7 +15,7 @@ Implementás el backend del proyecto. Tu scope es `apps/` y `config/` (estructur
14
15
  ## Stack
15
16
 
16
17
  - **Runtime:** Python 3.11+
17
- - **Framework:** Django 4.x / 5.x. NO usar Flask ni FastAPI.
18
+ - **Framework:** Django (última versión estable, preferir la LTS vigente). NO usar Flask ni FastAPI.
18
19
  - **API:** Django REST Framework (DRF) con ViewSets y Routers, o Django Ninja para APIs tipadas. No mezcles los dos en el mismo proyecto.
19
20
  - **ORM:** Django ORM. NO usar queries raw salvo en migraciones de datos complejas.
20
21
  - **Migraciones:** `manage.py makemigrations` + `manage.py migrate`. Un concepto por migración; nombres descriptivos.
@@ -5,6 +5,7 @@ model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: expo
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # Mobile Engineer — Expo SDK
@@ -23,7 +24,7 @@ Leé ese archivo antes de empezar.
23
24
 
24
25
  ## Reglas
25
26
 
26
- 1. **Bundle size controlado:** iOS <200KB, Android <250KB por defecto. Verificar con `expo bundle-size`.
27
+ 1. **Bundle size controlado:** iOS <200KB, Android <250KB por defecto. Verificar con `npx expo export` + análisis del output (o `source-map-explorer`) y `npx expo-doctor`.
27
28
  2. **API idiomática:** exponer la funcionalidad como hooks React (`useConsent()`, `useFeature()`).
28
29
  3. **No mezclar APIs nativas y JS bridge en el mismo flujo.** Si necesitás algo nativo, va en su propio módulo aislado.
29
30
  4. **Permisos explícitos:** no solicitar permisos antes de que el usuario entienda por qué.
@@ -61,7 +62,7 @@ Antes de tocar cualquier archivo, verificar que existe una spec en `docs/specs/`
61
62
  Este agente puede invocar los slash commands definidos en `.claude/commands/` del proyecto. Revisar qué comandos están disponibles con `/help` antes de empezar.
62
63
 
63
64
  ### Hooks activos en este stack
64
- - **`pre-edit-check.py`**: se ejecuta antes de cada edición. Detecta debug statements (`console.log`, `debugger`) en archivos `.ts` y `.tsx`.
65
+ - **`pre-edit-check.js`**: se ejecuta antes de cada edición. Detecta debug statements (`console.log`, `debugger`) en archivos `.ts` y `.tsx`.
65
66
  - **`post-turn-check.sh`**: se ejecuta al terminar cada turno. Corre `tsc --noEmit` para verificar TypeScript estricto. El proyecto usa `strict: true` — cualquier error de tipos bloquea el turno. Corregir antes de reportar al orchestrator.
66
67
 
67
68
  ### Reglas de scope
@@ -5,6 +5,7 @@ model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: express
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # API Engineer — Express + Node.js
@@ -5,6 +5,7 @@ model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: fastapi
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # API Engineer — FastAPI
@@ -77,8 +78,8 @@ El proyecto puede tener slash commands en `.claude/commands/`. Revisarlos antes
77
78
 
78
79
  ### Hooks activos en este stack
79
80
 
80
- - **`pre-edit-check.py`** (PreToolUse/Edit|Write): detecta `print()` en archivos `.py` que no sean scripts de forge ni archivos en `.agentic/`. En FastAPI, usar `logging` en lugar de `print()` para toda salida de diagnóstico. Además bloquea secrets hardcodeados y protege la rama `main`.
81
- - **`pre-bash-check.py`** (PreToolUse/Bash): bloquea comandos destructivos en producción. Detecta `alembic downgrade base` y `DROP TABLE` si el contexto apunta a producción.
81
+ - **`pre-edit-check.js`** (PreToolUse/Edit|Write): detecta `print()` en archivos `.py` que no sean scripts de forge ni archivos en `.agentic/`. En FastAPI, usar `logging` en lugar de `print()` para toda salida de diagnóstico. Además bloquea secrets hardcodeados y protege la rama `main`.
82
+ - **`pre-bash-check.js`** (PreToolUse/Bash): bloquea comandos destructivos en producción. Detecta `alembic downgrade base` y `DROP TABLE` si el contexto apunta a producción.
82
83
 
83
84
  ### Reglas de scope
84
85
 
@@ -5,6 +5,7 @@ model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: go-gin
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # API Engineer — Go + Gin
@@ -5,6 +5,7 @@ model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: hono-drizzle
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # API Engineer — Hono + Drizzle
@@ -72,8 +73,8 @@ El proyecto puede tener slash commands en `.claude/commands/`. Revisarlos antes
72
73
 
73
74
  ### Hooks activos en este stack
74
75
 
75
- - **`pre-bash-check.py`** (PreToolUse/Bash): bloquea `prisma migrate reset` y otros comandos destructivos en contexto de producción. **Crítico para Drizzle:** también detecta `drizzle-kit push` sin bandera `--force` en producción.
76
- - **`pre-edit-check.py`** (PreToolUse/Edit|Write): detecta `console.log` y `debugger` en archivos `.ts`/`.tsx`, bloquea secrets hardcodeados, y protege la rama `main`.
76
+ - **`pre-bash-check.js`** (PreToolUse/Bash): bloquea `prisma migrate reset` y otros comandos destructivos en contexto de producción. **Crítico para Drizzle:** también detecta `drizzle-kit push` sin bandera `--force` en producción.
77
+ - **`pre-edit-check.js`** (PreToolUse/Edit|Write): detecta `console.log` y `debugger` en archivos `.ts`/`.tsx`, bloquea secrets hardcodeados, y protege la rama `main`.
77
78
 
78
79
  ### Reglas de scope
79
80
 
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  name: api-engineer
3
- description: "Implementa el backend del proyecto. Laravel 10+ + Sanctum/Passport + PostgreSQL/MySQL. Scope: app/ y routes/api.php."
3
+ description: "Implementa el backend del proyecto. Laravel (última versión estable) + Sanctum/Passport + PostgreSQL/MySQL. Scope: app/ y routes/api.php."
4
4
  model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: laravel
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # API Engineer — Laravel
@@ -14,7 +15,7 @@ Implementás el backend del proyecto. Tu scope es `app/` y `routes/api.php`. Le
14
15
  ## Stack
15
16
 
16
17
  - **Runtime:** PHP 8.2+
17
- - **Framework:** Laravel 10, 11 o 12. NO usar Lumen ni micro-frameworks.
18
+ - **Framework:** Laravel (última versión estable). NO usar Lumen ni micro-frameworks.
18
19
  - **API:** Laravel Resources + ResourceCollections para transformación de respuestas. Form Requests para validación.
19
20
  - **ORM:** Eloquent. Sin queries raw salvo en migraciones de datos o reportes complejos con `DB::select()` + parámetros.
20
21
  - **Migraciones:** `artisan make:migration` + `artisan migrate`. Un concepto por migración; nombres descriptivos en snake_case.
@@ -104,8 +105,8 @@ El proyecto puede tener slash commands en `.claude/commands/`. Revisarlos antes
104
105
 
105
106
  ### Hooks activos en este stack
106
107
 
107
- - **`pre-edit-check.py`** (PreToolUse/Edit|Write): detecta patrones de debug PHP (`var_dump()`, `dd()`, `print_r()`) en archivos `.php`, bloquea secrets hardcodeados, y protege la rama `main`. Relevante en controladores y modelos Eloquent donde `dd()` se usa frecuentemente en desarrollo.
108
- - **`pre-bash-check.py`** (PreToolUse/Bash): bloquea comandos destructivos en producción. Detecta `php artisan migrate:reset` y `php artisan migrate:fresh` si el contexto de producción está activo.
108
+ - **`pre-edit-check.js`** (PreToolUse/Edit|Write): detecta patrones de debug PHP (`var_dump()`, `dd()`, `print_r()`) en archivos `.php`, bloquea secrets hardcodeados, y protege la rama `main`. Relevante en controladores y modelos Eloquent donde `dd()` se usa frecuentemente en desarrollo.
109
+ - **`pre-bash-check.js`** (PreToolUse/Bash): bloquea comandos destructivos en producción. Detecta `php artisan migrate:reset` y `php artisan migrate:fresh` si el contexto de producción está activo.
109
110
 
110
111
  ### Reglas de scope
111
112
 
@@ -5,6 +5,7 @@ model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: laravel
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # Fullstack Engineer — Laravel
@@ -14,7 +15,7 @@ Implementás features full-stack en el proyecto Laravel. Tu scope es `app/`, `re
14
15
  ## Stack
15
16
 
16
17
  - **Runtime:** PHP 8.2+
17
- - **Framework:** Laravel 10, 11 o 12.
18
+ - **Framework:** Laravel (última versión estable).
18
19
  - **Frontend:** Blade + Livewire 3 por defecto. Si el proyecto usa Inertia.js (Vue 3 o React), el `CLAUDE.md` lo indicará.
19
20
  - **Estilos:** Tailwind CSS. Sin Bootstrap salvo que el proyecto lo establezca.
20
21
  - **Auth:** Laravel Breeze (simple) o Jetstream (equipos + 2FA). No reinventar autenticación.
@@ -5,6 +5,7 @@ model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: laravel
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # Migration Specialist — Laravel
@@ -5,6 +5,7 @@ model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: nestjs
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # API Engineer — NestJS
@@ -15,7 +16,7 @@ Leé ese archivo antes de empezar.
15
16
  ## Stack
16
17
 
17
18
  - **Runtime:** Node.js 20 LTS.
18
- - **Framework:** NestJS 10+. Arquitectura modular: un módulo por dominio.
19
+ - **Framework:** NestJS (última versión estable). Arquitectura modular: un módulo por dominio.
19
20
  - **ORM:** Prisma (preferido) o TypeORM con decoradores. NO usar query builders ad-hoc.
20
21
  - **Validación:** class-validator + class-transformer en DTOs. Usar `ValidationPipe` global.
21
22
  - **Autenticación:** `@nestjs/passport` + JWT. Guards para proteger rutas.
@@ -1,13 +1,14 @@
1
1
  ---
2
2
  name: admin-engineer
3
- description: Construye el dashboard de administración del proyecto con Next.js 15 + shadcn/ui. NO trabaja fuera del directorio de admin definido en project.yaml.
3
+ description: Construye el dashboard de administración del proyecto con Next.js (última versión estable) + shadcn/ui. NO trabaja fuera del directorio de admin definido en project.yaml.
4
4
  model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: nextjs-admin
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
- # Admin Engineer — Next.js 15 + shadcn/ui
11
+ # Admin Engineer — Next.js (última versión estable) + shadcn/ui
11
12
 
12
13
  Construís el dashboard de administración del proyecto. Tu scope es el directorio de admin
13
14
  definido en el `CLAUDE.md` del proyecto (típicamente `packages/admin/` o `apps/admin/`).
@@ -15,7 +16,7 @@ Leé ese archivo antes de empezar.
15
16
 
16
17
  ## Stack
17
18
 
18
- - **Framework:** Next.js 15 con App Router.
19
+ - **Framework:** Next.js (última versión estable) con App Router.
19
20
  - **UI:** shadcn/ui + Tailwind 4. NO Tailwind 3, NO Material UI, NO Chakra, NO Mantine.
20
21
  - **Forms:** React Hook Form + Zod.
21
22
  - **Estado servidor:** TanStack Query. NO SWR, NO useEffect para fetch.
@@ -68,8 +69,8 @@ El proyecto puede tener slash commands en `.claude/commands/`. Revisarlos antes
68
69
 
69
70
  ### Hooks activos en este stack
70
71
 
71
- - **`pre-edit-check.py`** (PreToolUse/Edit|Write): detecta `console.log` y `debugger` en archivos `.ts`/`.tsx`, bloquea secrets hardcodeados, y protege la rama `main`. Especialmente relevante en componentes React donde los `console.log` de debug son comunes.
72
- - **`pre-bash-check.py`** (PreToolUse/Bash): bloquea comandos destructivos en producción. Aplica si el proyecto usa Prisma como ORM (detecta `prisma migrate reset`).
72
+ - **`pre-edit-check.js`** (PreToolUse/Edit|Write): detecta `console.log` y `debugger` en archivos `.ts`/`.tsx`, bloquea secrets hardcodeados, y protege la rama `main`. Especialmente relevante en componentes React donde los `console.log` de debug son comunes.
73
+ - **`pre-bash-check.js`** (PreToolUse/Bash): bloquea comandos destructivos en producción. Aplica si el proyecto usa Prisma como ORM (detecta `prisma migrate reset`).
73
74
 
74
75
  ### Reglas de scope
75
76
 
@@ -5,6 +5,7 @@ model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: playwright-crawler
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # Scanner Engineer — Playwright + BullMQ
@@ -5,6 +5,7 @@ model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: rails
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # Fullstack Engineer — Ruby on Rails
@@ -14,7 +15,7 @@ proyecto Rails (app/, db/, config/, spec/). Leé el `CLAUDE.md` del proyecto ant
14
15
 
15
16
  ## Stack
16
17
 
17
- - **Framework:** Ruby on Rails 7.x o 8.x.
18
+ - **Framework:** Ruby on Rails (última versión estable).
18
19
  - **Base de datos:** PostgreSQL. Sin SQLite en producción.
19
20
  - **Frontend:** Hotwire (Turbo + Stimulus) por defecto. Si el proyecto usa React/Vue, el `CLAUDE.md` lo indicará.
20
21
  - **Tests:** RSpec + FactoryBot + Shoulda Matchers. Capybara para tests de sistema.
@@ -5,6 +5,7 @@ model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: sveltekit
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # Frontend Engineer — SvelteKit
@@ -1,19 +1,20 @@
1
1
  ---
2
2
  name: frontend-engineer
3
- description: "Construye apps con Nuxt 3 + Vue 3 Composition API + Pinia + TypeScript. Scope: app/ o src/ (páginas, componentes, composables, stores)."
3
+ description: "Construye apps con Nuxt (última versión estable) + Vue 3 Composition API + Pinia + TypeScript. Scope: app/ o src/ (páginas, componentes, composables, stores)."
4
4
  model: sonnet
5
5
  tools: Read, Grep, Glob, Bash, Edit, Write
6
6
  tier: 2
7
7
  profile: vuenuxt
8
+ last_verified: "2026-06"
8
9
  ---
9
10
 
10
11
  # Frontend Engineer — Vue/Nuxt
11
12
 
12
- Construís aplicaciones con Nuxt 3 y Vue 3. Tu scope es `app/` o `src/` según cómo esté configurado el proyecto. Leé el `CLAUDE.md` del proyecto antes de empezar.
13
+ Construís aplicaciones con Nuxt (última versión estable) y Vue 3. Tu scope es `app/` o `src/` según cómo esté configurado el proyecto. Leé el `CLAUDE.md` del proyecto antes de empezar.
13
14
 
14
15
  ## Stack
15
16
 
16
- - **Framework:** Nuxt 3 (última versión estable). NO usar Nuxt 2 ni Vue 2.
17
+ - **Framework:** Nuxt (última versión estable). NO usar Nuxt 2 ni Vue 2.
17
18
  - **UI:** Vue 3 con Composition API (`<script setup>`). NO usar Options API salvo en componentes heredados que no se pueden migrar.
18
19
  - **State:** Pinia para estado global. Composables con `ref`/`computed` para estado local.
19
20
  - **Routing:** File-based routing de Nuxt (`pages/`). No usar vue-router directamente salvo para configuración avanzada en `nuxt.config.ts`.
@@ -259,7 +259,7 @@ Antes de tocar cualquier archivo, verificar que existe una spec en `docs/specs/`
259
259
  Este agente puede invocar los slash commands definidos en `.claude/commands/` del proyecto. Revisar qué comandos están disponibles con `/help` antes de empezar.
260
260
 
261
261
  ### Hooks activos en este stack
262
- - **`pre-edit-check.py`**: se ejecuta antes de cada edición. Detecta patrones de debug PHP (`var_dump()`, `print_r()`, `error_log()`) en archivos `.php` del child theme y módulos personalizados.
262
+ - **`pre-edit-check.js`**: se ejecuta antes de cada edición. Detecta patrones de debug PHP (`var_dump()`, `print_r()`, `error_log()`) en archivos `.php` del child theme y módulos personalizados.
263
263
  - **`post-turn-check.sh`**: se ejecuta al terminar cada turno. Verifica que no haya residuos de debug y que el child theme esté activo (`wp theme status`).
264
264
 
265
265
  ### APIs de terceros y seguridad
@@ -14,8 +14,8 @@ Diseñás e implementás sitios con Elementor Free y Elementor Pro. Tu scope inc
14
14
 
15
15
  ## Stack
16
16
 
17
- - **WordPress:** 6.4+.
18
- - **Elementor Free:** última versión estable (4.x).
17
+ - **WordPress:** última versión estable.
18
+ - **Elementor Free:** última versión estable (serie 3.x).
19
19
  - **Elementor Pro:** última versión estable (requerido para Theme Builder, Dynamic Tags, Loop Grid, Popup Builder, Form Builder).
20
20
  - **PHP:** 8.1+.
21
21
  - **Child theme:** obligatorio. Nunca modificar el parent theme directamente.
@@ -295,7 +295,7 @@ Antes de tocar cualquier archivo, verificar que existe una spec en `docs/specs/`
295
295
  Este agente puede invocar los slash commands definidos en `.claude/commands/` del proyecto. Revisar qué comandos están disponibles con `/help` antes de empezar.
296
296
 
297
297
  ### Hooks activos en este stack
298
- - **`pre-edit-check.py`**: se ejecuta antes de cada edición. Detecta patrones de debug PHP (`var_dump()`, `print_r()`, `error_log()`) en archivos `.php` del child theme, widgets personalizados y dynamic tags.
298
+ - **`pre-edit-check.js`**: se ejecuta antes de cada edición. Detecta patrones de debug PHP (`var_dump()`, `print_r()`, `error_log()`) en archivos `.php` del child theme, widgets personalizados y dynamic tags.
299
299
  - **`post-turn-check.sh`**: se ejecuta al terminar cada turno. Verifica que el CSS de Elementor esté regenerado (`wp elementor flush-css`) si se modificaron archivos de estilo.
300
300
 
301
301
  ### APIs de terceros y seguridad
@@ -14,7 +14,7 @@ Implementás features en WordPress usando las APIs modernas del core. Tu scope e
14
14
 
15
15
  ## Stack
16
16
 
17
- - **WordPress:** 6.4+ (Full Site Editing disponible desde 6.0, iA activa desde 6.4).
17
+ - **WordPress:** última versión estable (Full Site Editing desde 6.0). Verificar con `wp core version`.
18
18
  - **PHP:** 8.1+. Sin código legacy con `mysql_*` ni funciones deprecadas.
19
19
  - **Editor:** Gutenberg / Block Editor. Sin Classic Editor salvo que el `CLAUDE.md` lo exija.
20
20
  - **Bloques:** `@wordpress/create-block` para scaffolding. Bloques dinámicos con PHP render callback cuando el contenido es dinámico.
@@ -202,7 +202,7 @@ Antes de tocar cualquier archivo, verificar que existe una spec en `docs/specs/`
202
202
  Este agente puede invocar los slash commands definidos en `.claude/commands/` del proyecto. Revisar qué comandos están disponibles con `/help` antes de empezar.
203
203
 
204
204
  ### Hooks activos en este stack
205
- - **`pre-edit-check.py`**: se ejecuta antes de cada edición. Detecta patrones de debug PHP (`var_dump()`, `print_r()`, `error_log()`) en archivos `.php`. Estos nunca deben llegar a producción.
205
+ - **`pre-edit-check.js`**: se ejecuta antes de cada edición. Detecta patrones de debug PHP (`var_dump()`, `print_r()`, `error_log()`) en archivos `.php`. Estos nunca deben llegar a producción.
206
206
  - **`post-turn-check.sh`**: se ejecuta al terminar cada turno. Corre `composer test` (PHPUnit) y `./vendor/bin/phpcs --standard=WordPress` si están configurados. Corregir errores antes de reportar.
207
207
 
208
208
  ### APIs de terceros y seguridad
@@ -410,7 +410,7 @@ export async function init(args) {
410
410
  ...allAgents.map(a => `.claude/agents/${a}.md`),
411
411
  ];
412
412
  const ts = new Date().toISOString();
413
- saveManifest(projectRoot, buildManifest(runtime, installedFiles, projectRoot, '2.9.4', ts));
413
+ saveManifest(projectRoot, buildManifest(runtime, installedFiles, projectRoot, '2.9.5', ts));
414
414
  },
415
415
  },
416
416
  ]);
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Single source of truth for the CLI version (kept in sync with package.json). */
2
- export declare const VERSION = "2.9.4";
2
+ export declare const VERSION = "2.9.5";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Single source of truth for the CLI version (kept in sync with package.json). */
2
- export const VERSION = '2.9.4';
2
+ export const VERSION = '2.9.5';
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cristiancorreau/forge",
3
- "version": "2.9.4",
3
+ "version": "2.9.5",
4
4
  "description": "Agentic development framework — multi-runtime support for Claude Code, OpenCode, Codex and Kiro",
5
5
  "author": "Cristian Correa <cristian@socialweb.cl>",
6
6
  "license": "Apache-2.0",