synapos 2.6.1 → 2.7.2

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.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: synapos-set-model
3
- version: 1.0.0
4
- description: Altera model_capability e model_name em docs/_memory/preferences.md de forma interativa
3
+ version: 1.1.0
4
+ description: Altera model_capability e model_name em docs/_memory/preferences.md
5
5
  ---
6
6
 
7
7
  # PROTOCOLO SET-MODEL
@@ -9,17 +9,17 @@ description: Altera model_capability e model_name em docs/_memory/preferences.md
9
9
  > Atualiza as configurações de modelo usadas pelo pipeline-runner e model-adapter.
10
10
  > Afeta: injeção de contexto, model_tier routing e nível de adaptação de prompts.
11
11
 
12
+ **Suporta dois modos:**
13
+ - **Non-interactive:** `/set-model high claude-opus-4-6` → aplica direto
14
+ - **Interactive:** `/set-model` → fluxo guiado com AskUserQuestion
15
+
12
16
  ---
13
17
 
14
18
  ## PASSO 1 — Ler estado atual
15
19
 
16
- Leia `docs/_memory/preferences.md` e extraia:
17
- - `model_capability` (atual)
18
- - `model_name` (atual)
19
- - `model_fast` (atual, se existir)
20
- - `model_powerful` (atual, se existir)
20
+ Leia `docs/_memory/preferences.md` e extraia valores atuais.
21
21
 
22
- Se o arquivo não existir, informe:
22
+ Se o arquivo não existir:
23
23
  ```
24
24
  ⚠️ docs/_memory/preferences.md não encontrado.
25
25
  Execute /init primeiro para criar o onboarding.
@@ -28,25 +28,118 @@ E encerre.
28
28
 
29
29
  ---
30
30
 
31
- ## PASSO 2 — Exibir estado atual
31
+ ## PASSO 2 — Modo non-interactive (se argumentos fornecidos)
32
+
33
+ Se o comando vier com argumentos (ex: `/set-model high claude-opus-4-6`):
32
34
 
33
- Exiba um resumo antes de qualquer pergunta:
35
+ 1. Parseie: `{capability} {model_name}` (model_fast e model_powerful são opcionais)
36
+ 2. Valide `capability`: deve ser `high`, `standard` ou `lite`
37
+ 3. Valide `model_name`: não vazio
38
+ 4. Se válido: vá para PASSO 6 (confirmar e salvar)
39
+ 5. Se inválido: informe erro e sugira interactive mode
34
40
 
41
+ **Formatos aceitos:**
35
42
  ```
36
- ⚙️ Configuração de modelo atual
37
- ────────────────────────────────
38
- model_capability : {valor ou "não definido"}
39
- model_name : {valor ou "não definido"}
40
- model_fast : {valor ou "não definido"}
41
- model_powerful : {valor ou "não definido"}
42
- ────────────────────────────────
43
+ /set-model high claude-opus-4-6
44
+ /set-model standard gpt-4o-mini
45
+ /set-model lite kimi
46
+ /set-model high opus fast haiku — powerful opus # com multi-model
43
47
  ```
44
48
 
45
49
  ---
46
50
 
47
- ## PASSO 3 — Escolher model_capability
51
+ ## PASSO 3 — Modo interativo (se sem argumentos)
48
52
 
49
- Use AskUserQuestion:
53
+ Exiba estado atual e use **no máximo 2 AskUserQuestion**:
54
+
55
+ ```
56
+ ⚙️ Configuração atual
57
+ model_capability: {valor}
58
+ model_name: {valor}
59
+ model_fast: {valor ou "—"}
60
+ model_powerful: {valor ou "—"}
61
+ ```
62
+
63
+ ```
64
+ AskUserQuestion({
65
+ question: "Qual capability do modelo?",
66
+ options: [
67
+ { label: "high", description: "Claude Opus/Sonnet, GPT-4o, Gemini Pro — contexto completo" },
68
+ { label: "standard", description: "Claude Haiku, GPT-4o-mini, Gemini Flash — CoT prefix" },
69
+ { label: "lite", description: "Kimi, MiniMax, Llama — context pruning" }
70
+ ]
71
+ })
72
+ ```
73
+
74
+ ```
75
+ AskUserQuestion({
76
+ question: "Modelo principal?",
77
+ options: [
78
+ { label: "claude-opus-4-6", description: "Anthropic" },
79
+ { label: "claude-sonnet-4-6", description: "Anthropic" },
80
+ { label: "gpt-4o", description: "OpenAI" },
81
+ { label: "gpt-4o-mini", description: "OpenAI" },
82
+ { label: "gemini-1.5-pro", description: "Google" },
83
+ { label: "Outro", description: "Vou informar" }
84
+ ]
85
+ })
86
+ ```
87
+
88
+ Se "Outro": peça input livre.
89
+
90
+ ---
91
+
92
+ ## PASSO 4 — Multi-model routing (opcional)
93
+
94
+ ```
95
+ AskUserQuestion({
96
+ question: "Deseja configurar model_fast e model_powerful separados?",
97
+ options: [
98
+ { label: "Não — usar um modelo só", description: "Mais simples" },
99
+ { label: "Sim — diferenciar por tier", description: "Fast + Powerful" }
100
+ ]
101
+ })
102
+ ```
103
+
104
+ Se Sim: perguntefast e powerful (máximo 2 AskUserQuestion adicionais).
105
+
106
+ ---
107
+
108
+ ## PASSO 5 — Resumo e confirmação
109
+
110
+ Exiba resumo:
111
+ ```
112
+ model_capability: {valor}
113
+ model_name: {valor}
114
+ model_fast: {valor ou "—"}
115
+ model_powerful: {valor ou "—"}
116
+ ```
117
+
118
+ ```
119
+ AskUserQuestion({
120
+ question: "Aplicar esta configuração?",
121
+ options: [
122
+ { label: "✅ Confirmar", description: "Salvar em preferences.md" },
123
+ { label: "↩️ Cancelar", description: "Não alterar" }
124
+ ]
125
+ })
126
+ ```
127
+
128
+ ---
129
+
130
+ ## PASSO 6 — Salvar
131
+
132
+ Atualize `docs/_memory/preferences.md` com os novos valores.
133
+
134
+ ---
135
+
136
+ ## PASSO 7 — Efeito por capability
137
+
138
+ | model_capability | O que muda |
139
+ |---|---|
140
+ | `high` | Contexto completo — sem adaptação |
141
+ | `standard` | CoT prefix + templates |
142
+ | `lite` | Context pruning (~70%) + scope forcing |
50
143
 
51
144
  ```
52
145
  AskUserQuestion({
@@ -12,9 +12,10 @@ Este comando analisa automaticamente o projeto e gera um briefing técnico compl
12
12
 
13
13
  # REGRAS ABSOLUTAS
14
14
 
15
- ## Regra 1: JANELAS INTERATIVAS são OBRIGATÓRIAS
15
+ ## Regra 1: ESCANEAR SILENCIOSAMENTE, VALIDAR UMA VEZ
16
16
 
17
- Após cada fase de detecção, você DEVE usar `AskUserQuestion` para validar os resultados.
17
+ Detecte tudo silenciosamente. Valide apenas no final (Fase 5).
18
+ Não pergunte após cada fase — isso cria fricção desnecessária.
18
19
 
19
20
  ## Regra 2: NUNCA INVENTE
20
21
 
@@ -78,29 +79,7 @@ Para cada arquivo `.md` encontrado na pasta de ADRs:
78
79
  1. Ler o arquivo
79
80
  2. Extrair: número, título, status, contexto, decisão, consequências
80
81
 
81
- ### 1.3 VALIDAR ADRs Detectadas
82
-
83
- ```
84
- AskUserQuestion({
85
- question: "Encontrei as seguintes ADRs. Todas estão ativas e corretas?",
86
- options: [
87
- { label: "Sim, corretas", description: "Prosseguir" },
88
- { label: "ADRs incorretas", description: "Vou informar quais estão erradas" },
89
- { label: "Faltam ADRs", description: "Vou informar as que faltam" }
90
- ]
91
- })
92
- ```
93
-
94
- Se "ADRs incorretas" ou "Faltam ADRs":
95
- ```
96
- AskUserQuestion({
97
- question: "Quais ADRs devem ser incluidas ou corrigidas?",
98
- options: [
99
- { label: "Vou listar", description: "Informar ADRs manualmente" },
100
- { label: "Pular ADRs", description: "Gerar sem esta ADR" }
101
- ]
102
- })
103
- ```
82
+ > Armazene os resultados em `[ADRs_DETECTED]` para exibir na Fase 5.
104
83
 
105
84
  ---
106
85
 
@@ -128,47 +107,13 @@ Padrões que indicam Lovable:
128
107
  - shadcn/ui (`components/ui/`)
129
108
  - Vite config
130
109
 
131
- ### 2.3 VALIDAR Frontend Detectado
132
-
133
- ```
134
- AskUserQuestion({
135
- question: "Encontrei um frontend. É Lovable?",
136
- options: [
137
- { label: "É Lovable", description: "Prosseguir com mapeamento" },
138
- { label: "É customizado", description: "Frontend manual, não Lovable" },
139
- { label: "Não é frontend", description: "Não existe frontend" }
140
- ]
141
- })
142
- ```
143
-
144
- Se "É Lovable", perguntar sobre mocks:
145
- ```
146
- AskUserQuestion({
147
- question: "O frontend Lovable tem mocks de dados? (hardcoded no código)",
148
- options: [
149
- { label: "Sim, tem mocks", description: "Vou identificar os mocks" },
150
- { label: "Não tem mocks", description: "Frontend já integrado" },
151
- { label: "Não sei", description: "Preciso verificar" }
152
- ]
153
- })
154
- ```
110
+ ### 2.3 Detectar Mocks (se Lovable)
155
111
 
156
- Se "Sim, tem mocks":
157
- - Escaneie componentes .tsx/.jsx em `src/`
112
+ Se for Lovable, escaneie componentes .tsx/.jsx em `src/`:
158
113
  - Identifique: useState com arrays/objetos hardcoded, arquivos mock*.ts, fake*.ts
159
114
  - NÃO invente — liste apenas o que encontrar
160
115
 
161
- ### 2.4 VALIDAR Mocks Encontrados
162
-
163
- ```
164
- AskUserQuestion({
165
- question: "Encontrei os seguintes mocks pendentes de integração. Confirmar?",
166
- options: [
167
- { label: "Corretos", description: "Prosseguir" },
168
- { label: "Corrigir lista", description: "Vou informar quais estão errados" }
169
- ]
170
- })
171
- ```
116
+ > Armazene resultados em `[FRONTEND_DETECTED]` e `[MOCKS_DETECTED]` para Fase 5.
172
117
 
173
118
  ---
174
119
 
@@ -205,82 +150,28 @@ Escanear e detectar:
205
150
  - Service Layer? (existe pasta services/)
206
151
  - MVC? (existe controllers/, models/)
207
152
 
208
- ### 3.4 VALIDAR Backend Detectado
209
-
210
- ```
211
- AskUserQuestion({
212
- question: "Detectei backend em [caminho]. Estrutura está correta?",
213
- options: [
214
- { label: "Correto", description: "Prosseguir" },
215
- { label: "Corrigir estrutura", description: "Vou informar a estrutura correta" }
216
- ]
217
- })
218
- ```
219
-
220
- ```
221
- AskUserQuestion({
222
- question: "Detected as seguintes pastas. Confirmar convenções?",
223
- options: [
224
- { label: "Corretas", description: "Prosseguir" },
225
- { label: "Corrigir", description: "Vou informar as correções" }
226
- ]
227
- })
228
- ```
229
-
230
- ### 3.5 NÃO Assuma, Pergunte
231
-
232
- Se não conseguir detectar padrão claramente:
153
+ **Se não detectar claramente:** marcar como "não detectado" — não perguntar.
233
154
 
234
- ```
235
- AskUserQuestion({
236
- question: "Não consegui detectar o padrão arquitetural claramente. Qual é?",
237
- options: [
238
- { label: "MVC", description: "Model-View-Controller" },
239
- { label: "Service Layer", description: "Services + Repositories" },
240
- { label: "Clean Architecture", description: "Camadas separadas" },
241
- { label: "Domain-Driven", description: "DDD com aggregates" },
242
- { label: "Outro", description: "Vou especificar" }
243
- ]
244
- })
245
- ```
155
+ > Armazene resultados em `[BACKEND_DETECTED]` para Fase 5.
246
156
 
247
157
  ---
248
158
 
249
159
  ## Fase 4: Detectar Stack Tecnológico (Silencioso)
250
160
 
251
- Ler `package.json` do backend:
252
-
253
- **Extrair:**
254
- - Framework web: express, fastify, nest, koa, hapi
255
- - Database/ORM: prisma, typeorm, drizzle, sequelize, mongoose
256
- - Validação: zod, joi, yup, class-validator
257
- - Testes: jest, vitest, mocha
258
- - Runtime: engines.node
259
-
260
- ### 4.1 VALIDAR Stack
261
-
262
- ```
263
- AskUserQuestion({
264
- question: "Detectei a seguinte stack. Confirmar?",
265
- options: [
266
- { label: "Stack Correta", description: "Prosseguir" },
267
- { label: "Corrigir stack", description: "Vou informar a stack correta" }
268
- ]
269
- })
270
- ```
271
-
272
- Se "Corrigir", perguntar cada item separadamente.
161
+ > Armazene em `[STACK_DETECTED]` para Fase 5.
273
162
 
274
163
  ---
275
164
 
276
- ## Fase 5: VALIDAR TUDO ANTES DE GERAR
165
+ ## Fase 5: VALIDAR TUDO (UMA vez só)
166
+
167
+ Apresente o resumo consolidado de tudo que foi detectado:
277
168
 
278
169
  ```
279
170
  AskUserQuestion({
280
- question: "Análise completa. Resumo do que foi detectado:",
171
+ question: "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nAnálise completa!\n\nADRs: {N} encontradas {ou "nenhuma"}\nFrontend: {[tipo] ou "não detectado"}\nBackend: {[caminho] ou "não detectado"}\nStack: {[lista] ou "não detectada"}\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\nTudo correto para gerar o briefing?",
281
172
  options: [
282
- { label: "Está tudo correto", description: "Gerar briefing completo" },
283
- { label: "Preciso corrigir", description: "Vou informar o que está errado" }
173
+ { label: " Gerar briefing", description: "Prosseguir com geração" },
174
+ { label: "✏️ Corrigir algo", description: "Vou informar o que está errado" }
284
175
  ]
285
176
  })
286
177
  ```
@@ -12,71 +12,20 @@ Você é o orquestrador de documentação do Synapos. Ao ser ativado, analise o
12
12
 
13
13
  Execute todas as verificações abaixo silenciosamente antes de apresentar qualquer output.
14
14
 
15
- ### 1.1 — Ler contexto do framework
15
+ ### 1.1 — Verificar onboarding
16
16
 
17
17
  Verifique se os arquivos existem e leia-os:
18
18
  - `docs/_memory/company.md` → nome, setor, linguagem de saída
19
19
  - `docs/_memory/preferences.md` → IDE principal, preferências
20
20
 
21
21
  Se `docs/_memory/company.md` **não existir**:
22
- - Execute o **PROTOCOLO DE ONBOARDING** abaixo para criar os arquivos
23
- - Depois continue para a verificação da documentação
24
-
25
- ### PROTOCOLO DE ONBOARDING (primeira vez)
26
-
27
- Apresente ao usuário:
28
-
29
- ```
30
- Olá! Sou o Synapos — framework de orquestração de agents.
31
- Antes de começar, preciso de algumas informações rápidas:
32
-
33
- 1. Seu nome ou nome da empresa:
34
- 2. Setor / tipo de projeto principal:
35
- 3. Linguagem de saída preferida: [PT-BR / EN-US / outro]
36
- 4. IDE principal: [Claude Code / outro]
37
- 5. Você usa algum task tracker? [GitHub Issues / Linear / Jira / Não uso]
38
- 6. Qual modelo de IA você está usando? [Claude Sonnet/Opus / GPT-4o / Gemini Pro / Kimi / MiniMax / Outro]
39
- ```
40
-
41
- Após as respostas, mapeie o modelo informado para o perfil de capacidade:
42
-
43
- | Modelo | model_capability |
44
- |---|---|
45
- | Claude Opus/Sonnet, GPT-4o, Gemini 1.5 Pro+ | `high` |
46
- | GPT-4o-mini, Gemini Flash, Claude Haiku | `standard` |
47
- | Kimi, MiniMax, Llama 3.x, modelos locais, outros não listados | `lite` |
48
-
49
- Se o usuário não souber ou pular a pergunta, assuma `high`.
50
-
51
- Crie os arquivos abaixo e continue para verificação da documentação:
52
-
53
- **`docs/_memory/company.md`:**
54
- ```markdown
55
- ---
56
- atualizado: {YYYY-MM-DD}
57
- ---
58
- # Perfil
59
-
60
- **Nome:** {resposta}
61
- **Setor:** {resposta}
62
- **Linguagem de saída:** {resposta}
63
22
  ```
23
+ ⚠️ Onboarding não realizado.
64
24
 
65
- **`docs/_memory/preferences.md`:**
66
- ```markdown
67
- ---
68
- atualizado: {YYYY-MM-DD}
69
- ---
70
- # Preferências
71
-
72
- **IDE Principal:** {resposta}
73
- **Formato de data:** YYYY-MM-DD
74
- **Task Tracker:** {github | linear | jira | none}
75
- **model_capability:** {high | standard | lite}
76
- **model_name:** {nome do modelo informado}
25
+ Execute /init primeiro para configurar o projeto.
26
+ O setup de documentação será retomado após o onboarding.
77
27
  ```
78
-
79
- **Pare aqui até que o onboarding esteja completo.**
28
+ **Pare aqui e redirecione para /init.** O orchestrator handles the onboarding.
80
29
 
81
30
  ### 1.2 — Verificar documentação existente
82
31