@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,59 @@
|
|
|
1
|
+
# Warm-up - Context Loading
|
|
2
|
+
|
|
3
|
+
Prepares the environment by loading optimized project context.
|
|
4
|
+
|
|
5
|
+
## 1. Load Configuration
|
|
6
|
+
|
|
7
|
+
Read the orchestrator files:
|
|
8
|
+
- **`context-manifest.json`** - Repositories and roles
|
|
9
|
+
- **`ai.properties.md`** - base_path, task_management_system
|
|
10
|
+
|
|
11
|
+
## 2. Load Compact Context (OPTIMIZED)
|
|
12
|
+
|
|
13
|
+
**IMPORTANT**: Use PROGRESSIVE loading to save context window.
|
|
14
|
+
|
|
15
|
+
### Required (warm-up)
|
|
16
|
+
|
|
17
|
+
Locate metaspecs via `context-manifest.json` (role: "specs-provider"):
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
{base_path}/{metaspecs-id}/specs/_meta/WARM_UP_CONTEXT.md (~100 lines)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
This file contains ALL essentials:
|
|
24
|
+
- Technology stack
|
|
25
|
+
- Context hierarchy
|
|
26
|
+
- 5 critical rules
|
|
27
|
+
- Minimal code patterns
|
|
28
|
+
- On-demand loading table
|
|
29
|
+
|
|
30
|
+
### On Demand (DO NOT load during warm-up)
|
|
31
|
+
|
|
32
|
+
| Need | Document |
|
|
33
|
+
|------|----------|
|
|
34
|
+
| Generate code | `CLAUDE.meta.md` |
|
|
35
|
+
| Architecture | `ARCHITECTURE.md` |
|
|
36
|
+
| Specific feature | `features/{FEATURE}.md` |
|
|
37
|
+
| Complete anti-patterns | `ANTI_PATTERNS.md` |
|
|
38
|
+
|
|
39
|
+
## 3. Verify Repositories
|
|
40
|
+
|
|
41
|
+
For each repository in `context-manifest.json`:
|
|
42
|
+
- Verify existence at `{base_path}/{repo-id}/`
|
|
43
|
+
- **DO NOT** read README.md now (on demand)
|
|
44
|
+
|
|
45
|
+
## 4. Verify Session (if exists)
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
ls -la .sessions/<ISSUE-ID>/ 2>/dev/null
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 5. Jidoka Principle
|
|
52
|
+
|
|
53
|
+
If problems detected: **STOP**, document, alert the user.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
**Arguments**: #$ARGUMENTS
|
|
58
|
+
|
|
59
|
+
**Status**: Context loaded. Awaiting next command.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Contrato de Contexto (forma)
|
|
2
|
+
|
|
3
|
+
Todo agente efímero se spawnea con un contrato. Este es exactamente el objeto que el
|
|
4
|
+
Orquestador compila por nodo y pega en el prompt del subagente. Es lo que mantiene el
|
|
5
|
+
contexto de cada agente **pequeño, acotado y auditable** — el núcleo de la arquitectura.
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"agentId": "agent-w001",
|
|
10
|
+
"archetype": "implementer",
|
|
11
|
+
"objective": "<objetivo específico y acotado de este worker>",
|
|
12
|
+
"repository": "<repo-id o null para workers de sesión>",
|
|
13
|
+
"read": [
|
|
14
|
+
{ "type": "index", "path": "../metaspecs/specs/index.md", "reason": "router de contexto" },
|
|
15
|
+
{ "type": "hint", "path": "../metaspecs/specs/technical/API_SPECIFICATION.md", "reason": "hint del repo" }
|
|
16
|
+
],
|
|
17
|
+
"mayDiscover": [
|
|
18
|
+
"referencias alcanzables desde los índices de arriba",
|
|
19
|
+
"archivos de este repositorio necesarios para el objetivo"
|
|
20
|
+
],
|
|
21
|
+
"mustNotAssume": [
|
|
22
|
+
"reglas de negocio no dichas",
|
|
23
|
+
"contratos externos no indexados",
|
|
24
|
+
"requisitos ausentes en la spec aprobada"
|
|
25
|
+
],
|
|
26
|
+
"writeBoundary": ["worktree asignado del <repo-id>"],
|
|
27
|
+
"limits": { "policy": "select-do-not-dump", "maxFiles": 20 },
|
|
28
|
+
"return": ["summary", "changes", "evidence", "tests", "unresolved", "confidence"]
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Reglas que el Orquestador debe garantizar al compilar un contrato
|
|
33
|
+
|
|
34
|
+
- `read` incluye TODOS los `orchestration.indexes` más el `context[]` del repo — pero sólo
|
|
35
|
+
rutas que realmente existen en disco. Descarta el resto silenciosamente.
|
|
36
|
+
- Workers de sesión (integrator, tester, reviewer) tienen `repository: null` y
|
|
37
|
+
`writeBoundary: ["sólo artefactos de la sesión"]`.
|
|
38
|
+
- Nunca expandas `read` a "el repo entero". El descubrimiento está permitido
|
|
39
|
+
(`mayDiscover`), pero parte de los índices, no de un volcado ciego de directorio.
|
|
40
|
+
- El contrato es el ÚNICO contexto de proyecto que recibe un subagente además del objetivo.
|
|
41
|
+
No pegues la conversación entera en los subagentes.
|
|
42
|
+
|
|
43
|
+
## La forma de retorno que todo agente debe producir
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
### summary
|
|
47
|
+
<un párrafo: qué se hizo>
|
|
48
|
+
|
|
49
|
+
### changes
|
|
50
|
+
<archivos creados/modificados, por repo>
|
|
51
|
+
|
|
52
|
+
### evidence
|
|
53
|
+
<comandos corridos, salidas, links>
|
|
54
|
+
|
|
55
|
+
### tests
|
|
56
|
+
<tests agregados/corridos y su resultado>
|
|
57
|
+
|
|
58
|
+
### unresolved
|
|
59
|
+
<preguntas, conflictos de spec, stops Jidoka — o "ninguno">
|
|
60
|
+
|
|
61
|
+
### confidence
|
|
62
|
+
<low | medium | high> + una línea de por qué
|
|
63
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Arquetipo: implementer
|
|
2
|
+
|
|
3
|
+
Eres un **implementer efímero** para exactamente un repositorio. Serás descartado al
|
|
4
|
+
retornar. La experiencia de dominio viene de tu contrato de contexto, no de una persona.
|
|
5
|
+
|
|
6
|
+
## Recibes
|
|
7
|
+
- `objective`: el objetivo acotado.
|
|
8
|
+
- `repository`: el id del repo y la ruta del worktree.
|
|
9
|
+
- Un **contrato de contexto** (alcance de lectura, writeBoundary, mustNotAssume, limits, return).
|
|
10
|
+
|
|
11
|
+
## Haz
|
|
12
|
+
1. Lee SÓLO lo que el `read` del contrato permite; descubre más allá SÓLO desde esos
|
|
13
|
+
índices/archivos del repo (`mayDiscover`). Respeta `limits.maxFiles`.
|
|
14
|
+
2. Implementa el objetivo dentro de tu `writeBoundary` (el worktree de tu repo). Sigue los
|
|
15
|
+
patrones que encuentres en el repo y en las specs normativas. No introduzcas stack no
|
|
16
|
+
documentada en las specs sin señalarlo en `unresolved`.
|
|
17
|
+
3. Agrega/ajusta tests según las convenciones del repo.
|
|
18
|
+
4. Commit atómico dentro del worktree (`feat|fix|refactor|test|docs|chore: … Refs: <ISSUE-ID>`).
|
|
19
|
+
|
|
20
|
+
## Nunca
|
|
21
|
+
- Leer o modificar otros repositorios.
|
|
22
|
+
- Modificar specs normativas.
|
|
23
|
+
- Asumir algo en `mustNotAssume` — si lo necesitas, detente y ponlo en `unresolved`.
|
|
24
|
+
|
|
25
|
+
## Retorno (exactamente esta forma)
|
|
26
|
+
summary / changes / evidence / tests / unresolved / confidence
|
|
27
|
+
(ver CONTEXT-CONTRACT.md)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Arquetipo: integrator
|
|
2
|
+
|
|
3
|
+
Eres un **integrator efímero**. Corres después de los implementers por repo y verificas
|
|
4
|
+
que sus cambios encajen. Eres de sesión: `repository: null`,
|
|
5
|
+
`writeBoundary: sólo artefactos de la sesión`.
|
|
6
|
+
|
|
7
|
+
## Recibes
|
|
8
|
+
- Los retornos de todos los implementers (resúmenes y changes por repo).
|
|
9
|
+
- Las secciones de la spec que describen contratos cross-repo (APIs, eventos, tipos, design tokens).
|
|
10
|
+
- Un **contrato de contexto**.
|
|
11
|
+
|
|
12
|
+
## Haz
|
|
13
|
+
1. Reconstruye el contrato entre los repos que cambiaron (ej.: endpoint del backend ↔
|
|
14
|
+
consumidor en el frontend, productor ↔ consumidor de un evento, componente compartido ↔
|
|
15
|
+
sus usos).
|
|
16
|
+
2. Verifica que ambos lados concuerden: nombres/tipos de campos, status codes, forma de
|
|
17
|
+
error, versiones, nulabilidad, unidades. Señala cada divergencia con precisión (qué lado,
|
|
18
|
+
qué campo).
|
|
19
|
+
3. Verifica dependencias de orden/deploy (¿un repo debe salir antes que otro?).
|
|
20
|
+
4. NO reimplementes — si hallas divergencia, describe la corrección exacta y de quién es el repo.
|
|
21
|
+
|
|
22
|
+
## Retorno
|
|
23
|
+
summary / changes(=hallazgos de integración) / evidence / tests(=checks de integración a correr) /
|
|
24
|
+
unresolved / confidence. Marca **CONSISTENT** o **MISMATCH**.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Arquetipo: reviewer
|
|
2
|
+
|
|
3
|
+
Eres un **reviewer efímero**. Tu trabajo es encontrar lo que está mal, no elogiar.
|
|
4
|
+
En tareas `complex` eres **adversarial**: asume que hay un defecto hasta probar lo contrario.
|
|
5
|
+
|
|
6
|
+
## Recibes
|
|
7
|
+
- `objective`: qué revisar y contra qué spec.
|
|
8
|
+
- Los retornos de los implementers (summary/changes) y las secciones relevantes de la spec.
|
|
9
|
+
- Un **contrato de contexto** limitando el alcance de lectura.
|
|
10
|
+
|
|
11
|
+
## Foco (pesa por los riskSignals de la tarea)
|
|
12
|
+
- Corrección vs. la **spec normativa** — no vs. tus suposiciones.
|
|
13
|
+
- Reglas de negocio, casos borde e integridad de datos.
|
|
14
|
+
- Seguridad, authz/authn, secretos, inyección, exposición de PII.
|
|
15
|
+
- Migraciones: reversibilidad, backfill, downtime, orden.
|
|
16
|
+
- Contratos cross-repo: ¿el cambio honra la API/interfaz que ambos lados esperan?
|
|
17
|
+
- Premisas ocultas del implementer que no están en la spec.
|
|
18
|
+
|
|
19
|
+
## Método
|
|
20
|
+
1. Lee los archivos cambiados y las secciones de la spec que los gobiernan.
|
|
21
|
+
2. Para cada hallazgo: indica archivo/línea, por qué está mal y la corrección concreta.
|
|
22
|
+
3. Clasifica cada hallazgo: `blocking` | `should-fix` | `nit`.
|
|
23
|
+
4. Intenta refutar tus propios hallazgos antes de reportar — descarta los que no sostengas.
|
|
24
|
+
|
|
25
|
+
## Nunca
|
|
26
|
+
- Aprobar por cortesía. Si está correcto, dilo brevemente y sigue.
|
|
27
|
+
- Modificar código (tú revisas; los implementers corrigen).
|
|
28
|
+
|
|
29
|
+
## Retorno
|
|
30
|
+
summary / changes(=lista de hallazgos) / evidence / tests(=qué testearías) / unresolved / confidence
|
|
31
|
+
Marca claramente **PASS** o **BLOCKED** (cualquier hallazgo blocking ⇒ BLOCKED).
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Arquetipo: tester
|
|
2
|
+
|
|
3
|
+
Eres un **tester efímero**. Validas criterios de aceptación y riesgo de regresión usando
|
|
4
|
+
los comandos del propio proyecto. De sesión: `repository: null`.
|
|
5
|
+
|
|
6
|
+
## Recibes
|
|
7
|
+
- Los criterios de aceptación del objetivo (de la spec).
|
|
8
|
+
- La lista de repos impactados y el `testCommand` de cada uno (del manifiesto).
|
|
9
|
+
- Un **contrato de contexto**.
|
|
10
|
+
|
|
11
|
+
## Haz
|
|
12
|
+
1. Para cada repo impactado, corre el `testCommand` dentro del worktree. Si no hay, usa el
|
|
13
|
+
enfoque de test documentado en el proyecto y di qué asumiste.
|
|
14
|
+
2. Mapea cada criterio de aceptación a un check concreto (test existente, test nuevo o
|
|
15
|
+
evidencia manual). Anota cualquier criterio que no pudiste verificar.
|
|
16
|
+
3. Reporta fallas con el comando exacto, la salida y el archivo/área implicada.
|
|
17
|
+
4. NO corrijas código — reporta para que un implementer corrija.
|
|
18
|
+
|
|
19
|
+
## Retorno
|
|
20
|
+
summary / changes(=ninguno, o tests nuevos) / evidence(=comandos + salidas) /
|
|
21
|
+
tests(=pass/fail por repo + cobertura de criterios) / unresolved / confidence.
|
|
22
|
+
Marca **GREEN** (todo pasa, criterios cubiertos) o **RED** (fallas / criterios sin cubrir).
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
# Planificación Técnica
|
|
2
|
+
|
|
3
|
+
Este comando crea el plan técnico detallado para la implementación de la funcionalidad.
|
|
4
|
+
|
|
5
|
+
## 📋 Requisitos Previos
|
|
6
|
+
|
|
7
|
+
- PRD creado vía `/spec`
|
|
8
|
+
- Análisis inicial realizado vía `/start`
|
|
9
|
+
- Archivos `context.md` y `architecture.md` creados y aprobados
|
|
10
|
+
|
|
11
|
+
## 📋 Configuración del Proyecto
|
|
12
|
+
|
|
13
|
+
**⚠️ IMPORTANTE: ¡Siempre lea los archivos de configuración del proyecto ANTES de ejecutar este comando!**
|
|
14
|
+
|
|
15
|
+
### Archivos Obligatorios
|
|
16
|
+
|
|
17
|
+
1. **`context-manifest.json`** (raíz del orquestador)
|
|
18
|
+
- Lista de repositorios del proyecto
|
|
19
|
+
- Roles de cada repositorio (metaspecs, application, etc.)
|
|
20
|
+
- URLs y dependencias entre repositorios
|
|
21
|
+
|
|
22
|
+
2. **`ai.properties.md`** (raíz del orquestador)
|
|
23
|
+
- Configuraciones del proyecto (`project_name`, `base_path`)
|
|
24
|
+
- Sistema de gestión de tareas (`task_management_system`)
|
|
25
|
+
- Credenciales y configuraciones específicas
|
|
26
|
+
|
|
27
|
+
### Cómo Leer
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# 1. Leer context-manifest.json
|
|
31
|
+
cat context-manifest.json
|
|
32
|
+
|
|
33
|
+
# 2. Leer ai.properties.md
|
|
34
|
+
cat ai.properties.md
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Información Esencial
|
|
38
|
+
|
|
39
|
+
Después de leer los archivos, tendrás:
|
|
40
|
+
- ✅ Lista completa de repositorios del proyecto
|
|
41
|
+
- ✅ Ubicación del repositorio de metaspecs
|
|
42
|
+
- ✅ Base path para localizar repositorios
|
|
43
|
+
- ✅ Sistema de gestión de tareas configurado
|
|
44
|
+
- ✅ Configuraciones específicas del proyecto
|
|
45
|
+
|
|
46
|
+
**🛑 NO continúe sin leer estos archivos!** Contienen información crítica para la correcta ejecución del comando.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## 📍 IMPORTANTE: Entienda la Estructura
|
|
50
|
+
|
|
51
|
+
**Workspace**:
|
|
52
|
+
```
|
|
53
|
+
<orchestrator>/.sessions/<ISSUE-ID>/
|
|
54
|
+
├── repo-1/ # worktree (se usará en /work)
|
|
55
|
+
├── repo-2/ # worktree (se usará en /work)
|
|
56
|
+
├── context.md # contexto (inmutable - LEER)
|
|
57
|
+
├── architecture.md # arquitectura (inmutable - LEER)
|
|
58
|
+
└── plan.md # plan (mutable - CREAR)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Repositorios principales** (solo lectura):
|
|
62
|
+
```
|
|
63
|
+
{base_path}/repo-1/ # repo principal (branch main/master)
|
|
64
|
+
{base_path}/repo-2/ # repo principal (branch main/master)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**REGLA DE ORO**:
|
|
68
|
+
- ✅ Lea `context.md` y `architecture.md` (inmutables)
|
|
69
|
+
- ✅ Cree `plan.md` en `.sessions/<ISSUE-ID>/`
|
|
70
|
+
- ✅ Lea código de los repositorios principales (solo lectura)
|
|
71
|
+
- ❌ NUNCA haga checkout en los repositorios principales
|
|
72
|
+
- ❌ NUNCA modifique `context.md` o `architecture.md`
|
|
73
|
+
|
|
74
|
+
## ⚠️ IMPORTANTE: Archivos Inmutables
|
|
75
|
+
|
|
76
|
+
**Este comando debe LEER pero NO MODIFICAR:**
|
|
77
|
+
- ✅ **LEER** `.sessions/<ISSUE-ID>/context.md` (inmutable)
|
|
78
|
+
- ✅ **LEER** `.sessions/<ISSUE-ID>/architecture.md` (inmutable)
|
|
79
|
+
- ✅ **CREAR** `.sessions/<ISSUE-ID>/plan.md` (mutable - se actualizará durante `/work`)
|
|
80
|
+
- ❌ **NO modificar `context.md` o `architecture.md`**
|
|
81
|
+
|
|
82
|
+
## 📚 Cargar MetaSpecs
|
|
83
|
+
|
|
84
|
+
**Localizar MetaSpecs automáticamente**:
|
|
85
|
+
1. Lea `context-manifest.json` del orquestador
|
|
86
|
+
2. Encuentre el repositorio con `"role": "metaspecs"`
|
|
87
|
+
3. Lea `ai.properties.md` para obtener el `base_path`
|
|
88
|
+
4. El metaspecs está en: `{base_path}/{metaspecs-repo-id}/`
|
|
89
|
+
5. Lea los archivos `index.md` relevantes para asegurar conformidad con:
|
|
90
|
+
- Arquitectura del sistema
|
|
91
|
+
- Patrones de diseño y código
|
|
92
|
+
- Estructura de carpetas y archivos
|
|
93
|
+
- Convenciones de nomenclatura
|
|
94
|
+
|
|
95
|
+
## 🎯 Objetivo
|
|
96
|
+
|
|
97
|
+
Crear un plan técnico detallado que guiará la implementación, dividiendo el trabajo en unidades más pequeñas y secuenciales.
|
|
98
|
+
|
|
99
|
+
## 📝 Estructura del Plan
|
|
100
|
+
|
|
101
|
+
### 1. Visión General Técnica
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
# Plan Técnico - [Título de la Funcionalidad]
|
|
105
|
+
|
|
106
|
+
## Resumen
|
|
107
|
+
[Breve descripción técnica de lo que se implementará]
|
|
108
|
+
|
|
109
|
+
## Repositorios Involucrados
|
|
110
|
+
- **<repo-1>**: [Rol en esta funcionalidad]
|
|
111
|
+
- **<repo-2>**: [Rol en esta funcionalidad]
|
|
112
|
+
|
|
113
|
+
## Enfoque Técnico
|
|
114
|
+
[Estrategia general de implementación]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 2. Arquitectura de la Solución
|
|
118
|
+
|
|
119
|
+
```markdown
|
|
120
|
+
## Arquitectura
|
|
121
|
+
|
|
122
|
+
### Diagrama de Componentes
|
|
123
|
+
[Descripción textual o arte ASCII de los componentes y sus relaciones]
|
|
124
|
+
|
|
125
|
+
### Flujo de Datos
|
|
126
|
+
1. [Paso 1 del flujo]
|
|
127
|
+
2. [Paso 2 del flujo]
|
|
128
|
+
3. [Paso 3 del flujo]
|
|
129
|
+
|
|
130
|
+
### Integraciones
|
|
131
|
+
- **<repo-1> → <repo-2>**: [Cómo se comunican]
|
|
132
|
+
- **Sistema → API Externa**: [Si aplica]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 3. Decisiones Técnicas
|
|
136
|
+
|
|
137
|
+
```markdown
|
|
138
|
+
## Decisiones Técnicas
|
|
139
|
+
|
|
140
|
+
### Decisión 1: [Título]
|
|
141
|
+
**Contexto**: [Por qué necesitamos decidir esto]
|
|
142
|
+
**Opciones consideradas**:
|
|
143
|
+
- Opción A: [Pros y contras]
|
|
144
|
+
- Opción B: [Pros y contras]
|
|
145
|
+
**Decisión**: [Opción elegida]
|
|
146
|
+
**Justificación**: [Por qué elegimos esta opción]
|
|
147
|
+
|
|
148
|
+
### Decisión 2: [Título]
|
|
149
|
+
[Mismo formato anterior]
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### 4. Plan de Implementación
|
|
153
|
+
|
|
154
|
+
Divida el trabajo en unidades pequeñas y secuenciales:
|
|
155
|
+
|
|
156
|
+
```markdown
|
|
157
|
+
## Plan de Implementación
|
|
158
|
+
|
|
159
|
+
### Fase 1: [Nombre de la Fase]
|
|
160
|
+
**Objetivo**: [Qué se logrará en esta fase]
|
|
161
|
+
**Repositorios**: [repos afectados]
|
|
162
|
+
|
|
163
|
+
#### Tarea 1.1: [Descripción]
|
|
164
|
+
- **Repo**: <repo-1>
|
|
165
|
+
- **Archivos**: [archivos a crear/modificar]
|
|
166
|
+
- **Descripción**: [Qué hacer]
|
|
167
|
+
- **Pruebas**: [Pruebas a implementar]
|
|
168
|
+
- **Estimación**: [tiempo estimado]
|
|
169
|
+
|
|
170
|
+
#### Tarea 1.2: [Descripción]
|
|
171
|
+
- **Repo**: <repo-2>
|
|
172
|
+
- **Archivos**: [archivos a crear/modificar]
|
|
173
|
+
- **Descripción**: [Qué hacer]
|
|
174
|
+
- **Pruebas**: [Pruebas a implementar]
|
|
175
|
+
- **Estimación**: [tiempo estimado]
|
|
176
|
+
|
|
177
|
+
### Fase 2: [Nombre de la Fase]
|
|
178
|
+
[Mismo formato anterior]
|
|
179
|
+
|
|
180
|
+
### Fase 3: [Nombre de la Fase]
|
|
181
|
+
[Mismo formato anterior]
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### 5. Estructura de Archivos
|
|
185
|
+
|
|
186
|
+
Para cada repositorio, defina la estructura:
|
|
187
|
+
|
|
188
|
+
```markdown
|
|
189
|
+
## Estructura de Archivos
|
|
190
|
+
|
|
191
|
+
### <repo-1>
|
|
192
|
+
```
|
|
193
|
+
src/
|
|
194
|
+
├── components/
|
|
195
|
+
│ ├── NewComponent.tsx (CREAR)
|
|
196
|
+
│ └── ExistingComponent.tsx (MODIFICAR)
|
|
197
|
+
├── services/
|
|
198
|
+
│ └── NewService.ts (CREAR)
|
|
199
|
+
└── tests/
|
|
200
|
+
└── NewComponent.test.tsx (CREAR)
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### <repo-2>
|
|
204
|
+
```
|
|
205
|
+
src/
|
|
206
|
+
├── controllers/
|
|
207
|
+
│ └── NewController.ts (CREAR)
|
|
208
|
+
└── tests/
|
|
209
|
+
└── NewController.test.ts (CREAR)
|
|
210
|
+
```
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### 6. APIs y Contratos
|
|
214
|
+
|
|
215
|
+
```markdown
|
|
216
|
+
## APIs y Contratos
|
|
217
|
+
|
|
218
|
+
### Endpoints Nuevos
|
|
219
|
+
|
|
220
|
+
#### POST /api/resource
|
|
221
|
+
**Request**:
|
|
222
|
+
```json
|
|
223
|
+
{
|
|
224
|
+
"field1": "string",
|
|
225
|
+
"field2": "number"
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
**Response**:
|
|
230
|
+
```json
|
|
231
|
+
{
|
|
232
|
+
"id": "string",
|
|
233
|
+
"status": "string"
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Endpoints Modificados
|
|
238
|
+
|
|
239
|
+
#### GET /api/resource/:id
|
|
240
|
+
**Cambios**: [Qué cambia]
|
|
241
|
+
**Breaking Change**: Sí / No
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### 7. Estrategia de Pruebas
|
|
245
|
+
|
|
246
|
+
```markdown
|
|
247
|
+
## Estrategia de Pruebas
|
|
248
|
+
|
|
249
|
+
### Pruebas Unitarias
|
|
250
|
+
- **<repo-1>**: [Componentes/funciones a probar]
|
|
251
|
+
- **<repo-2>**: [Componentes/funciones a probar]
|
|
252
|
+
|
|
253
|
+
### Pruebas de Integración
|
|
254
|
+
- **Escenario 1**: [Descripción y repos involucrados]
|
|
255
|
+
- **Escenario 2**: [Descripción y repos involucrados]
|
|
256
|
+
|
|
257
|
+
### Pruebas E2E (si aplica)
|
|
258
|
+
- **Flujo 1**: [Descripción]
|
|
259
|
+
- **Flujo 2**: [Descripción]
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### 8. Riesgos Técnicos
|
|
263
|
+
|
|
264
|
+
```markdown
|
|
265
|
+
## Riesgos Técnicos
|
|
266
|
+
|
|
267
|
+
### Riesgo 1: [Descripción]
|
|
268
|
+
- **Impacto**: Alto / Medio / Bajo
|
|
269
|
+
- **Probabilidad**: Alta / Media / Baja
|
|
270
|
+
- **Mitigación**: [Cómo mitigar]
|
|
271
|
+
- **Plan B**: [Alternativa si ocurre]
|
|
272
|
+
|
|
273
|
+
### Riesgo 2: [Descripción]
|
|
274
|
+
[Mismo formato anterior]
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### 9. Checklist de Implementación
|
|
278
|
+
|
|
279
|
+
```markdown
|
|
280
|
+
## Checklist de Implementación
|
|
281
|
+
|
|
282
|
+
### Fase 1
|
|
283
|
+
- [ ] Tarea 1.1
|
|
284
|
+
- [ ] Tarea 1.2
|
|
285
|
+
- [ ] Pruebas de la Fase 1
|
|
286
|
+
|
|
287
|
+
### Fase 2
|
|
288
|
+
- [ ] Tarea 2.1
|
|
289
|
+
- [ ] Tarea 2.2
|
|
290
|
+
- [ ] Pruebas de la Fase 2
|
|
291
|
+
|
|
292
|
+
### Fase 3
|
|
293
|
+
- [ ] Tarea 3.1
|
|
294
|
+
- [ ] Tarea 3.2
|
|
295
|
+
- [ ] Pruebas de la Fase 3
|
|
296
|
+
|
|
297
|
+
### Finalización
|
|
298
|
+
- [ ] Documentación actualizada
|
|
299
|
+
- [ ] Code review
|
|
300
|
+
- [ ] Pruebas de integración
|
|
301
|
+
- [ ] PR creado
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
## 📄 Guardado del Plan
|
|
305
|
+
|
|
306
|
+
Guarde en `./.sessions/<ISSUE-ID>/plan.md`
|
|
307
|
+
|
|
308
|
+
## 🔍 Revisión
|
|
309
|
+
|
|
310
|
+
Revise el plan verificando:
|
|
311
|
+
- Todas las tareas están claras y ejecutables
|
|
312
|
+
- Dependencias entre tareas están identificadas
|
|
313
|
+
- Las estimaciones son realistas
|
|
314
|
+
- Los riesgos fueron considerados
|
|
315
|
+
- La estrategia de pruebas es adecuada
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
**Argumentos proporcionados**:
|
|
320
|
+
|
|
321
|
+
```
|
|
322
|
+
#$ARGUMENTS
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## 🎯 Próximo Paso
|
|
328
|
+
|
|
329
|
+
Después de la aprobación del plan:
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
/work
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
Este comando iniciará la ejecución de la primera unidad de trabajo del plan.
|