synapos 2.6.0 → 2.7.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.
@@ -10,7 +10,7 @@
10
10
  Estas regras são ativas em **toda** interação, sem exceção:
11
11
 
12
12
  1. **Nunca execute sem contexto mínimo** — leia `docs/_memory/company.md` antes de qualquer ação significativa. Se não existir, inicie o onboarding (veja `.synapos/copilot.md`).
13
- 2. **Nunca tome decisões autônomas** — escolhas de biblioteca, arquitetura, padrão ou framework que não estejam especificadas devem ser sinalizadas como `[DECISÃO PENDENTE]` e aguardar aprovação do usuário.
13
+ 2. **Nunca tome decisões autônomas** — escolhas de biblioteca, arquitetura, padrão ou framework que não estejam especificadas devem ser sinalizadas com `[?]` no output e aguardar aprovação do usuário antes de continuar.
14
14
  3. **Respeite ADRs existentes** — antes de implementar, verifique arquivos com `ADR`, `adr` ou `decisions` no nome em `docs/`. Conflito com ADR = bloqueio obrigatório.
15
15
  4. **Use os arquivos como memória** — estado e contexto vivem em `docs/.squads/sessions/{feature-slug}/`. Sempre leia antes de executar.
16
16
  5. **Nunca escreva dentro de `.synapos/`** — essa pasta é somente do framework.
@@ -24,19 +24,22 @@ Ative via comentário no código ou mensagem no chat:
24
24
  | Comando | Ação |
25
25
  |---------|------|
26
26
  | `synapos:init` | Iniciar ou retomar o orquestrador Synapos |
27
- | `synapos:squad squad:{domínio} mode:{modo} pipeline:{pipeline}` | Criar e ativar um squad |
27
+ | `synapos:session` | Listar sessions ativas e navegar contexto de features |
28
+ | `synapos:session slug:{feature}` | Abrir session específica com resumo de context.md |
29
+ | `synapos:session consolidate` | Consolidar memories.md e review-notes.md manualmente |
30
+ | `synapos:squad squad:{domínio} mode:{modo} pipeline:{pipeline}` | Criar e ativar um role |
28
31
  | `synapos:step step:{id}` | Executar um step específico do pipeline ativo |
29
32
  | `synapos:gate gate:{GATE-N}` | Executar validação de um gate |
30
- | `synapos:status` | Exibir estado do squad e session ativos |
31
- | `synapos:decision id:{N} choice:{A\|B}` | Resolver uma decisão pendente |
33
+ | `synapos:status` | Exibir estado do role e session ativos |
32
34
  | `synapos:memory` | Exibir memória da feature ativa |
33
35
 
34
36
  **Exemplos:**
35
37
  ```
36
38
  // synapos:init
37
- // synapos:squad squad:frontend mode:bootstrap pipeline:bug-fix
39
+ // synapos:session
40
+ // synapos:session slug:auth-module
41
+ // synapos:squad squad:frontend mode:quick pipeline:bug-fix
38
42
  // synapos:step step:01-gate-integridade
39
- // synapos:decision id:1 choice:A
40
43
  ```
41
44
 
42
45
  ---
@@ -45,11 +48,10 @@ Ative via comentário no código ou mensagem no chat:
45
48
 
46
49
  | Modo | Quando usar | Comportamento |
47
50
  |------|-------------|---------------|
48
- | `bootstrap` | Projeto novo ou quick fix | Contexto mínimo, sem bloquear execução |
49
- | `standard` | Feature com docs parciais | Gates essenciais, validação de decisões |
50
- | `strict` | Feature crítica com docs completas | Todos os gates, máxima qualidade |
51
+ | `quick` | Bug fix, ajuste, quick change | Contexto mínimo session files apenas |
52
+ | `complete` | Feature nova, refactor, arquitetura | docs/, ADRs e session files completos |
51
53
 
52
- O modo é determinado automaticamente com base no score de documentação + complexidade da tarefa. Veja `.synapos/copilot.md` para a lógica completa.
54
+ O modo é inferido automaticamente por palavras-chave da mensagem. Veja `.synapos/copilot.md` para a lógica completa.
53
55
 
54
56
  ---
55
57
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "framework": {
3
3
  "name": "synapos",
4
- "version": "2.6.0",
4
+ "version": "2.6.1",
5
5
  "released_at": "2026-04-03"
6
6
  },
7
7
  "best_practices": {
@@ -24,7 +24,7 @@
24
24
  }
25
25
  },
26
26
  "core": {
27
- "orchestrator": "1.6.0",
27
+ "orchestrator": "1.6.1",
28
28
  "pipeline_runner": "2.3.0",
29
29
  "gate_system": "1.5.0",
30
30
  "model_adapter": "1.1.0",
package/.synapos/VERSION CHANGED
@@ -1 +1 @@
1
- 2.6.0
1
+ 2.6.1
@@ -25,6 +25,7 @@ Antes de executar qualquer protocolo, tenha em mente:
25
25
  | `execution: checkpoint` | Apresente checklist `[ ]` e aguarde `ok` ou número |
26
26
  | Gates automáticos | Checklist ao final do output — falhas listadas explicitamente |
27
27
  | `/init`, `/setup:*` | `synapos:init`, `synapos:squad` via comentário ou mensagem |
28
+ | `/session` | `synapos:session` — lista sessions, abre contexto, consolida memórias |
28
29
 
29
30
  Protocolo completo de adaptação: `.synapos/core/copilot-adapter.md`
30
31
 
@@ -60,65 +61,22 @@ Enquanto isso, você pode criar novos squads normalmente.
60
61
 
61
62
  ### PROTOCOLO DE ONBOARDING (primeira vez)
62
63
 
63
- Apresente as perguntas uma por vez. Aguarde resposta antes de prosseguir.
64
+ **1 pergunta. Nada mais.**
64
65
 
65
- **Pergunta 1:**
66
66
  ```
67
- Olá! Sou o Synapos — framework de orquestração de agents.
67
+ Olá! Sou o Synapos.
68
68
 
69
- Antes de começar, qual é o nome da empresa ou projeto?
70
- (Digite o nome)
71
- ```
72
-
73
- **Pergunta 2:**
74
- ```
75
- Qual é o setor ou tipo de projeto?
69
+ Duas coisas rápidas para começar:
70
+ 1. Qual é o nome do projeto?
71
+ 2. O que você quer fazer agora?
76
72
 
77
- 1) SaaS / Software
78
- 2) E-commerce
79
- 3) Aplicativo Mobile
80
- 4) API / Backend
81
- 5) Ferramenta Interna
82
- 6) Open Source
83
- 7) Outro — vou especificar
73
+ Responda as duas juntas. Ex: "Meu SaaS corrigir bug no login"
84
74
  ```
85
75
 
86
- **Pergunta 3:**
87
- ```
88
- Qual linguagem de saída preferida?
89
-
90
- 1) Português (PT-BR)
91
- 2) English (EN-US)
92
- 3) Outro
93
- ```
94
-
95
- **Pergunta 4:**
96
- ```
97
- Qual task tracker você usa?
98
-
99
- 1) GitHub Issues
100
- 2) Linear
101
- 3) Jira
102
- 4) Não uso
103
- ```
104
-
105
- **Pergunta 5:**
106
- ```
107
- Qual modelo de IA você está usando?
108
-
109
- 1) GPT-4o (GitHub Copilot padrão)
110
- 2) Claude Opus/Sonnet
111
- 3) Gemini Pro
112
- 4) Outro
113
- ```
114
-
115
- Após as respostas, mapeie o modelo para `model_capability`:
116
-
117
- | Modelo | model_capability |
118
- |---|---|
119
- | GPT-4o, Claude Opus/Sonnet, Gemini 1.5 Pro+ | `high` |
120
- | GPT-4o-mini, Claude Haiku, Gemini Flash | `standard` |
121
- | Modelos locais, outros | `lite` |
76
+ Com a resposta, extraia nome do projeto e contexto da tarefa. Defaults silenciosos:
77
+ - Task tracker: `none`
78
+ - model_capability: `high`
79
+ - Linguagem: detectada na resposta, padrão `pt-BR`
122
80
 
123
81
  Crie os arquivos:
124
82
 
@@ -129,9 +87,9 @@ atualizado: {YYYY-MM-DD}
129
87
  ---
130
88
  # Perfil
131
89
 
132
- **Nome:** {resposta}
133
- **Setor:** {resposta}
134
- **Linguagem de saída:** {resposta}
90
+ **Nome:** {nome inferido}
91
+ **Setor:** não informado
92
+ **Linguagem de saída:** {pt-BR | en-US}
135
93
  ```
136
94
 
137
95
  **`docs/_memory/preferences.md`:**
@@ -143,86 +101,42 @@ atualizado: {YYYY-MM-DD}
143
101
 
144
102
  **IDE Principal:** Copilot
145
103
  **Formato de data:** YYYY-MM-DD
146
- **Task Tracker:** {github | linear | jira | none}
147
- **model_capability:** {high | standard | lite}
148
- **model_name:** {nome do modelo informado}
104
+ **Task Tracker:** none
105
+ **model_capability:** high
106
+ **model_name:** não informado
149
107
  ```
150
108
 
151
- ---
152
-
153
- ## PASSO 2 — MODE DECISION SYSTEM
154
-
155
- Calcule o score de documentação e a complexidade da tarefa para determinar o modo de execução.
156
-
157
- ### 2.1 — Score de Documentação
109
+ > Setor, task tracker e modelo podem ser ajustados depois diretamente nos arquivos.
158
110
 
159
- | Item | Pontos |
160
- |------|--------|
161
- | `docs/_memory/company.md` existe | +30 |
162
- | `docs/tech/` existe com ≥ 1 arquivo `.md` | +20 |
163
- | `docs/business/` existe com ≥ 1 arquivo `.md` | +20 |
164
- | `docs/tech-context/` existe com ≥ 1 arquivo `.md` | +15 |
165
- | Total de arquivos `.md` em `docs/` ≥ 5 | +15 |
166
-
167
- Armazene como `[DOC_SCORE]` (0–100).
111
+ ---
168
112
 
169
- ### 2.2Inferir Complexidade
113
+ ## PASSO 2 — ESCOLHA DE MODO
170
114
 
171
- Se o usuário não informou a tarefa ainda, pergunte:
172
- ```
173
- O que você quer fazer?
174
- (Descreva em 1-2 frases — ex: corrigir bug no login, criar endpoint de pagamento)
175
- ```
115
+ **Tente inferir o modo automaticamente pela mensagem do usuário.**
176
116
 
177
- | Complexidade | Sinais |
117
+ | Sinal na mensagem | Modo inferido |
178
118
  |---|---|
179
- | **LOW** | fix, typo, ajuste, quick, bug simples, texto, cor, label |
180
- | **MEDIUM** | feature, endpoint, component, tela, módulo, integração, CRUD |
181
- | **HIGH** | arquitetura, refactor, sistema, infra, migração, redesign, segurança |
182
-
183
- ### 2.3 — Execution Mode
119
+ | "fix", "bug", "typo", "quick", "ajuste", "cor", "texto" | `quick` |
120
+ | "feature", "arquitetura", "refactor", "sistema", "integração" | `complete` |
121
+ | Nenhum sinal claro | perguntar |
184
122
 
185
- | Condição | Modo |
186
- |---|---|
187
- | `company.md` não existe OU `[DOC_SCORE]` = 0 | **BOOTSTRAP** |
188
- | `[COMPLEXITY]` = LOW | **BOOTSTRAP** |
189
- | `[COMPLEXITY]` = MEDIUM e `[DOC_SCORE]` < 40 | **BOOTSTRAP** |
190
- | `[COMPLEXITY]` = MEDIUM e `[DOC_SCORE]` ≥ 40 | **STANDARD** |
191
- | `[COMPLEXITY]` = HIGH e `[DOC_SCORE]` < 70 | **STANDARD** |
192
- | `[COMPLEXITY]` = HIGH e `[DOC_SCORE]` ≥ 70 | **STRICT** |
193
-
194
- ### 2.4 — Informar o Modo
195
-
196
- **BOOTSTRAP:**
123
+ **Se não for possível inferir, pergunte:**
197
124
  ```
198
- Bootstrap Mode
199
- Score de documentação: {DOC_SCORE}/100
200
- Complexidade detectada: {COMPLEXITY}
201
-
202
- Executando com contexto mínimo.
203
- Pipelines disponíveis: quick-fix, bug-fix
125
+ Como você quer executar?
204
126
 
205
- Para desbloquear mais pipelines:
206
- Crie docs/tech/ com documentação técnica (+20 pts)
207
- → Crie docs/business/ com contexto de negócio (+20 pts)
127
+ 1) Rápido — executa direto, sem ler documentação do projeto
128
+ 2) 🔵 Completo — lê docs/, injeta ADRs e contexto completo
208
129
  ```
209
130
 
210
- **STANDARD:**
211
- ```
212
- 🟡 Standard Mode
213
- Score de documentação: {DOC_SCORE}/100
214
- Complexidade detectada: {COMPLEXITY}
131
+ Armazene como `[EXECUTION_MODE]` (`quick` / `complete`).
215
132
 
216
- Contexto parcial disponível. Gates ativos: GATE-0, GATE-ADR, GATE-DECISION.
133
+ **Informe o modo escolhido:**
217
134
  ```
218
-
219
- **STRICT:**
135
+ ⚡ Modo Rápido — executando sem documentação de projeto.
220
136
  ```
221
- 🔴 Strict Mode
222
- Score de documentação: {DOC_SCORE}/100
223
- Complexidade detectada: {COMPLEXITY}
224
-
225
- Contexto completo disponível. Todos os gates ativos. Máxima qualidade.
137
+ ou
138
+ ```
139
+ 🔵 Modo Completo — contexto completo disponível.
226
140
  ```
227
141
 
228
142
  ---
@@ -238,16 +152,16 @@ Para cada squad encontrado, leia `.synapos/squads/{squad}/squad.yaml` e extraia:
238
152
 
239
153
  ## PASSO 4 — MENU PRINCIPAL
240
154
 
241
- **Se existem squads**, apresente:
155
+ **Se existem roles ativos (squads)**, apresente:
242
156
  ```
243
- Squads ativos:
157
+ Roles ativos:
244
158
 
245
159
  1) 🟢 {slug} — {domain} · {description}
246
160
  2) 🟡 {slug} — {domain} · {description} (pausado)
247
- 3) ✨ Criar novo squad
161
+ 3) ✨ Ativar novo role
248
162
  ```
249
163
 
250
- **Se não existem squads** → vá para PASSO 5.
164
+ **Se não existem roles** → vá para PASSO 5.
251
165
 
252
166
  ---
253
167
 
@@ -397,17 +311,28 @@ Após confirmação, execute conforme `.synapos/core/pipeline-runner.md` com as
397
311
  Quando o usuário usa `synapos:squad` com parâmetros, pule direto para PASSO 6:
398
312
 
399
313
  ```
400
- // synapos:squad squad:frontend mode:bootstrap pipeline:bug-fix feature:fix-login
314
+ // synapos:squad squad:frontend mode:quick pipeline:bug-fix feature:fix-login
401
315
  ```
402
316
 
403
317
  Parse os parâmetros:
404
- - `squad:` → domínio do squad
405
- - `mode:` → forçar execution mode (bootstrap/standard/strict)
318
+ - `squad:` → domínio do role
319
+ - `mode:` → forçar execution mode (`quick` / `complete`)
406
320
  - `pipeline:` → pipeline a usar
407
321
  - `feature:` → slug da feature session
408
322
 
409
323
  ---
410
324
 
325
+ ## COMANDO `synapos:session`
326
+
327
+ Quando o usuário usa `synapos:session`, siga o protocolo de `.synapos/core/commands/session.md` com as adaptações Copilot ativas:
328
+
329
+ - Sem AskUserQuestion → apresente lista numerada e aguarde resposta
330
+ - `synapos:session` → lista todas as sessions
331
+ - `synapos:session slug:{feature}` → abre session específica com resumo de context.md
332
+ - `synapos:session consolidate` → consolida memories.md e review-notes.md da session ativa
333
+
334
+ ---
335
+
411
336
  ## COMANDO `synapos:status`
412
337
 
413
338
  Exiba o estado atual:
@@ -416,25 +341,29 @@ Exiba o estado atual:
416
341
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
417
342
  Synapos Status
418
343
 
419
- Squad ativo: {slug} ({domain})
344
+ Role ativo: {slug} ({domain})
420
345
  Feature: {feature-slug}
421
346
  Pipeline: {nome}
422
347
  Step atual: {step-id} ({N}/{total})
423
- Modo: {BOOTSTRAP | STANDARD | STRICT}
348
+ Modo: {Rápido | Completo}
424
349
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
425
350
  ```
426
351
 
427
352
  ---
428
353
 
429
- ## PROTOCOLO DE ESCALATION
354
+ ## DECISÕES NO OUTPUT
355
+
356
+ Quando precisar tomar uma decisão fora do escopo do step, sinalize com `[?]` no output:
430
357
 
431
- Mesmo mecanismo do Claude Code — quando uma decisão não pode ser resolvida:
358
+ ```
359
+ [?] Decisão necessária: {descrição curta}
360
+ Opções: A) {opção A} B) {opção B}
361
+ Recomendação: {opção preferida e motivo}
362
+ ```
432
363
 
433
- 1. Registre `[DECISÃO PENDENTE] {feature-slug}-{N}` em `docs/.squads/sessions/{feature-slug}/open-decisions.md`
434
- 2. Bloqueie o squad: `status → "blocked"`
435
- 3. Informe o usuário
364
+ Aguarde a resposta do usuário antes de continuar. Nunca decida autonomamente.
436
365
 
437
- Para resolver: `// synapos:decision id:{N} choice:{A|B}`
366
+ Para responder: o usuário digita a opção escolhida na conversa.
438
367
 
439
368
  ---
440
369
 
@@ -1,59 +1,39 @@
1
1
  ## PROTOCOLO DE BUMP
2
2
 
3
+ Versiona o **pacote npm** do Synapos. Não versiona arquivos markdown internos.
4
+
3
5
  ### 1 — Ler estado atual
4
- - Leia `.synapos/VERSION` → versão atual do framework
5
- - Leia `.synapos/.manifest.json` → inventário completo
6
- - Leia `.synapos/CHANGELOG.md` histórico de mudanças
6
+ - Leia `package.json` → versão atual
7
+
8
+ ### 2 Detectar tipo de bump
7
9
 
8
- ### 2 Identificar o que mudou
9
- Pergunte ao usuário (se não informado nos argumentos):
10
+ **Se argumento fornecido** (ex: `/bump minor`): use diretamente.
11
+
12
+ **Se sem argumento:**
10
13
  ```
11
- O que foi alterado?
12
- [1] Agent (qual?)
13
- [2] Template de squad (qual?)
14
- [3] Core (orchestrator / pipeline-runner / gate-system / skills-engine)
15
- [4] Múltiplos
16
-
17
- Tipo de mudança:
18
- [M] MAJOR — quebra compatibilidade
19
- [m] MINOR — adiciona sem quebrar
20
- [p] PATCH — corrige sem quebrar
14
+ AskUserQuestion({
15
+ question: "Versão atual: {versão}\n\nQual tipo de bump?",
16
+ options: [
17
+ { label: "PATCH", description: "Correção sem quebrar (~1.0.1)" },
18
+ { label: "MINOR", description: "Feature sem quebrar (~1.1.0)" },
19
+ { label: "MAJOR", description: "Breaking change (~2.0.0)" }
20
+ ]
21
+ })
21
22
  ```
22
23
 
23
24
  ### 3 — Calcular nova versão
24
25
  Use semver: `MAJOR.MINOR.PATCH`
25
- - PATCH: Z+1 (ex: 1.0.0 → 1.0.1)
26
- - MINOR: Y+1, Z=0 (ex: 1.0.3 → 1.1.0)
27
- - MAJOR: X+1, Y=0, Z=0 (ex: 1.2.1 → 2.0.0)
26
+ - PATCH: Z+1
27
+ - MINOR: Y+1, Z=0
28
+ - MAJOR: X+1, Y=0, Z=0
28
29
 
29
30
  ### 4 — Executar o bump
30
- Execute em ordem:
31
-
32
- **4a.** Atualizar `version:` no frontmatter do(s) arquivo(s) modificado(s)
33
31
 
34
- **4b.** Atualizar `.synapos/.manifest.json`:
35
- - Versão do componente alterado
36
- - Versão do framework (`framework.version` e `framework.released_at`)
32
+ **4a.** Atualizar `version` em `package.json`
37
33
 
38
- **4c.** Atualizar `.synapos/VERSION` com a nova versão do framework
39
-
40
- **4d.** Adicionar entrada no `.synapos/CHANGELOG.md`:
41
- ```markdown
42
- ## [{nova_versão}] — {YYYY-MM-DD}
43
-
44
- ### {Adicionado | Modificado | Corrigido | Removido}
45
- - `{componente}` v{versão} — {descrição da mudança}
46
- ```
34
+ **4b.** Adicionar entrada no `CHANGELOG.md` na raiz do projeto
47
35
 
48
- ### 5 — Confirmar
49
- Apresente um resumo do bump realizado:
36
+ ### 5 — Resumo
50
37
  ```
51
- Bump concluído!
52
-
53
- Versão: {anterior} → {nova}
54
- Arquivos atualizados:
55
- ✅ .synapos/VERSION
56
- ✅ .synapos/.manifest.json
57
- ✅ .synapos/CHANGELOG.md
58
- ✅ {arquivo do componente alterado}
38
+ Bump: {anterior} → {nova}
59
39
  ```
@@ -0,0 +1,152 @@
1
+ ---
2
+ name: synapos-session
3
+ version: 1.0.0
4
+ description: Gerenciamento de feature sessions — listar, visualizar, retomar e consolidar
5
+ ---
6
+
7
+ # COMANDO /session
8
+
9
+ > Ponto de acesso direto às sessions do projeto.
10
+ > Use quando quiser ver o estado das features sem passar pelo /init completo.
11
+
12
+ ---
13
+
14
+ ## USO
15
+
16
+ ```
17
+ /session → lista todas as sessions ativas
18
+ /session {slug} → abre a session de uma feature específica
19
+ /session consolidate → consolida memories.md e review-notes.md da session ativa
20
+ ```
21
+
22
+ ---
23
+
24
+ ## PROTOCOLO
25
+
26
+ ### Sem argumento — listar sessions
27
+
28
+ 1. Liste todos os subdiretórios em `docs/.squads/sessions/`
29
+ 2. Para cada session, leia `state.json` e extraia:
30
+ - `feature` (slug)
31
+ - `squads` — lista de roles que trabalharam + status de cada um
32
+ - `updated_at` — data da última atividade
33
+
34
+ Exiba com AskUserQuestion:
35
+
36
+ ```
37
+ AskUserQuestion({
38
+ question: "Sessions ativas neste projeto:",
39
+ options: [
40
+ {
41
+ label: "📂 {feature-slug}",
42
+ description: "Roles: {lista} · Última atividade: {updated_at}"
43
+ },
44
+ // uma por session encontrada
45
+ { label: "↩ Voltar ao menu", description: "Ir para /init" }
46
+ ]
47
+ })
48
+ ```
49
+
50
+ Ao selecionar uma session → execute o protocolo **Com argumento** abaixo.
51
+
52
+ ---
53
+
54
+ ### Com argumento `{slug}` — abrir session
55
+
56
+ 1. Leia `docs/.squads/sessions/{slug}/context.md`
57
+ 2. Leia `docs/.squads/sessions/{slug}/memories.md`
58
+ 3. Leia `docs/.squads/sessions/{slug}/state.json`
59
+
60
+ Exiba resumo e menu de ações:
61
+
62
+ ```
63
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
64
+ Session: {feature-slug}
65
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
66
+
67
+ O que é: {primeira linha de context.md ## O que é}
68
+ Decisões: {contagem de itens em ## Decisões tomadas}
69
+ Memórias: {contagem de ## em memories.md} entradas
70
+ Roles que trabalharam: {lista do state.json}
71
+
72
+ Última atividade: {updated_at do state.json}
73
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
74
+ ```
75
+
76
+ ```
77
+ AskUserQuestion({
78
+ question: "Session {feature-slug} — o que você quer fazer?",
79
+ options: [
80
+ { label: "▶️ Retomar com role ativo", description: "Continuar de onde parou" },
81
+ { label: "📄 Ver context.md", description: "Ler contexto completo da feature" },
82
+ { label: "🧠 Ver memories.md", description: "Ver aprendizados acumulados" },
83
+ { label: "🗜 Consolidar", description: "Compactar memories e review-notes" },
84
+ { label: "↩ Voltar", description: "Voltar à lista de sessions" }
85
+ ]
86
+ })
87
+ ```
88
+
89
+ - **Retomar com role ativo** → redirecione para o `/init` passando o slug da session como contexto
90
+ - **Ver context.md** → exiba o conteúdo do arquivo inline
91
+ - **Ver memories.md** → exiba o conteúdo do arquivo inline
92
+ - **Consolidar** → execute o protocolo de consolidação abaixo
93
+
94
+ ---
95
+
96
+ ### Com argumento `consolidate` — consolidar session ativa
97
+
98
+ > Use quando memories.md ou review-notes.md estiverem grandes e difíceis de ler.
99
+ > Consolidar não deleta informação — apenas reorganiza.
100
+
101
+ **Pré-condição:** deve haver uma session ativa no contexto (slug conhecido).
102
+ Se não houver, liste as sessions e peça ao usuário para escolher.
103
+
104
+ **Protocolo de consolidação de `memories.md`:**
105
+
106
+ 1. Leia o arquivo completo
107
+ 2. Identifique entradas antigas (mais de 7 dias ou mais de 10 entradas)
108
+ 3. Crie nova seção no topo:
109
+ ```markdown
110
+ ## Consolidado até {YYYY-MM-DD}
111
+
112
+ ### Aprendizados principais
113
+ {resumo estruturado preservando todas as informações relevantes}
114
+
115
+ ### Armadilhas identificadas
116
+ {lista das armadilhas mais importantes}
117
+
118
+ ### Decisões registradas
119
+ {decisões que não estão em context.md}
120
+ ```
121
+ 4. Marque entradas consolidadas com `<!-- consolidado {data} -->`
122
+ 5. Não delete nenhuma entrada
123
+
124
+ **Protocolo de consolidação de `review-notes.md`:**
125
+
126
+ 1. Leia o arquivo completo
127
+ 2. Crie nova seção no topo:
128
+ ```markdown
129
+ ## Revisões Consolidadas até {YYYY-MM-DD}
130
+
131
+ {resumo estruturado das revisões antigas, agrupado por tema}
132
+ ```
133
+ 3. Marque entradas consolidadas com `<!-- consolidado {data} -->`
134
+
135
+ **Log ao concluir:**
136
+ ```
137
+ ✅ Consolidação concluída
138
+ memories.md: {N} entradas → 1 bloco consolidado
139
+ review-notes.md: {N} entradas → 1 bloco consolidado
140
+ Session: docs/.squads/sessions/{feature-slug}/
141
+ ```
142
+
143
+ ---
144
+
145
+ ## REGRAS
146
+
147
+ | Regra | Descrição |
148
+ |-------|-----------|
149
+ | **Leitura apenas** | `/session` nunca modifica arquivos — exceto `/session consolidate` |
150
+ | **Consolidar é manual** | Nunca consolide automaticamente — só quando o usuário executar `/session consolidate` |
151
+ | **context.md é a estrela** | Sempre exiba o resumo de context.md no cabeçalho da session |
152
+ | **Sem pipeline** | `/session` não inicia pipeline — apenas navega e organiza |