@liriraid/agentflow-ai 1.0.10
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/LICENSE +21 -0
- package/README.md +79 -0
- package/bin/agentflow.mjs +332 -0
- package/orchestrator.js +1585 -0
- package/package.json +64 -0
- package/scripts/scaffold-agent-configs.mjs +100 -0
- package/scripts/scaffold-openspec-change.mjs +84 -0
- package/scripts/update-skill-registry.mjs +174 -0
- package/src/ink/app.mjs +240 -0
- package/src/ink/index.mjs +400 -0
- package/templates/en/.atl/skill-registry.md +27 -0
- package/templates/en/.claude/README.md +7 -0
- package/templates/en/.claude/skills/orchestrator-apply/SKILL.md +31 -0
- package/templates/en/.claude/skills/orchestrator-archive/SKILL.md +26 -0
- package/templates/en/.claude/skills/orchestrator-design/SKILL.md +27 -0
- package/templates/en/.claude/skills/orchestrator-explore/SKILL.md +29 -0
- package/templates/en/.claude/skills/orchestrator-init/SKILL.md +32 -0
- package/templates/en/.claude/skills/orchestrator-memory/SKILL.md +26 -0
- package/templates/en/.claude/skills/orchestrator-openspec/SKILL.md +35 -0
- package/templates/en/.claude/skills/orchestrator-propose/SKILL.md +26 -0
- package/templates/en/.claude/skills/orchestrator-queue-planning/SKILL.md +31 -0
- package/templates/en/.claude/skills/orchestrator-spec/SKILL.md +27 -0
- package/templates/en/.claude/skills/orchestrator-tasks/SKILL.md +27 -0
- package/templates/en/.claude/skills/orchestrator-verify/SKILL.md +27 -0
- package/templates/en/.codex/README.md +7 -0
- package/templates/en/.opencode/README.md +7 -0
- package/templates/en/AGENT-CONFIG.md +75 -0
- package/templates/en/CLAUDE.md +91 -0
- package/templates/en/ENGRAM.md +50 -0
- package/templates/en/ORCHESTRATOR.md +192 -0
- package/templates/en/PROJECT.md +70 -0
- package/templates/en/QUEUE.md +17 -0
- package/templates/en/README.md +188 -0
- package/templates/en/agents/ABACUS.md +36 -0
- package/templates/en/agents/BACKEND.md +37 -0
- package/templates/en/agents/CODEX.md +45 -0
- package/templates/en/agents/CURSOR.md +37 -0
- package/templates/en/agents/FRONTEND.md +36 -0
- package/templates/en/agents/GEMINI.md +37 -0
- package/templates/en/agents/OPENCODE.md +41 -0
- package/templates/en/docs/README.md +14 -0
- package/templates/en/docs/agents.md +33 -0
- package/templates/en/docs/architecture.md +43 -0
- package/templates/en/docs/components.md +14 -0
- package/templates/en/docs/engram.md +16 -0
- package/templates/en/docs/openspec.md +32 -0
- package/templates/en/docs/usage.md +66 -0
- package/templates/en/openspec/FLOW.md +24 -0
- package/templates/en/openspec/README.md +29 -0
- package/templates/en/openspec/changes/.gitkeep +1 -0
- package/templates/en/openspec/changes/archive/.gitkeep +1 -0
- package/templates/en/openspec/specs/.gitkeep +1 -0
- package/templates/en/openspec/templates/archive-report.md +21 -0
- package/templates/en/openspec/templates/change-metadata.yaml +9 -0
- package/templates/en/openspec/templates/design.md +26 -0
- package/templates/en/openspec/templates/proposal.md +27 -0
- package/templates/en/openspec/templates/spec.md +18 -0
- package/templates/en/openspec/templates/tasks.md +14 -0
- package/templates/en/openspec/templates/verify-report.md +21 -0
- package/templates/en/orchestrator.config.json +99 -0
- package/templates/es/.atl/skill-registry.md +133 -0
- package/templates/es/.claude/README.md +7 -0
- package/templates/es/.claude/skills/orchestrator-apply/SKILL.md +32 -0
- package/templates/es/.claude/skills/orchestrator-archive/SKILL.md +28 -0
- package/templates/es/.claude/skills/orchestrator-design/SKILL.md +32 -0
- package/templates/es/.claude/skills/orchestrator-explore/SKILL.md +31 -0
- package/templates/es/.claude/skills/orchestrator-init/SKILL.md +32 -0
- package/templates/es/.claude/skills/orchestrator-memory/SKILL.md +31 -0
- package/templates/es/.claude/skills/orchestrator-openspec/SKILL.md +55 -0
- package/templates/es/.claude/skills/orchestrator-propose/SKILL.md +33 -0
- package/templates/es/.claude/skills/orchestrator-queue-planning/SKILL.md +35 -0
- package/templates/es/.claude/skills/orchestrator-spec/SKILL.md +28 -0
- package/templates/es/.claude/skills/orchestrator-tasks/SKILL.md +32 -0
- package/templates/es/.claude/skills/orchestrator-verify/SKILL.md +31 -0
- package/templates/es/.codex/README.md +7 -0
- package/templates/es/.opencode/README.md +7 -0
- package/templates/es/AGENT-CONFIG.md +83 -0
- package/templates/es/CLAUDE.md +136 -0
- package/templates/es/ENGRAM.md +70 -0
- package/templates/es/ORCHESTRATOR.md +199 -0
- package/templates/es/PROJECT.md +237 -0
- package/templates/es/QUEUE.md +17 -0
- package/templates/es/README.md +568 -0
- package/templates/es/agents/ABACUS.md +25 -0
- package/templates/es/agents/BACKEND.md +28 -0
- package/templates/es/agents/CODEX.md +37 -0
- package/templates/es/agents/CURSOR.md +27 -0
- package/templates/es/agents/FRONTEND.md +29 -0
- package/templates/es/agents/GEMINI.md +26 -0
- package/templates/es/agents/OPENCODE.md +32 -0
- package/templates/es/docs/README.md +12 -0
- package/templates/es/docs/agents.md +57 -0
- package/templates/es/docs/architecture.md +41 -0
- package/templates/es/docs/components.md +33 -0
- package/templates/es/docs/engram.md +30 -0
- package/templates/es/docs/openspec.md +34 -0
- package/templates/es/docs/usage.md +54 -0
- package/templates/es/openspec/FLOW.md +139 -0
- package/templates/es/openspec/README.md +77 -0
- package/templates/es/openspec/changes/.gitkeep +1 -0
- package/templates/es/openspec/changes/archive/.gitkeep +1 -0
- package/templates/es/openspec/specs/.gitkeep +1 -0
- package/templates/es/openspec/templates/archive-report.md +23 -0
- package/templates/es/openspec/templates/change-metadata.yaml +9 -0
- package/templates/es/openspec/templates/design.md +33 -0
- package/templates/es/openspec/templates/proposal.md +36 -0
- package/templates/es/openspec/templates/spec.md +33 -0
- package/templates/es/openspec/templates/tasks.md +22 -0
- package/templates/es/openspec/templates/verify-report.md +24 -0
- package/templates/es/orchestrator.config.json +99 -0
|
@@ -0,0 +1,568 @@
|
|
|
1
|
+
# Orquestador Multiagente
|
|
2
|
+
|
|
3
|
+
> by **LiriRaid**
|
|
4
|
+
|
|
5
|
+
Orquestador reusable para trabajar con múltiples agentes de código desde terminal, con un TUI propio, cola operativa, skills locales, memoria persistente con Engram y artefactos OpenSpec para cambios grandes.
|
|
6
|
+
|
|
7
|
+
La idea central no es dejar que una sola IA haga todo, sino:
|
|
8
|
+
|
|
9
|
+
- usar a **Claude** como orquestador principal
|
|
10
|
+
- usar **OpenCode** principalmente para exploración, lectura y contexto, pero también para implementar cuando convenga
|
|
11
|
+
- usar **Codex** para ejecución estructurada e implementación de apoyo
|
|
12
|
+
- reflejar todo en una **TUI** que muestra estado, cola, agentes, logs y actividad real
|
|
13
|
+
|
|
14
|
+
## Qué es hoy
|
|
15
|
+
|
|
16
|
+
Este repo ya no es solo un runner con `QUEUE.md`.
|
|
17
|
+
|
|
18
|
+
Hoy incluye:
|
|
19
|
+
|
|
20
|
+
- **motor de orquestación** en `orchestrator.js`
|
|
21
|
+
- **TUI Ink** conectada al motor real
|
|
22
|
+
- **skills locales** en `.claude/skills/`
|
|
23
|
+
- **routing local** con `CLAUDE.md`
|
|
24
|
+
- **memoria persistente** con `ENGRAM.md`
|
|
25
|
+
- **OpenSpec** para cambios grandes
|
|
26
|
+
- **configuración por agente** con `agentProfiles`
|
|
27
|
+
- **base de installer / ecosystem configurator**
|
|
28
|
+
- **documentación local de componentes y arquitectura**
|
|
29
|
+
|
|
30
|
+
## Valor del sistema
|
|
31
|
+
|
|
32
|
+
Lo que agrega valor en este flujo:
|
|
33
|
+
|
|
34
|
+
- TUI multiagente visible en tiempo real
|
|
35
|
+
- cola operativa (`QUEUE.md`) integrada al runtime
|
|
36
|
+
- delegación real para ahorro de tokens
|
|
37
|
+
- separación clara entre:
|
|
38
|
+
- exploración
|
|
39
|
+
- planificación
|
|
40
|
+
- ejecución
|
|
41
|
+
- verificación
|
|
42
|
+
|
|
43
|
+
## Documentación local
|
|
44
|
+
|
|
45
|
+
La documentación reusable del sistema vive en:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
docs/
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Incluye:
|
|
52
|
+
|
|
53
|
+
- `docs/architecture.md`
|
|
54
|
+
- `docs/components.md`
|
|
55
|
+
- `docs/agents.md`
|
|
56
|
+
- `docs/engram.md`
|
|
57
|
+
- `docs/openspec.md`
|
|
58
|
+
- `docs/usage.md`
|
|
59
|
+
|
|
60
|
+
## Modelo de uso recomendado
|
|
61
|
+
|
|
62
|
+
Este orquestador **no debería ensuciar el repo real del producto**.
|
|
63
|
+
|
|
64
|
+
La instalación recomendada es:
|
|
65
|
+
|
|
66
|
+
- proyecto real:
|
|
67
|
+
- `C:/code/mi-proyecto`
|
|
68
|
+
- workspace del orquestador:
|
|
69
|
+
- `C:/code/orchestrator-mi-proyecto`
|
|
70
|
+
|
|
71
|
+
O sea:
|
|
72
|
+
|
|
73
|
+
- el orquestador vive en una carpeta sibling del proyecto
|
|
74
|
+
- el proyecto real queda limpio
|
|
75
|
+
- el orquestador apunta al proyecto por config
|
|
76
|
+
|
|
77
|
+
Ese es el modelo recomendado para usar el orquestador sin ensuciar el repo real del producto.
|
|
78
|
+
|
|
79
|
+
## Instalación desde npm
|
|
80
|
+
|
|
81
|
+
Nombre del paquete:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
@liriraid/agentflow-ai
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
La página de npm puede mostrar el snippet genérico:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npm i @liriraid/agentflow-ai
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
pero **ese no es el flujo recomendado** para este proyecto.
|
|
94
|
+
|
|
95
|
+
### Instalación global recomendada
|
|
96
|
+
|
|
97
|
+
Instala el CLI una sola vez:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npm i -g @liriraid/agentflow-ai
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Luego, para cada proyecto real, crea un workspace sibling del orquestador:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
agentflow init-workspace C:/code/mi-proyecto
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
El installer preguntará si quieres generar el workspace en **EN** o **ES**. También puedes pasarlo directo:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
agentflow init-workspace C:/code/mi-proyecto --lang en
|
|
113
|
+
agentflow init-workspace C:/code/mi-proyecto --lang es
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Eso debería dejar algo así:
|
|
117
|
+
|
|
118
|
+
- proyecto real:
|
|
119
|
+
- `C:/code/mi-proyecto`
|
|
120
|
+
- workspace del orquestador:
|
|
121
|
+
- `C:/code/orchestrator-mi-proyecto`
|
|
122
|
+
|
|
123
|
+
### Alternativa sin instalación global
|
|
124
|
+
|
|
125
|
+
Si no quieres instalarlo globalmente, puedes usar `npx`:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
npx @liriraid/agentflow-ai-ai init-workspace C:/code/mi-proyecto --lang es
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Ese comando crea un workspace reusable del orquestador junto al proyecto real.
|
|
132
|
+
|
|
133
|
+
## Instalación desde el repo fuente
|
|
134
|
+
|
|
135
|
+
Si vas a modificar el orquestador mismo:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
git clone https://github.com/LiriRaid/agentflow.git
|
|
139
|
+
cd agentflow
|
|
140
|
+
npm install
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Este repo local es la **fuente reusable** que tú modificas para agregar herramientas, cambiar el flujo o extender el sistema.
|
|
144
|
+
|
|
145
|
+
## Qué instala el installer
|
|
146
|
+
|
|
147
|
+
Cuando usas `init-workspace`, el installer crea una base de trabajo con:
|
|
148
|
+
|
|
149
|
+
- `ORCHESTRATOR.md`
|
|
150
|
+
- `CLAUDE.md`
|
|
151
|
+
- `ENGRAM.md`
|
|
152
|
+
- `AGENT-CONFIG.md`
|
|
153
|
+
- `orchestrator.config.json`
|
|
154
|
+
- `QUEUE.md`
|
|
155
|
+
- `agents/`
|
|
156
|
+
- `openspec/`
|
|
157
|
+
- `.claude/`
|
|
158
|
+
- `.codex/`
|
|
159
|
+
- `.opencode/`
|
|
160
|
+
|
|
161
|
+
También crea carpetas runtime:
|
|
162
|
+
|
|
163
|
+
- `logs/`
|
|
164
|
+
- `handoffs/`
|
|
165
|
+
- `progress/`
|
|
166
|
+
- `briefs/`
|
|
167
|
+
|
|
168
|
+
## Flujo operativo esperado
|
|
169
|
+
|
|
170
|
+
### 1. Instalar el CLI globalmente
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
npm i -g @liriraid/agentflow-ai
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### 2. Crear el workspace del orquestador
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
agentflow init-workspace C:/code/mi-proyecto --lang es
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Si tu proyecto vive, por ejemplo, en:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
C:/code/mi-proyecto
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
el installer debería crear:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
C:/code/orchestrator-mi-proyecto
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### 3. Ajustar el config
|
|
195
|
+
|
|
196
|
+
Edita:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
orchestrator.config.json
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
para apuntar a los repos reales.
|
|
203
|
+
|
|
204
|
+
### 4. Arrancar la TUI
|
|
205
|
+
|
|
206
|
+
Modo Ink:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
agentflow ink --paused
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
o desde el repo fuente:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
npm run start:ink:paused
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### 5. Abrir Claude Code en el workspace del orquestador
|
|
219
|
+
|
|
220
|
+
Y darle el prompt de arranque:
|
|
221
|
+
|
|
222
|
+
```text
|
|
223
|
+
Lee ORCHESTRATOR.md y arranca.
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
o mejor:
|
|
227
|
+
|
|
228
|
+
```text
|
|
229
|
+
Lee ORCHESTRATOR.md, asume el rol de orquestador y arranca.
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### 6. Pedir una tarea
|
|
233
|
+
|
|
234
|
+
Ejemplos:
|
|
235
|
+
|
|
236
|
+
- `explora este proyecto`
|
|
237
|
+
- `analiza estos archivos`
|
|
238
|
+
- `crea tareas para implementar este cambio`
|
|
239
|
+
- `abre un change y prepara proposal, spec y tasks`
|
|
240
|
+
|
|
241
|
+
Claude usará:
|
|
242
|
+
|
|
243
|
+
- `CLAUDE.md` como routing local
|
|
244
|
+
- `.claude/skills/` como skills del proyecto
|
|
245
|
+
- `ENGRAM.md` para continuidad
|
|
246
|
+
- `openspec/` para cambios grandes
|
|
247
|
+
- `QUEUE.md` para ejecución viva en el motor
|
|
248
|
+
|
|
249
|
+
## Modelo de seguridad recomendado
|
|
250
|
+
|
|
251
|
+
Por defecto, el orquestador no debería correr en modo bypass total.
|
|
252
|
+
|
|
253
|
+
Recomendación:
|
|
254
|
+
|
|
255
|
+
- **Claude** como orquestador y autoridad final de revisión
|
|
256
|
+
- **Claude-Worker** (`Backend` / `Frontend`) para tomar una tarea de código en paralelo cuando haya trabajo independiente suficiente o como fallback
|
|
257
|
+
- **OpenCode** para lectura, exploración, contexto e implementación cuando se le asigne
|
|
258
|
+
- **Codex** para implementación estructurada y apoyo técnico, incluyendo apoyo frontend acotado cuando la TASK lo indique
|
|
259
|
+
- cambios sensibles o resultados dudosos deben volver a **Claude** para validación
|
|
260
|
+
|
|
261
|
+
La idea es que los agentes trabajen, pero no autoacepten todo ciegamente. La sesión Claude-Orquestador coordina y revisa; los Claude-Workers ejecutan tareas asignadas por cola. El usuario conserva la aprobación final, con Claude como filtro principal de calidad.
|
|
262
|
+
|
|
263
|
+
## UIs disponibles
|
|
264
|
+
|
|
265
|
+
### Ink
|
|
266
|
+
|
|
267
|
+
Comandos:
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
agentflow ink
|
|
271
|
+
agentflow ink --paused
|
|
272
|
+
agentflow ink --yolo
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
o desde el repo fuente:
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
npm run start:ink
|
|
279
|
+
npm run start:ink:paused
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
Estado actual:
|
|
283
|
+
|
|
284
|
+
- conectada al motor real
|
|
285
|
+
- muestra `Pausado` / `Ejecutando`
|
|
286
|
+
- muestra tiempo activo
|
|
287
|
+
- usa controles reales:
|
|
288
|
+
- `S`
|
|
289
|
+
- `P`
|
|
290
|
+
- `R`
|
|
291
|
+
- `Q`
|
|
292
|
+
|
|
293
|
+
### Modo con bypass explícito
|
|
294
|
+
|
|
295
|
+
Si en una sesión concreta quieres permitir modo agresivo para entornos de confianza, puedes iniciar el motor con:
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
agentflow ink --yolo
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
o:
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
node orchestrator.js --yolo
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Ese modo no es el default y debe usarse solo cuando realmente lo decidas.
|
|
308
|
+
|
|
309
|
+
### Blessed
|
|
310
|
+
|
|
311
|
+
Sigue existiendo como runtime base histórico:
|
|
312
|
+
|
|
313
|
+
```bash
|
|
314
|
+
node orchestrator.js
|
|
315
|
+
node orchestrator.js --paused
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
## Skills locales del proyecto
|
|
319
|
+
|
|
320
|
+
Las skills viven en:
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
.claude/skills/
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
Actualmente incluye:
|
|
327
|
+
|
|
328
|
+
- `orchestrator-init`
|
|
329
|
+
- `orchestrator-explore`
|
|
330
|
+
- `orchestrator-propose`
|
|
331
|
+
- `orchestrator-spec`
|
|
332
|
+
- `orchestrator-design`
|
|
333
|
+
- `orchestrator-tasks`
|
|
334
|
+
- `orchestrator-queue-planning`
|
|
335
|
+
- `orchestrator-apply`
|
|
336
|
+
- `orchestrator-verify`
|
|
337
|
+
- `orchestrator-archive`
|
|
338
|
+
- `orchestrator-memory`
|
|
339
|
+
- `orchestrator-openspec`
|
|
340
|
+
|
|
341
|
+
Estas skills son **locales del repo** y deben priorizarse sobre cualquier skill global instalada en el home del usuario.
|
|
342
|
+
|
|
343
|
+
## Registry local
|
|
344
|
+
|
|
345
|
+
Se regenera con:
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
npm run skills:registry
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
Salida:
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
.atl/skill-registry.md
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
Este registry sirve como catálogo local del proyecto y como fuente de resolución para Claude.
|
|
358
|
+
|
|
359
|
+
## Memoria persistente con Engram
|
|
360
|
+
|
|
361
|
+
La convención local vive en:
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
ENGRAM.md
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
Engram se usa para:
|
|
368
|
+
|
|
369
|
+
- decisiones importantes
|
|
370
|
+
- hallazgos no obvios
|
|
371
|
+
- bugs y causas raíz
|
|
372
|
+
- continuidad entre sesiones
|
|
373
|
+
- resúmenes de sesión
|
|
374
|
+
|
|
375
|
+
Engram no reemplaza:
|
|
376
|
+
|
|
377
|
+
- `QUEUE.md`
|
|
378
|
+
- la TUI
|
|
379
|
+
- `ORCHESTRATOR.md`
|
|
380
|
+
- handoffs
|
|
381
|
+
|
|
382
|
+
Los complementa.
|
|
383
|
+
|
|
384
|
+
## OpenSpec
|
|
385
|
+
|
|
386
|
+
OpenSpec vive en:
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
openspec/
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
Estructura:
|
|
393
|
+
|
|
394
|
+
```bash
|
|
395
|
+
openspec/
|
|
396
|
+
├── changes/
|
|
397
|
+
├── FLOW.md
|
|
398
|
+
├── specs/
|
|
399
|
+
└── templates/
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
Crear un change:
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
agentflow openspec:new -- add-mi-cambio
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
o desde el repo fuente:
|
|
409
|
+
|
|
410
|
+
```bash
|
|
411
|
+
npm run openspec:new -- add-mi-cambio
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
Artefactos del change:
|
|
415
|
+
|
|
416
|
+
- `proposal.md`
|
|
417
|
+
- `specs/spec.md`
|
|
418
|
+
- `design.md`
|
|
419
|
+
- `tasks.md`
|
|
420
|
+
- `verify-report.md`
|
|
421
|
+
- `archive-report.md`
|
|
422
|
+
- `.openspec.yaml`
|
|
423
|
+
|
|
424
|
+
El flujo canónico está en:
|
|
425
|
+
|
|
426
|
+
```bash
|
|
427
|
+
openspec/FLOW.md
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
## Configuración por agente
|
|
431
|
+
|
|
432
|
+
La configuración ahora se divide en dos capas:
|
|
433
|
+
|
|
434
|
+
### `agents`
|
|
435
|
+
|
|
436
|
+
Instancias operativas visibles para el motor.
|
|
437
|
+
|
|
438
|
+
Ejemplo:
|
|
439
|
+
|
|
440
|
+
- `Backend`
|
|
441
|
+
- `Frontend`
|
|
442
|
+
- `Codex`
|
|
443
|
+
- `OpenCode`
|
|
444
|
+
|
|
445
|
+
### `agentProfiles`
|
|
446
|
+
|
|
447
|
+
Configuración reusable por familia de agente.
|
|
448
|
+
|
|
449
|
+
Ejemplo actual:
|
|
450
|
+
|
|
451
|
+
- `claude`
|
|
452
|
+
- `codex`
|
|
453
|
+
- `opencode`
|
|
454
|
+
- `gemini`
|
|
455
|
+
- `cursor`
|
|
456
|
+
- `abacusai`
|
|
457
|
+
|
|
458
|
+
Esto permite:
|
|
459
|
+
|
|
460
|
+
- usar 1 agente
|
|
461
|
+
- usar 3 agentes
|
|
462
|
+
- dejar más perfiles preparados para el futuro
|
|
463
|
+
|
|
464
|
+
### Inicializar carpetas locales por agente
|
|
465
|
+
|
|
466
|
+
```bash
|
|
467
|
+
agentflow agent-config:init
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
o:
|
|
471
|
+
|
|
472
|
+
```bash
|
|
473
|
+
npm run agent-config:init
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
Eso asegura:
|
|
477
|
+
|
|
478
|
+
- `.claude/`
|
|
479
|
+
- `.codex/`
|
|
480
|
+
- `.opencode/`
|
|
481
|
+
|
|
482
|
+
## Config ejemplo
|
|
483
|
+
|
|
484
|
+
```json
|
|
485
|
+
{
|
|
486
|
+
"projectName": "Mi Proyecto",
|
|
487
|
+
"maxConcurrent": 5,
|
|
488
|
+
"pollIntervalSeconds": 30,
|
|
489
|
+
"taskTimeoutMinutes": 30,
|
|
490
|
+
"repos": {
|
|
491
|
+
"backend": "C:/code/mi-backend",
|
|
492
|
+
"frontend": "C:/code/mi-frontend"
|
|
493
|
+
},
|
|
494
|
+
"agentProfiles": {
|
|
495
|
+
"claude": {
|
|
496
|
+
"enabled": true,
|
|
497
|
+
"localConfigDir": ".claude",
|
|
498
|
+
"skillsDir": ".claude/skills",
|
|
499
|
+
"primary": true,
|
|
500
|
+
"useForOrchestration": true
|
|
501
|
+
},
|
|
502
|
+
"codex": {
|
|
503
|
+
"enabled": true,
|
|
504
|
+
"localConfigDir": ".codex"
|
|
505
|
+
},
|
|
506
|
+
"opencode": {
|
|
507
|
+
"enabled": true,
|
|
508
|
+
"localConfigDir": ".opencode"
|
|
509
|
+
}
|
|
510
|
+
},
|
|
511
|
+
"agents": {
|
|
512
|
+
"Backend": {
|
|
513
|
+
"cli": "claude",
|
|
514
|
+
"profile": "claude",
|
|
515
|
+
"defaultRepo": "backend",
|
|
516
|
+
"model": "sonnet",
|
|
517
|
+
"instructionsFile": "agents/BACKEND.md"
|
|
518
|
+
},
|
|
519
|
+
"Codex": {
|
|
520
|
+
"cli": "codex",
|
|
521
|
+
"profile": "codex",
|
|
522
|
+
"defaultRepo": "backend",
|
|
523
|
+
"model": "gpt-5.5",
|
|
524
|
+
"instructionsFile": "agents/CODEX.md"
|
|
525
|
+
},
|
|
526
|
+
"OpenCode": {
|
|
527
|
+
"cli": "opencode",
|
|
528
|
+
"profile": "opencode",
|
|
529
|
+
"defaultRepo": "backend",
|
|
530
|
+
"model": "opencode/glm-5-free",
|
|
531
|
+
"instructionsFile": "agents/OPENCODE.md"
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
## Controles de la TUI
|
|
538
|
+
|
|
539
|
+
| Tecla | Acción |
|
|
540
|
+
| ----- | --------------------- |
|
|
541
|
+
| `S` | iniciar / reanudar |
|
|
542
|
+
| `P` | pausar |
|
|
543
|
+
| `R` | recargar `QUEUE.md` |
|
|
544
|
+
| `Q` | salir y matar agentes |
|
|
545
|
+
|
|
546
|
+
## Lo que este repo ya soporta
|
|
547
|
+
|
|
548
|
+
- cola operativa con `QUEUE.md`
|
|
549
|
+
- TUI conectada al motor real
|
|
550
|
+
- skills locales del proyecto
|
|
551
|
+
- routing local con `CLAUDE.md`
|
|
552
|
+
- memoria persistente con Engram
|
|
553
|
+
- OpenSpec para cambios grandes
|
|
554
|
+
- configuración reusable por agente
|
|
555
|
+
- installer / ecosystem configurator base
|
|
556
|
+
|
|
557
|
+
## Lo que todavía sigue evolucionando
|
|
558
|
+
|
|
559
|
+
- publicación definitiva en npm
|
|
560
|
+
- pulido del installer
|
|
561
|
+
- integración más profunda entre OpenSpec, routing y cola
|
|
562
|
+
- futuras skills SDD más completas si hacen falta
|
|
563
|
+
|
|
564
|
+
## Licencia
|
|
565
|
+
|
|
566
|
+
MIT
|
|
567
|
+
|
|
568
|
+
El texto completo está en `LICENSE`.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Abacus Agent
|
|
2
|
+
|
|
3
|
+
## Rol
|
|
4
|
+
Agente Abacus AI (`abacusai -p`). Ideal para tareas de alcance ajustado; recibe el prompt por pipe desde un archivo.
|
|
5
|
+
|
|
6
|
+
## Alcance
|
|
7
|
+
- Auditorías enfocadas y fixes puntuales
|
|
8
|
+
- Tareas pequeñas y bien definidas, con criterios de aceptación claros
|
|
9
|
+
|
|
10
|
+
## Reglas
|
|
11
|
+
1. Nunca hagas `git commit` ni `git push`
|
|
12
|
+
2. El control de git lo maneja manualmente el usuario
|
|
13
|
+
3. Actualiza `progress/PROGRESS-Abacus.md` al terminar
|
|
14
|
+
|
|
15
|
+
## Reporte de finalización (OBLIGATORIO)
|
|
16
|
+
```
|
|
17
|
+
TASK_REPORT
|
|
18
|
+
status: completed | failed | blocked
|
|
19
|
+
files_modified: list or "none"
|
|
20
|
+
files_created: list or "none"
|
|
21
|
+
files_deleted: list or "none"
|
|
22
|
+
summary: 1-3 sentences
|
|
23
|
+
issues: problems or "none"
|
|
24
|
+
TASK_REPORT_END
|
|
25
|
+
```
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Backend Agent
|
|
2
|
+
|
|
3
|
+
## Rol
|
|
4
|
+
Desarrollador backend. Trabajas exclusivamente en el repo de API/servidor definido como tu `defaultRepo`.
|
|
5
|
+
|
|
6
|
+
## Alcance
|
|
7
|
+
- Código del lado del servidor: controllers, models, migrations, services y tests
|
|
8
|
+
- Endpoints de API y lógica de negocio
|
|
9
|
+
- Esquemas o estructuras de base de datos
|
|
10
|
+
- Autenticación y autorización
|
|
11
|
+
|
|
12
|
+
## No debes
|
|
13
|
+
- Tocar código de frontend
|
|
14
|
+
- Hacer commit o push al remoto
|
|
15
|
+
- Tomar decisiones de control de git; eso lo hace el usuario manualmente
|
|
16
|
+
|
|
17
|
+
## Reporte de finalización (OBLIGATORIO)
|
|
18
|
+
Tu último mensaje DEBE incluir:
|
|
19
|
+
```
|
|
20
|
+
TASK_REPORT
|
|
21
|
+
status: completed | failed | blocked
|
|
22
|
+
files_modified: list or "none"
|
|
23
|
+
files_created: list or "none"
|
|
24
|
+
files_deleted: list or "none"
|
|
25
|
+
summary: 1-3 sentences
|
|
26
|
+
issues: problems or "none"
|
|
27
|
+
TASK_REPORT_END
|
|
28
|
+
```
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Codex Agent
|
|
2
|
+
|
|
3
|
+
## Rol
|
|
4
|
+
Agente de código de propósito general (OpenAI Codex). Es bueno para documentación, migraciones y tareas estructuradas con especificaciones claras. Puede trabajar tanto en backend como en frontend si la TASK lo indica.
|
|
5
|
+
|
|
6
|
+
## Alcance
|
|
7
|
+
Lo que indique el brief de la tarea. Toma tu `defaultRepo` como directorio de trabajo, salvo que el campo `repo` de la tarea indique otra cosa.
|
|
8
|
+
|
|
9
|
+
## Frontend
|
|
10
|
+
|
|
11
|
+
El frontend lo lidera preferentemente el agente `Frontend` de Claude. Codex puede trabajar en frontend como apoyo cuando la tarea sea acotada, clara y verificable, por ejemplo:
|
|
12
|
+
|
|
13
|
+
- tests
|
|
14
|
+
- documentación técnica
|
|
15
|
+
- ajustes mecánicos
|
|
16
|
+
- refactors pequeños
|
|
17
|
+
- fixes puntuales con archivos bien delimitados
|
|
18
|
+
|
|
19
|
+
Para cambios amplios de UI/UX, arquitectura de componentes, flujos interactivos o decisiones visuales, prefiere asignar la TASK principal a `Frontend` y deja Codex solo como apoyo.
|
|
20
|
+
|
|
21
|
+
## Reglas
|
|
22
|
+
1. Nunca hagas `git commit` ni `git push`
|
|
23
|
+
2. El control de git lo maneja manualmente el usuario
|
|
24
|
+
3. Actualiza el archivo de progreso en `progress/PROGRESS-Codex.md` al terminar
|
|
25
|
+
4. Si trabajas en frontend, mantén el alcance estrecho y no rediseñes UI sin que la TASK lo pida explícitamente
|
|
26
|
+
|
|
27
|
+
## Reporte de finalización (OBLIGATORIO)
|
|
28
|
+
```
|
|
29
|
+
TASK_REPORT
|
|
30
|
+
status: completed | failed | blocked
|
|
31
|
+
files_modified: list or "none"
|
|
32
|
+
files_created: list or "none"
|
|
33
|
+
files_deleted: list or "none"
|
|
34
|
+
summary: 1-3 sentences
|
|
35
|
+
issues: problems or "none"
|
|
36
|
+
TASK_REPORT_END
|
|
37
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Cursor Agent
|
|
2
|
+
|
|
3
|
+
## Rol
|
|
4
|
+
Agente Cursor CLI (`agent`). Fuerte para tareas mecánicas y limpiezas de alto volumen.
|
|
5
|
+
|
|
6
|
+
## Alcance
|
|
7
|
+
- Migraciones por find-and-replace: frameworks CSS, sintaxis SQL, etc.
|
|
8
|
+
- Transformaciones repetitivas en muchos archivos
|
|
9
|
+
- Formatting y fixes de lint
|
|
10
|
+
|
|
11
|
+
## Reglas
|
|
12
|
+
1. Nunca hagas `git commit` ni `git push`
|
|
13
|
+
2. El control de git lo maneja manualmente el usuario
|
|
14
|
+
3. Verifica con `grep` o `rg` que el conteo de residuos llegue a 0 para el patrón que estás eliminando
|
|
15
|
+
4. Actualiza `progress/PROGRESS-Cursor.md` al terminar
|
|
16
|
+
|
|
17
|
+
## Reporte de finalización (OBLIGATORIO)
|
|
18
|
+
```
|
|
19
|
+
TASK_REPORT
|
|
20
|
+
status: completed | failed | blocked
|
|
21
|
+
files_modified: list or "none"
|
|
22
|
+
files_created: list or "none"
|
|
23
|
+
files_deleted: list or "none"
|
|
24
|
+
summary: 1-3 sentences
|
|
25
|
+
issues: problems or "none"
|
|
26
|
+
TASK_REPORT_END
|
|
27
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Frontend Agent
|
|
2
|
+
|
|
3
|
+
## Rol
|
|
4
|
+
Desarrollador frontend. Trabajas exclusivamente en el repo de UI/cliente definido como tu `defaultRepo`.
|
|
5
|
+
|
|
6
|
+
## Alcance
|
|
7
|
+
- Componentes de UI, páginas, routing y estado
|
|
8
|
+
- Código del cliente/API y composables
|
|
9
|
+
- Styling: CSS, Tailwind, DaisyUI, etc.
|
|
10
|
+
- i18n, accesibilidad y comportamiento responsive
|
|
11
|
+
|
|
12
|
+
## No debes
|
|
13
|
+
- Tocar código backend
|
|
14
|
+
- Reformatear archivos no relacionados; mantén diffs mínimos y acotados a la tarea
|
|
15
|
+
- Hacer commit o push al remoto
|
|
16
|
+
- Tomar decisiones de control de git; eso lo hace el usuario manualmente
|
|
17
|
+
|
|
18
|
+
## Reporte de finalización (OBLIGATORIO)
|
|
19
|
+
Tu último mensaje DEBE incluir:
|
|
20
|
+
```
|
|
21
|
+
TASK_REPORT
|
|
22
|
+
status: completed | failed | blocked
|
|
23
|
+
files_modified: list or "none"
|
|
24
|
+
files_created: list or "none"
|
|
25
|
+
files_deleted: list or "none"
|
|
26
|
+
summary: 1-3 sentences
|
|
27
|
+
issues: problems or "none"
|
|
28
|
+
TASK_REPORT_END
|
|
29
|
+
```
|