context-first-cli 1.8.2 → 2.0.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/dist/commands/create-orchestrator.d.ts.map +1 -1
- package/dist/commands/create-orchestrator.js +15 -3
- package/dist/commands/create-orchestrator.js.map +1 -1
- package/dist/commands/feature.d.ts.map +1 -1
- package/dist/commands/feature.js +33 -2
- package/dist/commands/feature.js.map +1 -1
- package/dist/commands/update-commands.d.ts.map +1 -1
- package/dist/commands/update-commands.js +42 -2
- package/dist/commands/update-commands.js.map +1 -1
- package/dist/templates/commands/en/engineer/plan.md +297 -0
- package/dist/templates/commands/en/engineer/pr.md +167 -0
- package/dist/templates/commands/en/engineer/pre-pr.md +262 -0
- package/dist/templates/commands/en/engineer/start.md +281 -0
- package/dist/templates/commands/en/engineer/work.md +197 -0
- package/dist/templates/commands/en/products/check.md +233 -0
- package/dist/templates/commands/en/products/collect.md +156 -0
- package/dist/templates/commands/en/products/refine.md +222 -0
- package/dist/templates/commands/en/products/spec.md +267 -0
- package/dist/templates/commands/en/quality/metrics.md +240 -0
- package/dist/templates/commands/en/quality/observe.md +168 -0
- package/dist/templates/commands/en/warm-up.md +78 -0
- package/dist/templates/commands/es/engineer/plan.md +297 -0
- package/dist/templates/commands/es/engineer/pr.md +167 -0
- package/dist/templates/commands/es/engineer/pre-pr.md +262 -0
- package/dist/templates/commands/es/engineer/start.md +281 -0
- package/dist/templates/commands/es/engineer/work.md +197 -0
- package/dist/templates/commands/es/products/check.md +233 -0
- package/dist/templates/commands/es/products/collect.md +156 -0
- package/dist/templates/commands/es/products/refine.md +222 -0
- package/dist/templates/commands/es/products/spec.md +267 -0
- package/dist/templates/commands/es/quality/metrics.md +240 -0
- package/dist/templates/commands/es/quality/observe.md +168 -0
- package/dist/templates/commands/es/warm-up.md +78 -0
- package/dist/utils/config.d.ts +1 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js.map +1 -1
- package/package.json +1 -1
- package/templates/commands/en/engineer/plan.md +297 -0
- package/templates/commands/en/engineer/pr.md +167 -0
- package/templates/commands/en/engineer/pre-pr.md +262 -0
- package/templates/commands/en/engineer/start.md +281 -0
- package/templates/commands/en/engineer/work.md +197 -0
- package/templates/commands/en/products/check.md +233 -0
- package/templates/commands/en/products/collect.md +156 -0
- package/templates/commands/en/products/refine.md +222 -0
- package/templates/commands/en/products/spec.md +267 -0
- package/templates/commands/en/quality/metrics.md +240 -0
- package/templates/commands/en/quality/observe.md +168 -0
- package/templates/commands/en/warm-up.md +78 -0
- package/templates/commands/es/engineer/plan.md +297 -0
- package/templates/commands/es/engineer/pr.md +167 -0
- package/templates/commands/es/engineer/pre-pr.md +262 -0
- package/templates/commands/es/engineer/start.md +281 -0
- package/templates/commands/es/engineer/work.md +197 -0
- package/templates/commands/es/products/check.md +233 -0
- package/templates/commands/es/products/collect.md +156 -0
- package/templates/commands/es/products/refine.md +222 -0
- package/templates/commands/es/products/spec.md +267 -0
- package/templates/commands/es/quality/metrics.md +240 -0
- package/templates/commands/es/quality/observe.md +168 -0
- package/templates/commands/es/warm-up.md +78 -0
- package/templates/commands/pt-BR/engineer/plan.md +297 -0
- package/templates/commands/pt-BR/engineer/pr.md +167 -0
- package/templates/commands/pt-BR/engineer/pre-pr.md +262 -0
- package/templates/commands/pt-BR/engineer/start.md +281 -0
- package/templates/commands/pt-BR/engineer/work.md +197 -0
- package/templates/commands/pt-BR/products/check.md +233 -0
- package/templates/commands/pt-BR/products/collect.md +156 -0
- package/templates/commands/pt-BR/products/refine.md +222 -0
- package/templates/commands/pt-BR/products/spec.md +267 -0
- package/templates/commands/pt-BR/quality/metrics.md +240 -0
- package/templates/commands/pt-BR/quality/observe.md +168 -0
- package/templates/commands/pt-BR/warm-up.md +78 -0
- /package/{templates/commands → dist/templates/commands/pt-BR}/engineer/plan.md +0 -0
- /package/{templates/commands → dist/templates/commands/pt-BR}/engineer/pr.md +0 -0
- /package/{templates/commands → dist/templates/commands/pt-BR}/engineer/pre-pr.md +0 -0
- /package/{templates/commands → dist/templates/commands/pt-BR}/engineer/start.md +0 -0
- /package/{templates/commands → dist/templates/commands/pt-BR}/engineer/work.md +0 -0
- /package/{templates/commands → dist/templates/commands/pt-BR}/products/check.md +0 -0
- /package/{templates/commands → dist/templates/commands/pt-BR}/products/collect.md +0 -0
- /package/{templates/commands → dist/templates/commands/pt-BR}/products/refine.md +0 -0
- /package/{templates/commands → dist/templates/commands/pt-BR}/products/spec.md +0 -0
- /package/{templates/commands → dist/templates/commands/pt-BR}/quality/metrics.md +0 -0
- /package/{templates/commands → dist/templates/commands/pt-BR}/quality/observe.md +0 -0
- /package/{templates/commands → dist/templates/commands/pt-BR}/warm-up.md +0 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Observabilidad de Decisiones
|
|
2
|
+
|
|
3
|
+
Este comando registra decisiones importantes tomadas durante el desarrollo, creando un registro auditable para explicabilidad y trazabilidad.
|
|
4
|
+
|
|
5
|
+
## 🎯 Objetivo
|
|
6
|
+
|
|
7
|
+
Crear un registro estructurado de decisiones técnicas y de producto, garantizando:
|
|
8
|
+
- **Explicabilidad**: Por qué se tomó cada decisión
|
|
9
|
+
- **Trazabilidad**: Qué fuentes (PRD, metaspecs, ADRs) fundamentaron la decisión
|
|
10
|
+
- **Auditoría**: Historial completo de elecciones para revisión futura
|
|
11
|
+
- **Aprendizaje**: Documentación de trade-offs y alternativas consideradas
|
|
12
|
+
|
|
13
|
+
**IMPORTANTE**: Este comando NO genera decisiones nuevas. Solo REGISTRA decisiones que ya fueron tomadas en el proceso de desarrollo.
|
|
14
|
+
|
|
15
|
+
## 📋 Requisitos previos
|
|
16
|
+
|
|
17
|
+
- Haber ejecutado al menos uno de los comandos que generan decisiones:
|
|
18
|
+
- `/spec` - genera PRD con decisiones de producto
|
|
19
|
+
- `/plan` - genera plan.md con decisiones técnicas
|
|
20
|
+
- `/work` - implementación genera decisiones durante el desarrollo
|
|
21
|
+
|
|
22
|
+
## 🔍 Proceso de Observación
|
|
23
|
+
|
|
24
|
+
### 1. Identificar Decisiones Relevantes
|
|
25
|
+
|
|
26
|
+
Analice los archivos de la sesión (`./.sessions/<ISSUE-ID>/`) para identificar decisiones:
|
|
27
|
+
|
|
28
|
+
**Después de `/spec`** - Decisiones de Producto:
|
|
29
|
+
- Lea `./.sessions/<ISSUE-ID>/prd.md`
|
|
30
|
+
- Identifique decisiones en:
|
|
31
|
+
- Alcance (qué entra/no entra en la feature)
|
|
32
|
+
- Personas atendidas (quién es el público objetivo)
|
|
33
|
+
- Métricas de éxito (cómo medir resultados)
|
|
34
|
+
- Requisitos no funcionales (performance, accesibilidad)
|
|
35
|
+
- Restricciones y trade-offs
|
|
36
|
+
|
|
37
|
+
**Después de `/plan`** - Decisiones Técnicas:
|
|
38
|
+
- Lea `./.sessions/<ISSUE-ID>/plan.md`
|
|
39
|
+
- Identifique decisiones en:
|
|
40
|
+
- Arquitectura de componentes/módulos
|
|
41
|
+
- Elección de bibliotecas o herramientas
|
|
42
|
+
- Patrones de implementación
|
|
43
|
+
- Estructura de datos
|
|
44
|
+
- Estrategia de tests
|
|
45
|
+
|
|
46
|
+
**Durante `/work`** - Decisiones de Implementación:
|
|
47
|
+
- Lea `./.sessions/<ISSUE-ID>/work.md`
|
|
48
|
+
- Identifique decisiones en:
|
|
49
|
+
- Refactorizaciones realizadas
|
|
50
|
+
- Cambios de enfoque
|
|
51
|
+
- Optimizaciones aplicadas
|
|
52
|
+
- Tratamiento de edge cases
|
|
53
|
+
|
|
54
|
+
### 2. Documentar Cada Decisión
|
|
55
|
+
|
|
56
|
+
Para cada decisión identificada, documente:
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
## Decisión: [Título Claro]
|
|
60
|
+
|
|
61
|
+
**Contexto**: [¿Por qué necesitamos decidir esto? ¿Cuál es el problema o necesidad?]
|
|
62
|
+
|
|
63
|
+
**Opciones Consideradas**:
|
|
64
|
+
1. **Opción A**: [Descripción]
|
|
65
|
+
- Pros: [ventajas]
|
|
66
|
+
- Contras: [desventajas]
|
|
67
|
+
2. **Opción B**: [Descripción]
|
|
68
|
+
- Pros: [ventajas]
|
|
69
|
+
- Contras: [desventajas]
|
|
70
|
+
|
|
71
|
+
**Decisión**: [Opción elegida]
|
|
72
|
+
|
|
73
|
+
**Justificación**: [¿Por qué elegimos esta opción? ¿Qué criterios fueron más importantes?]
|
|
74
|
+
|
|
75
|
+
**Fuentes**:
|
|
76
|
+
- [PRD sección X]
|
|
77
|
+
- [Metaspec Y]
|
|
78
|
+
- [ADR-00Z]
|
|
79
|
+
|
|
80
|
+
**Trade-offs Aceptados**: [¿Qué desventajas aceptamos conscientemente?]
|
|
81
|
+
|
|
82
|
+
**Reversibilidad**: Fácil / Media / Difícil
|
|
83
|
+
|
|
84
|
+
**Fecha**: [fecha de la decisión]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 3. Crear Registro de Decisiones
|
|
88
|
+
|
|
89
|
+
Guarde en `./.sessions/<ISSUE-ID>/decisions.md`:
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
# Registro de Decisiones - [ISSUE-ID]
|
|
93
|
+
|
|
94
|
+
## Resumen
|
|
95
|
+
[Breve resumen de las principales decisiones tomadas en esta feature]
|
|
96
|
+
|
|
97
|
+
## Decisiones de Producto
|
|
98
|
+
|
|
99
|
+
### [Decisión 1]
|
|
100
|
+
[Según plantilla arriba]
|
|
101
|
+
|
|
102
|
+
### [Decisión 2]
|
|
103
|
+
[Según plantilla arriba]
|
|
104
|
+
|
|
105
|
+
## Decisiones Técnicas
|
|
106
|
+
|
|
107
|
+
### [Decisión 3]
|
|
108
|
+
[Según plantilla arriba]
|
|
109
|
+
|
|
110
|
+
### [Decisión 4]
|
|
111
|
+
[Según plantilla arriba]
|
|
112
|
+
|
|
113
|
+
## Decisiones de Implementación
|
|
114
|
+
|
|
115
|
+
### [Decisión 5]
|
|
116
|
+
[Según plantilla arriba]
|
|
117
|
+
|
|
118
|
+
## Lecciones Aprendidas
|
|
119
|
+
- [Lección 1]
|
|
120
|
+
- [Lección 2]
|
|
121
|
+
|
|
122
|
+
## Decisiones Pendientes
|
|
123
|
+
- [Decisión que aún necesita ser tomada]
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## 📊 Análisis de Impacto
|
|
127
|
+
|
|
128
|
+
Para decisiones críticas, documente el impacto:
|
|
129
|
+
|
|
130
|
+
```markdown
|
|
131
|
+
## Análisis de Impacto
|
|
132
|
+
|
|
133
|
+
**Repositorios Afectados**: [lista]
|
|
134
|
+
|
|
135
|
+
**Componentes Impactados**: [lista]
|
|
136
|
+
|
|
137
|
+
**Dependencias Creadas**: [lista]
|
|
138
|
+
|
|
139
|
+
**Riesgos Introducidos**: [lista]
|
|
140
|
+
|
|
141
|
+
**Mitigaciones Aplicadas**: [lista]
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## 🔄 Revisión de Decisiones
|
|
145
|
+
|
|
146
|
+
Periódicamente, revise las decisiones tomadas:
|
|
147
|
+
- ¿Siguen teniendo sentido?
|
|
148
|
+
- ¿Los trade-offs se demostraron correctos?
|
|
149
|
+
- ¿Hay aprendizajes para documentar?
|
|
150
|
+
- ¿Alguna decisión necesita ser revertida?
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
**Argumentos proporcionados**:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
#$ARGUMENTS
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 🎯 Resultado
|
|
163
|
+
|
|
164
|
+
Después de ejecutar este comando, tendrá:
|
|
165
|
+
- Registro completo de decisiones en `./.sessions/<ISSUE-ID>/decisions.md`
|
|
166
|
+
- Trazabilidad de cada elección realizada
|
|
167
|
+
- Documentación para futuras referencias
|
|
168
|
+
- Base para ADRs (si las decisiones son de arquitectura)
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Calentamiento - Carga de Contexto
|
|
2
|
+
|
|
3
|
+
Este comando prepara el entorno cargando el contexto completo del proyecto y del workspace actual.
|
|
4
|
+
|
|
5
|
+
## 1. Identificar Workspace Actual
|
|
6
|
+
|
|
7
|
+
Verifique si está dentro de un workspace creado por `context-cli`:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Verificar si está en un directorio de workspace
|
|
11
|
+
pwd
|
|
12
|
+
# El workspace generalmente está en ~/workspaces/<ISSUE-ID>/
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Si no está en un workspace, pregunte al usuario qué workspace usar o si debe crear uno nuevo con `feature:start`.
|
|
16
|
+
|
|
17
|
+
## 2. Cargar Configuración del Proyecto
|
|
18
|
+
|
|
19
|
+
Identifique el orchestrator del proyecto:
|
|
20
|
+
|
|
21
|
+
1. **Busque el archivo `.contextrc.json`** en cualquiera de los repositorios del workspace
|
|
22
|
+
2. Este archivo contiene la URL del repositorio orchestrator
|
|
23
|
+
3. Si el orchestrator aún no está clonado localmente, clónelo
|
|
24
|
+
|
|
25
|
+
## 3. Cargar Manifiesto del Proyecto
|
|
26
|
+
|
|
27
|
+
Lea el `context-manifest.json` del orchestrator para entender:
|
|
28
|
+
- Lista completa de repositorios del ecosistema
|
|
29
|
+
- URL del repositorio de MetaSpecs
|
|
30
|
+
- Dependencias entre repositorios
|
|
31
|
+
- Roles de cada repositorio (application, library, service, specs-provider)
|
|
32
|
+
|
|
33
|
+
## 4. Cargar MetaSpecs
|
|
34
|
+
|
|
35
|
+
El repositorio de MetaSpecs está definido en `context-manifest.json` (generalmente con `role: "specs-provider"`).
|
|
36
|
+
|
|
37
|
+
**Lea siempre los archivos de índice primero:**
|
|
38
|
+
|
|
39
|
+
1. **`README.md`** - Visión general del proyecto y estructura de documentación
|
|
40
|
+
2. **`index.md`** (en la raíz o en subcarpetas) - Índice de especificaciones disponibles
|
|
41
|
+
|
|
42
|
+
**Use los índices como referencia** para navegar hasta las especificaciones específicas que necesita. No asuma que archivos específicos existen - siempre consulte los índices primero.
|
|
43
|
+
|
|
44
|
+
## 5. Cargar Sesión Actual (si existe)
|
|
45
|
+
|
|
46
|
+
Verifique si existe una sesión guardada para este workspace:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Buscar sesión en orchestrator
|
|
50
|
+
ls -la .sessions/<ISSUE-ID>/ 2>/dev/null
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Si existe, lea los archivos de sesión para recuperar el contexto de la última ejecución.
|
|
54
|
+
|
|
55
|
+
## 6. Contexto de los Repositorios
|
|
56
|
+
|
|
57
|
+
Para cada repositorio presente en el workspace, lea:
|
|
58
|
+
- `README.md` - Propósito y visión general del repositorio
|
|
59
|
+
- Archivo de configuración principal (`package.json`, `pom.xml`, `requirements.txt`, etc.)
|
|
60
|
+
|
|
61
|
+
## 7. Navegación Inteligente
|
|
62
|
+
|
|
63
|
+
- **Código**: Use herramientas de búsqueda (glob, grep) para localizar archivos relevantes
|
|
64
|
+
- **Documentación**: Use los índices de MetaSpecs como referencia
|
|
65
|
+
- **Espere Instrucciones**: NO lea otros archivos ahora. Espere el próximo comando.
|
|
66
|
+
|
|
67
|
+
## 8. Principio Jidoka (Parar al Detectar Problemas)
|
|
68
|
+
|
|
69
|
+
Si detecta desalineamiento, conflictos o problemas:
|
|
70
|
+
1. 🛑 **PARE** inmediatamente
|
|
71
|
+
2. 📝 **DOCUMENTE** el problema encontrado
|
|
72
|
+
3. 💬 **ALERTE** al usuario antes de proceder
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
**Argumentos proporcionados**: #$ARGUMENTS
|
|
77
|
+
|
|
78
|
+
**Estado**: Contexto cargado. Esperando próximo comando.
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,GAAG,aAAa,GAAG,SAAS,CAAC;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAQ3F;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,GAAE,MAAsB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAgB/H;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAQ5F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAQpG;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7G;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAGpD"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,GAAG,aAAa,GAAG,SAAS,CAAC;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAQ3F;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,GAAE,MAAsB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAgB/H;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAQ5F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAQpG;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7G;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAGpD"}
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# Technical Planning
|
|
2
|
+
|
|
3
|
+
This command creates the detailed technical plan for feature implementation.
|
|
4
|
+
|
|
5
|
+
## 📋 Prerequisites
|
|
6
|
+
|
|
7
|
+
- PRD created via `/spec`
|
|
8
|
+
- Initial analysis done via `/start`
|
|
9
|
+
- Files `context.md` and `architecture.md` created and approved
|
|
10
|
+
|
|
11
|
+
## 📍 IMPORTANT: Understand the Structure
|
|
12
|
+
|
|
13
|
+
**Workspace**:
|
|
14
|
+
```
|
|
15
|
+
<orchestrator>/.sessions/<ISSUE-ID>/
|
|
16
|
+
├── repo-1/ # worktree (will be used in /work)
|
|
17
|
+
├── repo-2/ # worktree (will be used in /work)
|
|
18
|
+
├── context.md # context (immutable - READ)
|
|
19
|
+
├── architecture.md # architecture (immutable - READ)
|
|
20
|
+
└── plan.md # plan (mutable - CREATE)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Main repositories** (read-only):
|
|
24
|
+
```
|
|
25
|
+
{base_path}/repo-1/ # main repo (branch main/master)
|
|
26
|
+
{base_path}/repo-2/ # main repo (branch main/master)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**GOLDEN RULE**:
|
|
30
|
+
- ✅ Read `context.md` and `architecture.md` (immutable)
|
|
31
|
+
- ✅ Create `plan.md` in `.sessions/<ISSUE-ID>/`
|
|
32
|
+
- ✅ Read code from main repositories (read-only)
|
|
33
|
+
- ❌ NEVER checkout main repositories
|
|
34
|
+
- ❌ NEVER modify `context.md` or `architecture.md`
|
|
35
|
+
|
|
36
|
+
## ⚠️ IMPORTANT: Immutable Files
|
|
37
|
+
|
|
38
|
+
**This command must READ but NOT MODIFY:**
|
|
39
|
+
- ✅ **READ** `.sessions/<ISSUE-ID>/context.md` (immutable)
|
|
40
|
+
- ✅ **READ** `.sessions/<ISSUE-ID>/architecture.md` (immutable)
|
|
41
|
+
- ✅ **CREATE** `.sessions/<ISSUE-ID>/plan.md` (mutable - will be updated during `/work`)
|
|
42
|
+
- ❌ **DO NOT modify `context.md` or `architecture.md`**
|
|
43
|
+
|
|
44
|
+
## 📚 Load MetaSpecs
|
|
45
|
+
|
|
46
|
+
**Automatically locate MetaSpecs**:
|
|
47
|
+
1. Read `context-manifest.json` from the orchestrator
|
|
48
|
+
2. Find the repository with `"role": "metaspecs"`
|
|
49
|
+
3. Read `ai.properties.md` to obtain the `base_path`
|
|
50
|
+
4. The metaspecs are located at: `{base_path}/{metaspecs-repo-id}/`
|
|
51
|
+
5. Read the relevant `index.md` files to ensure compliance with:
|
|
52
|
+
- System architecture
|
|
53
|
+
- Design and code standards
|
|
54
|
+
- Folder and file structure
|
|
55
|
+
- Naming conventions
|
|
56
|
+
|
|
57
|
+
## 🎯 Objective
|
|
58
|
+
|
|
59
|
+
Create a detailed technical plan that will guide the implementation, breaking the work into smaller, sequential units.
|
|
60
|
+
|
|
61
|
+
## 📝 Plan Structure
|
|
62
|
+
|
|
63
|
+
### 1. Technical Overview
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
# Technical Plan - [Feature Title]
|
|
67
|
+
|
|
68
|
+
## Summary
|
|
69
|
+
[Brief technical description of what will be implemented]
|
|
70
|
+
|
|
71
|
+
## Involved Repositories
|
|
72
|
+
- **<repo-1>**: [Role in this feature]
|
|
73
|
+
- **<repo-2>**: [Role in this feature]
|
|
74
|
+
|
|
75
|
+
## Technical Approach
|
|
76
|
+
[General implementation strategy]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 2. Solution Architecture
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
## Architecture
|
|
83
|
+
|
|
84
|
+
### Component Diagram
|
|
85
|
+
[Textual description or ASCII art of components and their relationships]
|
|
86
|
+
|
|
87
|
+
### Data Flow
|
|
88
|
+
1. [Step 1 of the flow]
|
|
89
|
+
2. [Step 2 of the flow]
|
|
90
|
+
3. [Step 3 of the flow]
|
|
91
|
+
|
|
92
|
+
### Integrations
|
|
93
|
+
- **<repo-1> → <repo-2>**: [How they communicate]
|
|
94
|
+
- **System → External API**: [If any]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 3. Technical Decisions
|
|
98
|
+
|
|
99
|
+
```markdown
|
|
100
|
+
## Technical Decisions
|
|
101
|
+
|
|
102
|
+
### Decision 1: [Title]
|
|
103
|
+
**Context**: [Why we need to decide this]
|
|
104
|
+
**Considered options**:
|
|
105
|
+
- Option A: [Pros and cons]
|
|
106
|
+
- Option B: [Pros and cons]
|
|
107
|
+
**Decision**: [Chosen option]
|
|
108
|
+
**Justification**: [Why we chose this option]
|
|
109
|
+
|
|
110
|
+
### Decision 2: [Title]
|
|
111
|
+
[Same format as above]
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 4. Implementation Plan
|
|
115
|
+
|
|
116
|
+
Break down the work into small, sequential units:
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
## Implementation Plan
|
|
120
|
+
|
|
121
|
+
### Phase 1: [Phase Name]
|
|
122
|
+
**Objective**: [What will be achieved in this phase]
|
|
123
|
+
**Repositories**: [affected repos]
|
|
124
|
+
|
|
125
|
+
#### Task 1.1: [Description]
|
|
126
|
+
- **Repo**: <repo-1>
|
|
127
|
+
- **Files**: [files to create/modify]
|
|
128
|
+
- **Description**: [What to do]
|
|
129
|
+
- **Tests**: [Tests to implement]
|
|
130
|
+
- **Estimate**: [estimated time]
|
|
131
|
+
|
|
132
|
+
#### Task 1.2: [Description]
|
|
133
|
+
- **Repo**: <repo-2>
|
|
134
|
+
- **Files**: [files to create/modify]
|
|
135
|
+
- **Description**: [What to do]
|
|
136
|
+
- **Tests**: [Tests to implement]
|
|
137
|
+
- **Estimate**: [estimated time]
|
|
138
|
+
|
|
139
|
+
### Phase 2: [Phase Name]
|
|
140
|
+
[Same format as above]
|
|
141
|
+
|
|
142
|
+
### Phase 3: [Phase Name]
|
|
143
|
+
[Same format as above]
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### 5. File Structure
|
|
147
|
+
|
|
148
|
+
For each repository, define the structure:
|
|
149
|
+
|
|
150
|
+
```markdown
|
|
151
|
+
## File Structure
|
|
152
|
+
|
|
153
|
+
### <repo-1>
|
|
154
|
+
```
|
|
155
|
+
src/
|
|
156
|
+
├── components/
|
|
157
|
+
│ ├── NewComponent.tsx (CREATE)
|
|
158
|
+
│ └── ExistingComponent.tsx (MODIFY)
|
|
159
|
+
├── services/
|
|
160
|
+
│ └── NewService.ts (CREATE)
|
|
161
|
+
└── tests/
|
|
162
|
+
└── NewComponent.test.tsx (CREATE)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### <repo-2>
|
|
166
|
+
```
|
|
167
|
+
src/
|
|
168
|
+
├── controllers/
|
|
169
|
+
│ └── NewController.ts (CREATE)
|
|
170
|
+
└── tests/
|
|
171
|
+
└── NewController.test.ts (CREATE)
|
|
172
|
+
```
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### 6. APIs and Contracts
|
|
176
|
+
|
|
177
|
+
```markdown
|
|
178
|
+
## APIs and Contracts
|
|
179
|
+
|
|
180
|
+
### New Endpoints
|
|
181
|
+
|
|
182
|
+
#### POST /api/resource
|
|
183
|
+
**Request**:
|
|
184
|
+
```json
|
|
185
|
+
{
|
|
186
|
+
"field1": "string",
|
|
187
|
+
"field2": "number"
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Response**:
|
|
192
|
+
```json
|
|
193
|
+
{
|
|
194
|
+
"id": "string",
|
|
195
|
+
"status": "string"
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Modified Endpoints
|
|
200
|
+
|
|
201
|
+
#### GET /api/resource/:id
|
|
202
|
+
**Changes**: [What changes]
|
|
203
|
+
**Breaking Change**: Yes / No
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### 7. Testing Strategy
|
|
207
|
+
|
|
208
|
+
```markdown
|
|
209
|
+
## Testing Strategy
|
|
210
|
+
|
|
211
|
+
### Unit Tests
|
|
212
|
+
- **<repo-1>**: [Components/functions to test]
|
|
213
|
+
- **<repo-2>**: [Components/functions to test]
|
|
214
|
+
|
|
215
|
+
### Integration Tests
|
|
216
|
+
- **Scenario 1**: [Description and involved repos]
|
|
217
|
+
- **Scenario 2**: [Description and involved repos]
|
|
218
|
+
|
|
219
|
+
### E2E Tests (if applicable)
|
|
220
|
+
- **Flow 1**: [Description]
|
|
221
|
+
- **Flow 2**: [Description]
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### 8. Technical Risks
|
|
225
|
+
|
|
226
|
+
```markdown
|
|
227
|
+
## Technical Risks
|
|
228
|
+
|
|
229
|
+
### Risk 1: [Description]
|
|
230
|
+
- **Impact**: High / Medium / Low
|
|
231
|
+
- **Probability**: High / Medium / Low
|
|
232
|
+
- **Mitigation**: [How to mitigate]
|
|
233
|
+
- **Plan B**: [Alternative if it occurs]
|
|
234
|
+
|
|
235
|
+
### Risk 2: [Description]
|
|
236
|
+
[Same format as above]
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### 9. Implementation Checklist
|
|
240
|
+
|
|
241
|
+
```markdown
|
|
242
|
+
## Implementation Checklist
|
|
243
|
+
|
|
244
|
+
### Phase 1
|
|
245
|
+
- [ ] Task 1.1
|
|
246
|
+
- [ ] Task 1.2
|
|
247
|
+
- [ ] Phase 1 Tests
|
|
248
|
+
|
|
249
|
+
### Phase 2
|
|
250
|
+
- [ ] Task 2.1
|
|
251
|
+
- [ ] Task 2.2
|
|
252
|
+
- [ ] Phase 2 Tests
|
|
253
|
+
|
|
254
|
+
### Phase 3
|
|
255
|
+
- [ ] Task 3.1
|
|
256
|
+
- [ ] Task 3.2
|
|
257
|
+
- [ ] Phase 3 Tests
|
|
258
|
+
|
|
259
|
+
### Finalization
|
|
260
|
+
- [ ] Documentation updated
|
|
261
|
+
- [ ] Code review
|
|
262
|
+
- [ ] Integration tests
|
|
263
|
+
- [ ] PR created
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
## 📄 Saving the Plan
|
|
267
|
+
|
|
268
|
+
Save in `./.sessions/<ISSUE-ID>/plan.md`
|
|
269
|
+
|
|
270
|
+
## 🔍 Review
|
|
271
|
+
|
|
272
|
+
Review the plan checking:
|
|
273
|
+
- All tasks are clear and executable
|
|
274
|
+
- Dependencies between tasks are identified
|
|
275
|
+
- Estimates are realistic
|
|
276
|
+
- Risks have been considered
|
|
277
|
+
- Testing strategy is adequate
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
**Provided arguments**:
|
|
282
|
+
|
|
283
|
+
```
|
|
284
|
+
#$ARGUMENTS
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## 🎯 Next Step
|
|
290
|
+
|
|
291
|
+
After plan approval:
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
/work
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
This command will start executing the first work unit of the plan.
|