@thatix.io/context-first-agents-cli 0.1.1 → 0.2.1
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/README.md +25 -12
- package/dist/commands/create-orchestrator.js +4 -1
- package/dist/commands/doctor.js +21 -5
- package/dist/commands/init.js +3 -1
- package/dist/templates/commands/en/engineer/plan.md +301 -0
- package/dist/templates/commands/en/engineer/pr.md +194 -0
- package/dist/templates/commands/en/engineer/pre-pr.md +325 -0
- package/dist/templates/commands/en/engineer/start.md +285 -0
- package/dist/templates/commands/en/engineer/work.md +256 -0
- package/dist/templates/commands/en/products/check.md +237 -0
- package/dist/templates/commands/en/products/collect.md +170 -0
- package/dist/templates/commands/en/products/refine.md +231 -0
- package/dist/templates/commands/en/products/spec.md +273 -0
- package/dist/templates/commands/en/quality/metrics.md +266 -0
- package/dist/templates/commands/en/quality/observe.md +172 -0
- package/dist/templates/commands/en/warm-up.md +83 -0
- package/dist/templates/commands/es/agents/CONTEXT-CONTRACT.md +63 -0
- package/dist/templates/commands/es/agents/implementer.md +27 -0
- package/dist/templates/commands/es/agents/integrator.md +24 -0
- package/dist/templates/commands/es/agents/reviewer.md +31 -0
- package/dist/templates/commands/es/agents/tester.md +22 -0
- package/dist/templates/commands/es/engineer/plan.md +335 -0
- package/dist/templates/commands/es/engineer/pr.md +228 -0
- package/dist/templates/commands/es/engineer/pre-pr.md +359 -0
- package/dist/templates/commands/es/engineer/start.md +318 -0
- package/dist/templates/commands/es/engineer/work.md +290 -0
- package/dist/templates/commands/es/orchestrate.md +125 -0
- package/dist/templates/commands/es/products/check.md +271 -0
- package/dist/templates/commands/es/products/collect.md +218 -0
- package/dist/templates/commands/es/products/refine.md +265 -0
- package/dist/templates/commands/es/products/spec.md +306 -0
- package/dist/templates/commands/es/quality/metrics.md +300 -0
- package/dist/templates/commands/es/quality/observe.md +205 -0
- package/dist/templates/commands/es/warm-up.md +83 -0
- package/dist/templates/commands/pt-BR/engineer/plan.md +335 -0
- package/dist/templates/commands/pt-BR/engineer/pr.md +228 -0
- package/dist/templates/commands/pt-BR/engineer/pre-pr.md +359 -0
- package/dist/templates/commands/pt-BR/engineer/start.md +319 -0
- package/dist/templates/commands/pt-BR/engineer/work.md +290 -0
- package/dist/templates/commands/pt-BR/products/check.md +271 -0
- package/dist/templates/commands/pt-BR/products/collect.md +219 -0
- package/dist/templates/commands/pt-BR/products/refine.md +265 -0
- package/dist/templates/commands/pt-BR/products/spec.md +307 -0
- package/dist/templates/commands/pt-BR/quality/metrics.md +300 -0
- package/dist/templates/commands/pt-BR/quality/observe.md +206 -0
- package/dist/templates/commands/pt-BR/warm-up.md +83 -0
- package/package.json +1 -1
- package/templates/commands/en/engineer/plan.md +301 -0
- package/templates/commands/en/engineer/pr.md +194 -0
- package/templates/commands/en/engineer/pre-pr.md +325 -0
- package/templates/commands/en/engineer/start.md +285 -0
- package/templates/commands/en/engineer/work.md +256 -0
- package/templates/commands/en/products/check.md +237 -0
- package/templates/commands/en/products/collect.md +170 -0
- package/templates/commands/en/products/refine.md +231 -0
- package/templates/commands/en/products/spec.md +273 -0
- package/templates/commands/en/quality/metrics.md +266 -0
- package/templates/commands/en/quality/observe.md +172 -0
- package/templates/commands/en/warm-up.md +83 -0
- package/templates/commands/es/agents/CONTEXT-CONTRACT.md +63 -0
- package/templates/commands/es/agents/implementer.md +27 -0
- package/templates/commands/es/agents/integrator.md +24 -0
- package/templates/commands/es/agents/reviewer.md +31 -0
- package/templates/commands/es/agents/tester.md +22 -0
- package/templates/commands/es/engineer/plan.md +335 -0
- package/templates/commands/es/engineer/pr.md +228 -0
- package/templates/commands/es/engineer/pre-pr.md +359 -0
- package/templates/commands/es/engineer/start.md +318 -0
- package/templates/commands/es/engineer/work.md +290 -0
- package/templates/commands/es/orchestrate.md +125 -0
- package/templates/commands/es/products/check.md +271 -0
- package/templates/commands/es/products/collect.md +218 -0
- package/templates/commands/es/products/refine.md +265 -0
- package/templates/commands/es/products/spec.md +306 -0
- package/templates/commands/es/quality/metrics.md +300 -0
- package/templates/commands/es/quality/observe.md +205 -0
- package/templates/commands/es/warm-up.md +83 -0
- package/templates/commands/pt-BR/engineer/plan.md +335 -0
- package/templates/commands/pt-BR/engineer/pr.md +228 -0
- package/templates/commands/pt-BR/engineer/pre-pr.md +359 -0
- package/templates/commands/pt-BR/engineer/start.md +319 -0
- package/templates/commands/pt-BR/engineer/work.md +290 -0
- package/templates/commands/pt-BR/products/check.md +271 -0
- package/templates/commands/pt-BR/products/collect.md +219 -0
- package/templates/commands/pt-BR/products/refine.md +265 -0
- package/templates/commands/pt-BR/products/spec.md +307 -0
- package/templates/commands/pt-BR/quality/metrics.md +300 -0
- package/templates/commands/pt-BR/quality/observe.md +206 -0
- package/templates/commands/pt-BR/warm-up.md +83 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
# Ejecución del Trabajo
|
|
2
|
+
|
|
3
|
+
Este comando ejecuta una unidad de trabajo en el workspace actual, implementando parte del plan técnico.
|
|
4
|
+
|
|
5
|
+
## 📋 Requisitos Previos
|
|
6
|
+
|
|
7
|
+
Antes de ejecutar, asegúrese de que:
|
|
8
|
+
- Ha ejecutado `/start` y `/plan` para obtener el plan técnico
|
|
9
|
+
- Está en el workspace correcto: `<orchestrator>/.sessions/<ISSUE-ID>/`
|
|
10
|
+
- Tiene disponibles los archivos `.sessions/<ISSUE-ID>/`:
|
|
11
|
+
- `context.md` (inmutable)
|
|
12
|
+
- `architecture.md` (inmutable)
|
|
13
|
+
- `plan.md` (mutable)
|
|
14
|
+
|
|
15
|
+
## 📋 Configuración del Proyecto
|
|
16
|
+
|
|
17
|
+
**⚠️ IMPORTANTE: ¡Siempre lea los archivos de configuración del proyecto ANTES de ejecutar este comando!**
|
|
18
|
+
|
|
19
|
+
### Archivos Obligatorios
|
|
20
|
+
|
|
21
|
+
1. **`context-manifest.json`** (raíz del orchestrator)
|
|
22
|
+
- Lista de repositorios del proyecto
|
|
23
|
+
- Roles de cada repositorio (metaspecs, application, etc.)
|
|
24
|
+
- URLs y dependencias entre repositorios
|
|
25
|
+
|
|
26
|
+
2. **`ai.properties.md`** (raíz del orchestrator)
|
|
27
|
+
- Configuraciones del proyecto (`project_name`, `base_path`)
|
|
28
|
+
- Sistema de gestión de tareas (`task_management_system`)
|
|
29
|
+
- Credenciales y configuraciones específicas
|
|
30
|
+
|
|
31
|
+
### Cómo Leer
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# 1. Leer context-manifest.json
|
|
35
|
+
cat context-manifest.json
|
|
36
|
+
|
|
37
|
+
# 2. Leer ai.properties.md
|
|
38
|
+
cat ai.properties.md
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Información Esencial
|
|
42
|
+
|
|
43
|
+
Después de leer los archivos, tendrá:
|
|
44
|
+
- ✅ Lista completa de repositorios del proyecto
|
|
45
|
+
- ✅ Ubicación del repositorio de metaspecs
|
|
46
|
+
- ✅ Base path para localizar repositorios
|
|
47
|
+
- ✅ Sistema de gestión de tareas configurado
|
|
48
|
+
- ✅ Configuraciones específicas del proyecto
|
|
49
|
+
|
|
50
|
+
**🛑 NO continúe sin leer estos archivos!** ¡Contienen información crítica para la correcta ejecución del comando!
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
## 📍 IMPORTANTE: Entienda la Estructura
|
|
54
|
+
|
|
55
|
+
**Workspace** (donde trabaja):
|
|
56
|
+
```
|
|
57
|
+
<orchestrator>/.sessions/<ISSUE-ID>/
|
|
58
|
+
├── repo-1/ # worktree con branch feature/<ISSUE-ID>
|
|
59
|
+
├── repo-2/ # worktree con branch feature/<ISSUE-ID>
|
|
60
|
+
├── context.md # contexto (inmutable)
|
|
61
|
+
├── architecture.md # arquitectura (inmutable)
|
|
62
|
+
└── plan.md # plan (mutable)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Repositorios principales** (NO tocar):
|
|
66
|
+
```
|
|
67
|
+
{base_path}/repo-1/ # repo principal (branch main/master)
|
|
68
|
+
{base_path}/repo-2/ # repo principal (branch main/master)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**REGLA DE ORO**:
|
|
72
|
+
- ✅ Trabaje SOLO dentro de `<orchestrator>/.sessions/<ISSUE-ID>/`
|
|
73
|
+
- ✅ Haga commits en los worktrees dentro del workspace
|
|
74
|
+
- ❌ NUNCA haga checkout en los repositorios principales
|
|
75
|
+
- ❌ NUNCA navegue a `{base_path}/{repo-id}/`
|
|
76
|
+
|
|
77
|
+
## 🛑 CRÍTICO: DÓNDE CREAR CÓDIGO
|
|
78
|
+
|
|
79
|
+
**⚠️ ATENCIÓN: TODO CÓDIGO DEBE SER CREADO DENTRO DEL WORKTREE DEL REPOSITORIO!**
|
|
80
|
+
|
|
81
|
+
**✅ CORRECTO** - Crear código dentro del worktree:
|
|
82
|
+
```
|
|
83
|
+
<orchestrator>/.sessions/<ISSUE-ID>/<repo-name>/src/file.ts ✅
|
|
84
|
+
<orchestrator>/.sessions/<ISSUE-ID>/<repo-name>/tests/test.ts ✅
|
|
85
|
+
<orchestrator>/.sessions/<ISSUE-ID>/<repo-name>/package.json ✅
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**❌ INCORRECTO** - NUNCA crear código directamente en .sessions:
|
|
89
|
+
```
|
|
90
|
+
<orchestrator>/.sessions/src/file.ts ❌
|
|
91
|
+
<orchestrator>/.sessions/<ISSUE-ID>/src/file.ts ❌
|
|
92
|
+
<orchestrator>/.sessions/<ISSUE-ID>/file.ts ❌
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**REGLA ABSOLUTA**:
|
|
96
|
+
- 🛑 **TODO archivo de código** (`.ts`, `.js`, `.py`, `.java`, etc.) **DEBE estar dentro de** `<orchestrator>/.sessions/<ISSUE-ID>/<repo-name>/`
|
|
97
|
+
- 🛑 **NUNCA cree código** directamente en `<orchestrator>/.sessions/` o `<orchestrator>/.sessions/<ISSUE-ID>/`
|
|
98
|
+
- ✅ **Único lugar válido**: Dentro del worktree del repositorio específico
|
|
99
|
+
|
|
100
|
+
## ⚠️ IMPORTANTE: Archivos Inmutables
|
|
101
|
+
|
|
102
|
+
**Este comando debe LEER pero NO MODIFICAR:**
|
|
103
|
+
- ✅ **LEER** `.sessions/<ISSUE-ID>/context.md` (inmutable)
|
|
104
|
+
- ✅ **LEER** `.sessions/<ISSUE-ID>/architecture.md` (inmutable)
|
|
105
|
+
- ✅ **ACTUALIZAR** `.sessions/<ISSUE-ID>/plan.md` (marcar progreso)
|
|
106
|
+
- ✅ **IMPLEMENTAR** código **DENTRO DEL WORKTREE**: `.sessions/<ISSUE-ID>/<repo-name>/`
|
|
107
|
+
- ✅ **HACER COMMITS** en los worktrees: `.sessions/<ISSUE-ID>/<repo-name>/`
|
|
108
|
+
- ❌ **NO modificar `context.md` o `architecture.md`**
|
|
109
|
+
- ❌ **NO hacer checkout de branches en los repositorios principales (fuera del workspace)**
|
|
110
|
+
- 🛑 **NUNCA crear código en `.sessions/` o `.sessions/<ISSUE-ID>/` directamente**
|
|
111
|
+
|
|
112
|
+
## 📚 Cargar MetaSpecs
|
|
113
|
+
|
|
114
|
+
**Localizar MetaSpecs automáticamente**:
|
|
115
|
+
1. Lea `context-manifest.json` del orchestrator
|
|
116
|
+
2. Encuentre el repositorio con `"role": "metaspecs"`
|
|
117
|
+
3. Lea `ai.properties.md` para obtener el `base_path`
|
|
118
|
+
4. El metaspecs está en: `{base_path}/{metaspecs-repo-id}/`
|
|
119
|
+
5. Lea los archivos `index.md` relevantes durante la implementación para:
|
|
120
|
+
- Seguir patrones de código
|
|
121
|
+
- Respetar arquitectura definida
|
|
122
|
+
- Usar convenciones correctas
|
|
123
|
+
|
|
124
|
+
## 🎯 Objetivo
|
|
125
|
+
|
|
126
|
+
Implementar una unidad de trabajo específica del plan, que puede involucrar:
|
|
127
|
+
- Crear nuevos archivos/componentes
|
|
128
|
+
- Modificar archivos existentes
|
|
129
|
+
- Añadir pruebas
|
|
130
|
+
- Actualizar documentación
|
|
131
|
+
|
|
132
|
+
## 📝 Proceso de Trabajo
|
|
133
|
+
|
|
134
|
+
**⚠️ IMPORTANTE: CONTROL DE PROGRESO**
|
|
135
|
+
|
|
136
|
+
Este comando ejecuta el trabajo en **fases incrementales**. Después de completar cada **FASE PRINCIPAL** (ej: Fase 1 → Fase 2):
|
|
137
|
+
|
|
138
|
+
1. 🛑 **PARE** la ejecución
|
|
139
|
+
2. 📊 **PRESENTE** un resumen de lo realizado
|
|
140
|
+
3. ❓ **PREGUNTE** al desarrollador si desea:
|
|
141
|
+
- Revisar el código implementado
|
|
142
|
+
- Hacer ajustes antes de continuar
|
|
143
|
+
- Continuar a la siguiente fase
|
|
144
|
+
|
|
145
|
+
**IMPORTANTE**:
|
|
146
|
+
- ✅ **PAUSE** entre fases principales (Fase 1 → Fase 2 → Fase 3)
|
|
147
|
+
- ❌ **NO pause** entre subfases (Fase 1.1 → Fase 1.2 → Fase 1.3)
|
|
148
|
+
|
|
149
|
+
**NO implemente todo de una vez**. Trabaje fase principal por fase principal, esperando confirmación del desarrollador.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
### 1. Identificar Unidad de Trabajo
|
|
154
|
+
|
|
155
|
+
Basado en el plan técnico (`./.sessions/<ISSUE-ID>/plan.md`), identifique:
|
|
156
|
+
- Qué tarea específica se implementará ahora
|
|
157
|
+
- En cuál(es) repositorio(s) del workspace
|
|
158
|
+
- Qué archivos serán creados/modificados
|
|
159
|
+
- Dependencias con otras tareas
|
|
160
|
+
|
|
161
|
+
### 2. Implementación
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
**IMPORTANTE**: Trabaje SOLO dentro del workspace en `.sessions/<ISSUE-ID>/`
|
|
166
|
+
|
|
167
|
+
Para cada repositorio en el workspace:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# Navegue al worktree dentro del workspace
|
|
171
|
+
cd <orchestrator>/.sessions/<ISSUE-ID>/<repo-name>/
|
|
172
|
+
|
|
173
|
+
# Verifique que está en la rama correcta
|
|
174
|
+
git branch # debe mostrar * feature/<ISSUE-ID>
|
|
175
|
+
|
|
176
|
+
# Implemente el código aquí
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Ejecute la implementación siguiendo:
|
|
180
|
+
- **Patrones del proyecto**: Consulte guías de estilo y arquitectura
|
|
181
|
+
- **Stack aprobada**: Use solo tecnologías documentadas en metaspecs
|
|
182
|
+
- **Pruebas**: Implemente pruebas conforme a los patrones del proyecto
|
|
183
|
+
- **Documentación**: Actualice comentarios y docs cuando sea necesario
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
### 3. Validación Local
|
|
188
|
+
|
|
189
|
+
Antes de commitear:
|
|
190
|
+
- Ejecute pruebas unitarias/integración
|
|
191
|
+
- Verifique linting y formato
|
|
192
|
+
- Confirme que no rompió funcionalidades existentes
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
### 4. Commit
|
|
197
|
+
|
|
198
|
+
Para cada repositorio modificado **dentro del workspace**:
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
# Navegue al worktree dentro del workspace
|
|
202
|
+
cd <orchestrator>/.sessions/<ISSUE-ID>/<repo-name>/
|
|
203
|
+
|
|
204
|
+
# Añada los cambios
|
|
205
|
+
git add .
|
|
206
|
+
|
|
207
|
+
# Commit
|
|
208
|
+
git commit -m "tipo: descripción concisa
|
|
209
|
+
|
|
210
|
+
- Detalle 1
|
|
211
|
+
- Detalle 2
|
|
212
|
+
|
|
213
|
+
Refs: <ISSUE-ID>"
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**Tipos de commit**: `feat`, `fix`, `refactor`, `test`, `docs`, `chore`
|
|
217
|
+
|
|
218
|
+
**⚠️ PAUSA OBLIGATORIA**: Después de completar TODA la fase principal (identificación + implementación + validación + commit + actualización del plan.md), **PARE** y muestre al desarrollador:
|
|
219
|
+
- Resumen completo de la fase
|
|
220
|
+
- Archivos creados/modificados
|
|
221
|
+
- Commits realizados
|
|
222
|
+
- Pregunte si desea revisar o continuar a la siguiente fase
|
|
223
|
+
|
|
224
|
+
### 5. Actualización del Plan.md
|
|
225
|
+
|
|
226
|
+
**POR CADA tarea completada**, actualice `./.sessions/<ISSUE-ID>/plan.md`:
|
|
227
|
+
|
|
228
|
+
```markdown
|
|
229
|
+
#### 1.1 - [Nombre de la Tarea] [Completada ✅]
|
|
230
|
+
- [Detalle 1]
|
|
231
|
+
- [Detalle 2]
|
|
232
|
+
- [Detalle 3]
|
|
233
|
+
|
|
234
|
+
**Archivos**:
|
|
235
|
+
- `path/to/file1.ts` ✅
|
|
236
|
+
- `path/to/file2.vue` ✅
|
|
237
|
+
|
|
238
|
+
**Pruebas**:
|
|
239
|
+
- Unit test: [Descripción] ✅
|
|
240
|
+
- Integration test: [Descripción] ✅
|
|
241
|
+
|
|
242
|
+
**Comentarios**:
|
|
243
|
+
- Decisión: [Explicación de decisión técnica importante]
|
|
244
|
+
- Aprendizaje: [Algo aprendido durante implementación]
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**Marque estado de las tareas**:
|
|
248
|
+
- `[No Iniciada ⏳]` - Tarea aún no comenzada
|
|
249
|
+
- `[En Progreso ⏰]` - Tarea en curso
|
|
250
|
+
- `[Completada ✅]` - Tarea finalizada y validada
|
|
251
|
+
|
|
252
|
+
## 🔍 Checklist de Calidad
|
|
253
|
+
|
|
254
|
+
Antes de considerar la unidad completa:
|
|
255
|
+
- [ ] Código implementado y probado
|
|
256
|
+
- [ ] Pruebas pasando
|
|
257
|
+
- [ ] Linting/formato OK
|
|
258
|
+
- [ ] Documentación actualizada (si es necesario)
|
|
259
|
+
- [ ] Commit realizado en todos los repositorios afectados
|
|
260
|
+
- [ ] `plan.md` actualizado con progreso y comentarios
|
|
261
|
+
|
|
262
|
+
## ⚠️ Principio Jidoka
|
|
263
|
+
|
|
264
|
+
Si encuentra problemas durante la implementación:
|
|
265
|
+
1. 🛑 **PARE** la implementación
|
|
266
|
+
2. 📝 **DOCUMENTE** el problema encontrado
|
|
267
|
+
3. 💬 **ALERTE** al usuario y discuta soluciones
|
|
268
|
+
4. 🔄 **AJUSTE** el plan si es necesario
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
**Argumentos proporcionados**:
|
|
273
|
+
|
|
274
|
+
```
|
|
275
|
+
#$ARGUMENTS
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## 🎯 Próximos Pasos
|
|
281
|
+
|
|
282
|
+
- **Continuar implementación**: Ejecute `/work` nuevamente para la próxima unidad
|
|
283
|
+
- **Finalizar feature**: Cuando todo esté implementado, ejecute `/pre-pr`
|
|
284
|
+
|
|
285
|
+
## 💡 Consejos
|
|
286
|
+
|
|
287
|
+
- Trabaje en unidades pequeñas e incrementales
|
|
288
|
+
- Commit frecuente (commits atómicos)
|
|
289
|
+
- Documente decisiones importantes en la sesión
|
|
290
|
+
- Mantenga los repositorios sincronizados entre sí
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# /orchestrate — Orquestación de Agentes Efímeros Dinámicos
|
|
2
|
+
|
|
3
|
+
Eres el **Orquestador**. Tu tarea es convertir una spec aprobada en el **grafo mínimo de
|
|
4
|
+
agentes efímeros y especializados** y coordinar su ejecución — en vez de correr un único
|
|
5
|
+
agente monolítico sobre un contexto gigante compartido.
|
|
6
|
+
|
|
7
|
+
Este comando REEMPLAZA el flujo lineal `start → plan → work` por un grafo que el runtime
|
|
8
|
+
deriva automáticamente. `/plan` y `/work` pueden seguir existiendo como escape hatches manuales.
|
|
9
|
+
|
|
10
|
+
**Argumento**: `#$ARGUMENTS` (un ISSUE-ID y/o la ruta a un archivo de spec/task).
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Reglas de oro
|
|
15
|
+
|
|
16
|
+
- ✅ Lee `context-manifest.json` + `ai.properties.md` del orquestador.
|
|
17
|
+
- ✅ El contexto del propio Orquestador se mantiene LIGERO: coordinas, no implementas.
|
|
18
|
+
- ✅ Cada unidad de trabajo la hace un **subagente (Task tool)** con un **contrato de contexto aislado**.
|
|
19
|
+
- ✅ Nunca crees un catálogo de agentes de dominio (nada de `frontend-agent`, `payments-agent`).
|
|
20
|
+
Un worker se compila al vuelo: `arquetipo + objetivo + repositorio + contrato de contexto + herramientas`.
|
|
21
|
+
- ❌ Nunca vuelques repositorios enteros en un subagente. Selecciona, no vuelques.
|
|
22
|
+
- ❌ Nunca dejes que un subagente modifique specs normativas.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Paso 1 — Cargar configuración
|
|
27
|
+
|
|
28
|
+
1. Lee `context-manifest.json`. Extrae `repositories[]` (cada uno con `id`, `role`,
|
|
29
|
+
`hints`, opcionalmente `context`, `testCommand`, `mainBranch`) y el bloque
|
|
30
|
+
`orchestration` (`archetypes`, `riskSignals`, `parallelism`, `contextPolicy`,
|
|
31
|
+
`maxFilesPerWorker`, `indexes`).
|
|
32
|
+
2. Lee `ai.properties.md` para `base_path` y la config del task manager (si existe).
|
|
33
|
+
3. Localiza el repo de specs: el repositorio con `role: metaspecs` (o `specs-provider`).
|
|
34
|
+
|
|
35
|
+
## Paso 2 — Cargar la spec
|
|
36
|
+
|
|
37
|
+
- Si hay task manager y el argumento es un ISSUE-ID, lee el issue vía el MCP apropiado.
|
|
38
|
+
Si no, lee el archivo de spec pasado como argumento, o pídeselo al usuario.
|
|
39
|
+
- Lee los `orchestration.indexes` relevantes (los routers de contexto) para ubicarte.
|
|
40
|
+
NO leas todo el codebase — aquí sólo clasificas y ruteas.
|
|
41
|
+
|
|
42
|
+
## Paso 3 — Clasificar complejidad (reglas determinísticas)
|
|
43
|
+
|
|
44
|
+
Calcula sobre el texto de la spec:
|
|
45
|
+
|
|
46
|
+
- **repoHits** = nº de repositorios cuyo `id` O algún `hint` aparece en la spec.
|
|
47
|
+
- **risks** = nº de `orchestration.riskSignals` que aparecen en la spec.
|
|
48
|
+
- Si el frontmatter de la spec define `complexity: simple|medium|complex`, úsalo tal cual.
|
|
49
|
+
|
|
50
|
+
En caso contrario:
|
|
51
|
+
|
|
52
|
+
| Condición | Nivel |
|
|
53
|
+
|---|---|
|
|
54
|
+
| `repoHits ≥ 3` O `risks ≥ 2` O spec muy grande | **complex** |
|
|
55
|
+
| `repoHits ≥ 2` O `risks ≥ 1` O spec moderadamente grande | **medium** |
|
|
56
|
+
| en caso contrario | **simple** |
|
|
57
|
+
|
|
58
|
+
Declara la clasificación y el motivo explícitamente antes de continuar.
|
|
59
|
+
|
|
60
|
+
## Paso 4 — Construir el grafo de ejecución (DAG)
|
|
61
|
+
|
|
62
|
+
Instancia workers desde `orchestration.archetypes`. Cada nodo tiene:
|
|
63
|
+
`{ id, archetype, objective, repository, dependsOn[], contextHints[] }`.
|
|
64
|
+
|
|
65
|
+
- **simple**
|
|
66
|
+
- `W1 implementer` en el único repo impactado
|
|
67
|
+
- `W2 reviewer` (dependsOn W1) — verificar contra la spec normativa
|
|
68
|
+
|
|
69
|
+
- **medium**
|
|
70
|
+
- un `implementer` por repo impactado (corren en **paralelo**, sin deps entre sí)
|
|
71
|
+
- `integrator` (dependsOn todos los implementers) — chequear contratos/consistencia cross-repo
|
|
72
|
+
- `tester` (dependsOn integrator) — correr el `testCommand` de cada repo
|
|
73
|
+
|
|
74
|
+
- **complex** = medium, más:
|
|
75
|
+
- `reviewer` (dependsOn integrator) — review **adversarial** de reglas de negocio,
|
|
76
|
+
seguridad, migraciones y premisas ocultas. Prefiere un reviewer especializado si los
|
|
77
|
+
riskSignals lo indican (ej.: datos, integraciones, multi-tenant).
|
|
78
|
+
|
|
79
|
+
Respeta `parallelism.maxWorkers` y `maxPerRepository`. Si los repos impactados exceden el
|
|
80
|
+
límite, hazlos por lotes y avísalo — nunca descartes un repo silenciosamente.
|
|
81
|
+
|
|
82
|
+
Renderiza el grafo como una tabla corta (id, archetype, repo, dependsOn) y **pide
|
|
83
|
+
aprobación del usuario** antes de spawnear cualquier cosa.
|
|
84
|
+
|
|
85
|
+
## Paso 5 — Compilar un Contrato de Contexto por nodo
|
|
86
|
+
|
|
87
|
+
Para cada worker, arma el contrato que se pegará en el prompt del subagente.
|
|
88
|
+
Ver `agents/CONTEXT-CONTRACT.md` para el formato exacto. En resumen:
|
|
89
|
+
|
|
90
|
+
- **read**: `orchestration.indexes` + el `context[]` de ese repo (sólo archivos que existen)
|
|
91
|
+
- **mayDiscover**: referencias alcanzables desde los índices; archivos del repo que la task exige
|
|
92
|
+
- **mustNotAssume**: reglas de negocio no dichas; contratos externos no indexados; nada fuera de la spec
|
|
93
|
+
- **writeBoundary**: sólo el worktree de ese repo (o artefactos de la sesión para integrator/tester)
|
|
94
|
+
- **limits**: `contextPolicy` (por defecto `select-do-not-dump`), `maxFilesPerWorker`
|
|
95
|
+
- **return**: summary, changes, evidence, tests, unresolved, confidence
|
|
96
|
+
|
|
97
|
+
## Paso 6 — Spawnear los agentes efímeros (Task tool)
|
|
98
|
+
|
|
99
|
+
Ejecuta el DAG respetando `dependsOn`:
|
|
100
|
+
|
|
101
|
+
1. **Ola paralela**: spawnea todos los nodos con dependencias satisfechas **en un único
|
|
102
|
+
mensaje con múltiples llamadas Task**, para que corran concurrentemente. Dale a cada
|
|
103
|
+
subagente SÓLO su contrato compilado + objetivo — nunca la conversación entera.
|
|
104
|
+
2. Espera a que la ola termine. Recolecta el retorno estructurado de cada subagente.
|
|
105
|
+
3. **Siguiente ola**: spawnea los nodos cuyas dependencias ya están satisfechas. Repite.
|
|
106
|
+
|
|
107
|
+
Usa las plantillas de arquetipo en `agents/` (implementer, reviewer, integrator, tester…)
|
|
108
|
+
como marco de cada subagente, rellenadas con objetivo, repositorio y contrato.
|
|
109
|
+
|
|
110
|
+
Cada subagente es **efímero**: hace su trabajo acotado, retorna el reporte, y su contexto
|
|
111
|
+
se descarta. El Orquestador sólo guarda los reportes.
|
|
112
|
+
|
|
113
|
+
## Paso 7 — Integrar y reportar
|
|
114
|
+
|
|
115
|
+
- Persiste artefactos en `.sessions/<ISSUE-ID>/`:
|
|
116
|
+
`execution-plan.md` (el DAG) y `workers/<agent-id>.md` (contrato + retorno de cada uno).
|
|
117
|
+
- Resume: qué cambió por repo, evidencias, tests corridos, preguntas abiertas y cualquier
|
|
118
|
+
repo que quedó en lote/diferido.
|
|
119
|
+
- Si un `reviewer` retornó hallazgos bloqueantes, NO sigas a PR — muéstralos y pregunta al
|
|
120
|
+
usuario cómo proceder.
|
|
121
|
+
|
|
122
|
+
## Escalación
|
|
123
|
+
|
|
124
|
+
Si un subagente llega a un stop Jidoka (ambigüedad, conflicto de spec, contrato faltante),
|
|
125
|
+
debe retornar `unresolved` en vez de adivinar. Súbelo al usuario en vez de empujar.
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
# Validación contra MetaSpecs
|
|
2
|
+
|
|
3
|
+
Este comando valida requisitos, decisiones o implementaciones contra las metaspecs del proyecto.
|
|
4
|
+
|
|
5
|
+
## ⚠️ IMPORTANTE: Modo de Operación
|
|
6
|
+
|
|
7
|
+
**Este comando es para VALIDACIÓN:**
|
|
8
|
+
- ✅ Validar contra metaspecs
|
|
9
|
+
- ✅ **LEER** archivos de los repositorios (solo lectura)
|
|
10
|
+
- ✅ Generar informe de validación
|
|
11
|
+
- ❌ **NO hacer checkout de branches en los repositorios principales**
|
|
12
|
+
- ❌ **NO modificar código**
|
|
13
|
+
- ❌ **NO modificar `context.md` o `architecture.md`**
|
|
14
|
+
|
|
15
|
+
## 📋 Configuración del Proyecto
|
|
16
|
+
|
|
17
|
+
**⚠️ IMPORTANTE: ¡Siempre lea los archivos de configuración del proyecto ANTES de ejecutar este comando!**
|
|
18
|
+
|
|
19
|
+
### Archivos Obligatorios
|
|
20
|
+
|
|
21
|
+
1. **`context-manifest.json`** (raíz del orchestrator)
|
|
22
|
+
- Lista de repositorios del proyecto
|
|
23
|
+
- Roles de cada repositorio (metaspecs, application, etc.)
|
|
24
|
+
- URLs y dependencias entre repositorios
|
|
25
|
+
|
|
26
|
+
2. **`ai.properties.md`** (raíz del orchestrator)
|
|
27
|
+
- Configuraciones del proyecto (`project_name`, `base_path`)
|
|
28
|
+
- Sistema de gestión de tareas (`task_management_system`)
|
|
29
|
+
- Credenciales y configuraciones específicas
|
|
30
|
+
|
|
31
|
+
### Cómo Leer
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# 1. Leer context-manifest.json
|
|
35
|
+
cat context-manifest.json
|
|
36
|
+
|
|
37
|
+
# 2. Leer ai.properties.md
|
|
38
|
+
cat ai.properties.md
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Información Esencial
|
|
42
|
+
|
|
43
|
+
Después de leer los archivos, tendrá:
|
|
44
|
+
- ✅ Lista completa de repositorios del proyecto
|
|
45
|
+
- ✅ Ubicación del repositorio de metaspecs
|
|
46
|
+
- ✅ Base path para localizar repositorios
|
|
47
|
+
- ✅ Sistema de gestión de tareas configurado
|
|
48
|
+
- ✅ Configuraciones específicas del proyecto
|
|
49
|
+
|
|
50
|
+
**🛑 NO continúe sin leer estos archivos!** Contienen información crítica para la correcta ejecución del comando.
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
## 🎯 Objetivo
|
|
54
|
+
|
|
55
|
+
Garantizar alineación con:
|
|
56
|
+
- Estrategia de producto
|
|
57
|
+
- Arquitectura técnica
|
|
58
|
+
- Estándares y convenciones
|
|
59
|
+
- ADRs (Architecture Decision Records)
|
|
60
|
+
|
|
61
|
+
## 📋 Cuándo Usar
|
|
62
|
+
|
|
63
|
+
Ejecute este comando:
|
|
64
|
+
- Después de `/spec` - validar PRD
|
|
65
|
+
- Después de `/plan` - validar plan técnico
|
|
66
|
+
- Durante `/work` - validar decisiones de implementación
|
|
67
|
+
- Antes de `/pr` - validación final
|
|
68
|
+
|
|
69
|
+
## 📚 Cargar MetaSpecs
|
|
70
|
+
|
|
71
|
+
**Localizar MetaSpecs automáticamente**:
|
|
72
|
+
1. Lea `context-manifest.json` del orchestrator
|
|
73
|
+
2. Encuentre el repositorio con `"role": "metaspecs"`
|
|
74
|
+
3. Lea `ai.properties.md` para obtener el `base_path`
|
|
75
|
+
4. El metaspecs está en: `{base_path}/{metaspecs-repo-id}/`
|
|
76
|
+
|
|
77
|
+
## 🔍 Proceso de Validación
|
|
78
|
+
|
|
79
|
+
### 1. Identificar MetaSpecs Disponibles
|
|
80
|
+
|
|
81
|
+
Navegue hasta el directorio de metaspecs e identifique qué metaspecs existen:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
ls -la {base_path}/{metaspecs-repo-id}/
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 2. Validación de Negocio
|
|
88
|
+
|
|
89
|
+
Si existen metaspecs de negocio (`repositorio de MetaSpecs (sección de negocio)`):
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
## Validación de Negocio
|
|
93
|
+
|
|
94
|
+
### Estrategia de Producto
|
|
95
|
+
- **Archivo**: `repositorio de MetaSpecs (sección de negocio)PRODUCT_STRATEGY.md`
|
|
96
|
+
- **Validación**: [¿Esta feature está alineada con la estrategia?]
|
|
97
|
+
- **Estado**: ✅ Alineado / ⚠️ Parcialmente / ❌ Desalineado
|
|
98
|
+
- **Notas**: [Observaciones]
|
|
99
|
+
|
|
100
|
+
### Personas
|
|
101
|
+
- **Archivo**: `repositorio de MetaSpecs (sección de negocio)CUSTOMER_PERSONAS.md`
|
|
102
|
+
- **Validación**: [¿Atiende a la persona correcta?]
|
|
103
|
+
- **Estado**: ✅ Alineado / ⚠️ Parcialmente / ❌ Desalineado
|
|
104
|
+
- **Notas**: [Observaciones]
|
|
105
|
+
|
|
106
|
+
### Métricas
|
|
107
|
+
- **Archivo**: `repositorio de MetaSpecs (sección de negocio)PRODUCT_METRICS.md`
|
|
108
|
+
- **Validación**: [¿Métrica de éxito está documentada?]
|
|
109
|
+
- **Estado**: ✅ Alineado / ⚠️ Parcialmente / ❌ Desalineado
|
|
110
|
+
- **Notas**: [Observaciones]
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 3. Validación Técnica
|
|
114
|
+
|
|
115
|
+
Si existen metaspecs técnicas (`repositorio de MetaSpecs (sección técnica)`):
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
## Validación Técnica
|
|
119
|
+
|
|
120
|
+
### Stack Tecnológica
|
|
121
|
+
- **Archivo**: `repositorio de MetaSpecs (sección técnica)meta/stack.md`
|
|
122
|
+
- **Validación**: [¿Usa solo tecnologías aprobadas?]
|
|
123
|
+
- **Estado**: ✅ Conforme / ⚠️ Excepción justificada / ❌ No conforme
|
|
124
|
+
- **Notas**: [Tecnologías usadas y justificaciones]
|
|
125
|
+
|
|
126
|
+
### Arquitectura
|
|
127
|
+
- **Archivo**: `repositorio de MetaSpecs (sección técnica)ARCHITECTURE.md`
|
|
128
|
+
- **Validación**: [¿Sigue patrones arquitectónicos?]
|
|
129
|
+
- **Estado**: ✅ Conforme / ⚠️ Parcialmente / ❌ No conforme
|
|
130
|
+
- **Notas**: [Observaciones]
|
|
131
|
+
|
|
132
|
+
### ADRs (Architecture Decision Records)
|
|
133
|
+
- **Directorio**: `repositorio de MetaSpecs (sección técnica)adr/`
|
|
134
|
+
- **Validación**: [¿Respeta decisiones arquitectónicas documentadas?]
|
|
135
|
+
- **ADRs Relevantes**: [Lista de ADRs verificados]
|
|
136
|
+
- **Estado**: ✅ Conforme / ⚠️ Conflicto menor / ❌ Conflicto crítico
|
|
137
|
+
- **Notas**: [Observaciones]
|
|
138
|
+
|
|
139
|
+
### Reglas de Negocio
|
|
140
|
+
- **Archivo**: `repositorio de MetaSpecs (sección técnica)BUSINESS_LOGIC.md`
|
|
141
|
+
- **Validación**: [¿Implementa reglas de negocio correctamente?]
|
|
142
|
+
- **Estado**: ✅ Conforme / ⚠️ Parcialmente / ❌ No conforme
|
|
143
|
+
- **Notas**: [Observaciones]
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### 4. Validación de Estándares
|
|
147
|
+
|
|
148
|
+
```markdown
|
|
149
|
+
## Validación de Estándares
|
|
150
|
+
|
|
151
|
+
### Código
|
|
152
|
+
- **Archivo**: `repositorio de MetaSpecs (sección técnica)CODE_STANDARDS.md`
|
|
153
|
+
- **Validación**: [¿Sigue estándares de código?]
|
|
154
|
+
- **Estado**: ✅ Conforme / ⚠️ Pequeñas desviaciones / ❌ No conforme
|
|
155
|
+
|
|
156
|
+
### Pruebas
|
|
157
|
+
- **Archivo**: `repositorio de MetaSpecs (sección técnica)TEST_STANDARDS.md`
|
|
158
|
+
- **Validación**: [¿Estrategia de pruebas adecuada?]
|
|
159
|
+
- **Estado**: ✅ Conforme / ⚠️ Parcialmente / ❌ No conforme
|
|
160
|
+
|
|
161
|
+
### Documentación
|
|
162
|
+
- **Archivo**: `repositorio de MetaSpecs (sección técnica)DOC_STANDARDS.md`
|
|
163
|
+
- **Validación**: [¿Documentación adecuada?]
|
|
164
|
+
- **Estado**: ✅ Conforme / ⚠️ Parcialmente / ❌ No conforme
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### 5. Identificación de Conflictos
|
|
168
|
+
|
|
169
|
+
Si hay conflictos o desalineamientos:
|
|
170
|
+
|
|
171
|
+
```markdown
|
|
172
|
+
## Conflictos Identificados
|
|
173
|
+
|
|
174
|
+
### Conflicto 1: [Descripción]
|
|
175
|
+
- **Severidad**: Crítico / Alto / Medio / Bajo
|
|
176
|
+
- **Metaspec**: [Archivo que está siendo violado]
|
|
177
|
+
- **Descripción**: [Detalle del conflicto]
|
|
178
|
+
- **Recomendación**: [Cómo resolver]
|
|
179
|
+
|
|
180
|
+
### Conflicto 2: [Descripción]
|
|
181
|
+
[Mismo formato arriba]
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### 6. Excepciones Justificadas
|
|
185
|
+
|
|
186
|
+
Si hay desviaciones justificadas:
|
|
187
|
+
|
|
188
|
+
```markdown
|
|
189
|
+
## Excepciones Justificadas
|
|
190
|
+
|
|
191
|
+
### Excepción 1: [Descripción]
|
|
192
|
+
- **Metaspec**: [Archivo que está siendo desviado]
|
|
193
|
+
- **Desvío**: [Qué está diferente]
|
|
194
|
+
- **Justificación**: [Por qué es necesario]
|
|
195
|
+
- **Aprobación**: [Quién aprobó]
|
|
196
|
+
- **Documentación**: [Dónde fue documentado]
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## 📄 Guardado del Informe de Validación
|
|
200
|
+
|
|
201
|
+
**PRIORIDAD 1: Usar MCP (Model Context Protocol)**
|
|
202
|
+
|
|
203
|
+
- Lea `ai.properties.md` del orchestrator para identificar el `task_management_system`
|
|
204
|
+
- Use el MCP apropiado para añadir el informe a la issue:
|
|
205
|
+
- Añada como comentario en la issue
|
|
206
|
+
- Actualice labels/tags según resultado (ej: "validated", "needs-adjustment", "blocked")
|
|
207
|
+
- Si hay conflictos críticos, actualice el estado de la issue
|
|
208
|
+
- Informe al usuario: "✅ Informe de validación añadido a la issue [ID]"
|
|
209
|
+
|
|
210
|
+
**FALLBACK: Crear archivo .md solo si MCP falla**
|
|
211
|
+
|
|
212
|
+
Si el MCP no está disponible o falla, cree `./.sessions/<ISSUE-ID>/check-report.md`:
|
|
213
|
+
|
|
214
|
+
```markdown
|
|
215
|
+
# Informe de Validación - [ISSUE-ID]
|
|
216
|
+
|
|
217
|
+
**Fecha**: [fecha/hora]
|
|
218
|
+
**Fase**: [spec/plan/work/pre-pr]
|
|
219
|
+
|
|
220
|
+
## Estado General
|
|
221
|
+
✅ Validado / ⚠️ Validado con reservas / ❌ No validado
|
|
222
|
+
|
|
223
|
+
## Validaciones Realizadas
|
|
224
|
+
- Negocio: ✅ / ⚠️ / ❌
|
|
225
|
+
- Técnica: ✅ / ⚠️ / ❌
|
|
226
|
+
- Estándares: ✅ / ⚠️ / ❌
|
|
227
|
+
|
|
228
|
+
## Conflictos
|
|
229
|
+
[Lista de conflictos, si los hay]
|
|
230
|
+
|
|
231
|
+
## Excepciones
|
|
232
|
+
[Lista de excepciones justificadas, si las hay]
|
|
233
|
+
|
|
234
|
+
## Recomendaciones
|
|
235
|
+
1. [Recomendación 1]
|
|
236
|
+
2. [Recomendación 2]
|
|
237
|
+
|
|
238
|
+
## Aprobación
|
|
239
|
+
- [ ] Aprobado para continuar
|
|
240
|
+
- [ ] Requiere ajustes
|
|
241
|
+
- [ ] Bloqueado
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Informe al usuario: "⚠️ Informe guardado localmente en .sessions/ (gestor de tareas no disponible)"
|
|
245
|
+
|
|
246
|
+
## 🚨 Acción en Caso de Conflictos
|
|
247
|
+
|
|
248
|
+
Si se encuentran conflictos críticos:
|
|
249
|
+
1. 🛑 **DETENGA** el proceso actual
|
|
250
|
+
2. 📝 **DOCUMENTE** todos los conflictos
|
|
251
|
+
3. 💬 **ALERTE** al usuario y stakeholders
|
|
252
|
+
4. **Vía MCP**: Actualice el estado de la issue a "Bloqueado" o "Requiere Ajustes"
|
|
253
|
+
5. 🔄 **AJUSTE** el plan/implementación según sea necesario
|
|
254
|
+
6. ✅ **REVALIDE** tras los ajustes
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
**Argumentos proporcionados**:
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
#$ARGUMENTS
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## 🎯 Resultado
|
|
267
|
+
|
|
268
|
+
Después de la validación:
|
|
269
|
+
- Si ✅: Continúe a la siguiente fase
|
|
270
|
+
- Si ⚠️: Documente reservas y continúe con aprobación
|
|
271
|
+
- Si ❌: Corrija conflictos antes de continuar
|