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.
Files changed (85) hide show
  1. package/dist/commands/create-orchestrator.d.ts.map +1 -1
  2. package/dist/commands/create-orchestrator.js +15 -3
  3. package/dist/commands/create-orchestrator.js.map +1 -1
  4. package/dist/commands/feature.d.ts.map +1 -1
  5. package/dist/commands/feature.js +33 -2
  6. package/dist/commands/feature.js.map +1 -1
  7. package/dist/commands/update-commands.d.ts.map +1 -1
  8. package/dist/commands/update-commands.js +42 -2
  9. package/dist/commands/update-commands.js.map +1 -1
  10. package/dist/templates/commands/en/engineer/plan.md +297 -0
  11. package/dist/templates/commands/en/engineer/pr.md +167 -0
  12. package/dist/templates/commands/en/engineer/pre-pr.md +262 -0
  13. package/dist/templates/commands/en/engineer/start.md +281 -0
  14. package/dist/templates/commands/en/engineer/work.md +197 -0
  15. package/dist/templates/commands/en/products/check.md +233 -0
  16. package/dist/templates/commands/en/products/collect.md +156 -0
  17. package/dist/templates/commands/en/products/refine.md +222 -0
  18. package/dist/templates/commands/en/products/spec.md +267 -0
  19. package/dist/templates/commands/en/quality/metrics.md +240 -0
  20. package/dist/templates/commands/en/quality/observe.md +168 -0
  21. package/dist/templates/commands/en/warm-up.md +78 -0
  22. package/dist/templates/commands/es/engineer/plan.md +297 -0
  23. package/dist/templates/commands/es/engineer/pr.md +167 -0
  24. package/dist/templates/commands/es/engineer/pre-pr.md +262 -0
  25. package/dist/templates/commands/es/engineer/start.md +281 -0
  26. package/dist/templates/commands/es/engineer/work.md +197 -0
  27. package/dist/templates/commands/es/products/check.md +233 -0
  28. package/dist/templates/commands/es/products/collect.md +156 -0
  29. package/dist/templates/commands/es/products/refine.md +222 -0
  30. package/dist/templates/commands/es/products/spec.md +267 -0
  31. package/dist/templates/commands/es/quality/metrics.md +240 -0
  32. package/dist/templates/commands/es/quality/observe.md +168 -0
  33. package/dist/templates/commands/es/warm-up.md +78 -0
  34. package/dist/utils/config.d.ts +1 -0
  35. package/dist/utils/config.d.ts.map +1 -1
  36. package/dist/utils/config.js.map +1 -1
  37. package/package.json +1 -1
  38. package/templates/commands/en/engineer/plan.md +297 -0
  39. package/templates/commands/en/engineer/pr.md +167 -0
  40. package/templates/commands/en/engineer/pre-pr.md +262 -0
  41. package/templates/commands/en/engineer/start.md +281 -0
  42. package/templates/commands/en/engineer/work.md +197 -0
  43. package/templates/commands/en/products/check.md +233 -0
  44. package/templates/commands/en/products/collect.md +156 -0
  45. package/templates/commands/en/products/refine.md +222 -0
  46. package/templates/commands/en/products/spec.md +267 -0
  47. package/templates/commands/en/quality/metrics.md +240 -0
  48. package/templates/commands/en/quality/observe.md +168 -0
  49. package/templates/commands/en/warm-up.md +78 -0
  50. package/templates/commands/es/engineer/plan.md +297 -0
  51. package/templates/commands/es/engineer/pr.md +167 -0
  52. package/templates/commands/es/engineer/pre-pr.md +262 -0
  53. package/templates/commands/es/engineer/start.md +281 -0
  54. package/templates/commands/es/engineer/work.md +197 -0
  55. package/templates/commands/es/products/check.md +233 -0
  56. package/templates/commands/es/products/collect.md +156 -0
  57. package/templates/commands/es/products/refine.md +222 -0
  58. package/templates/commands/es/products/spec.md +267 -0
  59. package/templates/commands/es/quality/metrics.md +240 -0
  60. package/templates/commands/es/quality/observe.md +168 -0
  61. package/templates/commands/es/warm-up.md +78 -0
  62. package/templates/commands/pt-BR/engineer/plan.md +297 -0
  63. package/templates/commands/pt-BR/engineer/pr.md +167 -0
  64. package/templates/commands/pt-BR/engineer/pre-pr.md +262 -0
  65. package/templates/commands/pt-BR/engineer/start.md +281 -0
  66. package/templates/commands/pt-BR/engineer/work.md +197 -0
  67. package/templates/commands/pt-BR/products/check.md +233 -0
  68. package/templates/commands/pt-BR/products/collect.md +156 -0
  69. package/templates/commands/pt-BR/products/refine.md +222 -0
  70. package/templates/commands/pt-BR/products/spec.md +267 -0
  71. package/templates/commands/pt-BR/quality/metrics.md +240 -0
  72. package/templates/commands/pt-BR/quality/observe.md +168 -0
  73. package/templates/commands/pt-BR/warm-up.md +78 -0
  74. /package/{templates/commands → dist/templates/commands/pt-BR}/engineer/plan.md +0 -0
  75. /package/{templates/commands → dist/templates/commands/pt-BR}/engineer/pr.md +0 -0
  76. /package/{templates/commands → dist/templates/commands/pt-BR}/engineer/pre-pr.md +0 -0
  77. /package/{templates/commands → dist/templates/commands/pt-BR}/engineer/start.md +0 -0
  78. /package/{templates/commands → dist/templates/commands/pt-BR}/engineer/work.md +0 -0
  79. /package/{templates/commands → dist/templates/commands/pt-BR}/products/check.md +0 -0
  80. /package/{templates/commands → dist/templates/commands/pt-BR}/products/collect.md +0 -0
  81. /package/{templates/commands → dist/templates/commands/pt-BR}/products/refine.md +0 -0
  82. /package/{templates/commands → dist/templates/commands/pt-BR}/products/spec.md +0 -0
  83. /package/{templates/commands → dist/templates/commands/pt-BR}/quality/metrics.md +0 -0
  84. /package/{templates/commands → dist/templates/commands/pt-BR}/quality/observe.md +0 -0
  85. /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.
@@ -21,6 +21,7 @@ export interface Repository {
21
21
  export interface WorkspaceMetadata {
22
22
  issueId: string;
23
23
  repositories: string[];
24
+ language?: string;
24
25
  createdAt: string;
25
26
  lastUpdated: string;
26
27
  status: 'active' | 'archived';
@@ -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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "context-first-cli",
3
- "version": "1.8.2",
3
+ "version": "2.0.0",
4
4
  "description": "A generic CLI to manage the Context-First development methodology across any project.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -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.