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.
@@ -0,0 +1,170 @@
1
+ # Dúvidas sobre o Sincron-Auto
2
+
3
+ ## ✅ RESOLVIDO
4
+
5
+ ### 1. Skill "Autorização" (Agente Estrutura)
6
+ **Resposta**:
7
+ - Edita apenas o `settings.local.json`
8
+ - NÃO cria o `sincron-auto-state`
9
+ - O `sincron-auto-state` é criado pelo **Gestor Projeto**
10
+
11
+ ### 2. Arquivo `sincron-auto-state`
12
+ **Resposta**:
13
+ - Formato: **JSON**
14
+ - Criado por: **Gestor Projeto**
15
+ - Conteúdo: Ver `docs/estruturas-dados.md`
16
+
17
+ ### 3. Níveis de Automação
18
+ **Resposta**:
19
+ - **Total**: Todas as permissões do template completo
20
+ - **Parcial**: Apenas ferramentas core (Read, Write, Edit, Glob, Grep, WebFetch, WebSearch, Task, Skill(*), NotebookEdit, AskUserQuestion)
21
+ - **Nenhuma**: Mantém permissões existentes no `settings.local.json` sem incluir novas
22
+
23
+ ### 4. Ponto de Saída do Sistema
24
+ **Resposta**: O sistema finaliza quando todas as tasks têm `status: completo`
25
+
26
+ ### 5. Skills "Projetar" vs "Gerenciar" (Gestor Projeto)
27
+ **Resposta**:
28
+ - **Projetar**:
29
+ - Analisa projeto e escopo
30
+ - Cria User Stories
31
+ - Define critérios de aprovação
32
+ - Usado para planejar ou revisar planejamento
33
+ - **Gerenciar**:
34
+ - Lista tasks
35
+ - Pega próxima task pendente/em execução
36
+ - Encaminha UMA task por vez para Construtor
37
+
38
+ ### 6. Tipos de Demanda (Gestor Projeto)
39
+ **Resposta**: O Gestor identifica 3 tipos:
40
+ - **Continuar desenvolvimento**: Usa apenas Skill Gerenciar
41
+ - **Planejar novos itens**: Usa Skill Projetar, depois Gerenciar
42
+ - **Revisar planejamento**: Usa Skill Projetar, depois Gerenciar
43
+
44
+ ### 7. Status de Task
45
+ **Resposta**: 3 status possíveis:
46
+ - `pendente`: Aguardando execução
47
+ - `em execução`: Sendo trabalhada pelo Construtor
48
+ - `completo`: Aprovada pelo Avaliador
49
+
50
+ ### 8. Construtor e Subagentes
51
+ **Resposta**: Construtor usa subagentes quando fizer sentido para tornar execução mais rápida
52
+
53
+ ### 9. Avaliação Visual (Avaliador)
54
+ **Resposta**: Usando MCP Playwright, verifica:
55
+ - Coesão estética com resto do projeto
56
+ - Alinhamentos
57
+ - Tamanho de fonte
58
+ - Sobreposição indesejada de elementos
59
+
60
+ ### 10. Relatório de Avaliação
61
+ **Resposta**:
62
+ - Arquivo: `relatorio-avaliacao.json`
63
+ - Criado e atualizado pelo Avaliador
64
+ - Contém histórico de todas as avaliações
65
+ - Registra aprovações e rejeições com detalhes
66
+ - Ver estrutura em `docs/estruturas-dados.md`
67
+
68
+ ### 11. Loop de Retorno (Task Não Aprovada)
69
+ **Resposta**:
70
+ - Avaliador registra problemas no relatório
71
+ - Retorna para Construtor com recomendações detalhadas
72
+ - Construtor corrige e reenvia
73
+ - Nova avaliação atualiza registro no relatório
74
+
75
+ ### 12. Ciclo de Aprovação de Task
76
+ **Resposta**:
77
+ - Avaliador aprova task → Notifica Gestor Projeto
78
+ - Gestor Projeto atualiza task para `completo` no `sincron-auto-state`
79
+ - Gestor Projeto pega próxima task e envia para Construtor
80
+ - Ciclo repete até todas as tasks estarem `completo`
81
+
82
+ ### 13. Finalização do Projeto
83
+ **Resposta**:
84
+ - Quando todas as tasks estão `completo`:
85
+ - Gestor Projeto notifica Orquestrador
86
+ - Orquestrador usa Skill RelatorioFinal
87
+ - Compila relatório baseado no `relatorio-avaliacao.json`
88
+ - (Formato e destino do relatório a definir)
89
+
90
+ ### 14. Skill RelatorioFinal (Orquestrador)
91
+ **Resposta**:
92
+ - Acionada quando todas as tasks estão completas
93
+ - Compila relatório final user-friendly baseado no `relatorio-avaliacao.json`
94
+ - Formato: Markdown (.md)
95
+ - Nome: Definido pelo Orquestrador refletindo estrutura desenvolvida
96
+ - Local: Pasta `reports/` do projeto
97
+ - Conteúdo: Texto amigável com todos os pontos relevantes do desenvolvimento
98
+
99
+ ### 15. Skill Instalar MCP (Agente Estrutura)
100
+ **Resposta**:
101
+ - Verifica se há acesso aos MCPs: Context7 e Playwright
102
+ - Se não houver, instala via comandos:
103
+ - `claude mcp add --transport http context7 https://mcp.context7.com/mcp --header "Header-Name: ctx7sk-f1688803-3139-4a02-93df-55bf946be647"`
104
+ - `claude mcp add playwright npx @playwright/mcp@latest`
105
+ - Executada junto com Skill Autorização na primeira execução
106
+
107
+ ### 16. Priorização de Tasks (Gestor Projeto)
108
+ **Resposta**:
109
+ - **Critério**: FIFO (primeiro criado, primeiro executado)
110
+ - Dependências são gerenciadas pela **ordem de execução**
111
+ - Não há campo explícito de dependências no JSON
112
+ - Apenas tasks com status `pendente` são consideradas
113
+
114
+ ### 17. Atualização de Status de Task
115
+ **Resposta**:
116
+ - **pendente → em execução**: Gestor Projeto quando envia para Construtor
117
+ - **em execução → completo**: Gestor Projeto quando recebe aprovação do Avaliador
118
+ - Apenas Gestor Projeto atualiza o `sincron-auto-state`
119
+
120
+ ### 18. Construtor não gera relatórios
121
+ **Resposta**:
122
+ - Construtor NÃO tem skill de relatório
123
+ - Apenas desenvolve e notifica Avaliador via JSON
124
+ - Apenas Avaliador e Orquestrador geram relatórios
125
+
126
+ ## Agente Estrutura
127
+
128
+ ---
129
+
130
+ ## 🔄 PENDENTE
131
+
132
+ ---
133
+
134
+ ## Fluxo Geral
135
+
136
+ ### Interação com Usuário Durante Execução
137
+ **Pergunta**: O usuário é consultado/notificado durante a execução?
138
+ - Recebe notificação quando cada task é concluída?
139
+ - É informado sobre rejeições e correções?
140
+ - Pode acompanhar progresso em tempo real?
141
+ - **Aguardando**: Continuação da explicação
142
+
143
+ ### 19. Adicionar Tasks Durante Execução
144
+ **Resposta**:
145
+ - **Comando**: `/sincron-auto vamos adicionar notificações por email`
146
+ - **Processo**:
147
+ - Gestor Projeto recebe demanda
148
+ - Cria user stories e critérios de aprovação
149
+ - Adiciona nova task à lista (segue FIFO, vai para o final)
150
+ - Continua execução normal
151
+
152
+ ### 20. Abandonar Task Desnecessária
153
+ **Resposta**:
154
+ - Gestor Projeto marca task como `completo`
155
+ - Define campos:
156
+ - `abandoned: true`
157
+ - `abandonment_reason: "Motivo do abandono"`
158
+ - Task não é executada pelo Construtor
159
+ - Conta como "completa" para finalização do projeto
160
+ - Aparece no relatório final com indicação de abandono
161
+
162
+ ### 21. Retomar Após Interrupção (Ctrl+C)
163
+ **Resposta**:
164
+ - **Comando**: `/sincron-auto vamos retomar` (ou similar)
165
+ - **Processo**:
166
+ - Orquestrador recebe demanda
167
+ - Passa para Gestor Projeto
168
+ - Gestor pega próxima task `em execução` ou `pendente`
169
+ - Envia para Construtor
170
+ - Se task estava `em execução`: Construtor reconstrói do zero (não retoma parcialmente)
@@ -0,0 +1,377 @@
1
+ # Estruturas de Dados do Sincron-Auto
2
+
3
+ ## Task (dentro de sincron-auto-state)
4
+
5
+ ```json
6
+ {
7
+ "id": "task-001",
8
+ "name": "Nome da Task",
9
+ "description": "Descrição detalhada do que deve ser feito",
10
+ "user_stories": [
11
+ "Como [tipo de usuário], eu quero [ação] para [benefício]",
12
+ "Como desenvolvedor, eu quero uma API REST para gerenciar usuários"
13
+ ],
14
+ "acceptance_criteria": [
15
+ "Critério 1: Deve haver endpoint GET /users",
16
+ "Critério 2: Deve retornar JSON com lista de usuários",
17
+ "Critério 3: Deve ter validação de autenticação"
18
+ ],
19
+ "status": "pendente | em execução | completo",
20
+ "created_at": "2026-01-26T10:30:00Z",
21
+ "updated_at": "2026-01-26T14:45:00Z",
22
+ "started_at": "2026-01-26T10:35:00Z",
23
+ "completed_at": "2026-01-26T14:45:00Z",
24
+ "duration_seconds": 15600,
25
+ "assigned_to": "construtor",
26
+ "execution_order": 1,
27
+ "evaluation_attempts": 2,
28
+ "subagents_spawned": 4,
29
+ "abandoned": false,
30
+ "abandonment_reason": null
31
+ }
32
+ ```
33
+
34
+ ### Campos Opcionais
35
+ - **abandoned**: `true` se task foi abandonada pelo Gestor Projeto
36
+ - **abandonment_reason**: Motivo pelo qual a task foi abandonada (ex: "Feature não é mais necessária para o escopo atual")
37
+ - **started_at**: Timestamp ISO 8601 quando task iniciou execução (atribuído pelo Gestor)
38
+ - **completed_at**: Timestamp ISO 8601 quando task foi finalizada (atribuído pelo Gestor)
39
+ - **duration_seconds**: Duração em segundos (calculado: completed_at - started_at)
40
+ - **evaluation_attempts**: Número de tentativas de avaliação (atualizado pelo Gestor)
41
+ - **subagents_spawned**: Número de subagentes spawned pelo Construtor (informado ao Gestor)
42
+
43
+ **Nota sobre dependências**:
44
+ - Não há campo explícito de dependências
45
+ - Dependências são gerenciadas pela **ordem de execução** (FIFO)
46
+ - Campo `execution_order` ou ordem no array `tasks` define a sequência
47
+ - Tasks são executadas na ordem em que foram criadas pelo Gestor Projeto
48
+
49
+ ### Status de Task
50
+ - **pendente**: Task criada, aguardando execução
51
+ - **em execução**: Task sendo trabalhada pelo Construtor (atualizado pelo Gestor ao enviar para Construtor)
52
+ - **completo**: Task aprovada pelo Avaliador OU abandonada pelo Gestor (atualizado pelo Gestor)
53
+
54
+ ### Transições de Status
55
+ ```
56
+ Gestor cria task → pendente
57
+ Gestor envia para Construtor → em execução
58
+ Avaliador aprova → Gestor atualiza → completo
59
+
60
+ OU
61
+
62
+ Gestor abandona task → completo (com abandoned: true e abandonment_reason)
63
+ ```
64
+
65
+ Apenas o **Gestor Projeto** pode alterar o status das tasks.
66
+
67
+ ### Task Abandonada
68
+ Quando uma task não é mais necessária:
69
+ - **Status**: Marcado como `completo`
70
+ - **Campo abandoned**: `true`
71
+ - **Campo abandonment_reason**: Explicação do motivo
72
+ - **Exemplo**: "Feature descontinuada após revisão de escopo com stakeholders"
73
+
74
+ Tasks abandonadas:
75
+ - São contadas como "completas" para finalização do projeto
76
+ - Não são executadas pelo Construtor
77
+ - Aparecem no relatório final com indicação de abandono
78
+
79
+ ---
80
+
81
+ ## User Story
82
+
83
+ Formato padrão:
84
+ ```
85
+ Como [tipo de usuário],
86
+ Eu quero [realizar alguma ação],
87
+ Para [obter algum benefício/valor]
88
+ ```
89
+
90
+ Exemplo:
91
+ ```
92
+ Como usuário final,
93
+ Eu quero fazer login com email e senha,
94
+ Para acessar minha área restrita
95
+ ```
96
+
97
+ ---
98
+
99
+ ## Critérios de Aprovação
100
+
101
+ Lista de condições que devem ser satisfeitas para a task ser considerada completa.
102
+
103
+ Exemplo:
104
+ ```json
105
+ "acceptance_criteria": [
106
+ "Formulário de login deve ter campos email e senha",
107
+ "Botão de submit deve ser desabilitado se campos vazios",
108
+ "Deve exibir mensagem de erro se credenciais inválidas",
109
+ "Deve redirecionar para dashboard após login bem-sucedido",
110
+ "Design deve seguir paleta de cores do projeto"
111
+ ]
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Avaliação (dentro de relatorio-avaliacao.json)
117
+
118
+ ```json
119
+ {
120
+ "task_id": "task-001",
121
+ "evaluation_number": 1,
122
+ "timestamp": "2026-01-26T15:30:00Z",
123
+ "duration_seconds": 180,
124
+ "files_read_count": 12,
125
+ "files_read_total_size_kb": 256,
126
+ "playwright_commands_executed": 8,
127
+ "status": "aprovada | rejeitada",
128
+
129
+ "functional_checks": {
130
+ "description": "Verificações de funcionalidade",
131
+ "passed": [
132
+ "Endpoint GET /users implementado",
133
+ "Retorna JSON corretamente"
134
+ ],
135
+ "failed": [
136
+ "Validação de autenticação não implementada"
137
+ ]
138
+ },
139
+
140
+ "visual_checks": {
141
+ "aesthetic_cohesion": {
142
+ "status": "pass | fail",
143
+ "notes": "Cores e tipografia consistentes com o projeto"
144
+ },
145
+ "alignment": {
146
+ "status": "pass | fail",
147
+ "notes": "Elementos alinhados corretamente"
148
+ },
149
+ "font_sizes": {
150
+ "status": "pass | fail",
151
+ "notes": "Tamanhos de fonte apropriados e consistentes"
152
+ },
153
+ "unwanted_overlaps": {
154
+ "status": "pass | fail",
155
+ "notes": "Nenhuma sobreposição indesejada detectada"
156
+ }
157
+ },
158
+
159
+ "playwright_tests": {
160
+ "buttons_tested": ["btn-submit", "btn-cancel"],
161
+ "links_tested": ["/dashboard", "/profile"],
162
+ "results": [
163
+ {
164
+ "element": "btn-submit",
165
+ "test": "click",
166
+ "result": "pass | fail",
167
+ "error": "Descrição do erro se houver"
168
+ }
169
+ ]
170
+ },
171
+
172
+ "issues_found": [
173
+ {
174
+ "type": "functional | visual",
175
+ "severity": "critical | high | medium | low",
176
+ "description": "Validação de autenticação não implementada",
177
+ "recommendation": "Adicionar middleware de autenticação antes do handler do endpoint",
178
+ "related_criteria": "Critério 3: Deve ter validação de autenticação"
179
+ }
180
+ ],
181
+
182
+ "notes": "Observações gerais do avaliador"
183
+ }
184
+ ```
185
+
186
+ ---
187
+
188
+ ## Relatório de Avaliação Completo
189
+
190
+ ```json
191
+ {
192
+ "project_name": "Nome do Projeto",
193
+ "created_at": "2026-01-26T10:00:00Z",
194
+ "last_updated": "2026-01-26T15:30:00Z",
195
+
196
+ "summary": {
197
+ "total_evaluations": 5,
198
+ "approved_first_try": 3,
199
+ "required_rework": 2,
200
+ "average_iterations": 1.4
201
+ },
202
+
203
+ "evaluations": [
204
+ {
205
+ "task_id": "task-001",
206
+ "evaluation_number": 1,
207
+ "timestamp": "2026-01-26T15:30:00Z",
208
+ "status": "rejeitada",
209
+ "functional_checks": { /* ... */ },
210
+ "visual_checks": { /* ... */ },
211
+ "issues_found": [ /* ... */ ],
212
+ "notes": "..."
213
+ },
214
+ {
215
+ "task_id": "task-001",
216
+ "evaluation_number": 2,
217
+ "timestamp": "2026-01-26T16:15:00Z",
218
+ "status": "aprovada",
219
+ "functional_checks": { /* ... */ },
220
+ "visual_checks": { /* ... */ },
221
+ "issues_found": [],
222
+ "notes": "Todas as correções implementadas com sucesso"
223
+ }
224
+ ]
225
+ }
226
+ ```
227
+
228
+ ---
229
+
230
+ ## Status de Progresso (status-progresso.json)
231
+
232
+ Arquivo criado em `.sincron-auto/status-progresso.json` para tracking em tempo real do progresso da execução.
233
+
234
+ ```json
235
+ {
236
+ "fase_atual": "setup | planejamento | construcao | avaliacao | relatorio",
237
+ "task_atual": {
238
+ "id": "task-001",
239
+ "nome": "Nome da Task",
240
+ "execution_order": 1,
241
+ "total_tasks": 5
242
+ },
243
+ "tentativa_avaliacao": 2,
244
+ "max_tentativas": 5,
245
+ "timestamp": "2026-01-27T14:30:22Z",
246
+ "agente_ativo": "orquestrador | estrutura | gestor | construtor | avaliador"
247
+ }
248
+ ```
249
+
250
+ ### Campos
251
+
252
+ - **fase_atual**: Fase atual do processo
253
+ - `setup`: Configurando ambiente (Estrutura)
254
+ - `planejamento`: Criando user stories e tasks (Gestor)
255
+ - `construcao`: Implementando task (Construtor)
256
+ - `avaliacao`: Validando task (Avaliador)
257
+ - `relatorio`: Gerando relatório final (Orquestrador)
258
+
259
+ - **task_atual**: Informações da task sendo trabalhada
260
+ - `id`: ID da task
261
+ - `nome`: Nome descritivo
262
+ - `execution_order`: Posição na fila (ex: 1 de 5)
263
+ - `total_tasks`: Total de tasks no projeto
264
+
265
+ - **tentativa_avaliacao**: Número da tentativa atual de avaliação (1-5)
266
+ - **max_tentativas**: Limite de tentativas (sempre 5)
267
+ - **timestamp**: Última atualização (ISO 8601)
268
+ - **agente_ativo**: Qual agente está executando
269
+
270
+ ### Uso
271
+
272
+ - **Criado por**: Estrutura (primeira vez) ou Orquestrador (retomada)
273
+ - **Atualizado por**: Todos os agentes
274
+ - **Lido por**: Usuário (via mensagens visuais dos agentes)
275
+
276
+ ---
277
+
278
+ ## Estado do Projeto Completo (sincron-auto-state)
279
+
280
+ ```json
281
+ {
282
+ "project": {
283
+ "name": "Sistema de Gerenciamento",
284
+ "description": "API REST para gerenciamento de usuários e produtos",
285
+ "created_at": "2026-01-26T10:00:00Z",
286
+ "last_updated": "2026-01-26T16:15:00Z",
287
+ "automation_level": "total | parcial | nenhuma",
288
+ "version": "1.0.0"
289
+ },
290
+
291
+ "scope": {
292
+ "features": [
293
+ "Autenticação de usuários",
294
+ "CRUD de produtos",
295
+ "Relatórios"
296
+ ],
297
+ "technologies": ["Node.js", "Express", "PostgreSQL"],
298
+ "current_phase": "desenvolvimento"
299
+ },
300
+
301
+ "tasks": [
302
+ {
303
+ "id": "task-001",
304
+ "name": "Implementar API de Usuários",
305
+ "description": "Criar endpoints REST para gerenciar usuários",
306
+ "user_stories": [
307
+ "Como desenvolvedor, eu quero uma API REST para gerenciar usuários"
308
+ ],
309
+ "acceptance_criteria": [
310
+ "Endpoint GET /users implementado",
311
+ "Endpoint POST /users implementado",
312
+ "Validação de autenticação presente",
313
+ "Retorna JSON formatado corretamente"
314
+ ],
315
+ "status": "completo",
316
+ "created_at": "2026-01-26T10:30:00Z",
317
+ "updated_at": "2026-01-26T16:15:00Z",
318
+ "assigned_to": "construtor",
319
+ "priority": 1,
320
+ "evaluation_history": [
321
+ {
322
+ "evaluation_number": 1,
323
+ "status": "rejeitada",
324
+ "timestamp": "2026-01-26T15:30:00Z"
325
+ },
326
+ {
327
+ "evaluation_number": 2,
328
+ "status": "aprovada",
329
+ "timestamp": "2026-01-26T16:15:00Z"
330
+ }
331
+ ]
332
+ },
333
+ {
334
+ "id": "task-002",
335
+ "name": "Implementar Dashboard UI",
336
+ "description": "Criar interface de dashboard com gráficos",
337
+ "user_stories": [
338
+ "Como usuário, eu quero visualizar métricas em um dashboard"
339
+ ],
340
+ "acceptance_criteria": [
341
+ "Dashboard responsivo",
342
+ "Gráficos carregam dados da API",
343
+ "Design consistente com projeto"
344
+ ],
345
+ "status": "em execução",
346
+ "created_at": "2026-01-26T10:35:00Z",
347
+ "updated_at": "2026-01-26T16:20:00Z",
348
+ "assigned_to": "construtor",
349
+ "priority": 2
350
+ },
351
+ {
352
+ "id": "task-003",
353
+ "name": "Implementar Autenticação JWT",
354
+ "description": "Adicionar autenticação baseada em JWT",
355
+ "user_stories": [
356
+ "Como usuário, eu quero fazer login seguro com token JWT"
357
+ ],
358
+ "acceptance_criteria": [
359
+ "Endpoint POST /login retorna token JWT",
360
+ "Token expira após 24 horas",
361
+ "Middleware valida token em rotas protegidas"
362
+ ],
363
+ "status": "pendente",
364
+ "created_at": "2026-01-26T10:40:00Z",
365
+ "updated_at": "2026-01-26T10:40:00Z",
366
+ "priority": 3
367
+ }
368
+ ],
369
+
370
+ "statistics": {
371
+ "total_tasks": 3,
372
+ "completed_tasks": 1,
373
+ "in_progress_tasks": 1,
374
+ "pending_tasks": 1
375
+ }
376
+ }
377
+ ```