sincron-auto 1.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/LICENSE +20 -0
- package/README.md +195 -0
- package/agents/avaliador.md +290 -0
- package/agents/construtor.md +149 -0
- package/agents/estrutura.md +79 -0
- package/agents/gestor-projeto.md +195 -0
- package/agents/orquestrador.md +109 -0
- package/bin/install.js +449 -0
- package/commands/sincron-auto.md +406 -0
- package/docs/arquitetura.md +397 -0
- package/docs/cenarios-uso.md +292 -0
- package/docs/duvidas.md +170 -0
- package/docs/estruturas-dados.md +377 -0
- package/docs/exemplos-playwright.md +497 -0
- package/docs/fluxo-mensagens.md +180 -0
- package/docs/installation-guide.md +535 -0
- package/docs/mcp-instalacao.md +118 -0
- package/docs/metricas-performance.md +371 -0
- package/docs/relatorio-final-exemplo.md +200 -0
- package/docs/skills-vs-agents.md +107 -0
- package/docs/template-permissoes.json +83 -0
- package/package.json +34 -0
- package/skills/autorizacao/SKILL.md +78 -0
- package/skills/avaliacao/SKILL.md +55 -0
- package/skills/gerenciar/SKILL.md +60 -0
- package/skills/instalar-mcp/SKILL.md +59 -0
- package/skills/projetar/SKILL.md +53 -0
- package/skills/relatorio-final/SKILL.md +269 -0
- package/templates/settings-nenhuma.json +5 -0
- package/templates/settings-parcial.json +17 -0
- package/templates/settings-total.json +23 -0
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
# Arquitetura Sincron-Auto v1.1.x
|
|
2
|
+
|
|
3
|
+
## Visao Geral
|
|
4
|
+
|
|
5
|
+
Sistema multi-agentes para automacao de desenvolvimento no Claude Code CLI.
|
|
6
|
+
|
|
7
|
+
**Principio Fundamental**: Command controla TUDO. Agentes NUNCA chamam outros agentes.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Arquitetura Central
|
|
12
|
+
|
|
13
|
+
### Command como Controlador
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
Command (sincron-auto.md) - CONTROLADOR CENTRAL
|
|
17
|
+
|
|
|
18
|
+
+-- PHASE A: Estrutura (setup only, returns restart_required)
|
|
19
|
+
+-- PHASE B: Gestor (planning only, returns stories_created)
|
|
20
|
+
+-- PHASE C: [Approval] (Command asks user directly)
|
|
21
|
+
+-- PHASE D: Loop
|
|
22
|
+
| +-- Construtor (1 story, returns build_complete)
|
|
23
|
+
| +-- Avaliador (1 eval, returns approved/rejected)
|
|
24
|
+
+-- PHASE E: Orquestrador (report only, returns report_complete)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Por que esta Arquitetura?
|
|
28
|
+
|
|
29
|
+
**Problema das versoes anteriores (v1.0.x)**:
|
|
30
|
+
- Agentes chamavam outros agentes (Orquestrador -> Gestor -> Construtor -> Avaliador)
|
|
31
|
+
- Cada nivel acumulava contexto em memoria
|
|
32
|
+
- 5 niveis de aninhamento causavam OOM (heap out of memory)
|
|
33
|
+
|
|
34
|
+
**Solucao (v1.1.0+)**:
|
|
35
|
+
- Command controla TODO o fluxo
|
|
36
|
+
- Agentes recebem UMA tarefa e RETORNAM ao Command
|
|
37
|
+
- Maximo 2 niveis de aninhamento (Command -> Agente -> fim)
|
|
38
|
+
- Memoria liberada apos cada retorno
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Fases de Execucao
|
|
43
|
+
|
|
44
|
+
### PHASE A: First Run Setup
|
|
45
|
+
|
|
46
|
+
**Condicao**: `sincron-auto-state.json` NAO existe
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
1. Command pergunta nivel de automacao (AskUserQuestion)
|
|
50
|
+
2. Command escreve .sincron-auto/request.json
|
|
51
|
+
3. Command chama Estrutura via Task
|
|
52
|
+
4. Estrutura configura permissoes + instala MCPs
|
|
53
|
+
5. Estrutura retorna restart_required
|
|
54
|
+
6. Command mostra mensagem de reinicio e TERMINA
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### PHASE B: Planning
|
|
58
|
+
|
|
59
|
+
**Condicao**: `sincron-auto-state.json` existe, `status = "initialized"`
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
1. Command escreve .sincron-auto/request.json
|
|
63
|
+
2. Command chama Gestor via Task
|
|
64
|
+
3. Gestor analisa projeto e cria user stories
|
|
65
|
+
4. Gestor escreve .sincron-auto/user-stories.md
|
|
66
|
+
5. Gestor atualiza sincron-auto-state.json com stories array
|
|
67
|
+
6. Gestor retorna stories_created
|
|
68
|
+
7. Command vai para PHASE C
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### PHASE C: Story Approval
|
|
72
|
+
|
|
73
|
+
**Condicao**: `stories_approved = false`
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
1. Command le user-stories.md e sincron-auto-state.json
|
|
77
|
+
2. Command mostra stories no formato Como/Quero/Para
|
|
78
|
+
3. Command pergunta aprovacao (AskUserQuestion)
|
|
79
|
+
4. Se aprovado: atualiza state, vai para PHASE D
|
|
80
|
+
5. Se editar: mostra instrucao e TERMINA
|
|
81
|
+
6. Se cancelar: deleta state e TERMINA
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### PHASE D: Implementation Loop
|
|
85
|
+
|
|
86
|
+
**Condicao**: `stories_approved = true`, existem stories pendentes
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
LOOP:
|
|
90
|
+
1. Command encontra proxima story com status = "pending"
|
|
91
|
+
2. Se nao encontrou: vai para PHASE E
|
|
92
|
+
|
|
93
|
+
3. Command escreve .sincron-auto/current-story.json
|
|
94
|
+
4. Command chama Construtor via Task
|
|
95
|
+
5. Construtor implementa story
|
|
96
|
+
6. Construtor escreve .sincron-auto/build-result.json
|
|
97
|
+
7. Construtor retorna build_complete
|
|
98
|
+
|
|
99
|
+
8. Command chama Avaliador via Task
|
|
100
|
+
9. Avaliador avalia implementacao
|
|
101
|
+
10. Avaliador escreve .sincron-auto/eval-result.json
|
|
102
|
+
11. Avaliador retorna approved ou rejected
|
|
103
|
+
|
|
104
|
+
12. Se approved:
|
|
105
|
+
- Command atualiza story status para "approved"
|
|
106
|
+
- Volta ao passo 1 (proxima story)
|
|
107
|
+
|
|
108
|
+
13. Se rejected E attempt < 3:
|
|
109
|
+
- Command incrementa attempt
|
|
110
|
+
- Volta ao passo 4 (re-implementa)
|
|
111
|
+
|
|
112
|
+
14. Se rejected E attempt >= 3:
|
|
113
|
+
- Command atualiza story status para "not_approved"
|
|
114
|
+
- Volta ao passo 1 (proxima story)
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### PHASE E: Final Report
|
|
118
|
+
|
|
119
|
+
**Condicao**: Nenhuma story pendente
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
1. Command atualiza state: status = "complete"
|
|
123
|
+
2. Command chama Orquestrador via Task
|
|
124
|
+
3. Orquestrador gera relatorio final
|
|
125
|
+
4. Orquestrador escreve .sincron-auto/report.md
|
|
126
|
+
5. Orquestrador retorna report_complete
|
|
127
|
+
6. Command mostra resumo e TERMINA
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Agentes
|
|
133
|
+
|
|
134
|
+
### Estrutura
|
|
135
|
+
|
|
136
|
+
**Responsabilidade**: Setup do projeto (APENAS primeira execucao)
|
|
137
|
+
|
|
138
|
+
| Aspecto | Valor |
|
|
139
|
+
|---------|-------|
|
|
140
|
+
| Entrada | `.sincron-auto/request.json` (automation_level) |
|
|
141
|
+
| Saida | `sincron-auto-state.json` criado |
|
|
142
|
+
| Retorna | `restart_required` |
|
|
143
|
+
| Tools | Read, Write, Edit, Bash |
|
|
144
|
+
|
|
145
|
+
**Processo**:
|
|
146
|
+
1. Le nivel de automacao do arquivo
|
|
147
|
+
2. Configura permissoes em `.claude/settings.local.json`
|
|
148
|
+
3. Instala MCPs (Context7 + Playwright)
|
|
149
|
+
4. Cria arquivo de estado
|
|
150
|
+
5. Retorna ao Command
|
|
151
|
+
|
|
152
|
+
### Gestor Projeto
|
|
153
|
+
|
|
154
|
+
**Responsabilidade**: Criar user stories (APENAS planejamento)
|
|
155
|
+
|
|
156
|
+
| Aspecto | Valor |
|
|
157
|
+
|---------|-------|
|
|
158
|
+
| Entrada | `.sincron-auto/request.json` (original_request) |
|
|
159
|
+
| Saida | `user-stories.md` + `sincron-auto-state.json` atualizado |
|
|
160
|
+
| Retorna | `stories_created` |
|
|
161
|
+
| Tools | Read, Write, Edit, Glob, Grep |
|
|
162
|
+
|
|
163
|
+
**Processo**:
|
|
164
|
+
1. Le requisicao original
|
|
165
|
+
2. Analisa estrutura existente do projeto
|
|
166
|
+
3. Cria user stories com criterios FUNCIONAL/VISUAL/COMPORTAMENTO
|
|
167
|
+
4. Salva stories no formato Como/Quero/Para
|
|
168
|
+
5. Retorna ao Command
|
|
169
|
+
|
|
170
|
+
### Construtor
|
|
171
|
+
|
|
172
|
+
**Responsabilidade**: Implementar UMA story
|
|
173
|
+
|
|
174
|
+
| Aspecto | Valor |
|
|
175
|
+
|---------|-------|
|
|
176
|
+
| Entrada | `.sincron-auto/current-story.json` + `sincron-auto-state.json` |
|
|
177
|
+
| Saida | `.sincron-auto/build-result.json` |
|
|
178
|
+
| Retorna | `build_complete` |
|
|
179
|
+
| Tools | Read, Write, Edit, Bash, Glob, Grep |
|
|
180
|
+
|
|
181
|
+
**Processo**:
|
|
182
|
+
1. Le story atual e seus criterios
|
|
183
|
+
2. Implementa TODOS os criterios
|
|
184
|
+
3. Escreve resultado (arquivos criados/modificados)
|
|
185
|
+
4. Retorna ao Command
|
|
186
|
+
|
|
187
|
+
**IMPORTANTE**: Construtor NUNCA usa subagentes. Implementa diretamente.
|
|
188
|
+
|
|
189
|
+
### Avaliador
|
|
190
|
+
|
|
191
|
+
**Responsabilidade**: Avaliar UMA story
|
|
192
|
+
|
|
193
|
+
| Aspecto | Valor |
|
|
194
|
+
|---------|-------|
|
|
195
|
+
| Entrada | `.sincron-auto/current-story.json` + `build-result.json` |
|
|
196
|
+
| Saida | `.sincron-auto/eval-result.json` |
|
|
197
|
+
| Retorna | `approved` ou `rejected` |
|
|
198
|
+
| Tools | Read, Write, Bash, Glob, mcp__playwright__* |
|
|
199
|
+
|
|
200
|
+
**Processo**:
|
|
201
|
+
1. Le story e resultado da construcao
|
|
202
|
+
2. Avalia criterios FUNCIONAL (codigo)
|
|
203
|
+
3. Avalia criterios VISUAL (Playwright)
|
|
204
|
+
4. Avalia criterios COMPORTAMENTO (Playwright)
|
|
205
|
+
5. Verifica automaticamente: sobreposicoes, botoes, links
|
|
206
|
+
6. Escreve resultado com detalhes
|
|
207
|
+
7. Retorna ao Command
|
|
208
|
+
|
|
209
|
+
### Orquestrador
|
|
210
|
+
|
|
211
|
+
**Responsabilidade**: Gerar relatorio final (APENAS no fim)
|
|
212
|
+
|
|
213
|
+
| Aspecto | Valor |
|
|
214
|
+
|---------|-------|
|
|
215
|
+
| Entrada | `sincron-auto-state.json` (todas as stories) |
|
|
216
|
+
| Saida | `.sincron-auto/report.md` |
|
|
217
|
+
| Retorna | `report_complete` |
|
|
218
|
+
| Tools | Read, Write, Glob |
|
|
219
|
+
|
|
220
|
+
**Processo**:
|
|
221
|
+
1. Le estado final do projeto
|
|
222
|
+
2. Conta stories aprovadas/nao aprovadas
|
|
223
|
+
3. Calcula estimativa de tokens
|
|
224
|
+
4. Gera relatorio user-friendly
|
|
225
|
+
5. Adiciona rodape Sincronia.Digital
|
|
226
|
+
6. Retorna ao Command
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Arquivos de Comunicacao
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
.sincron-auto/
|
|
234
|
+
+-- request.json # Command -> agentes (requisicao inicial)
|
|
235
|
+
+-- user-stories.md # Gestor -> Command (stories para aprovacao)
|
|
236
|
+
+-- current-story.json # Command -> Construtor/Avaliador (qual story)
|
|
237
|
+
+-- build-result.json # Construtor -> Avaliador (o que foi feito)
|
|
238
|
+
+-- eval-result.json # Avaliador -> Command (aprovado/rejeitado)
|
|
239
|
+
+-- report.md # Orquestrador -> Command (relatorio final)
|
|
240
|
+
|
|
241
|
+
sincron-auto-state.json # Estado master (raiz do projeto)
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### request.json
|
|
245
|
+
|
|
246
|
+
```json
|
|
247
|
+
{
|
|
248
|
+
"automation_level": "total|parcial|nenhuma",
|
|
249
|
+
"original_request": "criar site de portfolio..."
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### current-story.json
|
|
254
|
+
|
|
255
|
+
```json
|
|
256
|
+
{
|
|
257
|
+
"story_id": "US-001",
|
|
258
|
+
"attempt": 1,
|
|
259
|
+
"max_attempts": 3
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### build-result.json
|
|
264
|
+
|
|
265
|
+
```json
|
|
266
|
+
{
|
|
267
|
+
"files_changed": ["src/index.html", "src/styles.css"],
|
|
268
|
+
"summary": "Criado formulario de contato..."
|
|
269
|
+
}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### eval-result.json
|
|
273
|
+
|
|
274
|
+
```json
|
|
275
|
+
{
|
|
276
|
+
"story_id": "US-001",
|
|
277
|
+
"result": "approved|rejected",
|
|
278
|
+
"attempt": 1,
|
|
279
|
+
"criteria_results": [...],
|
|
280
|
+
"issues": [...],
|
|
281
|
+
"summary": "..."
|
|
282
|
+
}
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Regras Criticas
|
|
288
|
+
|
|
289
|
+
### 1. Agentes NUNCA chamam outros agentes
|
|
290
|
+
|
|
291
|
+
```
|
|
292
|
+
ERRADO: Construtor -> Task(Avaliador)
|
|
293
|
+
CERTO: Construtor -> retorna build_complete -> Command -> Task(Avaliador)
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### 2. Command e o UNICO que usa AskUserQuestion
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
ERRADO: Estrutura usa AskUserQuestion (filtrado em subagentes)
|
|
300
|
+
CERTO: Command pergunta ANTES de chamar Estrutura
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### 3. Maximo 2 niveis de aninhamento
|
|
304
|
+
|
|
305
|
+
```
|
|
306
|
+
Nivel 1: Command
|
|
307
|
+
Nivel 2: Agente (qualquer um)
|
|
308
|
+
Nivel 3: NAO EXISTE
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### 4. Comunicacao via arquivos
|
|
312
|
+
|
|
313
|
+
```
|
|
314
|
+
ERRADO: Task(prompt com 5000 tokens de dados)
|
|
315
|
+
CERTO: Task(prompt curto) + agente le de arquivo
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## Comparacao de Arquiteturas
|
|
321
|
+
|
|
322
|
+
| Aspecto | v1.0.x | v1.1.x |
|
|
323
|
+
|---------|--------|--------|
|
|
324
|
+
| Niveis de aninhamento | 5 | 2 (max) |
|
|
325
|
+
| Quem controla loop | Gestor | Command |
|
|
326
|
+
| Agentes chamam agentes | Sim | NUNCA |
|
|
327
|
+
| Memoria | Acumula | Libera apos cada |
|
|
328
|
+
| OOM em projetos grandes | Frequente | Eliminado |
|
|
329
|
+
| AskUserQuestion funciona | Problematico | Sempre (no Command) |
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Diagramas
|
|
334
|
+
|
|
335
|
+
### Fluxo de First Run
|
|
336
|
+
|
|
337
|
+
```
|
|
338
|
+
Usuario -> /sincron-auto criar X
|
|
339
|
+
|
|
|
340
|
+
v
|
|
341
|
+
Command (PHASE A)
|
|
342
|
+
|-- AskUserQuestion: nivel de automacao?
|
|
343
|
+
|-- Write: .sincron-auto/request.json
|
|
344
|
+
|-- Task: Estrutura
|
|
345
|
+
| |-- configura permissoes
|
|
346
|
+
| |-- instala MCPs
|
|
347
|
+
| |-- cria state file
|
|
348
|
+
| +-- retorna: restart_required
|
|
349
|
+
|
|
|
350
|
+
+-- Mostra: "Reinicie o Claude Code"
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
### Fluxo de Implementacao
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
Command (PHASE D)
|
|
357
|
+
|
|
|
358
|
+
+-- LOOP para cada story pendente:
|
|
359
|
+
|
|
|
360
|
+
|-- Write: current-story.json
|
|
361
|
+
|-- Task: Construtor
|
|
362
|
+
| +-- retorna: build_complete
|
|
363
|
+
|
|
|
364
|
+
|-- Task: Avaliador
|
|
365
|
+
| +-- retorna: approved/rejected
|
|
366
|
+
|
|
|
367
|
+
+-- Se rejected e attempt < 3: retry
|
|
368
|
+
Se rejected e attempt >= 3: marca not_approved
|
|
369
|
+
Se approved: proxima story
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
## Historico de Decisoes
|
|
375
|
+
|
|
376
|
+
### Por que Command como controlador?
|
|
377
|
+
|
|
378
|
+
**Problema**: v1.0.x tinha cadeia Orquestrador -> Gestor -> Construtor -> Avaliador. Cada nivel mantinha contexto do nivel anterior, causando OOM.
|
|
379
|
+
|
|
380
|
+
**Solucao**: Command (que roda inline, nao como subagente) controla tudo. Cada agente e chamado separadamente e retorna, liberando memoria.
|
|
381
|
+
|
|
382
|
+
### Por que maximo 3 tentativas?
|
|
383
|
+
|
|
384
|
+
**Problema**: 5 tentativas acumulavam muito contexto (issues de cada tentativa).
|
|
385
|
+
|
|
386
|
+
**Solucao**: 3 tentativas e suficiente para a maioria dos casos. Se nao aprovada em 3, provavelmente precisa de intervencao humana.
|
|
387
|
+
|
|
388
|
+
### Por que Playwright no Avaliador?
|
|
389
|
+
|
|
390
|
+
**Problema**: Avaliacoes visuais sao subjetivas e inconsistentes.
|
|
391
|
+
|
|
392
|
+
**Solucao**: Playwright fornece verificacoes automaticas objetivas (sobreposicoes, botoes mortos, links quebrados).
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
**Ultima atualizacao**: 2026-01-30
|
|
397
|
+
**Versao do documento**: 2.0 (arquitetura v1.1.x)
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
# Cenários de Uso do Sincron-Auto
|
|
2
|
+
|
|
3
|
+
## 1. Primeira Execução - Novo Projeto
|
|
4
|
+
|
|
5
|
+
### Comando
|
|
6
|
+
```bash
|
|
7
|
+
/sincron-auto criar um sistema de gerenciamento de tarefas
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
### Fluxo
|
|
11
|
+
1. Orquestrador verifica que `sincron-auto-state` não existe
|
|
12
|
+
2. Aciona Agente Estrutura
|
|
13
|
+
3. Estrutura pergunta nível de automação (Total/Parcial/Nenhuma)
|
|
14
|
+
4. Estrutura instala MCPs (Context7 e Playwright)
|
|
15
|
+
5. Gestor Projeto cria `sincron-auto-state`
|
|
16
|
+
6. Gestor Projeto analisa demanda e cria user stories
|
|
17
|
+
7. Gestor Projeto define tasks com critérios de aprovação
|
|
18
|
+
8. Execução inicia task por task
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 2. Continuar Desenvolvimento Existente
|
|
23
|
+
|
|
24
|
+
### Comando
|
|
25
|
+
```bash
|
|
26
|
+
/sincron-auto vamos continuar
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Fluxo
|
|
30
|
+
1. Orquestrador verifica que `sincron-auto-state` existe
|
|
31
|
+
2. Passa para Gestor Projeto
|
|
32
|
+
3. Gestor Projeto usa Skill Gerenciar
|
|
33
|
+
4. Pega próxima task pendente (FIFO)
|
|
34
|
+
5. Envia para Construtor
|
|
35
|
+
6. Ciclo continua até todas as tasks estarem completas
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 3. Adicionar Nova Feature Durante Execução
|
|
40
|
+
|
|
41
|
+
### Cenário
|
|
42
|
+
- Sistema está na task 3 de 10
|
|
43
|
+
- Usuário quer adicionar notificações por email
|
|
44
|
+
|
|
45
|
+
### Comando
|
|
46
|
+
```bash
|
|
47
|
+
/sincron-auto vamos adicionar notificações por email
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Fluxo
|
|
51
|
+
1. Orquestrador passa demanda para Gestor Projeto
|
|
52
|
+
2. Gestor Projeto identifica como "adicionar nova feature"
|
|
53
|
+
3. Usa Skill Projetar:
|
|
54
|
+
- Cria user stories para notificações
|
|
55
|
+
- Define critérios de aprovação
|
|
56
|
+
- Cria nova(s) task(s)
|
|
57
|
+
4. Adiciona tasks ao final da lista (FIFO)
|
|
58
|
+
5. Continua execução normal
|
|
59
|
+
6. Novas tasks serão executadas após as tasks já planejadas
|
|
60
|
+
|
|
61
|
+
### Resultado no `sincron-auto-state`
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"tasks": [
|
|
65
|
+
{"id": "task-001", "name": "API Usuários", "status": "completo"},
|
|
66
|
+
{"id": "task-002", "name": "API Produtos", "status": "completo"},
|
|
67
|
+
{"id": "task-003", "name": "Dashboard UI", "status": "em execução"},
|
|
68
|
+
{"id": "task-004", "name": "Relatórios", "status": "pendente"},
|
|
69
|
+
{"id": "task-011", "name": "Sistema de Notificações Email", "status": "pendente"},
|
|
70
|
+
{"id": "task-012", "name": "Templates de Email", "status": "pendente"}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 4. Abandonar Task Desnecessária
|
|
78
|
+
|
|
79
|
+
### Cenário
|
|
80
|
+
- 10 tasks planejadas
|
|
81
|
+
- Task 3 já completa
|
|
82
|
+
- Usuário decide que task 8 não é mais necessária
|
|
83
|
+
|
|
84
|
+
### Comando
|
|
85
|
+
```bash
|
|
86
|
+
/sincron-auto a task de integração com sistema legado não é mais necessária
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Fluxo
|
|
90
|
+
1. Gestor Projeto identifica qual task abandonar
|
|
91
|
+
2. Atualiza task:
|
|
92
|
+
- Status: `completo`
|
|
93
|
+
- `abandoned: true`
|
|
94
|
+
- `abandonment_reason: "Sistema legado foi descontinuado"`
|
|
95
|
+
3. Task não será executada pelo Construtor
|
|
96
|
+
4. Conta como "completa" para finalização
|
|
97
|
+
|
|
98
|
+
### Resultado no `sincron-auto-state`
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"id": "task-008",
|
|
102
|
+
"name": "Integração com Sistema Legado",
|
|
103
|
+
"status": "completo",
|
|
104
|
+
"abandoned": true,
|
|
105
|
+
"abandonment_reason": "Sistema legado foi descontinuado, feature não é mais necessária"
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### No Relatório Final
|
|
110
|
+
```markdown
|
|
111
|
+
### 8. ⊗ Integração com Sistema Legado
|
|
112
|
+
**Status**: Abandonada
|
|
113
|
+
**Motivo**: Sistema legado foi descontinuado, feature não é mais necessária
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 5. Interrupção (Ctrl+C) e Retomada
|
|
119
|
+
|
|
120
|
+
### Cenário
|
|
121
|
+
- Task 5 está "em execução"
|
|
122
|
+
- Usuário interrompe com Ctrl+C
|
|
123
|
+
- Depois quer retomar
|
|
124
|
+
|
|
125
|
+
### Comando para Retomar
|
|
126
|
+
```bash
|
|
127
|
+
/sincron-auto vamos retomar
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Fluxo
|
|
131
|
+
1. Orquestrador recebe comando de retomada
|
|
132
|
+
2. Passa para Gestor Projeto
|
|
133
|
+
3. Gestor Projeto identifica como "retomar projeto"
|
|
134
|
+
4. Busca próxima task com status:
|
|
135
|
+
- `em execução` (task interrompida)
|
|
136
|
+
- OU `pendente` (próxima da fila)
|
|
137
|
+
5. Envia para Construtor
|
|
138
|
+
6. **Importante**: Construtor reconstrói do zero, não retoma parcialmente
|
|
139
|
+
|
|
140
|
+
### Estado Antes da Interrupção
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"tasks": [
|
|
144
|
+
{"id": "task-001", "status": "completo"},
|
|
145
|
+
{"id": "task-002", "status": "completo"},
|
|
146
|
+
{"id": "task-003", "status": "completo"},
|
|
147
|
+
{"id": "task-004", "status": "completo"},
|
|
148
|
+
{"id": "task-005", "status": "em execução"}, // ← Interrompida aqui
|
|
149
|
+
{"id": "task-006", "status": "pendente"}
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Estado Após Retomada
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"tasks": [
|
|
158
|
+
{"id": "task-001", "status": "completo"},
|
|
159
|
+
{"id": "task-002", "status": "completo"},
|
|
160
|
+
{"id": "task-003", "status": "completo"},
|
|
161
|
+
{"id": "task-004", "status": "completo"},
|
|
162
|
+
{"id": "task-005", "status": "em execução"}, // ← Retomada
|
|
163
|
+
{"id": "task-006", "status": "pendente"}
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 6. Revisar Planejamento
|
|
171
|
+
|
|
172
|
+
### Comando
|
|
173
|
+
```bash
|
|
174
|
+
/sincron-auto vamos revisar o planejamento, precisamos ajustar o escopo
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Fluxo
|
|
178
|
+
1. Gestor Projeto identifica como "revisar planejamento"
|
|
179
|
+
2. Usa Skill Projetar:
|
|
180
|
+
- Analisa projeto atual
|
|
181
|
+
- Analisa tasks existentes
|
|
182
|
+
- Ajusta user stories
|
|
183
|
+
- Redefine critérios se necessário
|
|
184
|
+
- Pode adicionar/remover/modificar tasks pendentes
|
|
185
|
+
3. Usa Skill Gerenciar para continuar execução
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 7. Múltiplas Iterações de Correção
|
|
190
|
+
|
|
191
|
+
### Cenário
|
|
192
|
+
- Construtor implementa task
|
|
193
|
+
- Avaliador rejeita (botão não funciona)
|
|
194
|
+
- Construtor corrige
|
|
195
|
+
- Avaliador aprova
|
|
196
|
+
|
|
197
|
+
### Fluxo Detalhado
|
|
198
|
+
```
|
|
199
|
+
1. Construtor → Avaliador (tentativa 1)
|
|
200
|
+
↓
|
|
201
|
+
2. Avaliador testa
|
|
202
|
+
- Botão "Salvar" não funciona
|
|
203
|
+
- Registra em relatorio-avaliacao.json
|
|
204
|
+
↓
|
|
205
|
+
3. Avaliador → Construtor (rejeitada)
|
|
206
|
+
JSON: {
|
|
207
|
+
"issues_found": [
|
|
208
|
+
{
|
|
209
|
+
"type": "functional",
|
|
210
|
+
"description": "Botão Salvar não dispara submit",
|
|
211
|
+
"recommendation": "Adicionar event listener onClick"
|
|
212
|
+
}
|
|
213
|
+
]
|
|
214
|
+
}
|
|
215
|
+
↓
|
|
216
|
+
4. Construtor corrige
|
|
217
|
+
- Adiciona onClick handler
|
|
218
|
+
↓
|
|
219
|
+
5. Construtor → Avaliador (tentativa 2)
|
|
220
|
+
↓
|
|
221
|
+
6. Avaliador testa
|
|
222
|
+
- Tudo funcionando
|
|
223
|
+
- Registra aprovação em relatorio-avaliacao.json
|
|
224
|
+
↓
|
|
225
|
+
7. Avaliador → Gestor Projeto (aprovada)
|
|
226
|
+
↓
|
|
227
|
+
8. Gestor atualiza task para "completo"
|
|
228
|
+
↓
|
|
229
|
+
9. Gestor pega próxima task
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## 8. Finalização e Relatório
|
|
235
|
+
|
|
236
|
+
### Quando Todas as Tasks Estão Completas
|
|
237
|
+
|
|
238
|
+
### Fluxo
|
|
239
|
+
1. Última task aprovada pelo Avaliador
|
|
240
|
+
2. Avaliador → Gestor Projeto (aprovada)
|
|
241
|
+
3. Gestor atualiza para "completo"
|
|
242
|
+
4. Gestor verifica: "Todas completas?"
|
|
243
|
+
- SIM → Notifica Orquestrador
|
|
244
|
+
5. Orquestrador usa Skill RelatorioFinal:
|
|
245
|
+
- Lê `relatorio-avaliacao.json`
|
|
246
|
+
- Lê `sincron-auto-state`
|
|
247
|
+
- Compila relatório user-friendly
|
|
248
|
+
- Define nome: `relatorio-sistema-gerenciamento-tarefas-2026-01-26.md`
|
|
249
|
+
- Salva em `reports/`
|
|
250
|
+
- Apresenta resumo no terminal
|
|
251
|
+
|
|
252
|
+
### Mensagem ao Usuário
|
|
253
|
+
```
|
|
254
|
+
✅ Projeto Concluído!
|
|
255
|
+
|
|
256
|
+
📊 Estatísticas:
|
|
257
|
+
- Tasks completas: 10
|
|
258
|
+
- Tasks abandonadas: 1
|
|
259
|
+
- Iterações de correção: 5
|
|
260
|
+
- Taxa de sucesso: 90%
|
|
261
|
+
|
|
262
|
+
📄 Relatório completo salvo em:
|
|
263
|
+
reports/relatorio-sistema-gerenciamento-tarefas-2026-01-26.md
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Comandos de Exemplo
|
|
269
|
+
|
|
270
|
+
### Iniciar Projeto
|
|
271
|
+
- `/sincron-auto criar sistema de blog`
|
|
272
|
+
- `/sincron-auto vamos desenvolver uma API REST`
|
|
273
|
+
|
|
274
|
+
### Continuar
|
|
275
|
+
- `/sincron-auto continuar`
|
|
276
|
+
- `/sincron-auto vamos seguir`
|
|
277
|
+
|
|
278
|
+
### Adicionar Feature
|
|
279
|
+
- `/sincron-auto adicionar autenticação OAuth`
|
|
280
|
+
- `/sincron-auto vamos incluir sistema de comentários`
|
|
281
|
+
|
|
282
|
+
### Revisar
|
|
283
|
+
- `/sincron-auto revisar planejamento`
|
|
284
|
+
- `/sincron-auto vamos ajustar o escopo`
|
|
285
|
+
|
|
286
|
+
### Retomar
|
|
287
|
+
- `/sincron-auto retomar`
|
|
288
|
+
- `/sincron-auto vamos continuar de onde paramos`
|
|
289
|
+
|
|
290
|
+
### Abandonar Task
|
|
291
|
+
- `/sincron-auto a integração com X não é mais necessária`
|
|
292
|
+
- `/sincron-auto descartar a task de migração`
|