@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,206 @@
|
|
|
1
|
+
# Observabilidade de Decisões
|
|
2
|
+
|
|
3
|
+
Este comando registra decisões importantes tomadas durante o desenvolvimento, criando um log auditável para explicabilidade e rastreabilidade.
|
|
4
|
+
|
|
5
|
+
## 🎯 Objetivo
|
|
6
|
+
|
|
7
|
+
Criar registro estruturado de decisões técnicas e de produto, garantindo:
|
|
8
|
+
- **Explicabilidade**: Por que cada decisão foi tomada
|
|
9
|
+
- **Rastreabilidade**: Quais fontes (PRD, metaspecs, ADRs) embasaram a decisão
|
|
10
|
+
- **Auditoria**: Histórico completo de escolhas para revisão futura
|
|
11
|
+
- **Aprendizado**: Documentação de trade-offs e alternativas consideradas
|
|
12
|
+
|
|
13
|
+
**IMPORTANTE**: Este comando NÃO gera decisões novas. Ele apenas REGISTRA decisões que já foram tomadas no processo de desenvolvimento.
|
|
14
|
+
|
|
15
|
+
## 📋 Configuração do Projeto
|
|
16
|
+
|
|
17
|
+
**⚠️ IMPORTANTE: Sempre leia os arquivos de configuração do projeto ANTES de executar este comando!**
|
|
18
|
+
|
|
19
|
+
### Arquivos Obrigatórios
|
|
20
|
+
|
|
21
|
+
1. **`context-manifest.json`** (raiz do orchestrator)
|
|
22
|
+
- Lista de repositórios do projeto
|
|
23
|
+
- Roles de cada repositório (metaspecs, application, etc.)
|
|
24
|
+
- URLs e dependências entre repositórios
|
|
25
|
+
|
|
26
|
+
2. **`ai.properties.md`** (raiz do orchestrator)
|
|
27
|
+
- Configurações do projeto (`project_name`, `base_path`)
|
|
28
|
+
- Sistema de gerenciamento de tarefas (`task_management_system`)
|
|
29
|
+
- Credenciais e configurações específicas
|
|
30
|
+
|
|
31
|
+
### Como Ler
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# 1. Ler context-manifest.json
|
|
35
|
+
cat context-manifest.json
|
|
36
|
+
|
|
37
|
+
# 2. Ler ai.properties.md
|
|
38
|
+
cat ai.properties.md
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Informações Essenciais
|
|
42
|
+
|
|
43
|
+
Após ler os arquivos, você terá:
|
|
44
|
+
- ✅ Lista completa de repositórios do projeto
|
|
45
|
+
- ✅ Localização do repositório de metaspecs
|
|
46
|
+
- ✅ Base path para localizar repositórios
|
|
47
|
+
- ✅ Sistema de task management configurado
|
|
48
|
+
- ✅ Configurações específicas do projeto
|
|
49
|
+
|
|
50
|
+
**🛑 NÃO prossiga sem ler estes arquivos!** Eles contêm informações críticas para a execução correta do comando.
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
## 📋 Pré-requisitos
|
|
54
|
+
|
|
55
|
+
- Executou pelo menos um dos comandos que geram decisões:
|
|
56
|
+
- `/spec` - gera PRD com decisões de produto
|
|
57
|
+
- `/plan` - gera plan.md com decisões técnicas
|
|
58
|
+
- `/work` - implementação gera decisões durante desenvolvimento
|
|
59
|
+
|
|
60
|
+
## 🔍 Processo de Observação
|
|
61
|
+
|
|
62
|
+
### 1. Identificar Decisões Relevantes
|
|
63
|
+
|
|
64
|
+
Analise os arquivos da sessão (`./.sessions/<ISSUE-ID>/`) para identificar decisões:
|
|
65
|
+
|
|
66
|
+
**Após `/spec`** - Decisões de Produto:
|
|
67
|
+
- Leia `./.sessions/<ISSUE-ID>/prd.md`
|
|
68
|
+
- Identifique decisões em:
|
|
69
|
+
- Escopo (o que entra/não entra na feature)
|
|
70
|
+
- Personas atendidas (quem é o público-alvo)
|
|
71
|
+
- Métricas de sucesso (como medir resultados)
|
|
72
|
+
- Requisitos não-funcionais (performance, acessibilidade)
|
|
73
|
+
- Restrições e trade-offs
|
|
74
|
+
|
|
75
|
+
**Após `/plan`** - Decisões Técnicas:
|
|
76
|
+
- Leia `./.sessions/<ISSUE-ID>/plan.md`
|
|
77
|
+
- Identifique decisões em:
|
|
78
|
+
- Arquitetura de componentes/módulos
|
|
79
|
+
- Escolha de bibliotecas ou ferramentas
|
|
80
|
+
- Padrões de implementação
|
|
81
|
+
- Estrutura de dados
|
|
82
|
+
- Estratégia de testes
|
|
83
|
+
|
|
84
|
+
**Durante `/work`** - Decisões de Implementação:
|
|
85
|
+
- Leia `./.sessions/<ISSUE-ID>/work.md`
|
|
86
|
+
- Identifique decisões em:
|
|
87
|
+
- Refatorações realizadas
|
|
88
|
+
- Mudanças de abordagem
|
|
89
|
+
- Otimizações aplicadas
|
|
90
|
+
- Tratamento de edge cases
|
|
91
|
+
|
|
92
|
+
### 2. Documentar Cada Decisão
|
|
93
|
+
|
|
94
|
+
Para cada decisão identificada, documente:
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
## Decisão: [Título Claro]
|
|
98
|
+
|
|
99
|
+
**Contexto**: [Por que precisamos decidir isso? Qual o problema ou necessidade?]
|
|
100
|
+
|
|
101
|
+
**Opções Consideradas**:
|
|
102
|
+
1. **Opção A**: [Descrição]
|
|
103
|
+
- Prós: [vantagens]
|
|
104
|
+
- Contras: [desvantagens]
|
|
105
|
+
2. **Opção B**: [Descrição]
|
|
106
|
+
- Prós: [vantagens]
|
|
107
|
+
- Contras: [desvantagens]
|
|
108
|
+
|
|
109
|
+
**Decisão**: [Opção escolhida]
|
|
110
|
+
|
|
111
|
+
**Justificativa**: [Por que escolhemos esta opção? Quais critérios foram mais importantes?]
|
|
112
|
+
|
|
113
|
+
**Fontes**:
|
|
114
|
+
- [PRD seção X]
|
|
115
|
+
- [Metaspec Y]
|
|
116
|
+
- [ADR-00Z]
|
|
117
|
+
|
|
118
|
+
**Trade-offs Aceitos**: [Quais desvantagens aceitamos conscientemente?]
|
|
119
|
+
|
|
120
|
+
**Reversibilidade**: Fácil / Média / Difícil
|
|
121
|
+
|
|
122
|
+
**Data**: [data da decisão]
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 3. Criar Log de Decisões
|
|
126
|
+
|
|
127
|
+
Salve em `./.sessions/<ISSUE-ID>/decisions.md`:
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
# Log de Decisões - [ISSUE-ID]
|
|
131
|
+
|
|
132
|
+
## Resumo
|
|
133
|
+
[Breve resumo das principais decisões tomadas nesta feature]
|
|
134
|
+
|
|
135
|
+
## Decisões de Produto
|
|
136
|
+
|
|
137
|
+
### [Decisão 1]
|
|
138
|
+
[Conforme template acima]
|
|
139
|
+
|
|
140
|
+
### [Decisão 2]
|
|
141
|
+
[Conforme template acima]
|
|
142
|
+
|
|
143
|
+
## Decisões Técnicas
|
|
144
|
+
|
|
145
|
+
### [Decisão 3]
|
|
146
|
+
[Conforme template acima]
|
|
147
|
+
|
|
148
|
+
### [Decisão 4]
|
|
149
|
+
[Conforme template acima]
|
|
150
|
+
|
|
151
|
+
## Decisões de Implementação
|
|
152
|
+
|
|
153
|
+
### [Decisão 5]
|
|
154
|
+
[Conforme template acima]
|
|
155
|
+
|
|
156
|
+
## Lições Aprendidas
|
|
157
|
+
- [Lição 1]
|
|
158
|
+
- [Lição 2]
|
|
159
|
+
|
|
160
|
+
## Decisões Pendentes
|
|
161
|
+
- [Decisão que ainda precisa ser tomada]
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## 📊 Análise de Impacto
|
|
165
|
+
|
|
166
|
+
Para decisões críticas, documente o impacto:
|
|
167
|
+
|
|
168
|
+
```markdown
|
|
169
|
+
## Análise de Impacto
|
|
170
|
+
|
|
171
|
+
**Repositórios Afetados**: [lista]
|
|
172
|
+
|
|
173
|
+
**Componentes Impactados**: [lista]
|
|
174
|
+
|
|
175
|
+
**Dependências Criadas**: [lista]
|
|
176
|
+
|
|
177
|
+
**Riscos Introduzidos**: [lista]
|
|
178
|
+
|
|
179
|
+
**Mitigações Aplicadas**: [lista]
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## 🔄 Revisão de Decisões
|
|
183
|
+
|
|
184
|
+
Periodicamente, revise as decisões tomadas:
|
|
185
|
+
- Ainda fazem sentido?
|
|
186
|
+
- Os trade-offs se provaram corretos?
|
|
187
|
+
- Há aprendizados para documentar?
|
|
188
|
+
- Alguma decisão precisa ser revertida?
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
**Argumentos fornecidos**:
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
#$ARGUMENTS
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## 🎯 Resultado
|
|
201
|
+
|
|
202
|
+
Após executar este comando, você terá:
|
|
203
|
+
- Log completo de decisões em `./.sessions/<ISSUE-ID>/decisions.md`
|
|
204
|
+
- Rastreabilidade de cada escolha feita
|
|
205
|
+
- Documentação para futuras referências
|
|
206
|
+
- Base para ADRs (se decisões forem de arquitetura)
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Aquecimento - Carregamento de Contexto
|
|
2
|
+
|
|
3
|
+
Prepara o ambiente carregando o contexto otimizado do projeto.
|
|
4
|
+
|
|
5
|
+
## 1. Carregar Configuração
|
|
6
|
+
|
|
7
|
+
Leia os arquivos do orchestrator:
|
|
8
|
+
- **`context-manifest.json`** - Repositórios e roles
|
|
9
|
+
- **`ai.properties.md`** - base_path, task_management_system
|
|
10
|
+
|
|
11
|
+
## 2. Carregar Contexto Compacto (OTIMIZADO)
|
|
12
|
+
|
|
13
|
+
**IMPORTANTE**: Use carregamento PROGRESSIVO para economizar janela de contexto.
|
|
14
|
+
|
|
15
|
+
### Obrigatório (warm-up)
|
|
16
|
+
|
|
17
|
+
Localize metaspecs via `context-manifest.json` (role: "specs-provider"):
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
{base_path}/{metaspecs-id}/specs/_meta/WARM_UP_CONTEXT.md (~100 linhas)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Este arquivo contém TODOS os essenciais:
|
|
24
|
+
- Stack tecnológica
|
|
25
|
+
- Hierarquia de contexto
|
|
26
|
+
- 5 regras críticas
|
|
27
|
+
- Padrões de código mínimos
|
|
28
|
+
- Tabela de carregamento sob demanda
|
|
29
|
+
|
|
30
|
+
### Sob Demanda (NÃO carregar durante warm-up)
|
|
31
|
+
|
|
32
|
+
| Necessidade | Documento |
|
|
33
|
+
|-------------|-----------|
|
|
34
|
+
| Gerar código | `CLAUDE.meta.md` |
|
|
35
|
+
| Arquitetura | `ARCHITECTURE.md` |
|
|
36
|
+
| Feature específica | `features/{FEATURE}.md` |
|
|
37
|
+
| Anti-patterns completos | `ANTI_PATTERNS.md` |
|
|
38
|
+
|
|
39
|
+
## 3. Verificar Repositórios
|
|
40
|
+
|
|
41
|
+
Para cada repositório no `context-manifest.json`:
|
|
42
|
+
- Verificar existência em `{base_path}/{repo-id}/`
|
|
43
|
+
- **NÃO** ler README.md agora (sob demanda)
|
|
44
|
+
|
|
45
|
+
## 4. Verificar Sessão (se existir)
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
ls -la .sessions/<ISSUE-ID>/ 2>/dev/null
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 5. Princípio Jidoka
|
|
52
|
+
|
|
53
|
+
Se problemas detectados: **PARE**, documente, alerte o usuário.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
**Argumentos**: #$ARGUMENTS
|
|
58
|
+
|
|
59
|
+
**Status**: Contexto carregado. Aguardando próximo comando.
|
package/package.json
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thatix.io/context-first-agents-cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"publishConfig": {
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
5
7
|
"description": "Evolution of context-first-cli: manage the Context-First methodology across any project AND orchestrate dynamic, ephemeral AI agents from specs. All agent orchestration lives in .md command templates; the Node layer only scaffolds and manages.",
|
|
6
8
|
"type": "module",
|
|
7
9
|
"main": "dist/index.js",
|
|
@@ -37,7 +39,9 @@
|
|
|
37
39
|
],
|
|
38
40
|
"author": "Thiago Abreu <thiagoabreu.dev>",
|
|
39
41
|
"license": "MIT",
|
|
40
|
-
"engines": {
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">=18.0.0"
|
|
44
|
+
},
|
|
41
45
|
"dependencies": {
|
|
42
46
|
"chalk": "^5.6.2",
|
|
43
47
|
"commander": "^14.0.2",
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
# Technical Planning
|
|
2
|
+
|
|
3
|
+
This command creates the detailed technical plan for the feature implementation.
|
|
4
|
+
|
|
5
|
+
## 📋 Prerequisites
|
|
6
|
+
|
|
7
|
+
- PRD created via `/spec`
|
|
8
|
+
- Initial analysis done via `/start`
|
|
9
|
+
- `context.md` and `architecture.md` files created and approved
|
|
10
|
+
|
|
11
|
+
## Configuration
|
|
12
|
+
|
|
13
|
+
Read `context-manifest.json` and `ai.properties.md` from the orchestrator to get repositories, base_path, and task_management_system.
|
|
14
|
+
|
|
15
|
+
## 📍 IMPORTANT: Understand the Structure
|
|
16
|
+
|
|
17
|
+
**Workspace**:
|
|
18
|
+
```
|
|
19
|
+
<orchestrator>/.sessions/<ISSUE-ID>/
|
|
20
|
+
├── repo-1/ # worktree (will be used in /work)
|
|
21
|
+
├── repo-2/ # worktree (will be used in /work)
|
|
22
|
+
├── context.md # context (immutable - READ)
|
|
23
|
+
├── architecture.md # architecture (immutable - READ)
|
|
24
|
+
└── plan.md # plan (mutable - CREATE)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Main repositories** (read-only):
|
|
28
|
+
```
|
|
29
|
+
{base_path}/repo-1/ # main repo (branch main/master)
|
|
30
|
+
{base_path}/repo-2/ # main repo (branch main/master)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**GOLDEN RULE**:
|
|
34
|
+
- ✅ Read `context.md` and `architecture.md` (immutable)
|
|
35
|
+
- ✅ Create `plan.md` in `.sessions/<ISSUE-ID>/`
|
|
36
|
+
- ✅ Read code from main repositories (read-only)
|
|
37
|
+
- ❌ NEVER checkout main repositories
|
|
38
|
+
- ❌ NEVER modify `context.md` or `architecture.md`
|
|
39
|
+
|
|
40
|
+
## ⚠️ IMPORTANT: Immutable Files
|
|
41
|
+
|
|
42
|
+
**This command must READ but NOT MODIFY:**
|
|
43
|
+
- ✅ **READ** `.sessions/<ISSUE-ID>/context.md` (immutable)
|
|
44
|
+
- ✅ **READ** `.sessions/<ISSUE-ID>/architecture.md` (immutable)
|
|
45
|
+
- ✅ **CREATE** `.sessions/<ISSUE-ID>/plan.md` (mutable - will be updated during `/work`)
|
|
46
|
+
- ❌ **DO NOT modify `context.md` or `architecture.md`**
|
|
47
|
+
|
|
48
|
+
## 📚 Load MetaSpecs
|
|
49
|
+
|
|
50
|
+
**Automatically locate MetaSpecs**:
|
|
51
|
+
1. Read `context-manifest.json` from the orchestrator
|
|
52
|
+
2. Find the repository with `"role": "metaspecs"`
|
|
53
|
+
3. Read `ai.properties.md` to get the `base_path`
|
|
54
|
+
4. The metaspecs are at: `{base_path}/{metaspecs-repo-id}/`
|
|
55
|
+
5. Read the relevant `index.md` files to ensure compliance with:
|
|
56
|
+
- System architecture
|
|
57
|
+
- Design and code patterns
|
|
58
|
+
- Folder and file structure
|
|
59
|
+
- Naming conventions
|
|
60
|
+
|
|
61
|
+
## 🎯 Goal
|
|
62
|
+
|
|
63
|
+
Create a detailed technical plan that will guide the implementation, dividing the work into smaller, sequential units.
|
|
64
|
+
|
|
65
|
+
## 📝 Plan Structure
|
|
66
|
+
|
|
67
|
+
### 1. Technical Overview
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
# Technical Plan - [Feature Title]
|
|
71
|
+
|
|
72
|
+
## Summary
|
|
73
|
+
[Brief technical description of what will be implemented]
|
|
74
|
+
|
|
75
|
+
## Involved Repositories
|
|
76
|
+
- **<repo-1>**: [Role in this feature]
|
|
77
|
+
- **<repo-2>**: [Role in this feature]
|
|
78
|
+
|
|
79
|
+
## Technical Approach
|
|
80
|
+
[General implementation strategy]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 2. Solution Architecture
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
## Architecture
|
|
87
|
+
|
|
88
|
+
### Component Diagram
|
|
89
|
+
[Textual description or ASCII art of components and their relationships]
|
|
90
|
+
|
|
91
|
+
### Data Flow
|
|
92
|
+
1. [Step 1 of the flow]
|
|
93
|
+
2. [Step 2 of the flow]
|
|
94
|
+
3. [Step 3 of the flow]
|
|
95
|
+
|
|
96
|
+
### Integrations
|
|
97
|
+
- **<repo-1> → <repo-2>**: [How they communicate]
|
|
98
|
+
- **System → External API**: [If any]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 3. Technical Decisions
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
## Technical Decisions
|
|
105
|
+
|
|
106
|
+
### Decision 1: [Title]
|
|
107
|
+
**Context**: [Why we need to decide this]
|
|
108
|
+
**Considered options**:
|
|
109
|
+
- Option A: [Pros and cons]
|
|
110
|
+
- Option B: [Pros and cons]
|
|
111
|
+
**Decision**: [Chosen option]
|
|
112
|
+
**Justification**: [Why we chose this option]
|
|
113
|
+
|
|
114
|
+
### Decision 2: [Title]
|
|
115
|
+
[Same format as above]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 4. Implementation Plan
|
|
119
|
+
|
|
120
|
+
Divide the work into small, sequential units:
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
## Implementation Plan
|
|
124
|
+
|
|
125
|
+
### Phase 1: [Phase Name]
|
|
126
|
+
**Goal**: [What will be achieved in this phase]
|
|
127
|
+
**Repositories**: [affected repos]
|
|
128
|
+
|
|
129
|
+
#### Task 1.1: [Description]
|
|
130
|
+
- **Repo**: <repo-1>
|
|
131
|
+
- **Files**: [files to create/modify]
|
|
132
|
+
- **Description**: [What to do]
|
|
133
|
+
- **Tests**: [Tests to implement]
|
|
134
|
+
- **Estimate**: [estimated time]
|
|
135
|
+
|
|
136
|
+
#### Task 1.2: [Description]
|
|
137
|
+
- **Repo**: <repo-2>
|
|
138
|
+
- **Files**: [files to create/modify]
|
|
139
|
+
- **Description**: [What to do]
|
|
140
|
+
- **Tests**: [Tests to implement]
|
|
141
|
+
- **Estimate**: [estimated time]
|
|
142
|
+
|
|
143
|
+
### Phase 2: [Phase Name]
|
|
144
|
+
[Same format as above]
|
|
145
|
+
|
|
146
|
+
### Phase 3: [Phase Name]
|
|
147
|
+
[Same format as above]
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### 5. File Structure
|
|
151
|
+
|
|
152
|
+
For each repository, define the structure:
|
|
153
|
+
|
|
154
|
+
```markdown
|
|
155
|
+
## File Structure
|
|
156
|
+
|
|
157
|
+
### <repo-1>
|
|
158
|
+
```
|
|
159
|
+
src/
|
|
160
|
+
├── components/
|
|
161
|
+
│ ├── NewComponent.tsx (CREATE)
|
|
162
|
+
│ └── ExistingComponent.tsx (MODIFY)
|
|
163
|
+
├── services/
|
|
164
|
+
│ └── NewService.ts (CREATE)
|
|
165
|
+
└── tests/
|
|
166
|
+
└── NewComponent.test.tsx (CREATE)
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### <repo-2>
|
|
170
|
+
```
|
|
171
|
+
src/
|
|
172
|
+
├── controllers/
|
|
173
|
+
│ └── NewController.ts (CREATE)
|
|
174
|
+
└── tests/
|
|
175
|
+
└── NewController.test.ts (CREATE)
|
|
176
|
+
```
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### 6. APIs and Contracts
|
|
180
|
+
|
|
181
|
+
```markdown
|
|
182
|
+
## APIs and Contracts
|
|
183
|
+
|
|
184
|
+
### New Endpoints
|
|
185
|
+
|
|
186
|
+
#### POST /api/resource
|
|
187
|
+
**Request**:
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"field1": "string",
|
|
191
|
+
"field2": "number"
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Response**:
|
|
196
|
+
```json
|
|
197
|
+
{
|
|
198
|
+
"id": "string",
|
|
199
|
+
"status": "string"
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Modified Endpoints
|
|
204
|
+
|
|
205
|
+
#### GET /api/resource/:id
|
|
206
|
+
**Changes**: [What changes]
|
|
207
|
+
**Breaking Change**: Yes / No
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### 7. Testing Strategy
|
|
211
|
+
|
|
212
|
+
```markdown
|
|
213
|
+
## Testing Strategy
|
|
214
|
+
|
|
215
|
+
### Unit Tests
|
|
216
|
+
- **<repo-1>**: [Components/functions to test]
|
|
217
|
+
- **<repo-2>**: [Components/functions to test]
|
|
218
|
+
|
|
219
|
+
### Integration Tests
|
|
220
|
+
- **Scenario 1**: [Description and involved repos]
|
|
221
|
+
- **Scenario 2**: [Description and involved repos]
|
|
222
|
+
|
|
223
|
+
### E2E Tests (if applicable)
|
|
224
|
+
- **Flow 1**: [Description]
|
|
225
|
+
- **Flow 2**: [Description]
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### 8. Technical Risks
|
|
229
|
+
|
|
230
|
+
```markdown
|
|
231
|
+
## Technical Risks
|
|
232
|
+
|
|
233
|
+
### Risk 1: [Description]
|
|
234
|
+
- **Impact**: High / Medium / Low
|
|
235
|
+
- **Probability**: High / Medium / Low
|
|
236
|
+
- **Mitigation**: [How to mitigate]
|
|
237
|
+
- **Plan B**: [Alternative if it occurs]
|
|
238
|
+
|
|
239
|
+
### Risk 2: [Description]
|
|
240
|
+
[Same format as above]
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### 9. Implementation Checklist
|
|
244
|
+
|
|
245
|
+
```markdown
|
|
246
|
+
## Implementation Checklist
|
|
247
|
+
|
|
248
|
+
### Phase 1
|
|
249
|
+
- [ ] Task 1.1
|
|
250
|
+
- [ ] Task 1.2
|
|
251
|
+
- [ ] Phase 1 Tests
|
|
252
|
+
|
|
253
|
+
### Phase 2
|
|
254
|
+
- [ ] Task 2.1
|
|
255
|
+
- [ ] Task 2.2
|
|
256
|
+
- [ ] Phase 2 Tests
|
|
257
|
+
|
|
258
|
+
### Phase 3
|
|
259
|
+
- [ ] Task 3.1
|
|
260
|
+
- [ ] Task 3.2
|
|
261
|
+
- [ ] Phase 3 Tests
|
|
262
|
+
|
|
263
|
+
### Finalization
|
|
264
|
+
- [ ] Documentation updated
|
|
265
|
+
- [ ] Code review
|
|
266
|
+
- [ ] Integration tests
|
|
267
|
+
- [ ] PR created
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## 📄 Saving the Plan
|
|
271
|
+
|
|
272
|
+
Save it in `./.sessions/<ISSUE-ID>/plan.md`
|
|
273
|
+
|
|
274
|
+
## 🔍 Review
|
|
275
|
+
|
|
276
|
+
Review the plan checking:
|
|
277
|
+
- All tasks are clear and executable
|
|
278
|
+
- Dependencies between tasks are identified
|
|
279
|
+
- Estimates are realistic
|
|
280
|
+
- Risks have been considered
|
|
281
|
+
- Testing strategy is adequate
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
**Provided arguments**:
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
#$ARGUMENTS
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## 🎯 Next Step
|
|
294
|
+
|
|
295
|
+
After plan approval:
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
/work
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
This command will start executing the first work unit of the plan.
|