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
package/docs/duvidas.md
ADDED
|
@@ -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
|
+
```
|