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.
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# Planejamento Técnico
|
|
2
|
+
|
|
3
|
+
Este comando cria o plano técnico detalhado para implementação da feature.
|
|
4
|
+
|
|
5
|
+
## 📋 Pré-requisitos
|
|
6
|
+
|
|
7
|
+
- PRD criado via `/spec`
|
|
8
|
+
- Análise inicial feita via `/start`
|
|
9
|
+
- Arquivos `context.md` e `architecture.md` criados e aprovados
|
|
10
|
+
|
|
11
|
+
## 📍 IMPORTANTE: Entenda a Estrutura
|
|
12
|
+
|
|
13
|
+
**Workspace**:
|
|
14
|
+
```
|
|
15
|
+
<orchestrator>/.sessions/<ISSUE-ID>/
|
|
16
|
+
├── repo-1/ # worktree (será usado no /work)
|
|
17
|
+
├── repo-2/ # worktree (será usado no /work)
|
|
18
|
+
├── context.md # contexto (imutável - LER)
|
|
19
|
+
├── architecture.md # arquitetura (imutável - LER)
|
|
20
|
+
└── plan.md # plano (mutável - CRIAR)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Repositórios principais** (apenas leitura):
|
|
24
|
+
```
|
|
25
|
+
{base_path}/repo-1/ # repo principal (branch main/master)
|
|
26
|
+
{base_path}/repo-2/ # repo principal (branch main/master)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**REGRA DE OURO**:
|
|
30
|
+
- ✅ Leia `context.md` e `architecture.md` (imutáveis)
|
|
31
|
+
- ✅ Crie `plan.md` em `.sessions/<ISSUE-ID>/`
|
|
32
|
+
- ✅ Leia código dos repositórios principais (read-only)
|
|
33
|
+
- ❌ NUNCA faça checkout nos repositórios principais
|
|
34
|
+
- ❌ NUNCA modifique `context.md` ou `architecture.md`
|
|
35
|
+
|
|
36
|
+
## ⚠️ IMPORTANTE: Arquivos Imutáveis
|
|
37
|
+
|
|
38
|
+
**Este comando deve LER mas NÃO MODIFICAR:**
|
|
39
|
+
- ✅ **LER** `.sessions/<ISSUE-ID>/context.md` (imutável)
|
|
40
|
+
- ✅ **LER** `.sessions/<ISSUE-ID>/architecture.md` (imutável)
|
|
41
|
+
- ✅ **CRIAR** `.sessions/<ISSUE-ID>/plan.md` (mutável - será atualizado durante `/work`)
|
|
42
|
+
- ❌ **NÃO modificar `context.md` ou `architecture.md`**
|
|
43
|
+
|
|
44
|
+
## 📚 Carregar MetaSpecs
|
|
45
|
+
|
|
46
|
+
**Localizar MetaSpecs automaticamente**:
|
|
47
|
+
1. Leia `context-manifest.json` do orchestrator
|
|
48
|
+
2. Encontre o repositório com `"role": "metaspecs"`
|
|
49
|
+
3. Leia `ai.properties.md` para obter o `base_path`
|
|
50
|
+
4. O metaspecs está em: `{base_path}/{metaspecs-repo-id}/`
|
|
51
|
+
5. Leia os arquivos `index.md` relevantes para garantir conformidade com:
|
|
52
|
+
- Arquitetura do sistema
|
|
53
|
+
- Padrões de design e código
|
|
54
|
+
- Estrutura de pastas e arquivos
|
|
55
|
+
- Convenções de nomenclatura
|
|
56
|
+
|
|
57
|
+
## 🎯 Objetivo
|
|
58
|
+
|
|
59
|
+
Criar um plano técnico detalhado que guiará a implementação, dividindo o trabalho em unidades menores e sequenciais.
|
|
60
|
+
|
|
61
|
+
## 📝 Estrutura do Plano
|
|
62
|
+
|
|
63
|
+
### 1. Visão Geral Técnica
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
# Plano Técnico - [Título da Feature]
|
|
67
|
+
|
|
68
|
+
## Resumo
|
|
69
|
+
[Breve descrição técnica do que será implementado]
|
|
70
|
+
|
|
71
|
+
## Repositórios Envolvidos
|
|
72
|
+
- **<repo-1>**: [Papel nesta feature]
|
|
73
|
+
- **<repo-2>**: [Papel nesta feature]
|
|
74
|
+
|
|
75
|
+
## Abordagem Técnica
|
|
76
|
+
[Estratégia geral de implementação]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 2. Arquitetura da Solução
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
## Arquitetura
|
|
83
|
+
|
|
84
|
+
### Diagrama de Componentes
|
|
85
|
+
[Descrição textual ou ASCII art dos componentes e suas relações]
|
|
86
|
+
|
|
87
|
+
### Fluxo de Dados
|
|
88
|
+
1. [Passo 1 do fluxo]
|
|
89
|
+
2. [Passo 2 do fluxo]
|
|
90
|
+
3. [Passo 3 do fluxo]
|
|
91
|
+
|
|
92
|
+
### Integrações
|
|
93
|
+
- **<repo-1> → <repo-2>**: [Como se comunicam]
|
|
94
|
+
- **Sistema → API Externa**: [Se houver]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 3. Decisões Técnicas
|
|
98
|
+
|
|
99
|
+
```markdown
|
|
100
|
+
## Decisões Técnicas
|
|
101
|
+
|
|
102
|
+
### Decisão 1: [Título]
|
|
103
|
+
**Contexto**: [Por que precisamos decidir isso]
|
|
104
|
+
**Opções consideradas**:
|
|
105
|
+
- Opção A: [Prós e contras]
|
|
106
|
+
- Opção B: [Prós e contras]
|
|
107
|
+
**Decisão**: [Opção escolhida]
|
|
108
|
+
**Justificativa**: [Por que escolhemos esta opção]
|
|
109
|
+
|
|
110
|
+
### Decisão 2: [Título]
|
|
111
|
+
[Mesmo formato acima]
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 4. Plano de Implementação
|
|
115
|
+
|
|
116
|
+
Divida o trabalho em unidades pequenas e sequenciais:
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
## Plano de Implementação
|
|
120
|
+
|
|
121
|
+
### Fase 1: [Nome da Fase]
|
|
122
|
+
**Objetivo**: [O que será alcançado nesta fase]
|
|
123
|
+
**Repositórios**: [repos afetados]
|
|
124
|
+
|
|
125
|
+
#### Tarefa 1.1: [Descrição]
|
|
126
|
+
- **Repo**: <repo-1>
|
|
127
|
+
- **Arquivos**: [arquivos a criar/modificar]
|
|
128
|
+
- **Descrição**: [O que fazer]
|
|
129
|
+
- **Testes**: [Testes a implementar]
|
|
130
|
+
- **Estimativa**: [tempo estimado]
|
|
131
|
+
|
|
132
|
+
#### Tarefa 1.2: [Descrição]
|
|
133
|
+
- **Repo**: <repo-2>
|
|
134
|
+
- **Arquivos**: [arquivos a criar/modificar]
|
|
135
|
+
- **Descrição**: [O que fazer]
|
|
136
|
+
- **Testes**: [Testes a implementar]
|
|
137
|
+
- **Estimativa**: [tempo estimado]
|
|
138
|
+
|
|
139
|
+
### Fase 2: [Nome da Fase]
|
|
140
|
+
[Mesmo formato acima]
|
|
141
|
+
|
|
142
|
+
### Fase 3: [Nome da Fase]
|
|
143
|
+
[Mesmo formato acima]
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### 5. Estrutura de Arquivos
|
|
147
|
+
|
|
148
|
+
Para cada repositório, defina a estrutura:
|
|
149
|
+
|
|
150
|
+
```markdown
|
|
151
|
+
## Estrutura de Arquivos
|
|
152
|
+
|
|
153
|
+
### <repo-1>
|
|
154
|
+
```
|
|
155
|
+
src/
|
|
156
|
+
├── components/
|
|
157
|
+
│ ├── NewComponent.tsx (CRIAR)
|
|
158
|
+
│ └── ExistingComponent.tsx (MODIFICAR)
|
|
159
|
+
├── services/
|
|
160
|
+
│ └── NewService.ts (CRIAR)
|
|
161
|
+
└── tests/
|
|
162
|
+
└── NewComponent.test.tsx (CRIAR)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### <repo-2>
|
|
166
|
+
```
|
|
167
|
+
src/
|
|
168
|
+
├── controllers/
|
|
169
|
+
│ └── NewController.ts (CRIAR)
|
|
170
|
+
└── tests/
|
|
171
|
+
└── NewController.test.ts (CRIAR)
|
|
172
|
+
```
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### 6. APIs e Contratos
|
|
176
|
+
|
|
177
|
+
```markdown
|
|
178
|
+
## APIs e Contratos
|
|
179
|
+
|
|
180
|
+
### Endpoints Novos
|
|
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
|
+
### Endpoints Modificados
|
|
200
|
+
|
|
201
|
+
#### GET /api/resource/:id
|
|
202
|
+
**Mudanças**: [O que muda]
|
|
203
|
+
**Breaking Change**: Sim / Não
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### 7. Estratégia de Testes
|
|
207
|
+
|
|
208
|
+
```markdown
|
|
209
|
+
## Estratégia de Testes
|
|
210
|
+
|
|
211
|
+
### Testes Unitários
|
|
212
|
+
- **<repo-1>**: [Componentes/funções a testar]
|
|
213
|
+
- **<repo-2>**: [Componentes/funções a testar]
|
|
214
|
+
|
|
215
|
+
### Testes de Integração
|
|
216
|
+
- **Cenário 1**: [Descrição e repos envolvidos]
|
|
217
|
+
- **Cenário 2**: [Descrição e repos envolvidos]
|
|
218
|
+
|
|
219
|
+
### Testes E2E (se aplicável)
|
|
220
|
+
- **Fluxo 1**: [Descrição]
|
|
221
|
+
- **Fluxo 2**: [Descrição]
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### 8. Riscos Técnicos
|
|
225
|
+
|
|
226
|
+
```markdown
|
|
227
|
+
## Riscos Técnicos
|
|
228
|
+
|
|
229
|
+
### Risco 1: [Descrição]
|
|
230
|
+
- **Impacto**: Alto / Médio / Baixo
|
|
231
|
+
- **Probabilidade**: Alta / Média / Baixa
|
|
232
|
+
- **Mitigação**: [Como mitigar]
|
|
233
|
+
- **Plano B**: [Alternativa se ocorrer]
|
|
234
|
+
|
|
235
|
+
### Risco 2: [Descrição]
|
|
236
|
+
[Mesmo formato acima]
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### 9. Checklist de Implementação
|
|
240
|
+
|
|
241
|
+
```markdown
|
|
242
|
+
## Checklist de Implementação
|
|
243
|
+
|
|
244
|
+
### Fase 1
|
|
245
|
+
- [ ] Tarefa 1.1
|
|
246
|
+
- [ ] Tarefa 1.2
|
|
247
|
+
- [ ] Testes da Fase 1
|
|
248
|
+
|
|
249
|
+
### Fase 2
|
|
250
|
+
- [ ] Tarefa 2.1
|
|
251
|
+
- [ ] Tarefa 2.2
|
|
252
|
+
- [ ] Testes da Fase 2
|
|
253
|
+
|
|
254
|
+
### Fase 3
|
|
255
|
+
- [ ] Tarefa 3.1
|
|
256
|
+
- [ ] Tarefa 3.2
|
|
257
|
+
- [ ] Testes da Fase 3
|
|
258
|
+
|
|
259
|
+
### Finalização
|
|
260
|
+
- [ ] Documentação atualizada
|
|
261
|
+
- [ ] Code review
|
|
262
|
+
- [ ] Testes de integração
|
|
263
|
+
- [ ] PR criado
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
## 📄 Salvamento do Plano
|
|
267
|
+
|
|
268
|
+
Salve em `./.sessions/<ISSUE-ID>/plan.md`
|
|
269
|
+
|
|
270
|
+
## 🔍 Revisão
|
|
271
|
+
|
|
272
|
+
Revise o plano verificando:
|
|
273
|
+
- Todas as tarefas estão claras e executáveis
|
|
274
|
+
- Dependências entre tarefas estão identificadas
|
|
275
|
+
- Estimativas são realistas
|
|
276
|
+
- Riscos foram considerados
|
|
277
|
+
- Estratégia de testes é adequada
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
**Argumentos fornecidos**:
|
|
282
|
+
|
|
283
|
+
```
|
|
284
|
+
#$ARGUMENTS
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## 🎯 Próximo Passo
|
|
290
|
+
|
|
291
|
+
Após aprovação do plano:
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
/work
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Este comando iniciará a execução da primeira unidade de trabalho do plano.
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Criação de Pull Request
|
|
2
|
+
|
|
3
|
+
Este comando cria Pull Requests para todos os repositórios modificados no workspace.
|
|
4
|
+
|
|
5
|
+
## 📋 Pré-requisitos
|
|
6
|
+
|
|
7
|
+
Antes de criar PRs, certifique-se de que:
|
|
8
|
+
- Executou `/pre-pr` e todas as validações passaram
|
|
9
|
+
- Todos os commits foram feitos
|
|
10
|
+
- Todos os testes estão passando
|
|
11
|
+
- A documentação está atualizada
|
|
12
|
+
|
|
13
|
+
## 🎯 Processo de Criação de PRs
|
|
14
|
+
|
|
15
|
+
### 1. Identificar Repositórios Modificados
|
|
16
|
+
|
|
17
|
+
Para cada repositório no workspace, verifique:
|
|
18
|
+
```bash
|
|
19
|
+
cd <repositório>
|
|
20
|
+
git status
|
|
21
|
+
git log origin/main..HEAD # Ver commits não pushados
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### 2. Push das Branches
|
|
25
|
+
|
|
26
|
+
Para cada repositório modificado:
|
|
27
|
+
```bash
|
|
28
|
+
cd <repositório>
|
|
29
|
+
git push origin <branch-name>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 3. Criar Pull Requests
|
|
33
|
+
|
|
34
|
+
Para cada repositório, crie um PR usando o GitHub CLI ou interface web:
|
|
35
|
+
|
|
36
|
+
**Usando GitHub CLI**:
|
|
37
|
+
```bash
|
|
38
|
+
cd <repositório>
|
|
39
|
+
gh pr create --title "[ISSUE-ID] Título da Feature" \
|
|
40
|
+
--body "$(cat ../.sessions/<ISSUE-ID>/pr-description.md)" \
|
|
41
|
+
--base main
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Template de Descrição do PR**:
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
## 🎯 Objetivo
|
|
48
|
+
|
|
49
|
+
[Breve descrição do que esta PR faz]
|
|
50
|
+
|
|
51
|
+
## 📝 Mudanças
|
|
52
|
+
|
|
53
|
+
### Repositório: <nome-do-repo>
|
|
54
|
+
|
|
55
|
+
- [Mudança 1]
|
|
56
|
+
- [Mudança 2]
|
|
57
|
+
- [Mudança 3]
|
|
58
|
+
|
|
59
|
+
## 🔗 Relacionamentos
|
|
60
|
+
|
|
61
|
+
- **Issue**: <ISSUE-ID>
|
|
62
|
+
- **PRs Relacionados**:
|
|
63
|
+
- <repo-1>#<PR-number>
|
|
64
|
+
- <repo-2>#<PR-number>
|
|
65
|
+
|
|
66
|
+
## ✅ Checklist
|
|
67
|
+
|
|
68
|
+
- [ ] Código implementado e testado
|
|
69
|
+
- [ ] Testes unitários adicionados/atualizados
|
|
70
|
+
- [ ] Testes de integração passando
|
|
71
|
+
- [ ] Documentação atualizada
|
|
72
|
+
- [ ] Sem breaking changes (ou documentados)
|
|
73
|
+
- [ ] Revisado por pares (após criação do PR)
|
|
74
|
+
|
|
75
|
+
## 🧪 Como Testar
|
|
76
|
+
|
|
77
|
+
1. [Passo 1]
|
|
78
|
+
2. [Passo 2]
|
|
79
|
+
3. [Resultado esperado]
|
|
80
|
+
|
|
81
|
+
## 📸 Screenshots/Demos
|
|
82
|
+
|
|
83
|
+
[Se aplicável, adicione screenshots ou links para demos]
|
|
84
|
+
|
|
85
|
+
## 🔍 Notas para Revisores
|
|
86
|
+
|
|
87
|
+
- [Ponto de atenção 1]
|
|
88
|
+
- [Ponto de atenção 2]
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 4. Vincular PRs
|
|
92
|
+
|
|
93
|
+
Se houver múltiplos PRs (um por repositório):
|
|
94
|
+
- Adicione links cruzados entre os PRs
|
|
95
|
+
- Documente a ordem de merge recomendada
|
|
96
|
+
- Indique dependências entre PRs
|
|
97
|
+
|
|
98
|
+
### 5. Atualizar Issue no Task Manager
|
|
99
|
+
|
|
100
|
+
Se task manager estiver configurado:
|
|
101
|
+
- Mova a issue para "Em Revisão" ou "PR Aberto"
|
|
102
|
+
- Adicione links dos PRs na issue
|
|
103
|
+
- Adicione comentário com resumo das mudanças
|
|
104
|
+
|
|
105
|
+
### 6. Documentação da Sessão
|
|
106
|
+
|
|
107
|
+
Atualize `./.sessions/<ISSUE-ID>/pr.md`:
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
# [Título da Feature] - Pull Requests
|
|
111
|
+
|
|
112
|
+
## PRs Criados
|
|
113
|
+
|
|
114
|
+
### <repo-1>
|
|
115
|
+
- **Link**: <URL do PR>
|
|
116
|
+
- **Status**: Aberto
|
|
117
|
+
- **Commits**: X commits
|
|
118
|
+
|
|
119
|
+
### <repo-2>
|
|
120
|
+
- **Link**: <URL do PR>
|
|
121
|
+
- **Status**: Aberto
|
|
122
|
+
- **Commits**: Y commits
|
|
123
|
+
|
|
124
|
+
## Ordem de Merge Recomendada
|
|
125
|
+
|
|
126
|
+
1. <repo-1> - [Justificativa]
|
|
127
|
+
2. <repo-2> - [Justificativa]
|
|
128
|
+
|
|
129
|
+
## Notas para Merge
|
|
130
|
+
|
|
131
|
+
- [Nota importante 1]
|
|
132
|
+
- [Nota importante 2]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## 🔍 Checklist Final
|
|
136
|
+
|
|
137
|
+
Antes de solicitar revisão:
|
|
138
|
+
- [ ] Todos os PRs criados
|
|
139
|
+
- [ ] Descrições completas e claras
|
|
140
|
+
- [ ] PRs vinculados entre si
|
|
141
|
+
- [ ] Issue atualizada no task manager
|
|
142
|
+
- [ ] Testes passando em CI/CD
|
|
143
|
+
- [ ] Documentação da sessão completa
|
|
144
|
+
|
|
145
|
+
## 📢 Comunicação
|
|
146
|
+
|
|
147
|
+
Notifique o time sobre os PRs:
|
|
148
|
+
- Mencione revisores relevantes
|
|
149
|
+
- Destaque mudanças críticas ou breaking changes
|
|
150
|
+
- Indique urgência se aplicável
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
**Argumentos fornecidos**:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
#$ARGUMENTS
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 🎯 Próximos Passos
|
|
163
|
+
|
|
164
|
+
1. Aguardar revisão dos PRs
|
|
165
|
+
2. Responder comentários e fazer ajustes
|
|
166
|
+
3. Após aprovação, fazer merge na ordem recomendada
|
|
167
|
+
4. Executar `context-cli feature:end <ISSUE-ID>` para limpar o workspace
|