@thatix.io/context-first-agents-cli 0.1.1 → 0.2.1
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 +25 -12
- 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 +83 -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 +83 -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 +83 -0
- package/package.json +1 -1
- 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 +83 -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 +83 -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 +83 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
# Métricas de Qualidade
|
|
2
|
+
|
|
3
|
+
Este comando coleta e analisa métricas de qualidade do código e do processo de desenvolvimento.
|
|
4
|
+
|
|
5
|
+
## 🎯 Objetivo
|
|
6
|
+
|
|
7
|
+
Medir e documentar a qualidade da implementação através de métricas objetivas:
|
|
8
|
+
- Cobertura de testes
|
|
9
|
+
- Complexidade do código
|
|
10
|
+
- Dívida técnica
|
|
11
|
+
- Performance
|
|
12
|
+
- Conformidade com padrões
|
|
13
|
+
|
|
14
|
+
## 📋 Configuração do Projeto
|
|
15
|
+
|
|
16
|
+
**⚠️ IMPORTANTE: Sempre leia os arquivos de configuração do projeto ANTES de executar este comando!**
|
|
17
|
+
|
|
18
|
+
### Arquivos Obrigatórios
|
|
19
|
+
|
|
20
|
+
1. **`context-manifest.json`** (raiz do orchestrator)
|
|
21
|
+
- Lista de repositórios do projeto
|
|
22
|
+
- Roles de cada repositório (metaspecs, application, etc.)
|
|
23
|
+
- URLs e dependências entre repositórios
|
|
24
|
+
|
|
25
|
+
2. **`ai.properties.md`** (raiz do orchestrator)
|
|
26
|
+
- Configurações do projeto (`project_name`, `base_path`)
|
|
27
|
+
- Sistema de gerenciamento de tarefas (`task_management_system`)
|
|
28
|
+
- Credenciais e configurações específicas
|
|
29
|
+
|
|
30
|
+
### Como Ler
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# 1. Ler context-manifest.json
|
|
34
|
+
cat context-manifest.json
|
|
35
|
+
|
|
36
|
+
# 2. Ler ai.properties.md
|
|
37
|
+
cat ai.properties.md
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Informações Essenciais
|
|
41
|
+
|
|
42
|
+
Após ler os arquivos, você terá:
|
|
43
|
+
- ✅ Lista completa de repositórios do projeto
|
|
44
|
+
- ✅ Localização do repositório de metaspecs
|
|
45
|
+
- ✅ Base path para localizar repositórios
|
|
46
|
+
- ✅ Sistema de task management configurado
|
|
47
|
+
- ✅ Configurações específicas do projeto
|
|
48
|
+
|
|
49
|
+
**🛑 NÃO prossiga sem ler estes arquivos!** Eles contêm informações críticas para a execução correta do comando.
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
## 📋 Pré-requisitos
|
|
53
|
+
|
|
54
|
+
- Implementação concluída (após `/work`)
|
|
55
|
+
- Testes implementados
|
|
56
|
+
- Build funcionando
|
|
57
|
+
|
|
58
|
+
## 📊 Métricas a Coletar
|
|
59
|
+
|
|
60
|
+
### 1. Cobertura de Testes
|
|
61
|
+
|
|
62
|
+
Para cada repositório modificado:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
cd <repositório>
|
|
66
|
+
|
|
67
|
+
# Executar testes com cobertura (exemplos por stack):
|
|
68
|
+
# Node.js: npm run test:coverage / jest --coverage
|
|
69
|
+
# Python: pytest --cov=src tests/
|
|
70
|
+
# Java: mvn jacoco:report / gradle jacocoTestReport
|
|
71
|
+
# Go: go test -cover ./...
|
|
72
|
+
# Ruby: rspec --coverage
|
|
73
|
+
# Rust: cargo tarpaulin
|
|
74
|
+
# PHP: ./vendor/bin/phpunit --coverage-html coverage/
|
|
75
|
+
# C#: dotnet test /p:CollectCoverage=true
|
|
76
|
+
|
|
77
|
+
# Capturar resultados
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Documente:
|
|
81
|
+
```markdown
|
|
82
|
+
## Cobertura de Testes
|
|
83
|
+
|
|
84
|
+
### <repo-1>
|
|
85
|
+
- **Cobertura Total**: X%
|
|
86
|
+
- **Statements**: X%
|
|
87
|
+
- **Branches**: X%
|
|
88
|
+
- **Functions**: X%
|
|
89
|
+
- **Lines**: X%
|
|
90
|
+
- **Arquivos não cobertos**: [lista]
|
|
91
|
+
|
|
92
|
+
### <repo-2>
|
|
93
|
+
[Mesmo formato]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 2. Complexidade do Código
|
|
97
|
+
|
|
98
|
+
Analise a complexidade ciclomática dos arquivos modificados:
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
## Complexidade do Código
|
|
102
|
+
|
|
103
|
+
### Arquivos com Alta Complexidade
|
|
104
|
+
- **arquivo1.ts**: Complexidade 15 (recomendado: < 10)
|
|
105
|
+
- **arquivo2.ts**: Complexidade 12
|
|
106
|
+
|
|
107
|
+
### Recomendações
|
|
108
|
+
- [Sugestão de refatoração 1]
|
|
109
|
+
- [Sugestão de refatoração 2]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 3. Qualidade do Código
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# Executar linting (exemplos por stack):
|
|
116
|
+
# Node.js: npm run lint / eslint .
|
|
117
|
+
# Python: flake8 . / pylint src/
|
|
118
|
+
# Java: mvn checkstyle:check
|
|
119
|
+
# Go: golangci-lint run
|
|
120
|
+
# Ruby: rubocop
|
|
121
|
+
# Rust: cargo clippy
|
|
122
|
+
|
|
123
|
+
# Verificar formatação (exemplos por stack):
|
|
124
|
+
# Node.js: prettier --check .
|
|
125
|
+
# Python: black --check .
|
|
126
|
+
# Java: mvn formatter:validate
|
|
127
|
+
# Go: gofmt -l .
|
|
128
|
+
# Ruby: rubocop --format-only
|
|
129
|
+
# Rust: cargo fmt --check
|
|
130
|
+
|
|
131
|
+
# Análise estática (exemplos por stack):
|
|
132
|
+
# Node.js: npm run analyze (se configurado)
|
|
133
|
+
# Python: mypy src/ / bandit -r src/
|
|
134
|
+
# Java: mvn pmd:check / spotbugs:check
|
|
135
|
+
# Go: go vet ./...
|
|
136
|
+
# Ruby: brakeman (para Rails)
|
|
137
|
+
# Rust: cargo audit
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Documente:
|
|
141
|
+
```markdown
|
|
142
|
+
## Qualidade do Código
|
|
143
|
+
|
|
144
|
+
### Linting
|
|
145
|
+
- **Erros**: 0
|
|
146
|
+
- **Warnings**: X
|
|
147
|
+
- **Warnings Justificados**: [lista com justificativas]
|
|
148
|
+
|
|
149
|
+
### Formatação
|
|
150
|
+
- **Status**: ✅ Conforme / ⚠️ Ajustes necessários
|
|
151
|
+
|
|
152
|
+
### Análise Estática
|
|
153
|
+
- **Problemas Críticos**: 0
|
|
154
|
+
- **Problemas Médios**: X
|
|
155
|
+
- **Problemas Baixos**: Y
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 4. Performance
|
|
159
|
+
|
|
160
|
+
Se aplicável, meça performance:
|
|
161
|
+
|
|
162
|
+
```markdown
|
|
163
|
+
## Performance
|
|
164
|
+
|
|
165
|
+
### Benchmarks
|
|
166
|
+
- **Operação X**: Yms (baseline: Zms)
|
|
167
|
+
- **Operação Y**: Yms (baseline: Zms)
|
|
168
|
+
|
|
169
|
+
### Otimizações Aplicadas
|
|
170
|
+
- [Otimização 1 e impacto]
|
|
171
|
+
- [Otimização 2 e impacto]
|
|
172
|
+
|
|
173
|
+
### Gargalos Identificados
|
|
174
|
+
- [Gargalo 1 e plano de mitigação]
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### 5. Tamanho e Impacto
|
|
178
|
+
|
|
179
|
+
```markdown
|
|
180
|
+
## Tamanho e Impacto
|
|
181
|
+
|
|
182
|
+
### Linhas de Código
|
|
183
|
+
- **Adicionadas**: +X linhas
|
|
184
|
+
- **Removidas**: -Y linhas
|
|
185
|
+
- **Modificadas**: Z linhas
|
|
186
|
+
|
|
187
|
+
### Arquivos
|
|
188
|
+
- **Novos**: X arquivos
|
|
189
|
+
- **Modificados**: Y arquivos
|
|
190
|
+
- **Removidos**: Z arquivos
|
|
191
|
+
|
|
192
|
+
### Dependências
|
|
193
|
+
- **Novas dependências**: [lista]
|
|
194
|
+
- **Tamanho do bundle**: +X KB
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### 6. Dívida Técnica
|
|
198
|
+
|
|
199
|
+
Identifique dívida técnica introduzida ou resolvida:
|
|
200
|
+
|
|
201
|
+
```markdown
|
|
202
|
+
## Dívida Técnica
|
|
203
|
+
|
|
204
|
+
### Dívida Introduzida
|
|
205
|
+
- **Item 1**: [Descrição e justificativa]
|
|
206
|
+
- Severidade: Alta / Média / Baixa
|
|
207
|
+
- Plano de resolução: [quando e como resolver]
|
|
208
|
+
|
|
209
|
+
### Dívida Resolvida
|
|
210
|
+
- **Item 1**: [O que foi resolvido]
|
|
211
|
+
- Impacto: [melhoria obtida]
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## 📄 Relatório de Métricas
|
|
215
|
+
|
|
216
|
+
Crie `./.sessions/<ISSUE-ID>/metrics.md`:
|
|
217
|
+
|
|
218
|
+
```markdown
|
|
219
|
+
# Relatório de Métricas - [ISSUE-ID]
|
|
220
|
+
|
|
221
|
+
**Data**: [data/hora]
|
|
222
|
+
**Repositórios**: [lista]
|
|
223
|
+
|
|
224
|
+
## Resumo Executivo
|
|
225
|
+
|
|
226
|
+
- **Cobertura de Testes**: X% (meta: Y%)
|
|
227
|
+
- **Qualidade do Código**: ✅ / ⚠️ / ❌
|
|
228
|
+
- **Performance**: ✅ / ⚠️ / ❌
|
|
229
|
+
- **Dívida Técnica**: Baixa / Média / Alta
|
|
230
|
+
|
|
231
|
+
## Métricas Detalhadas
|
|
232
|
+
|
|
233
|
+
[Incluir todas as seções acima]
|
|
234
|
+
|
|
235
|
+
## Comparação com Baseline
|
|
236
|
+
|
|
237
|
+
| Métrica | Antes | Depois | Variação |
|
|
238
|
+
|---------|-------|--------|----------|
|
|
239
|
+
| Cobertura | X% | Y% | +Z% |
|
|
240
|
+
| Complexidade Média | X | Y | +Z |
|
|
241
|
+
| Bundle Size | X KB | Y KB | +Z KB |
|
|
242
|
+
|
|
243
|
+
## Ações Recomendadas
|
|
244
|
+
|
|
245
|
+
1. [Ação 1 - prioridade alta]
|
|
246
|
+
2. [Ação 2 - prioridade média]
|
|
247
|
+
3. [Ação 3 - prioridade baixa]
|
|
248
|
+
|
|
249
|
+
## Aprovação para Merge
|
|
250
|
+
|
|
251
|
+
- [ ] Cobertura de testes >= meta
|
|
252
|
+
- [ ] Sem problemas críticos de qualidade
|
|
253
|
+
- [ ] Performance dentro dos requisitos
|
|
254
|
+
- [ ] Dívida técnica documentada e aprovada
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## 🎯 Metas de Qualidade
|
|
258
|
+
|
|
259
|
+
Se o projeto tiver metas definidas nas metaspecs, valide:
|
|
260
|
+
|
|
261
|
+
```markdown
|
|
262
|
+
## Validação contra Metas
|
|
263
|
+
|
|
264
|
+
### Metas do Projeto
|
|
265
|
+
- **Cobertura mínima**: 80%
|
|
266
|
+
- **Complexidade máxima**: 10
|
|
267
|
+
- **Performance**: < 100ms
|
|
268
|
+
|
|
269
|
+
### Status
|
|
270
|
+
- Cobertura: ✅ 85% (meta: 80%)
|
|
271
|
+
- Complexidade: ⚠️ 12 (meta: 10) - Justificado
|
|
272
|
+
- Performance: ✅ 85ms (meta: 100ms)
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
## 🚨 Alertas
|
|
276
|
+
|
|
277
|
+
Se alguma métrica estiver fora do aceitável:
|
|
278
|
+
1. 🛑 **DOCUMENTE** o problema
|
|
279
|
+
2. 💬 **ALERTE** o usuário
|
|
280
|
+
3. 🔧 **PROPONHA** ações corretivas
|
|
281
|
+
4. ⏸️ **CONSIDERE** bloquear o merge até resolução
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
**Argumentos fornecidos**:
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
#$ARGUMENTS
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## 🎯 Resultado
|
|
294
|
+
|
|
295
|
+
Após executar este comando, você terá:
|
|
296
|
+
- Relatório completo de métricas
|
|
297
|
+
- Comparação com baseline e metas
|
|
298
|
+
- Identificação de problemas de qualidade
|
|
299
|
+
- Recomendações de ações
|
|
300
|
+
- Base objetiva para aprovação de merge
|
|
@@ -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,83 @@
|
|
|
1
|
+
# Aquecimento — Carregamento de Contexto (índices para RAG)
|
|
2
|
+
|
|
3
|
+
Prepara o ambiente carregando os **índices das specs** para um mapa de contexto navegável.
|
|
4
|
+
O objetivo NÃO é despejar as specs no contexto, e sim carregar os **índices** para que
|
|
5
|
+
comandos seguintes saibam **onde buscar** cada informação sob demanda.
|
|
6
|
+
|
|
7
|
+
**Argumentos**: `#$ARGUMENTS`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Carregar configuração
|
|
12
|
+
|
|
13
|
+
Leia do orchestrator:
|
|
14
|
+
- **`context-manifest.json`** — `repositories[]` (id, role, hints), e o bloco
|
|
15
|
+
`orchestration` (especialmente `indexes`).
|
|
16
|
+
- **`ai.properties.md`** — `base_path`, `task_management_system`.
|
|
17
|
+
|
|
18
|
+
Localize o repositório de specs: o de `role: "metaspecs"` (ou `"specs-provider"`).
|
|
19
|
+
|
|
20
|
+
## 2. Descobrir os índices (dinâmico — não exige nenhum arquivo fixo)
|
|
21
|
+
|
|
22
|
+
Monte a lista de índices a carregar, nesta ordem de prioridade, **pulando o que não existir**:
|
|
23
|
+
|
|
24
|
+
1. Todos os caminhos em `orchestration.indexes` do manifest (se definidos).
|
|
25
|
+
2. Se nenhum foi definido, ou para complementar, **descubra** os índices no repo de specs:
|
|
26
|
+
- procure por `index.md` / `INDEX.md` em `{base_path}/{metaspecs-id}/specs/` e subpastas
|
|
27
|
+
(ex.: `specs/index.md`, `specs/technical/index.md`, `specs/business/index.md`,
|
|
28
|
+
`specs/business/features/index.md`).
|
|
29
|
+
3. Inclua também, **se existirem**, os arquivos de `context[]` de cada repositório do manifest.
|
|
30
|
+
|
|
31
|
+
> Degrade graciosamente: se um índice esperado não existir, **apenas registre e continue**.
|
|
32
|
+
> Nunca falhe o warm-up por falta de um arquivo específico.
|
|
33
|
+
|
|
34
|
+
## 3. Construir o Mapa de Contexto (o produto do warm-up)
|
|
35
|
+
|
|
36
|
+
Leia SOMENTE os índices descobertos (não os documentos que eles apontam). A partir deles,
|
|
37
|
+
monte e apresente um **mapa de RAG** — a "tabela de roteamento" do projeto:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
## Mapa de Contexto (RAG)
|
|
41
|
+
|
|
42
|
+
### Índices carregados
|
|
43
|
+
- specs/index.md → raiz da navegação
|
|
44
|
+
- specs/technical/index.md → arquitetura, API, ADRs, convenções
|
|
45
|
+
- specs/business/index.md → personas, jornada, estratégia
|
|
46
|
+
- ...(apenas os que existem)
|
|
47
|
+
|
|
48
|
+
### Onde buscar sob demanda
|
|
49
|
+
| Necessidade | Consultar (via índice) |
|
|
50
|
+
|---------------------------------|-------------------------------------|
|
|
51
|
+
| Arquitetura / decisões | technical/index.md → ARCHITECTURE / ADRs |
|
|
52
|
+
| Contrato de API | technical/index.md → API_SPECIFICATION |
|
|
53
|
+
| Regras de negócio / feature | business/index.md → features/... |
|
|
54
|
+
| Convenções de código | technical/index.md → guia de código |
|
|
55
|
+
|
|
56
|
+
### Repositórios (do manifest)
|
|
57
|
+
- <repo-id> [role] — hints: ...
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Se um índice referenciar documentos que não existem em disco, marque como
|
|
61
|
+
`(referenciado, ausente)` — isso é sinal de spec incompleta, não um erro do warm-up.
|
|
62
|
+
|
|
63
|
+
## 4. Verificar repositórios e sessão
|
|
64
|
+
|
|
65
|
+
- Para cada repo do manifest, confirme existência em `{base_path}/{repo-id}/`
|
|
66
|
+
(não leia README nem código agora — isso é sob demanda).
|
|
67
|
+
- Se um ISSUE-ID foi passado, verifique `.sessions/<ISSUE-ID>/`.
|
|
68
|
+
|
|
69
|
+
## 5. Como comandos seguintes usam isto
|
|
70
|
+
|
|
71
|
+
Comandos como `/spec`, `/orchestrate` e os agentes NÃO devem varrer o repo às cegas.
|
|
72
|
+
Eles devem: consultar o Mapa de Contexto → abrir o índice relevante → seguir o link para
|
|
73
|
+
o documento específico. É o índice que otimiza o RAG: carrega-se pouco, e navega-se com precisão.
|
|
74
|
+
|
|
75
|
+
## 6. Princípio Jidoka
|
|
76
|
+
|
|
77
|
+
Se detectar um problema estrutural (nenhum índice encontrado, specs-provider ausente):
|
|
78
|
+
**PARE**, descreva o que falta e sugira ao usuário como corrigir (ex.: criar
|
|
79
|
+
`specs/index.md` ou preencher `orchestration.indexes`). Não invente contexto.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
**Status**: Índices carregados e Mapa de Contexto montado. Aguardando o próximo comando.
|