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,83 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$comment": "Templates de permissões para diferentes níveis de automação",
4
+
5
+ "automacao_total": {
6
+ "permissions": {
7
+ "allow": [
8
+ "Read",
9
+ "Write",
10
+ "Edit",
11
+ "Glob",
12
+ "Grep",
13
+ "Bash(git *)",
14
+ "Bash(npm *)",
15
+ "Bash(npx *)",
16
+ "Bash(node *)",
17
+ "Bash(pip *)",
18
+ "Bash(python *)",
19
+ "Bash(pytest *)",
20
+ "Bash(cargo *)",
21
+ "Bash(go *)",
22
+ "Bash(dotnet *)",
23
+ "Bash(mkdir *)",
24
+ "Bash(cp *)",
25
+ "Bash(mv *)",
26
+ "Bash(rm *)",
27
+ "Bash(touch *)",
28
+ "Bash(cat *)",
29
+ "Bash(ls *)",
30
+ "Bash(pwd)",
31
+ "Bash(echo *)",
32
+ "Bash(curl *)",
33
+ "Bash(wget *)",
34
+ "Bash(tar *)",
35
+ "Bash(unzip *)",
36
+ "Bash(powershell *)",
37
+ "Bash(cmd *)",
38
+ "Bash(code *)",
39
+ "Bash(claude *)",
40
+ "WebFetch",
41
+ "WebSearch",
42
+ "Task",
43
+ "Skill(*)",
44
+ "mcp__playwright__*",
45
+ "mcp__supabase__*",
46
+ "mcp__ide__*",
47
+ "mcp__context7__*",
48
+ "mcp__gscServer__*",
49
+ "NotebookEdit",
50
+ "AskUserQuestion"
51
+ ],
52
+ "deny": []
53
+ }
54
+ },
55
+
56
+ "automacao_parcial": {
57
+ "$comment": "Apenas ferramentas core do Claude",
58
+ "permissions": {
59
+ "allow": [
60
+ "Read",
61
+ "Write",
62
+ "Edit",
63
+ "Glob",
64
+ "Grep",
65
+ "WebFetch",
66
+ "WebSearch",
67
+ "Task",
68
+ "Skill(*)",
69
+ "NotebookEdit",
70
+ "AskUserQuestion"
71
+ ],
72
+ "deny": []
73
+ }
74
+ },
75
+
76
+ "automacao_nenhuma": {
77
+ "$comment": "Mantém permissões existentes no settings.local.json sem incluir novas",
78
+ "permissions": {
79
+ "allow": [],
80
+ "deny": []
81
+ }
82
+ }
83
+ }
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "sincron-auto",
3
+ "version": "1.0.0",
4
+ "description": "Plugin de automação multi-agente para Claude Code",
5
+ "bin": {
6
+ "sincron-auto": "bin/install.js"
7
+ },
8
+ "files": [
9
+ "bin",
10
+ "commands",
11
+ "agents",
12
+ "skills",
13
+ "templates",
14
+ "docs"
15
+ ],
16
+ "keywords": [
17
+ "automation",
18
+ "multi-agent",
19
+ "claude-code",
20
+ "plugin",
21
+ "development",
22
+ "workflow"
23
+ ],
24
+ "author": "Sincron Framework",
25
+ "license": "MIT",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "https://github.com/MLTCorp/sincron-auto"
29
+ },
30
+ "homepage": "https://github.com/MLTCorp/sincron-auto#readme",
31
+ "engines": {
32
+ "node": ">=14.0.0"
33
+ }
34
+ }
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: autorizacao
3
+ description: Configure project permissions in settings.local.json based on automation level from .sincron-auto/request.json.
4
+ ---
5
+
6
+ # Autorizacao Skill
7
+
8
+ Configure Claude Code permissions based on automation level.
9
+
10
+ ## When to Use
11
+
12
+ ONLY during first-run setup by the Estrutura agent.
13
+
14
+ ## Process
15
+
16
+ ### Step 1: Read Automation Level
17
+
18
+ ```
19
+ Read .sincron-auto/request.json → automation_level
20
+ ```
21
+
22
+ Map to level:
23
+ - "Total (Recomendado)" or "Total" → Total
24
+ - "Parcial" → Parcial
25
+ - "Nenhuma" → Nenhuma
26
+
27
+ ### Step 2: Read Current Settings
28
+
29
+ ```
30
+ Read .claude/settings.local.json
31
+ ```
32
+
33
+ If file doesn't exist, create initial structure:
34
+ ```json
35
+ { "permissions": { "allow": [] } }
36
+ ```
37
+
38
+ ### Step 3: Select and Read Template
39
+
40
+ **If Total:**
41
+ ```
42
+ Read templates/settings-total.json
43
+ ```
44
+
45
+ **If Parcial:**
46
+ ```
47
+ Read templates/settings-parcial.json
48
+ ```
49
+
50
+ **If Nenhuma:**
51
+ → Skip to Step 5 (keep existing)
52
+
53
+ ### Step 4: Merge Permissions
54
+
55
+ Merge template permissions into current settings:
56
+ ```
57
+ newPermissions = [...currentPermissions, ...templatePermissions]
58
+ Remove duplicates
59
+ ```
60
+
61
+ ### Step 5: Write Updated Settings
62
+
63
+ ```
64
+ Write .claude/settings.local.json with merged permissions
65
+ ```
66
+
67
+ ### Step 6: Confirm
68
+
69
+ ```
70
+ ✅ Permissões configuradas!
71
+ Nível: [level]
72
+ ```
73
+
74
+ ## Constraints
75
+
76
+ - NEVER use AskUserQuestion (read level from file)
77
+ - NEVER overwrite existing permissions (merge only)
78
+ - ONLY modify permissions.allow array
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: avaliacao
3
+ description: This skill should be used to perform comprehensive functional and visual validation using Playwright MCP. Validates all acceptance criteria of a task and maintains evaluation report.
4
+ ---
5
+
6
+ # Avaliacao Skill
7
+
8
+ This skill performs comprehensive testing and validation against acceptance criteria.
9
+
10
+ ## Process
11
+
12
+ ### Step 1: Receive Input
13
+
14
+ You receive:
15
+ ### Step 2: Read Files
16
+
17
+ Read all files_changed to understand implementation.
18
+
19
+ ### Step 3: Functional Testing
20
+
21
+ Test each functional criterion:
22
+ - API endpoints
23
+ - Logic correctness
24
+ - Error handling
25
+
26
+ ### Step 4: Visual Testing (if applicable)
27
+
28
+ Use Playwright MCP for UI criteria:
29
+ ### Step 5: Collect Issues
30
+
31
+ For each failed criterion, document:
32
+ ### Step 6: Update Report
33
+
34
+ Append to relatorio-avaliacao.json:
35
+ ### Step 7: Check Attempt Limit (CRITICAL - PREVENTS DEADLOCK)
36
+
37
+ **BEFORE deciding result**, check limit:
38
+
39
+ ### Step 8: Make Decision
40
+
41
+ **If limit NOT reached**:
42
+
43
+ - ALL criteria passed → - ANY critical/high issues → - Multiple medium issues →
44
+ **If limit reached**:
45
+ - \ (regardless of criteria)
46
+
47
+ ### Step 9: Return Result
48
+
49
+ Return to Avaliador agent.
50
+
51
+ ## Important Notes
52
+
53
+ - ALWAYS check limit BEFORE deciding
54
+ - NEVER allow infinite loops (limit prevents deadlock)
55
+ - ONLY modify relatorio-avaliacao.json
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: gerenciar
3
+ description: This skill should be used for FIFO task queue management. Lists pending tasks, identifies next task by execution order, updates status, and returns task for Construtor.
4
+ ---
5
+
6
+ # Gerenciar Skill
7
+
8
+ This skill manages the FIFO task queue and selects the next task for execution.
9
+
10
+ ## When to Use
11
+
12
+ Use this skill to get the next pending task in FIFO order.
13
+
14
+ ## Process
15
+
16
+ ### Step 1: Read State
17
+
18
+ Read `sincron-auto-state.json` to get all tasks.
19
+
20
+ ### Step 2: Filter Pending Tasks
21
+
22
+ Filter tasks where:
23
+ - `status === "pendente"`
24
+ - `abandoned !== true`
25
+
26
+ ### Step 3: Sort by Execution Order
27
+
28
+ Sort filtered tasks by `execution_order` (ascending).
29
+
30
+ ### Step 4: Select First Task
31
+
32
+ Select the FIRST task from sorted list (FIFO).
33
+
34
+ If no tasks match criteria, return:
35
+ ```json
36
+ {
37
+ "status": "no_pending_tasks"
38
+ }
39
+ ```
40
+
41
+ ### Step 5: Update Task Status
42
+
43
+ Update selected task in state:
44
+ ```json
45
+ {
46
+ "status": "em execução"
47
+ }
48
+ ```
49
+
50
+ Save state file.
51
+
52
+ ### Step 6: Return Task
53
+
54
+ Return the task object to Gestor Projeto for delegation to Construtor.
55
+
56
+ ## Important Notes
57
+
58
+ - STRICT FIFO: Always select task with lowest execution_order
59
+ - NEVER skip tasks (unless abandoned)
60
+ - ONE task at a time
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: instalar-mcp
3
+ description: Install required MCP servers (Context7 and Playwright). Use during first-run setup.
4
+ ---
5
+
6
+ # Instalar MCP Skill
7
+
8
+ Install Context7 and Playwright MCPs for Sincron-Auto.
9
+
10
+ ## Process
11
+
12
+ ### Step 1: Check Existing MCPs
13
+
14
+ ```bash
15
+ claude mcp list
16
+ ```
17
+
18
+ Check if context7 and playwright are already installed.
19
+
20
+ ### Step 2: Install Context7 (if needed)
21
+
22
+ ```bash
23
+ claude mcp add --transport http context7 https://mcp.context7.com/mcp --header "Header-Name: ctx7sk-f1688803-3139-4a02-93df-55bf946be647"
24
+ ```
25
+
26
+ ### Step 3: Install Playwright (if needed)
27
+
28
+ ```bash
29
+ claude mcp add playwright npx @playwright/mcp@latest
30
+ ```
31
+
32
+ ### Step 4: Verify
33
+
34
+ ```bash
35
+ claude mcp list
36
+ ```
37
+
38
+ Confirm both MCPs appear in the list.
39
+
40
+ ### Step 5: Report
41
+
42
+ **Success:**
43
+ ```
44
+ ✅ MCPs instalados:
45
+ - Context7 ✓
46
+ - Playwright ✓
47
+ ```
48
+
49
+ **Failure:**
50
+ ```
51
+ ❌ Falha ao instalar MCPs:
52
+ [show manual commands]
53
+ ```
54
+
55
+ ## Constraints
56
+
57
+ - ONLY install Context7 and Playwright
58
+ - DO NOT reinstall if already present
59
+ - Provide manual commands if automatic install fails
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: projetar
3
+ description: This skill should be used when creating or reviewing project planning. It analyzes requirements to create user stories and breaks them down into granular tasks with specific acceptance criteria.
4
+ ---
5
+
6
+ # Projetar Skill
7
+
8
+ This skill transforms user requirements into structured planning: user stories → tasks → acceptance criteria.
9
+
10
+ ## When to Use
11
+
12
+ - Creating new project (first-time planning)
13
+ - Adding new features to existing project
14
+ - Reviewing/adjusting project scope
15
+
16
+ ## Process
17
+
18
+ ### Step 1: Analyze Requirements
19
+
20
+ Extract key functionality from user request.
21
+
22
+ ### Step 2: Create User Stories
23
+
24
+ Format: "Como [user], eu quero [action] para [benefit]"
25
+
26
+ ### Step 3: Break Into Tasks
27
+
28
+ One user story can generate multiple tasks. Each task should be granular and focused.
29
+
30
+ ### Step 4: Define Acceptance Criteria
31
+
32
+ Each task gets multiple specific, testable criteria.
33
+
34
+ ### Step 4.5: Classify Criteria (SMART CRITERIA - PREVENTS DEADLOCK)
35
+
36
+ For each criterion, optionally classify as:
37
+
38
+ - **isolated**: Testable with ONLY this task complete
39
+ - **dependent**: Requires OTHER tasks complete
40
+ - **integration**: Tests interaction between components
41
+
42
+ Guidelines:
43
+ - Early tasks → prefer isolated criteria
44
+ - Late tasks → can have dependent/integration criteria
45
+ - Create separate integration task at end
46
+
47
+ ### Step 5: Order Tasks
48
+
49
+ Set execution_order field based on dependencies.
50
+
51
+ ### Step 6: Return Tasks Array
52
+
53
+ Return structured tasks for Gestor Projeto to save in state.
@@ -0,0 +1,269 @@
1
+ ---
2
+ name: relatorio-final
3
+ description: This skill should be used to compile a comprehensive user-friendly markdown report from technical evaluation data. Only use when Gestor Projeto notifies that all tasks are complete.
4
+ ---
5
+
6
+ # Relatorio Final Skill
7
+
8
+ This skill generates a user-friendly markdown report from the technical state and evaluation data after all tasks are processed.
9
+
10
+ ## When to Use
11
+
12
+ Use this skill ONLY when:
13
+ - All tasks have status `completo` OR `not_approved`
14
+ - No tasks remain with status `pendente` or `em execução`
15
+ - Gestor Projeto has notified completion
16
+
17
+ DO NOT use this skill:
18
+ - During task execution
19
+ - When tasks are still pending
20
+ - For intermediate progress reports
21
+
22
+ ## Process
23
+
24
+ ### Step 1: Read State Files
25
+
26
+ Read the following files:
27
+
28
+ 1. `sincron-auto-state.json` - Project and task state
29
+ 2. `relatorio-avaliacao.json` - Evaluation history
30
+
31
+ Verify both files exist and have valid JSON.
32
+
33
+ ### Step 2: Extract Key Metrics
34
+
35
+ From `sincron-auto-state.json`, calculate:
36
+
37
+ ```javascript
38
+ const totalTasks = state.tasks.length
39
+ const approvedTasks = state.tasks.filter(t => t.status === 'completo').length
40
+ const notApprovedTasks = state.tasks.filter(t => t.status === 'not_approved').length
41
+ const abandonedTasks = state.tasks.filter(t => t.abandoned === true).length
42
+ ```
43
+
44
+ From `relatorio-avaliacao.json`, count:
45
+
46
+ ```javascript
47
+ const totalEvaluations = evaluations.length
48
+ const rejections = evaluations.filter(e => e.result === 'rejected').length
49
+ const approvals = evaluations.filter(e => e.result === 'approved').length
50
+ ```
51
+
52
+ ### Step 3: Organize Content
53
+
54
+ Structure the report with the following sections:
55
+
56
+ 1. **Header** - Project name, date, summary metrics
57
+ 2. **Executive Summary** - High-level overview
58
+ 3. **Tasks Aprovadas** - Successfully completed tasks
59
+ 4. **Tasks Não Aprovadas** - Tasks that hit attempt limit (if any)
60
+ 5. **Tasks Abandonadas** - User-abandoned tasks (if any)
61
+ 6. **Histórico de Avaliações** - Evaluation timeline
62
+ 7. **Recomendações** - Next steps based on results
63
+
64
+ ### Step 4: Generate Markdown Content
65
+
66
+ Create markdown with this structure:
67
+
68
+ ```markdown
69
+ # Relatório Final - [Project Name]
70
+
71
+ **Data**: [YYYY-MM-DD HH:MM]
72
+ **Nível de Automação**: [total|parcial|nenhuma]
73
+
74
+ ---
75
+
76
+ ## Resumo Executivo
77
+
78
+ Este projeto consistiu em [total] tasks relacionadas a: [brief project description from user stories].
79
+
80
+ ### Métricas Gerais
81
+
82
+ - ✅ **Tasks Aprovadas**: X/Y (Z%)
83
+ - ⚠️ **Tasks Não Aprovadas**: A/Y (B%)
84
+ - 🚫 **Tasks Abandonadas**: C/Y (D%)
85
+ - 🔄 **Total de Avaliações**: E
86
+ - 📊 **Taxa de Sucesso na Primeira Tentativa**: F%
87
+
88
+ ---
89
+
90
+ ## Tasks Aprovadas ✅
91
+
92
+ [For each approved task, create subsection]
93
+
94
+ ### [Task ID]: [Task Name]
95
+
96
+ **User Story**: [Associated user story]
97
+
98
+ **Critérios Atendidos**:
99
+ - [Criterion 1]
100
+ - [Criterion 2]
101
+ - [...]
102
+
103
+ **Tentativas até Aprovação**: X
104
+
105
+ **Arquivos Modificados**:
106
+ - [file1.js]
107
+ - [file2.css]
108
+
109
+ ---
110
+
111
+ ## Tasks Não Aprovadas ⚠️
112
+
113
+ [If no tasks with status not_approved, show: "Nenhuma task ficou não aprovada."]
114
+
115
+ [For each not_approved task]
116
+
117
+ ### [Task ID]: [Task Name]
118
+
119
+ **User Story**: [Associated user story]
120
+
121
+ **Tentativas**: [evaluation_attempts]/[max_evaluation_attempts]
122
+
123
+ **Motivo**: [not_approved_reason]
124
+
125
+ **Critérios que Falharam**:
126
+ - [Failed criterion 1]
127
+ - [Failed criterion 2]
128
+
129
+ **Último Issues Encontrados**:
130
+
131
+ [From last evaluation in relatorio-avaliacao.json for this task]
132
+
133
+ 1. **[Issue Type]** ([Severity])
134
+ - **Descrição**: [Issue description]
135
+ - **Recomendação**: [Issue recommendation]
136
+ - **Critério Relacionado**: [related_criteria]
137
+
138
+ **O Que Fazer Agora**:
139
+
140
+ Based on the issues, suggest one or more:
141
+
142
+ - ✏️ **Investigar Manualmente**: [Specific files/areas to check]
143
+ - 🔄 **Reexecutar**: Use `/sincron-auto continuar` para tentar novamente
144
+ - 📋 **Replanejar**: Considere dividir em tasks menores
145
+ - ✅ **Aceitar Como Está**: Se não for crítico, pode seguir em frente
146
+
147
+ ---
148
+
149
+ ## Tasks Abandonadas 🚫
150
+
151
+ [If no abandoned tasks, show: "Nenhuma task foi abandonada."]
152
+
153
+ [For each abandoned task]
154
+
155
+ ### [Task ID]: [Task Name]
156
+
157
+ **Motivo do Abandono**: [User requested abandonment]
158
+
159
+ **User Story Original**: [Associated user story]
160
+
161
+ ---
162
+
163
+ ## Histórico de Avaliações 📋
164
+
165
+ Timeline completo de todas as avaliações realizadas:
166
+
167
+ [For each evaluation in relatorio-avaliacao.json, chronologically]
168
+
169
+ **[Timestamp]** - Task [task_id]: [result]
170
+ - Tentativa: X/Y
171
+ - Issues encontrados: Z
172
+ - [Brief summary]
173
+
174
+ ---
175
+
176
+ ## Recomendações 💡
177
+
178
+ Based on the overall results, provide actionable recommendations:
179
+
180
+ ### Próximos Passos Sugeridos
181
+
182
+ 1. **Se Todas Tasks Aprovadas**:
183
+ - ✅ Projeto pronto para testes manuais
184
+ - ✅ Considere executar testes de integração end-to-end
185
+ - ✅ Deploy para ambiente de staging/produção
186
+
187
+ 2. **Se Há Tasks Não Aprovadas**:
188
+ - ⚠️ Revisar tasks não aprovadas (veja seção acima)
189
+ - ⚠️ Investigar issues específicos listados
190
+ - ⚠️ Considere replanejar tasks problemáticas
191
+ - ⚠️ Ou aceite como não-crítico e prossiga
192
+
193
+ 3. **Se Há Tasks Abandonadas**:
194
+ - 🚫 Avaliar se funcionalidade é realmente desnecessária
195
+ - 🚫 Ou retome com `/sincron-auto adicionar [feature]` se mudou de ideia
196
+
197
+ ### Melhorias Futuras
198
+
199
+ [Based on patterns in failed tasks, suggest improvements]
200
+
201
+ Exemplo:
202
+ - Se múltiplas tasks falharam em testes visuais: "Considere revisar design system"
203
+ - Se múltiplas tasks falharam em integração: "Considere task dedicada a integração end-to-end"
204
+
205
+ ---
206
+
207
+ ## Arquivos Gerados
208
+
209
+ Este relatório foi gerado automaticamente pelo Sincron-Auto.
210
+
211
+ **Arquivos de referência**:
212
+ - Estado do projeto: `sincron-auto-state.json`
213
+ - Histórico de avaliações: `relatorio-avaliacao.json`
214
+ - Este relatório: `reports/relatorio-[project]-[date].md`
215
+
216
+ ---
217
+
218
+ **Gerado por**: Sincron-Auto v1.0.0
219
+ **Data**: [YYYY-MM-DD HH:MM:SS]
220
+ ```
221
+
222
+ ### Step 5: Save Report
223
+
224
+ Generate filename with format:
225
+ ```
226
+ reports/relatorio-[project-name]-[YYYY-MM-DD-HHMM].md
227
+ ```
228
+
229
+ Sanitize project name (remove spaces, special chars, lowercase).
230
+
231
+ Write the markdown content to the file.
232
+
233
+ ### Step 6: Return Summary
234
+
235
+ Return a brief summary to Orquestrador:
236
+
237
+ ```json
238
+ {
239
+ "report_path": "reports/relatorio-[...].md",
240
+ "total_tasks": X,
241
+ "approved_tasks": Y,
242
+ "not_approved_tasks": Z,
243
+ "abandoned_tasks": A,
244
+ "success_rate": "B%"
245
+ }
246
+ ```
247
+
248
+ ## Important Notes
249
+
250
+ - DO NOT modify any source files (read-only skill)
251
+ - DO NOT use overly technical language in report (user-friendly)
252
+ - ALWAYS include actionable recommendations
253
+ - NEVER skip not_approved tasks section (critical for user)
254
+ - Use emojis sparingly for visual organization
255
+ - Keep tone professional but accessible
256
+ - Focus on WHAT happened and WHAT TO DO NEXT
257
+
258
+ ## Example Output Path
259
+
260
+ ```
261
+ reports/relatorio-sistema-blog-2026-01-26-1430.md
262
+ ```
263
+
264
+ ## Constraints
265
+
266
+ - Maximum report length: No strict limit, but aim for clarity over length
267
+ - ALWAYS include all sections even if empty
268
+ - NEVER omit not_approved tasks (most important for user)
269
+ - DO NOT make assumptions about why tasks failed (use actual evaluation data)
@@ -0,0 +1,5 @@
1
+ {
2
+ "permissions": {
3
+ "allow": []
4
+ }
5
+ }