@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.
- package/CHANGELOG.md +228 -0
- package/LICENSE +191 -0
- package/README.md +156 -0
- package/assets/adapters/claude-code/commands/deploy-check.md +12 -0
- package/assets/adapters/claude-code/commands/new-feature.md +11 -0
- package/assets/adapters/claude-code/commands/plan.md +116 -0
- package/assets/adapters/claude-code/commands/review.md +219 -0
- package/assets/adapters/claude-code/commands/session-close.md +109 -0
- package/assets/adapters/claude-code/commands/session-start.md +59 -0
- package/assets/adapters/claude-code/commands/ship.md +133 -0
- package/assets/adapters/claude-code/commands/wiki-ingest.md +7 -0
- package/assets/adapters/claude-code/commands/wiki-lint.md +5 -0
- package/assets/adapters/claude-code/commands/wiki-query.md +7 -0
- package/assets/adapters/claude-code/commands/work.md +101 -0
- package/assets/adapters/claude-code/generate-claude-md.py +304 -0
- package/assets/adapters/codex/commands/plan.md +63 -0
- package/assets/adapters/codex/commands/review.md +53 -0
- package/assets/adapters/codex/commands/session-close.md +53 -0
- package/assets/adapters/codex/commands/session-start.md +49 -0
- package/assets/adapters/codex/commands/ship.md +53 -0
- package/assets/adapters/codex/commands/work.md +53 -0
- package/assets/adapters/codex/generate-codex-config.py +269 -0
- package/assets/adapters/codex/hooks/codex.yaml.tpl +43 -0
- package/assets/adapters/codex/hooks/forge-codex-finish.sh +158 -0
- package/assets/adapters/codex/hooks/forge-codex-start.sh +186 -0
- package/assets/adapters/kiro/generate-steering.py +367 -0
- package/assets/adapters/opencode/HOOKS.md +123 -0
- package/assets/adapters/opencode/commands/plan.md +119 -0
- package/assets/adapters/opencode/commands/review.md +164 -0
- package/assets/adapters/opencode/commands/session-close.md +111 -0
- package/assets/adapters/opencode/commands/session-start.md +62 -0
- package/assets/adapters/opencode/commands/ship.md +135 -0
- package/assets/adapters/opencode/commands/work.md +82 -0
- package/assets/adapters/opencode/generate-agents-md.py +262 -0
- package/assets/core/agents/backend-engineer.md +61 -0
- package/assets/core/agents/compliance-reviewer.md +83 -0
- package/assets/core/agents/docs-writer.md +77 -0
- package/assets/core/agents/frontend-engineer.md +70 -0
- package/assets/core/agents/orchestrator.md +104 -0
- package/assets/core/agents/security-auditor.md +54 -0
- package/assets/core/agents/test-engineer.md +57 -0
- package/assets/core/hooks/hooks-registry.yaml +48 -0
- package/assets/core/hooks/post-turn-check.sh +139 -0
- package/assets/core/hooks/pre-bash-check.py +202 -0
- package/assets/core/hooks/pre-edit-check.py +317 -0
- package/assets/core/hooks/session-start.sh +184 -0
- package/assets/core/schemas/project.schema.json +503 -0
- package/assets/core/skills/README.md +88 -0
- package/assets/core/skills/aitmpl-search/SKILL.md +74 -0
- package/assets/core/skills/browser-test/SKILL.md +177 -0
- package/assets/core/skills/db-migrate/SKILL.md +163 -0
- package/assets/core/skills/local2prod/SKILL.md +147 -0
- package/assets/core/skills/new-feature/SKILL.md +155 -0
- package/assets/core/skills/obsidian-sync/SKILL.md +152 -0
- package/assets/core/skills/phase-kickoff/SKILL.md +69 -0
- package/assets/core/skills/security-audit/SKILL.md +125 -0
- package/assets/core/skills/spec/SKILL.md +72 -0
- package/assets/core/skills/wiki-ingest/SKILL.md +183 -0
- package/assets/core/skills/wiki-lint/SKILL.md +109 -0
- package/assets/core/skills/wiki-query/SKILL.md +100 -0
- package/assets/core/templates/claude-md/architecture.rules +20 -0
- package/assets/core/templates/claude-md/global.md +30 -0
- package/assets/core/templates/claude-md/project.md +36 -0
- package/assets/core/templates/daily-note.md +38 -0
- package/assets/core/templates/spec-template.md +43 -0
- package/assets/core/workflows/sdd.md +69 -0
- package/assets/core/workflows/sprint.md +59 -0
- package/assets/forge.py +1265 -0
- package/assets/hooks/pre-commit +43 -0
- package/assets/manifest.json +274 -0
- package/assets/profiles/astro/README.md +24 -0
- package/assets/profiles/astro/agents/frontend-engineer.md +74 -0
- package/assets/profiles/django/agents/api-engineer.md +83 -0
- package/assets/profiles/expo/README.md +24 -0
- package/assets/profiles/expo/agents/mobile-engineer.md +69 -0
- package/assets/profiles/express/agents/api-engineer.md +60 -0
- package/assets/profiles/fastapi/README.md +32 -0
- package/assets/profiles/fastapi/agents/api-engineer.md +87 -0
- package/assets/profiles/go-gin/agents/api-engineer.md +98 -0
- package/assets/profiles/hono-drizzle/README.md +31 -0
- package/assets/profiles/hono-drizzle/agents/api-engineer.md +82 -0
- package/assets/profiles/laravel/README.md +32 -0
- package/assets/profiles/laravel/agents/api-engineer.md +114 -0
- package/assets/profiles/laravel/agents/fullstack-engineer.md +67 -0
- package/assets/profiles/laravel/agents/migration-specialist.md +420 -0
- package/assets/profiles/nestjs/agents/api-engineer.md +79 -0
- package/assets/profiles/nextjs-admin/README.md +32 -0
- package/assets/profiles/nextjs-admin/agents/admin-engineer.md +78 -0
- package/assets/profiles/playwright-crawler/agents/scanner-engineer.md +51 -0
- package/assets/profiles/rails/agents/fullstack-engineer.md +61 -0
- package/assets/profiles/sveltekit/agents/frontend-engineer.md +96 -0
- package/assets/profiles/vuenuxt/agents/frontend-engineer.md +82 -0
- package/assets/profiles/wordpress/README.md +30 -0
- package/assets/profiles/wordpress/agents/divi-engineer.md +273 -0
- package/assets/profiles/wordpress/agents/elementor-engineer.md +310 -0
- package/assets/profiles/wordpress/agents/wp-engineer.md +216 -0
- package/assets/requirements.txt +2 -0
- package/assets/scripts/aitmpl-search.py +808 -0
- package/assets/scripts/forge-add-opportunities.py +92 -0
- package/assets/scripts/forge-audit.py +1061 -0
- package/assets/scripts/forge-generate-all.py +283 -0
- package/assets/scripts/forge-init.py +900 -0
- package/assets/scripts/forge-migrate-project-yaml.py +397 -0
- package/assets/scripts/forge-scaffold-profile.py +181 -0
- package/assets/scripts/forge-teardown.py +193 -0
- package/assets/scripts/forge-validate-project-yaml.py +457 -0
- package/assets/scripts/forge-wizard.py +1003 -0
- package/assets/scripts/setup-codex.sh +229 -0
- package/assets/scripts/team-install.sh +147 -0
- package/assets/scripts/token-stats.py +201 -0
- package/assets/templates/modes/enterprise.yaml.tpl +114 -0
- package/assets/templates/modes/multi-runtime.yaml.tpl +89 -0
- package/assets/templates/modes/new-stack.yaml.tpl +101 -0
- package/assets/templates/modes/startup.yaml.tpl +74 -0
- package/assets/templates/project.yaml.tpl +185 -0
- package/assets/templates/wiki/concepts/_template.md +22 -0
- package/assets/templates/wiki/entities/_template.md +19 -0
- package/assets/templates/wiki/index.md +32 -0
- package/assets/templates/wiki/log.md +6 -0
- package/assets/templates/wiki/sources/_template.md +25 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +64 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/audit.d.ts +2 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +21 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +58 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/generate.d.ts +2 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +27 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +22 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/validate.d.ts +2 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +20 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/lib/paths.d.ts +10 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +49 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/python.d.ts +4 -0
- package/dist/lib/python.d.ts.map +1 -0
- package/dist/lib/python.js +46 -0
- package/dist/lib/python.js.map +1 -0
- package/package.json +46 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Todos los cambios notables de forge se documentan en este archivo.
|
|
4
|
+
|
|
5
|
+
Formato: [Keep a Changelog](https://keepachangelog.com/es/1.0.0/)
|
|
6
|
+
Versioning: [Semantic Versioning](https://semver.org/lang/es/)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## [2.0.1] — 2026-05-18
|
|
11
|
+
|
|
12
|
+
### Agregado
|
|
13
|
+
- `forge wiki` subcomando: `status`, `ingest`, `query`, `lint` (F1-F01)
|
|
14
|
+
- 45 tests nuevos: validador de project.yaml, migrador v1→v2, forge-generate-all, pre-bash-check
|
|
15
|
+
- Copyright headers en 7 scripts principales (Apache 2.0, SocialWeb 2026)
|
|
16
|
+
- `vscode-extension/forge-agent-framework-0.5.0.vsix` empaquetada y lista para instalar
|
|
17
|
+
|
|
18
|
+
### Total: 509 tests pasando
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## [2.0.0] — 2026-05-18
|
|
23
|
+
|
|
24
|
+
### Agregado — Forge v2 Fase 3 (liberación pública)
|
|
25
|
+
|
|
26
|
+
#### Limpieza (F3-01)
|
|
27
|
+
- `LICENSE`: Apache 2.0, Copyright 2026 SocialWeb
|
|
28
|
+
- `docs/RELEASE-CHECKLIST.md`: checklist de liberación pública (seguridad, técnico, legal, operativo)
|
|
29
|
+
- Anonimización de referencias internas en `docs/plan/`: clientes reales → `Cliente-Media`, `Cliente-ONG`, etc.; proyectos internos → `proyecto-alpha`, `proyecto-beta`; `Bienes Nacionales` → `organismo-publico`
|
|
30
|
+
|
|
31
|
+
#### README y documentación (F3-02)
|
|
32
|
+
- README reescrito para público general: posicionamiento honesto, tabla comparativa vs cc-sdd/Bridle/wshobson, quick start de 4 pasos, sin referencias a clientes
|
|
33
|
+
|
|
34
|
+
#### Extensión VS Code (F3-04)
|
|
35
|
+
- Versión `0.2.1` → `0.5.0` (alineada con forge pre-milestone)
|
|
36
|
+
- 3 nuevos comandos: `forge: Generate All Runtimes`, `forge: Validate project.yaml`, `forge: Migrate project.yaml to v2`
|
|
37
|
+
- Handlers en `extension.ts` con confirmación para migración destructiva
|
|
38
|
+
|
|
39
|
+
#### Artículos (F3-05)
|
|
40
|
+
- `docs/content/linkedin-articles/`: 3 borradores listos para publicar
|
|
41
|
+
- "Por qué los agentes de IA necesitan un harness, no solo prompts"
|
|
42
|
+
- "Las cinco capas de un kit de desarrollo agéntico"
|
|
43
|
+
- "Cómo usamos agentes para enseñar gestión de proyectos de software"
|
|
44
|
+
|
|
45
|
+
### Convenciones
|
|
46
|
+
- Versión `2.0.0` corresponde a Forge v2 completo (Fases 0–3)
|
|
47
|
+
- Milestone: `v2.0.0` — listo para publicación pública
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## [0.5.0] — 2026-05-17
|
|
52
|
+
|
|
53
|
+
### Agregado — Forge v2 Fase 2 (multi-runtime)
|
|
54
|
+
|
|
55
|
+
#### OpenCode (F2-01/02/03/04)
|
|
56
|
+
- `adapters/opencode/commands/`: 6 comandos adaptados para ejecución serial (plan, work, review, ship, session-start, session-close)
|
|
57
|
+
- `/work` en OpenCode: modo serial equivalente a `--serial` de Claude Code (sin agent teams paralelos)
|
|
58
|
+
- `/review`: veredicto APPROVED/CHANGES_REQUESTED/BLOCKED; escribe `.opencode/review-status.json`
|
|
59
|
+
- `/ship`: usa `vercel deploy` vía CLI en vez de MCP tools
|
|
60
|
+
- `adapters/opencode/HOOKS.md`: tabla de equivalencia hook-por-hook; todos los guardrails se embeben en AGENTS.md
|
|
61
|
+
- `adapters/opencode/generate-agents-md.py`: agrega sección de comandos SDD y reglas de guardrail al AGENTS.md generado
|
|
62
|
+
- `docs/runtimes/opencode.md`: guía completa con diferencias vs Claude Code, agent teams serial, limitaciones
|
|
63
|
+
|
|
64
|
+
#### Codex CLI (F2-05/06/07/08)
|
|
65
|
+
- `adapters/codex/commands/`: 6 prompt templates para uso con Codex CLI autónomo
|
|
66
|
+
- `adapters/codex/hooks/codex.yaml.tpl`: template de configuración con hooks `onStart`/`onFinish`
|
|
67
|
+
- `adapters/codex/hooks/forge-codex-start.sh`: checks determinísticos de entorno al inicio de sesión
|
|
68
|
+
- `adapters/codex/hooks/forge-codex-finish.sh`: typecheck/lint post-sesión por tipo de archivo
|
|
69
|
+
- `scripts/setup-codex.sh`: instalación automática del entorno Codex en 7 pasos
|
|
70
|
+
- `adapters/codex/generate-codex-config.py`: agrega SDD workflow, production safety rules y branch guard al AGENTS.md
|
|
71
|
+
- `docs/runtimes/codex.md`: guía completa con tabla de diferencias, uso diario y consideraciones de seguridad
|
|
72
|
+
|
|
73
|
+
#### Kiro (F2-09)
|
|
74
|
+
- `adapters/kiro/generate-steering.py`: agrega flujo SDD en `structure.md`, genera `commands.md` y hook `pre-edit-branch-guard.json`
|
|
75
|
+
- `docs/runtimes/kiro.md`: tablas de equivalencia de conceptos, guía de uso, roadmap para soporte completo
|
|
76
|
+
- `docs/architecture/adr/ADR-002-kiro-support-level.md`: decisión formal de soporte en nivel "monitoring"
|
|
77
|
+
|
|
78
|
+
#### Capa de traducción (F2-10)
|
|
79
|
+
- `scripts/forge-generate-all.py`: punto de entrada unificado para generar configs de todos los runtimes activos
|
|
80
|
+
- Auto-detección por marcadores de filesystem (`.claude/`, `.opencode/`, `.kiro/`, `AGENTS.md`)
|
|
81
|
+
- Flags: `--runtime`, `--dry-run`, `--force`
|
|
82
|
+
- `templates/project.yaml.tpl`: nueva sección `runtimes.active` con los 4 runtimes soportados
|
|
83
|
+
- `core/schemas/project.schema.json`: validación de la nueva sección `runtimes`
|
|
84
|
+
- `docs/runtimes/README.md`: índice de runtimes con tabla de nivel de soporte
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## [0.4.0] — 2026-05-17
|
|
89
|
+
|
|
90
|
+
### Agregado — Forge v2 Fase 1 (core commands + full stack)
|
|
91
|
+
|
|
92
|
+
#### Memory Layer (Capa 1)
|
|
93
|
+
- Templates `core/templates/claude-md/`: `global.md`, `project.md`, `architecture.rules` (separación 3 capas de CLAUDE.md)
|
|
94
|
+
- Template `core/templates/daily-note.md` con placeholders para `/session-close`
|
|
95
|
+
- Template `core/templates/spec-template.md` con secciones obligatorias (Problem, Non-goals, Acceptance, Compliance, Edge cases)
|
|
96
|
+
- `forge-init.py`: `_install_templates()` crea `docs/daily-notes/`, `docs/specs/_template.md`, `.claude/architecture.rules` automáticamente
|
|
97
|
+
- `generate-claude-md.py`: genera `.claude/architecture.rules` al crear CLAUDE.md si no existe
|
|
98
|
+
- Schema JSON Draft-07: `core/schemas/project.schema.json` para validar `project.yaml` v2
|
|
99
|
+
- Validador: `scripts/forge-validate-project-yaml.py` con flag `--json`, exit 1 en errores
|
|
100
|
+
- Migrador: `scripts/forge-migrate-project-yaml.py` de v1 → v2, soporta `--dry-run` y `--backup`
|
|
101
|
+
- Referencia completa: `docs/project-yaml-v2-reference.md` con tablas por sección
|
|
102
|
+
|
|
103
|
+
#### Knowledge Layer (Capa 2)
|
|
104
|
+
- Slash command `/plan` (3 modos): crear spec, listar specs, revisar con Planner-Critic
|
|
105
|
+
- Slash command `/work`: lee spec aprobada, propone team según mode, spawna teammates en paralelo
|
|
106
|
+
- Slash command `/review` (F1-B03): multi-agente en standard/enterprise; veredicto APPROVED/CHANGES_REQUESTED/BLOCKED; escribe `.claude/review-status.json` para `/ship`
|
|
107
|
+
- Slash command `/ship`: pipeline 10 pasos, polling max 1/min a Vercel, smoke tests, logs en tiempo real
|
|
108
|
+
|
|
109
|
+
#### Guardrail Layer (Capa 3)
|
|
110
|
+
- `core/hooks/hooks-registry.yaml`: declarativo por mode (universal/standard/enterprise) y stack
|
|
111
|
+
- `core/hooks/pre-bash-check.py`: bloquea comandos destructivos basado en incidente 2026-04-28
|
|
112
|
+
- `core/hooks/session-start.sh`: verificaciones determinísticas al inicio de sesión (tools, branch, env)
|
|
113
|
+
- `forge-init.py`: lee `hooks-registry.yaml` para instalar hooks según mode del proyecto
|
|
114
|
+
- Nuevas entradas en hooks-registry.yaml para stacks `nextjs-admin` (prisma-safety) y `laravel` (composer-check)
|
|
115
|
+
|
|
116
|
+
#### Delegation Layer (Capa 4)
|
|
117
|
+
- 7 agentes Tier 1 (`core/agents/`) actualizados con sección `## Forge v2` (spec-first, hooks awareness, scope rules)
|
|
118
|
+
- 7 perfiles Tier 2 actualizados a Forge v2: `hono-drizzle`, `nextjs-admin`, `laravel`, `fastapi`, `astro`, `expo`, `wordpress`
|
|
119
|
+
- `README.md` creado para cada perfil con agentes, cuándo usar, hooks específicos del stack, activación en `project.yaml`
|
|
120
|
+
|
|
121
|
+
#### Distribution Layer (Capa 5)
|
|
122
|
+
- `manifest.json`: inventario completo de agentes, perfiles, skills, comandos, hooks y schemas
|
|
123
|
+
- `docs/team-install.md`: guía de onboarding de 5 minutos para nuevos desarrolladores
|
|
124
|
+
- `scripts/team-install.sh`: script de instalación automática del equipo
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## [0.3.0] — 2026-05-17
|
|
129
|
+
|
|
130
|
+
### Agregado — Forge v2 Fase 0 (session lifecycle + hooks)
|
|
131
|
+
- Slash commands de ciclo de sesión: `/session-start` (3 escenarios, detección automática de branch) y `/session-close` (pipeline de 8 pasos: commit, changeset, GitHub Projects, daily-note, RELEASE-NOTES, rebase + PR)
|
|
132
|
+
- Hook `pre-edit-check.py` (PreToolUse): branch guard en main, detección de debug statements multi-stack (TS/PHP/Python/Ruby), detección de credenciales hardcodeadas
|
|
133
|
+
- Hook `post-turn-check.sh` (Stop): typecheck automático sobre archivos modificados, auto-detección de package manager, soporte `scripts.check` en project.yaml
|
|
134
|
+
- `forge-init.py`: instala hooks en `.claude/hooks/` del proyecto (función `install_hooks()`)
|
|
135
|
+
- `forge-init.py`: `session-start.md` y `session-close.md` se instalan siempre (sin requerir skill activa)
|
|
136
|
+
- `settings.json` ahora incluye configuración de hooks (`PreToolUse`, `Stop`) además de `permissions.allow`
|
|
137
|
+
- Documentación del plan v2: `docs/plan/forge-v2-plan.md`, `docs/plan/forge-v2-implementation.md`
|
|
138
|
+
- Bitácora de fricción: `docs/feedback/friction-log.md` con template y formato estándar
|
|
139
|
+
- Guía de migración: `docs/migration/v1-to-v1.5.md`
|
|
140
|
+
|
|
141
|
+
### Convenciones
|
|
142
|
+
- Versión "Forge v1.5" del plan de arquitectura = `0.3.0` en semver
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## [0.2.2] — 2026-05-05
|
|
147
|
+
|
|
148
|
+
### Agregado
|
|
149
|
+
- Picker TUI de dos paneles en audit: lista navegable (izquierda) + detalle del ítem (derecha)
|
|
150
|
+
- `forge-init.py`: genera CLAUDE.md automáticamente desde el adapter de claude-code
|
|
151
|
+
- `forge-init.py`: inyecta `scope:` en el frontmatter de cada agente desde `agent_paths` en project.yaml
|
|
152
|
+
- `forge-init.py`: genera `.claude/settings.json` con `permissions.allow` según el stack del proyecto
|
|
153
|
+
- Slash commands nuevos: `/new-feature`, `/deploy-check`, `/review` instalados automáticamente por forge-init
|
|
154
|
+
- CLI: opción "Regenerar CLAUDE.md — sin reinstalar agentes" en el submenú de init
|
|
155
|
+
- Extensión VS Code: comando `forge: Regenerate CLAUDE.md` con icono en el panel lateral
|
|
156
|
+
- `generate-claude-md.py`: tabla "Agentes y su scope" en el CLAUDE.md generado
|
|
157
|
+
- `generate-claude-md.py`: soporte a `--force` para bypass del prompt interactivo
|
|
158
|
+
- `project.yaml.tpl`: sección `agent_paths` con keys api, frontend, admin, mobile, scanner
|
|
159
|
+
- Extensión VS Code: `showOpportunitiesPicker()` multi-select QuickPick con `canPickMany: true`
|
|
160
|
+
- Extensión VS Code: context states `forge.installed` / `forge.active` vía `setContext`
|
|
161
|
+
- Extensión VS Code: `AuditOpportunity` interface para parseo estructurado del JSON de audit
|
|
162
|
+
|
|
163
|
+
### Cambiado
|
|
164
|
+
- Picker de oportunidades: reemplaza lista estática + prompt de texto por TUI de dos paneles
|
|
165
|
+
- CLI `menu_init()`: descripciones actualizadas mencionando settings.json y slash commands
|
|
166
|
+
- `ForgeActionsProvider`: incluye "Regenerate CLAUDE.md" en el panel de acciones
|
|
167
|
+
- Fallback a `_simple_opp_picker` en Windows, terminal <60 cols o modo no-TTY/CI
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## [0.2.1] — 2026-05-04
|
|
172
|
+
|
|
173
|
+
### Agregado
|
|
174
|
+
- Profile `laravel`: agentes `api-engineer`, `fullstack-engineer`, `migration-specialist` con ruta completa L6→L13
|
|
175
|
+
- Profile `wordpress`: agentes `wp-engineer`, `divi-engineer`, `elementor-engineer` (FSE, Divi 5, Elementor Pro)
|
|
176
|
+
- `scripts/forge-add-opportunities.py`: aplica profiles/skills seleccionados a `project.yaml` vía CLI o VS Code
|
|
177
|
+
- Filtrado inteligente de oportunidades en audit por stack declarado (`_PROFILE_RELEVANCE`)
|
|
178
|
+
- Picker interactivo numerado en terminal para seleccionar y aplicar oportunidades
|
|
179
|
+
- Catálogos `_SKILL_INFO` y `_PROFILE_INFO` con descripción y trigger por item
|
|
180
|
+
- Agentes especialistas: `forge-init-specialist`, `forge-audit-specialist`, `forge-catalog-specialist`
|
|
181
|
+
- VS Code: `showOpportunitiesPicker()` con QuickPick multi-select
|
|
182
|
+
- VS Code: vistas `forgeActionsView`, `forgeProjectView`, `forgeAgentsView` con `viewsWelcome`
|
|
183
|
+
- VS Code: campo `publisher: "socialwebcl"` en `package.json`
|
|
184
|
+
- GitHub Actions: workflow `tests.yml` con matrix Python 3.9/3.11/3.12
|
|
185
|
+
- Campo `last_verified` en agentes de terceros (Divi, Elementor) con check de expiración en audit
|
|
186
|
+
- Sección de extensión VS Code en README y `docs/guide.md`
|
|
187
|
+
|
|
188
|
+
### Corregido
|
|
189
|
+
- Windows: `ModuleNotFoundError: No module named 'termios'` reemplazado por mensaje orientativo con exit limpio
|
|
190
|
+
- URL del submodule en README: `socialweb-cl` → `socialwebcl` (sin guión)
|
|
191
|
+
- Instrucciones de `git submodule update --init --recursive` para colaboradores nuevos
|
|
192
|
+
- Campo `summary` ausente en salida JSON de `forge-audit.py` (generaba falsa seguridad en CI)
|
|
193
|
+
- Flags `--forge` y `--only` declarados en docs pero no implementados en `forge-audit.py`
|
|
194
|
+
- 4 profiles sin documentar en `agent-standard.md` (django, go-gin, sveltekit, vuenuxt)
|
|
195
|
+
- `codex.md` con convención no verificada en spec de Codex CLI → eliminado, adapter simplificado
|
|
196
|
+
- Referencias a `aitmpl.com` en código activo → removidas
|
|
197
|
+
- Wizard: 4 brechas de UX para usuario nuevo (mensajes de error, terminología)
|
|
198
|
+
- `pbcopy`/`open` macOS-only → reemplazado por alternativas multiplataforma
|
|
199
|
+
- Extensión VS Code: sin documentación ni instrucciones de instalación → documentada con VSIX
|
|
200
|
+
|
|
201
|
+
### Cambiado
|
|
202
|
+
- Audit terminal: agentes OK colapsados en una línea por tier (reduce scroll)
|
|
203
|
+
- Oportunidades en audit: cards con descripción, agentes/trigger y selección numerada integrada
|
|
204
|
+
- Extensión VS Code: 624 → 1071 líneas (opportunity picker, estados gestionados)
|
|
205
|
+
- `forge-audit.py`: 557 → 855 líneas (filtrado, catálogos, UI)
|
|
206
|
+
- Tests: 358 → 464 casos (contratos JSON, platform compat, VS Code extension, profiles nuevos)
|
|
207
|
+
- Extensión VS Code: `0.1.2` → `0.2.1`
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## [0.2.0] — 2026-05-03
|
|
212
|
+
|
|
213
|
+
### Agregado
|
|
214
|
+
- Profiles: `django`, `go-gin`, `sveltekit`, `vuenuxt`, `astro`
|
|
215
|
+
- Skills: `browser-test`, `wiki-ingest`, `wiki-query`, `wiki-lint`
|
|
216
|
+
- Adapter Codex CLI
|
|
217
|
+
- Extensión VS Code (inicial, sin publicar)
|
|
218
|
+
- Wizard interactivo TUI con 10 preguntas guiadas
|
|
219
|
+
- `forge-audit.py` con salida `--json` e integración CI
|
|
220
|
+
- Catálogo curado offline (20 MCP servers, 13 profiles, 5 frameworks)
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Convenciones de versioning
|
|
225
|
+
|
|
226
|
+
- **MAJOR** (`1.0.0`): breaking changes en `project.yaml`, estructura de agentes, o adapters
|
|
227
|
+
- **MINOR** (`0.X.0`): profiles nuevos, skills nuevos, features de CLI o extensión
|
|
228
|
+
- **PATCH** (`0.2.X`): bugfixes, documentación, mejoras de UX sin cambios de estructura
|
package/LICENSE
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship made available under
|
|
36
|
+
the License, as indicated by a copyright notice that is included in
|
|
37
|
+
or attached to the work (an example is provided in the Appendix below).
|
|
38
|
+
|
|
39
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
40
|
+
form, that is based on (or derived from) the Work and for which the
|
|
41
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
42
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
43
|
+
of this License, Derivative Works shall not include works that remain
|
|
44
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
45
|
+
the Work and Derivative Works thereof.
|
|
46
|
+
|
|
47
|
+
"Contribution" shall mean, as submitted to the Licensor for inclusion
|
|
48
|
+
in the Work by the copyright owner or by an individual or Legal Entity
|
|
49
|
+
authorized to submit on behalf of the copyright owner. For the purposes
|
|
50
|
+
of this definition, "submitted" means any form of electronic, verbal,
|
|
51
|
+
or written communication sent to the Licensor or its representatives,
|
|
52
|
+
including but not limited to communication on electronic mailing lists,
|
|
53
|
+
source code control systems, and issue tracking systems that are managed
|
|
54
|
+
by, or on behalf of, the Licensor for the purpose of discussing and
|
|
55
|
+
improving the Work, but excluding communication that is conspicuously
|
|
56
|
+
marked or otherwise designated in writing by the copyright owner as
|
|
57
|
+
"Not a Contribution."
|
|
58
|
+
|
|
59
|
+
"Contributor" shall mean Licensor and any Legal Entity on behalf of
|
|
60
|
+
whom a Contribution has been received by the Licensor and subsequently
|
|
61
|
+
incorporated within the Work.
|
|
62
|
+
|
|
63
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
64
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
65
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
66
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
67
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
68
|
+
Work and such Derivative Works in Source or Object form.
|
|
69
|
+
|
|
70
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
71
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
72
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
73
|
+
(except as stated in this section) patent license to make, have made,
|
|
74
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
75
|
+
where such license applies only to those patent claims licensable
|
|
76
|
+
by such Contributor that are necessarily infringed by their
|
|
77
|
+
Contribution(s) alone or by the combination of their Contribution(s)
|
|
78
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
79
|
+
institute patent litigation against any entity (including a cross-claim
|
|
80
|
+
or counterclaim in a lawsuit) alleging that the Work or any Contributor
|
|
81
|
+
Contribution constitutes direct or contributory patent infringement,
|
|
82
|
+
then any patent licenses granted to You under this License for that
|
|
83
|
+
Work shall terminate as of the date such litigation is filed.
|
|
84
|
+
|
|
85
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
86
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
87
|
+
modifications, and in Source or Object form, provided that You
|
|
88
|
+
meet the following conditions:
|
|
89
|
+
|
|
90
|
+
(a) You must give any other recipients of the Work or Derivative
|
|
91
|
+
Works a copy of this License; and
|
|
92
|
+
|
|
93
|
+
(b) You must cause any modified files to carry prominent notices
|
|
94
|
+
stating that You changed the files; and
|
|
95
|
+
|
|
96
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
97
|
+
that You distribute, all copyright, patent, trademark, and
|
|
98
|
+
attribution notices from the Source form of the Work,
|
|
99
|
+
excluding those notices that do not pertain to any part of
|
|
100
|
+
the Derivative Works; and
|
|
101
|
+
|
|
102
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
103
|
+
distribution, You must include a readable copy of the
|
|
104
|
+
attribution notices contained within such NOTICE file, in
|
|
105
|
+
at least one of the following places: within a NOTICE text
|
|
106
|
+
file distributed as part of the Derivative Works; within
|
|
107
|
+
the Source form or documentation, if provided along with the
|
|
108
|
+
Derivative Works; or, within a display generated by the
|
|
109
|
+
Derivative Works, if and wherever such third-party notices
|
|
110
|
+
normally appear. The contents of the NOTICE file are for
|
|
111
|
+
informational purposes only and do not modify the License.
|
|
112
|
+
You may add Your own attribution notices within Derivative
|
|
113
|
+
Works that You distribute, alongside or as an addendum to
|
|
114
|
+
the NOTICE text from the Work, provided that such additional
|
|
115
|
+
attribution notices cannot be construed as modifying the License.
|
|
116
|
+
|
|
117
|
+
You may add Your own license statement for Your modifications and
|
|
118
|
+
may provide additional grant of rights to use, copy, modify, merge,
|
|
119
|
+
publish, distribute, sublicense, and/or sell copies of the
|
|
120
|
+
Work, subject to the terms and conditions of this License.
|
|
121
|
+
|
|
122
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
123
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
124
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
125
|
+
this License, without any additional terms or conditions.
|
|
126
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
127
|
+
the terms of any separate license agreement you may have executed
|
|
128
|
+
with Licensor regarding such Contributions.
|
|
129
|
+
|
|
130
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
131
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
132
|
+
except as required for reasonable and customary use in describing the
|
|
133
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
134
|
+
|
|
135
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
136
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
137
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
138
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
139
|
+
implied, including, without limitation, any warranties or conditions
|
|
140
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
141
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
142
|
+
appropriateness of using or reproducing the Work and assume any
|
|
143
|
+
risks associated with Your exercise of permissions under this License.
|
|
144
|
+
|
|
145
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
146
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
147
|
+
unless required by applicable law (such as deliberate and grossly
|
|
148
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
149
|
+
liable to You for damages, including any direct, indirect, special,
|
|
150
|
+
incidental, or exemplary damages of any character arising as a
|
|
151
|
+
result of this License or out of the use or inability to use the
|
|
152
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
153
|
+
work stoppage, computer failure or malfunction, or all other
|
|
154
|
+
commercial damages or losses), even if such Contributor has been
|
|
155
|
+
advised of the possibility of such damages.
|
|
156
|
+
|
|
157
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
158
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
159
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
160
|
+
or other liability obligations and/or rights consistent with this
|
|
161
|
+
License. However, in accepting such obligations, You may offer only
|
|
162
|
+
conditions consistent with the terms of this License, in a
|
|
163
|
+
manner that is not on behalf of any other Contributor, and only if
|
|
164
|
+
You agree to indemnify, defend, and hold each Contributor harmless
|
|
165
|
+
for any liability incurred by, or claims asserted against, such
|
|
166
|
+
Contributor by reason of your accepting any such warranty or
|
|
167
|
+
additional liability.
|
|
168
|
+
|
|
169
|
+
END OF TERMS AND CONDITIONS
|
|
170
|
+
|
|
171
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
172
|
+
|
|
173
|
+
To apply the Apache License to your work, attach the following
|
|
174
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
175
|
+
replaced with your own identifying information. (Don't include
|
|
176
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
177
|
+
comment syntax for the file format in question.
|
|
178
|
+
|
|
179
|
+
Copyright 2026 Cristian Correa
|
|
180
|
+
|
|
181
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
182
|
+
you may not use this file except in compliance with the License.
|
|
183
|
+
You may obtain a copy of the License at
|
|
184
|
+
|
|
185
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
186
|
+
|
|
187
|
+
Unless required by applicable law or agreed to in writing, software
|
|
188
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
189
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
190
|
+
See the License for the specific language governing permissions and
|
|
191
|
+
limitations under the License.
|
package/README.md
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# forge
|
|
2
|
+
|
|
3
|
+
[](https://github.com/cristiancorreau/forge/actions/workflows/tests.yml)
|
|
4
|
+
[](CHANGELOG.md)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
|
|
7
|
+
Framework de desarrollo agéntico para equipos de software. Un `project.yaml` genera la configuración correcta de agentes, skills y reglas para cualquier runtime de IA.
|
|
8
|
+
|
|
9
|
+
> Los agentes sin harness derivan. Forge es el harness: reglas persistentes, memoria del proyecto, y delegación estructurada desde el primer commit.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Por qué Forge
|
|
14
|
+
|
|
15
|
+
- **Los agentes olvidan.** Sin memoria y reglas persistentes, cada sesión empieza desde cero. Forge mantiene el contexto entre sesiones.
|
|
16
|
+
- **El contexto se pierde entre archivos.** Un CLAUDE.md plano no sabe qué agente ejecuta qué tarea. Forge separa responsabilidades con agentes especializados por tier.
|
|
17
|
+
- **Cada runtime tiene su formato.** Claude Code, OpenCode, Kiro y Codex CLI esperan archivos distintos. Forge los genera todos desde una sola fuente de verdad.
|
|
18
|
+
- **La calidad baja con el tiempo.** Sin auditoría, los agentes se desactualizan silenciosamente. Forge detecta gaps y ofrece correcciones.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Diferencias con otras herramientas
|
|
23
|
+
|
|
24
|
+
| Herramienta | Qué hace | Alcance | Runtimes | Hooks | Equipos |
|
|
25
|
+
|-------------|----------|---------|----------|-------|---------|
|
|
26
|
+
| **Forge** | Framework completo: agentes, skills, reglas, auditoría | Proyecto + team | Claude Code, OpenCode, Kiro, Codex CLI | Sí (pre-commit) | Sí (tiers) |
|
|
27
|
+
| `cc-sdd` | Plantillas SDD para Claude Code | Proyecto individual | Claude Code | No | No |
|
|
28
|
+
| `Bridle` | Guardrails para prompts | Prompt-level | Agnóstico | No | No |
|
|
29
|
+
| `wshobson/agents` | Colección de agent files | Proyecto individual | Claude Code | No | No |
|
|
30
|
+
| CLAUDE.md manual | Instrucciones en texto plano | Sesión | Claude Code | No | No |
|
|
31
|
+
|
|
32
|
+
**Lo que Forge NO es:** no es un modelo de IA, no es un servicio en la nube, no es una plataforma de deployment, no ejecuta agentes por sí solo. Es una capa de configuración y estructura que vive en tu repositorio.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Quick start (5 minutos)
|
|
37
|
+
|
|
38
|
+
**Requisitos:** Python 3.9+, git, Claude Code (u otro runtime soportado).
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# 1. Agregar forge al proyecto como submodule
|
|
42
|
+
git submodule add https://github.com/cristiancorreau/forge .agentic
|
|
43
|
+
pip3 install -r .agentic/requirements.txt
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# 2. Copiar y completar project.yaml
|
|
48
|
+
cp .agentic/templates/project.yaml.tpl project.yaml
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Editar `project.yaml` con los datos del proyecto:
|
|
52
|
+
|
|
53
|
+
```yaml
|
|
54
|
+
project:
|
|
55
|
+
name: "Mi SaaS"
|
|
56
|
+
mode: "standard" # startup | standard | enterprise
|
|
57
|
+
|
|
58
|
+
stack:
|
|
59
|
+
backend: "hono"
|
|
60
|
+
frontend: "nextjs"
|
|
61
|
+
|
|
62
|
+
agents:
|
|
63
|
+
active: [orchestrator, test-engineer, docs-writer]
|
|
64
|
+
profiles: [hono-drizzle, nextjs-admin]
|
|
65
|
+
|
|
66
|
+
skills:
|
|
67
|
+
active: [new-feature, security-audit, db-migrate]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# 3. Inicializar agentes
|
|
72
|
+
python3 .agentic/scripts/forge-init.py --tool claude-code
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# 4. Abrir Claude Code y ejecutar
|
|
77
|
+
/session-start
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Después del paso 4 verás: agentes instalados en `.claude/agents/`, un `CLAUDE.md` generado con el roster del proyecto, y slash commands disponibles en Claude Code.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Arquitectura — cinco capas
|
|
85
|
+
|
|
86
|
+
| Capa | Qué hace |
|
|
87
|
+
|------|----------|
|
|
88
|
+
| **Memory** | `project.yaml` como fuente de verdad; wiki de proyecto persistente entre sesiones |
|
|
89
|
+
| **Knowledge** | Agentes especializados (Tier 1/2/3) con scope declarado y reglas no-negociables |
|
|
90
|
+
| **Guardrail** | Compliance by design, hook de pre-commit, auditoría con `forge-audit.py` |
|
|
91
|
+
| **Delegation** | Orquestador que descompone tareas y delega a agentes especializados |
|
|
92
|
+
| **Distribution** | Un solo `project.yaml` genera configs para todos los runtimes soportados |
|
|
93
|
+
|
|
94
|
+
Documentación completa: [`docs/guide.md`](docs/guide.md)
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Runtimes soportados
|
|
99
|
+
|
|
100
|
+
| Runtime | Soporte | Cómo instalar |
|
|
101
|
+
|---------|---------|---------------|
|
|
102
|
+
| **Claude Code** | Completo (agentes, CLAUDE.md, settings, slash commands) | `--tool claude-code` |
|
|
103
|
+
| **OpenCode** | Serial (AGENTS.md) | `--tool opencode` |
|
|
104
|
+
| **Codex CLI** | Serial (AGENTS.md enriquecido) | `--tool codex` |
|
|
105
|
+
| **Kiro** | Serial (steering files) | `--tool kiro` |
|
|
106
|
+
| **Todos** | Genera los cuatro | `--tool all` |
|
|
107
|
+
|
|
108
|
+
"Soporte completo" significa integración con hooks, settings.json y slash commands. "Serial" significa generación del archivo de instrucciones sin integración profunda con el runtime.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Perfiles de stack disponibles
|
|
113
|
+
|
|
114
|
+
15 perfiles listos para usar, declarados en `agents.profiles` del `project.yaml`:
|
|
115
|
+
|
|
116
|
+
`hono-drizzle` · `nextjs-admin` · `astro` · `expo` · `playwright-crawler`
|
|
117
|
+
`fastapi` · `express` · `rails` · `nestjs` · `django`
|
|
118
|
+
`vuenuxt` · `go-gin` · `sveltekit` · `laravel` · `wordpress`
|
|
119
|
+
|
|
120
|
+
Cada profile instala uno o más agentes especializados en ese stack. Ver [`profiles/`](profiles/) para el detalle de cada uno.
|
|
121
|
+
|
|
122
|
+
Para stacks no cubiertos:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
python3 .agentic/scripts/forge-scaffold-profile.py --name <stack> --engineer <agente>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Contribuir
|
|
131
|
+
|
|
132
|
+
**Fork + PR.** Para cambios grandes, abre un issue primero.
|
|
133
|
+
|
|
134
|
+
**Agregar un profile:**
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
python3 .agentic/scripts/forge-scaffold-profile.py --name <stack> --engineer <agente>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
El agente debe seguir el estándar en [`docs/agent-standard.md`](docs/agent-standard.md). Agregar el nombre al `CATALOG` en `scripts/aitmpl-search.py` y a los parametrize en `tests/test_profiles.py`.
|
|
141
|
+
|
|
142
|
+
**Agregar un skill:** Crear `core/skills/<nombre>/SKILL.md` con la estructura estándar. Ver skills existentes como referencia.
|
|
143
|
+
|
|
144
|
+
**Reportar fricción:** Abre un issue con el formato: _qué intentabas hacer → qué pasó → qué esperabas_. Los friction logs son bienvenidos como issues o PRs directamente en `docs/`.
|
|
145
|
+
|
|
146
|
+
**Tests antes de cada PR:**
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
python3 -m pytest tests/ -q # debe pasar al 100%
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Licencia
|
|
155
|
+
|
|
156
|
+
Apache 2.0 — [Cristian Correa](https://github.com/cristiancorreau), 2026.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# deploy-check
|
|
2
|
+
|
|
3
|
+
Verifica que el proyecto esté listo para deploy y ejecuta los checks previos al push.
|
|
4
|
+
|
|
5
|
+
Entorno target: $ARGUMENTS (ej: staging, production — vacío para checks generales).
|
|
6
|
+
|
|
7
|
+
1. Ejecutar lint y tests completos.
|
|
8
|
+
2. Verificar que no hay cambios no commiteados.
|
|
9
|
+
3. Revisar variables de entorno: ¿están todas documentadas en .env.example?
|
|
10
|
+
4. Buscar console.log / print de depuración en los cambios recientes.
|
|
11
|
+
5. Confirmar branch y proveedor de deploy desde project.yaml.
|
|
12
|
+
6. Si el target es production, confirmar que el entorno de staging fue validado primero.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# new-feature
|
|
2
|
+
|
|
3
|
+
Inicia la implementación de una nueva feature siguiendo SDD (Spec-Driven Development).
|
|
4
|
+
|
|
5
|
+
Argumentos: $ARGUMENTS — nombre de la feature o ruta a la spec existente.
|
|
6
|
+
|
|
7
|
+
1. Si no existe spec para "$ARGUMENTS" en docs/specs/, crearla primero antes de escribir código.
|
|
8
|
+
2. Leer la spec antes de proponer cualquier implementación.
|
|
9
|
+
3. Proponer el plan de implementación y esperar aprobación explícita.
|
|
10
|
+
4. Implementar con tests junto a la implementación, no al final.
|
|
11
|
+
5. Al terminar, actualizar la spec con las decisiones tomadas durante la implementación.
|