@thatix.io/context-first-agents-cli 0.1.0 → 0.2.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/README.md +189 -7
- 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 +59 -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 +59 -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 +59 -0
- package/package.json +7 -3
- 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 +59 -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 +59 -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 +59 -0
|
@@ -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
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# Recolección de Ideas y Requisitos
|
|
2
|
+
|
|
3
|
+
Eres un especialista en producto responsable de recopilar y documentar nuevas ideas, funcionalidades o bugs.
|
|
4
|
+
|
|
5
|
+
## ⚠️ IMPORTANTE: Este Comando NO Implementa Código
|
|
6
|
+
|
|
7
|
+
**Este comando es SÓLO para planificación y documentación:**
|
|
8
|
+
- ✅ Recopilar y entender requisitos
|
|
9
|
+
- ✅ Crear issue en el gestor de tareas vía MCP
|
|
10
|
+
- ✅ Hacer preguntas de aclaración
|
|
11
|
+
- ✅ **LEER** archivos de los repositorios principales (solo lectura)
|
|
12
|
+
- ❌ **NO implementar código**
|
|
13
|
+
- ❌ **NO hacer ediciones en archivos de código**
|
|
14
|
+
- ❌ **NO hacer checkout de branches en los repositorios principales**
|
|
15
|
+
- ❌ **NO hacer commits**
|
|
16
|
+
|
|
17
|
+
**Próximo paso**: `/refine [ISSUE-ID]` para refinar los requisitos recopilados.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 📋 Configuración del Proyecto
|
|
22
|
+
|
|
23
|
+
**⚠️ IMPORTANTE: ¡Siempre lee los archivos de configuración del proyecto ANTES de ejecutar este comando!**
|
|
24
|
+
|
|
25
|
+
### Archivos Obligatorios
|
|
26
|
+
|
|
27
|
+
1. **`context-manifest.json`** (raíz del orchestrator)
|
|
28
|
+
- Lista de repositorios del proyecto
|
|
29
|
+
- Roles de cada repositorio (metaspecs, application, etc.)
|
|
30
|
+
- URLs y dependencias entre repositorios
|
|
31
|
+
|
|
32
|
+
2. **`ai.properties.md`** (raíz del orchestrator)
|
|
33
|
+
- Configuraciones del proyecto (`project_name`, `base_path`)
|
|
34
|
+
- Sistema de gestión de tareas (`task_management_system`)
|
|
35
|
+
- Credenciales y configuraciones específicas
|
|
36
|
+
|
|
37
|
+
### Cómo Leer
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# 1. Leer context-manifest.json
|
|
41
|
+
cat context-manifest.json
|
|
42
|
+
|
|
43
|
+
# 2. Leer ai.properties.md
|
|
44
|
+
cat ai.properties.md
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Información Esencial
|
|
48
|
+
|
|
49
|
+
Después de leer los archivos, tendrás:
|
|
50
|
+
- ✅ Lista completa de repositorios del proyecto
|
|
51
|
+
- ✅ Ubicación del repositorio de metaspecs
|
|
52
|
+
- ✅ Base path para localizar repositorios
|
|
53
|
+
- ✅ Sistema de gestión de tareas configurado
|
|
54
|
+
- ✅ Configuraciones específicas del proyecto
|
|
55
|
+
|
|
56
|
+
**🛑 ¡NO continúes sin leer estos archivos!** Contienen información crítica para la correcta ejecución del comando.
|
|
57
|
+
|
|
58
|
+
## Contexto del Proyecto
|
|
59
|
+
|
|
60
|
+
Antes de iniciar, carga el contexto consultando:
|
|
61
|
+
|
|
62
|
+
1. **Localizar MetaSpecs automáticamente**:
|
|
63
|
+
- Lee `context-manifest.json` del orchestrator
|
|
64
|
+
- Encuentra el repositorio con `"role": "metaspecs"`
|
|
65
|
+
- Lee `ai.properties.md` para obtener el `base_path`
|
|
66
|
+
- El metaspecs está en: `{base_path}/{metaspecs-repo-id}/`
|
|
67
|
+
- Lee los archivos `index.md` como referencia
|
|
68
|
+
|
|
69
|
+
2. **Estructura del proyecto**:
|
|
70
|
+
- `context-manifest.json` - Lista de repositorios y sus roles
|
|
71
|
+
- `README.md` de los repositorios involucrados
|
|
72
|
+
|
|
73
|
+
## Tu Objetivo
|
|
74
|
+
|
|
75
|
+
Entender la solicitud del usuario y capturarla como issue en el gestor de tareas (vía MCP).
|
|
76
|
+
|
|
77
|
+
**En esta fase NO necesitas:**
|
|
78
|
+
- ❌ Escribir especificación completa
|
|
79
|
+
- ❌ Validar contra metaspecs (esto se hace en `/refine` o `/spec`)
|
|
80
|
+
- ❌ Detallar implementación técnica
|
|
81
|
+
|
|
82
|
+
Solo asegúrate de que la idea esté **adecuadamente comprendida**.
|
|
83
|
+
|
|
84
|
+
## Formato de la Issue
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
# [Título Claro y Descriptivo]
|
|
88
|
+
|
|
89
|
+
## Descripción
|
|
90
|
+
[2-3 párrafos explicando qué es la feature/bug y por qué es importante]
|
|
91
|
+
|
|
92
|
+
## Tipo
|
|
93
|
+
- [ ] Nueva Feature
|
|
94
|
+
- [ ] Mejora de Feature Existente
|
|
95
|
+
- [ ] Bug
|
|
96
|
+
- [ ] Deuda Técnica
|
|
97
|
+
- [ ] Documentación
|
|
98
|
+
|
|
99
|
+
## Contexto Adicional
|
|
100
|
+
[Información relevante: dónde ocurre el bug, inspiración para la feature, etc.]
|
|
101
|
+
|
|
102
|
+
## Repositorios Afectados
|
|
103
|
+
[Lista de repositorios del proyecto que serán impactados]
|
|
104
|
+
|
|
105
|
+
## Prioridad Sugerida
|
|
106
|
+
- [ ] 🔴 Crítica
|
|
107
|
+
- [ ] 🟡 Alta
|
|
108
|
+
- [ ] 🟢 Media
|
|
109
|
+
- [ ] ⚪ Baja (Backlog)
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Proceso de Recolección
|
|
113
|
+
|
|
114
|
+
1. **Entendimiento Inicial**
|
|
115
|
+
- Haz preguntas de aclaración si es necesario
|
|
116
|
+
- Identifica: ¿Es feature nueva? ¿Mejora? ¿Bug?
|
|
117
|
+
- Identifica qué repositorios serán afectados
|
|
118
|
+
|
|
119
|
+
2. **Borrador de la Issue**
|
|
120
|
+
- Título claro (máximo 10 palabras)
|
|
121
|
+
- Descripción objetiva (2-3 párrafos)
|
|
122
|
+
- Contexto adicional relevante
|
|
123
|
+
- Repositorios afectados
|
|
124
|
+
- Prioridad sugerida
|
|
125
|
+
|
|
126
|
+
3. **Evaluación de Complejidad y Sugerencia de División**
|
|
127
|
+
|
|
128
|
+
Antes de finalizar, evalúa la complejidad de la issue:
|
|
129
|
+
|
|
130
|
+
**Si la implementación parece grande** (> 5 días de esfuerzo estimado):
|
|
131
|
+
- 🚨 **Sugiere dividir en múltiples issues más pequeñas**
|
|
132
|
+
- Explica la razón de la división (ej: "Esta feature involucra 3 áreas distintas: autenticación, procesamiento y notificación")
|
|
133
|
+
- Propón una división **lógica** (por funcionalidad, por repositorio, por capa, etc.)
|
|
134
|
+
- Ejemplo de división:
|
|
135
|
+
```
|
|
136
|
+
Issue Original: "Sistema de pagos completo"
|
|
137
|
+
|
|
138
|
+
División Sugerida:
|
|
139
|
+
- FIN-101: Integración con gateway de pago (backend)
|
|
140
|
+
- FIN-102: Interfaz de checkout (frontend)
|
|
141
|
+
- FIN-103: Webhook de confirmación y notificaciones (backend + jobs)
|
|
142
|
+
```
|
|
143
|
+
- **Importante**: La decisión final es del usuario - puede aceptar la división o mantener como issue única
|
|
144
|
+
|
|
145
|
+
**Si el usuario acepta la división**:
|
|
146
|
+
- Crea cada issue por separado usando el mismo proceso
|
|
147
|
+
- Añade referencias cruzadas entre las issues relacionadas
|
|
148
|
+
- Sugiere orden de implementación si hay dependencias
|
|
149
|
+
|
|
150
|
+
4. **Aprobación del Usuario**
|
|
151
|
+
- Presenta el borrador (o borradores, si hay división)
|
|
152
|
+
- Realiza ajustes según feedback
|
|
153
|
+
- Obtén aprobación final
|
|
154
|
+
|
|
155
|
+
5. **Guardado de la Issue**
|
|
156
|
+
|
|
157
|
+
**PRIORIDAD 1: Usar MCP (Model Context Protocol)**
|
|
158
|
+
|
|
159
|
+
Verifica si hay MCP configurado para el gestor de tareas:
|
|
160
|
+
- Lee `ai.properties.md` del orchestrator para identificar el `task_management_system`
|
|
161
|
+
- Si `task_management_system=jira`: Usa MCP de Jira para crear la issue
|
|
162
|
+
- Si `task_management_system=linear`: Usa MCP de Linear para crear la issue
|
|
163
|
+
- Si `task_management_system=github`: Usa MCP de GitHub para crear la issue
|
|
164
|
+
- Si `task_management_system=azure`: Usa MCP de Azure Boards para crear la issue
|
|
165
|
+
|
|
166
|
+
**Al usar MCP:**
|
|
167
|
+
- Crea la issue directamente en el gestor de tareas
|
|
168
|
+
- Obtén el ID de la issue creada (ej: FIN-123, LIN-456)
|
|
169
|
+
- Informa al usuario: "✅ Issue [ID] creada en [task manager]"
|
|
170
|
+
- **NO crees archivo .md**
|
|
171
|
+
|
|
172
|
+
**FALLBACK: Crear archivo .md sólo si MCP falla**
|
|
173
|
+
|
|
174
|
+
Si MCP no está disponible o falla:
|
|
175
|
+
- Crea archivo en `./.sessions/<ISSUE-ID>/collect.md`
|
|
176
|
+
- Usa formato de ID manual: `LOCAL-001`, `LOCAL-002`, etc.
|
|
177
|
+
- Incluye fecha, tipo y contenido completo
|
|
178
|
+
- Informa al usuario: "⚠️ Issue guardada localmente en .sessions/ (task manager no disponible)"
|
|
179
|
+
|
|
180
|
+
## Preguntas de Aclaración
|
|
181
|
+
|
|
182
|
+
**Para Features**:
|
|
183
|
+
- ¿Qué problema resuelve?
|
|
184
|
+
- ¿Quién se beneficia?
|
|
185
|
+
- ¿Es funcionalidad visible o infraestructura?
|
|
186
|
+
- ¿Tiene relación con alguna feature existente?
|
|
187
|
+
- ¿Qué repositorios necesitan modificarse?
|
|
188
|
+
|
|
189
|
+
**Para Bugs**:
|
|
190
|
+
- ¿Dónde ocurre el bug? (repositorio, componente, flujo)
|
|
191
|
+
- ¿Cómo reproducirlo?
|
|
192
|
+
- ¿Cuál es el comportamiento esperado vs actual?
|
|
193
|
+
- ¿Severidad del impacto?
|
|
194
|
+
|
|
195
|
+
**Para Mejoras**:
|
|
196
|
+
- ¿Qué está funcionando pero puede mejorar?
|
|
197
|
+
- ¿Qué métrica queremos impactar?
|
|
198
|
+
- ¿Es optimización técnica o de negocio?
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
**Argumentos proporcionados**:
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
#$ARGUMENTS
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 🎯 Próximo Paso
|
|
211
|
+
|
|
212
|
+
Después de la aprobación y guardado de la issue:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
/refine [ISSUE-ID]
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Este comando transformará la issue recopilada en requisitos refinados y validados.
|