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.
- package/.github/copilot-instructions.md +12 -10
- package/.synapos/.manifest.json +2 -2
- package/.synapos/VERSION +1 -1
- package/.synapos/copilot.md +65 -136
- package/.synapos/core/commands/bump.md +23 -43
- package/.synapos/core/commands/session.md +152 -0
- package/.synapos/core/commands/set-model.md +112 -19
- package/.synapos/core/commands/setup/discover.md +16 -125
- package/.synapos/core/commands/setup/start.md +5 -56
- package/.synapos/core/gate-system.md +53 -321
- package/.synapos/core/orchestrator.md +191 -378
- package/.synapos/core/pipeline-runner.md +117 -163
- package/.synapos/core/skills-engine.md +3 -2
- package/README.md +85 -207
- package/bin/synapos.js +1 -1
- package/package.json +1 -1
- package/.synapos/GUIDE.md +0 -660
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: synapos-gate-system
|
|
3
|
-
version: 1.5.0
|
|
4
3
|
description: Sistema de quality gates — validação em pontos críticos do pipeline
|
|
5
4
|
---
|
|
6
5
|
|
|
7
|
-
# SYNAPOS GATE SYSTEM
|
|
6
|
+
# SYNAPOS GATE SYSTEM v2.0.0
|
|
8
7
|
|
|
9
8
|
> Gates são pontos de validação obrigatórios. Falha em um gate bloqueia o avanço.
|
|
10
9
|
> Princípio: **Fail Loud, Never Silent** — nunca ignore uma falha de gate.
|
|
@@ -13,400 +12,133 @@ description: Sistema de quality gates — validação em pontos críticos do pip
|
|
|
13
12
|
|
|
14
13
|
## GATES DISPONÍVEIS
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
Três gates ativos. Nada mais.
|
|
17
16
|
|
|
18
17
|
---
|
|
19
18
|
|
|
20
|
-
### GATE-0 — Integridade do Framework
|
|
19
|
+
### GATE-0 — Integridade do Framework
|
|
21
20
|
|
|
22
|
-
**Quando usar:** No primeiro step de qualquer pipeline. **Obrigatório
|
|
21
|
+
**Quando usar:** No primeiro step de qualquer pipeline. **Obrigatório.**
|
|
23
22
|
|
|
24
|
-
**Verifica
|
|
23
|
+
**Verifica:**
|
|
25
24
|
- [ ] `.synapos/core/orchestrator.md` existe
|
|
26
25
|
- [ ] `.synapos/core/pipeline-runner.md` existe
|
|
27
26
|
- [ ] `docs/_memory/company.md` existe
|
|
28
|
-
- [ ] `docs/_memory/preferences.md` existe
|
|
29
27
|
- [ ] `.synapos/squads/{slug}/squad.yaml` existe
|
|
30
|
-
- [ ] `.synapos/squads/{slug}/agents/` tem pelo menos um
|
|
31
|
-
|
|
32
|
-
**Verifica — Documentação do Projeto (obrigatório):**
|
|
33
|
-
- [ ] Pasta `docs/` existe na raiz do projeto
|
|
34
|
-
- [ ] `docs/` contém pelo menos um arquivo `.md`
|
|
35
|
-
|
|
36
|
-
**Verificação de documentação — leia `execution_mode` do squad.yaml:**
|
|
37
|
-
|
|
38
|
-
| `execution_mode` | Comportamento se `docs/` ausente ou incompleta |
|
|
39
|
-
|---|---|
|
|
40
|
-
| `bootstrap` | Passa com aviso — gates GATE-ADR e GATE-2 desativados |
|
|
41
|
-
| `standard` | Passa se `company.md` + pelo menos 1 dir de docs existir; avisa sobre gaps |
|
|
42
|
-
| `strict` | Exige `company.md` + `docs/tech/` + `docs/business/` — bloqueia se faltar |
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
**BOOTSTRAP — docs ausentes ou incompletas:**
|
|
47
|
-
```
|
|
48
|
-
⚡ GATE-0 (Bootstrap Mode) — Score de documentação: {doc_score}/100
|
|
49
|
-
Executando com contexto mínimo.
|
|
50
|
-
|
|
51
|
-
Gates ativos neste modo: GATE-DECISION
|
|
52
|
-
Desativados: GATE-ADR, GATE-2, GATE-DESIGN
|
|
28
|
+
- [ ] `.synapos/squads/{slug}/agents/` tem pelo menos um `.agent.md`
|
|
53
29
|
|
|
54
|
-
|
|
55
|
-
→ /setup:build-tech (+35 pontos de documentação)
|
|
56
|
-
→ /setup:build-business (+40 pontos de documentação)
|
|
30
|
+
**Se modo Completo:** adicionalmente verifica se `docs/` existe com pelo menos 1 arquivo `.md`.
|
|
57
31
|
|
|
58
|
-
|
|
59
|
-
```
|
|
32
|
+
**Falha de framework (qualquer modo):** liste os arquivos faltantes e pare.
|
|
60
33
|
|
|
61
|
-
**
|
|
34
|
+
**Modo Rápido — docs ausentes:**
|
|
62
35
|
```
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
Gates ativos: GATE-0, GATE-ADR, GATE-DECISION
|
|
67
|
-
Desativados: GATE-DESIGN (requer docs/business completo)
|
|
68
|
-
|
|
69
|
-
Documentação faltante:
|
|
70
|
-
{lista de itens ausentes com pontos correspondentes}
|
|
71
|
-
|
|
36
|
+
⚡ GATE-0 (Modo Rápido) — executando sem documentação de projeto.
|
|
37
|
+
Para resultados melhores: execute /setup:build-tech e /setup:build-business
|
|
72
38
|
Prosseguindo...
|
|
73
39
|
```
|
|
74
40
|
|
|
75
|
-
**
|
|
41
|
+
**Modo Completo — docs presentes:**
|
|
76
42
|
```
|
|
77
|
-
|
|
78
|
-
Contexto completo. Todos os gates ativos.
|
|
79
|
-
|
|
80
|
-
✅ GATE-0 aprovado
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
**STRICT sem documentação completa — bloqueia:**
|
|
84
|
-
```
|
|
85
|
-
🚫 GATE-0 — Documentação insuficiente para Strict Mode
|
|
86
|
-
|
|
87
|
-
Score atual: {doc_score}/100 (mínimo necessário: 70)
|
|
88
|
-
|
|
89
|
-
Itens faltantes:
|
|
90
|
-
✗ {item} — {pontos} pontos
|
|
91
|
-
|
|
92
|
-
Opções:
|
|
93
|
-
→ Crie a documentação: /setup:build-tech e /setup:build-business
|
|
94
|
-
→ Execute uma tarefa mais simples (reduz para Standard/Bootstrap automaticamente)
|
|
43
|
+
✅ GATE-0 — aprovado
|
|
95
44
|
```
|
|
96
45
|
|
|
97
|
-
**Falha de framework (qualquer modo):** Liste os arquivos faltantes do core e pare.
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
### GATE-1 — Configuração do Squad
|
|
102
|
-
|
|
103
|
-
**Quando usar:** Após criação do squad, antes do primeiro step real.
|
|
104
|
-
|
|
105
|
-
**Verifica:**
|
|
106
|
-
- [ ] squad.yaml tem `name`, `domain`, `description` preenchidos
|
|
107
|
-
- [ ] squad.yaml tem `feature` e `session` preenchidos (obrigatório no modelo v2)
|
|
108
|
-
- [ ] Todos os agents listados em squad.yaml têm arquivo .agent.md correspondente
|
|
109
|
-
- [ ] Pipeline referenciado em squad.yaml existe
|
|
110
|
-
|
|
111
|
-
**Falha:** Informe o campo ou arquivo faltante e pare.
|
|
112
|
-
|
|
113
46
|
---
|
|
114
47
|
|
|
115
|
-
### GATE-
|
|
48
|
+
### GATE-3 — Qualidade Mínima do Output
|
|
116
49
|
|
|
117
|
-
**Quando usar:**
|
|
50
|
+
**Quando usar:** Após cada step com `execution: subagent` ou `execution: inline`.
|
|
118
51
|
|
|
119
52
|
**Verifica:**
|
|
120
|
-
- [ ] Objetivo do squad está claro (description no squad.yaml)
|
|
121
|
-
- [ ] Ao menos um documento de contexto existe em `docs/` (raiz do projeto)
|
|
122
|
-
- [ ] `docs/.squads/sessions/{feature-slug}/memories.md` foi lido e considerado
|
|
123
|
-
- [ ] Se `context.md` existe na session, foi carregado no contexto do agent
|
|
124
|
-
|
|
125
|
-
**Falha:** Informe o que está incompleto. Sugira executar o step de investigação (pré-execução) primeiro.
|
|
126
|
-
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
### GATE-3 — Qualidade do Output
|
|
130
|
-
|
|
131
|
-
**Quando usar:** Antes de steps de revisão ou handoff.
|
|
132
|
-
|
|
133
|
-
**Verifica (com base nas veto_conditions do step anterior):**
|
|
134
53
|
- [ ] Output não está vazio
|
|
135
|
-
- [ ] Output
|
|
136
|
-
- [ ]
|
|
137
|
-
|
|
138
|
-
**Falha:** Aponte a condição violada. Retorne ao step anterior.
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
### GATE-4 — Consistência de Documentação (Produto)
|
|
143
|
-
|
|
144
|
-
**Quando usar:** Exclusivo para squad de Produto, antes do handoff.
|
|
145
|
-
|
|
146
|
-
**Verifica (na session folder `docs/.squads/sessions/{feature-slug}/`):**
|
|
147
|
-
- [ ] `context.md` existe e não está vazio
|
|
148
|
-
- [ ] `architecture.md` ou `spec.md` existe com critérios de aceite
|
|
149
|
-
- [ ] `plan.md` existe (se pipeline gerou)
|
|
150
|
-
- [ ] `review-notes.md` existe
|
|
151
|
-
- [ ] `state.json` tem entrada para este squad com todos os steps concluídos
|
|
152
|
-
|
|
153
|
-
**Falha:** Liste os documentos faltantes na session. Não libere o handoff.
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
### GATE-DECISION — Bloqueio de Decisões Autônomas
|
|
158
|
-
|
|
159
|
-
**Quando usar:** Após cada step com `execution: subagent` ou `execution: inline`. Aplicado automaticamente pelo pipeline-runner antes de aceitar qualquer output.
|
|
160
|
-
|
|
161
|
-
**Princípio:** Nenhum agent pode tomar decisões além do escopo definido no step. Toda decisão deve ser sinalizada e aprovada pelo usuário.
|
|
162
|
-
|
|
163
|
-
**O que é considerado uma decisão:**
|
|
164
|
-
- Escolha de biblioteca, framework ou ferramenta não especificada no step
|
|
165
|
-
- Definição de estrutura de dados, schema ou interface não solicitada
|
|
166
|
-
- Escolha de padrão arquitetural (MVC, CQRS, Event Sourcing, etc.) não documentada em ADR
|
|
167
|
-
- Escolha de biblioteca de componentes UI não especificada no step
|
|
168
|
-
- Desvio de padrão documentado no design system sem justificativa
|
|
169
|
-
- Escolha de padrão de interação (ex: modal vs. drawer, inline edit vs. form separado) não documentada
|
|
170
|
-
- Qualquer "assumindo que..." ou "optei por..." no output
|
|
171
|
-
|
|
172
|
-
**Como o agent deve sinalizar:**
|
|
173
|
-
|
|
174
|
-
Quando o agent identifica que precisa tomar uma decisão além do escopo, ele **para** e inclui no output:
|
|
54
|
+
- [ ] Output tem mais de 50 caracteres
|
|
55
|
+
- [ ] Output não é placeholder (`TODO`, `PLACEHOLDER`, `[vazio]`, `[...]`)
|
|
56
|
+
- [ ] Nenhuma `veto_condition` do step foi violada
|
|
175
57
|
|
|
58
|
+
**Falha:**
|
|
176
59
|
```
|
|
177
|
-
|
|
178
|
-
Contexto: {por que essa decisão é necessária}
|
|
179
|
-
Opções:
|
|
180
|
-
A) {opção A} — {prós/contras}
|
|
181
|
-
B) {opção B} — {prós/contras}
|
|
182
|
-
Recomendação do agent: {opção recomendada e por quê}
|
|
183
|
-
Aguardando aprovação para prosseguir.
|
|
184
|
-
```
|
|
60
|
+
🚫 GATE-3 — output inválido
|
|
185
61
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
- [ ] Cada `[DECISÃO PENDENTE]` foi aprovada pelo usuário antes de o agent prosseguir
|
|
189
|
-
- [ ] O agent não escolheu unilateralmente entre as opções sem aprovação
|
|
190
|
-
|
|
191
|
-
**Falha — Decisão implícita detectada:**
|
|
62
|
+
Motivo: {output vazio | placeholder | veto violado}
|
|
63
|
+
Reexecutando step...
|
|
192
64
|
```
|
|
193
|
-
🚫 GATE-DECISION — FALHA: Decisão autônoma detectada
|
|
194
|
-
|
|
195
|
-
O agent tomou a seguinte decisão sem aprovação:
|
|
196
|
-
"{trecho do output}"
|
|
197
65
|
|
|
198
|
-
|
|
199
|
-
Reexecutando step com instrução: sinalizar como [DECISÃO PENDENTE].
|
|
200
|
-
```
|
|
66
|
+
Máximo 2 reexecuções automáticas. Na 3ª falha → escale para o usuário.
|
|
201
67
|
|
|
202
|
-
**
|
|
68
|
+
**Gate passando:**
|
|
203
69
|
```
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
[DECISÃO PENDENTE] {id}
|
|
207
|
-
{conteúdo da decisão pendente}
|
|
208
|
-
|
|
209
|
-
Selecione uma opção para continuar:
|
|
210
|
-
- A) {opção A}
|
|
211
|
-
- B) {opção B}
|
|
212
|
-
- ✏️ Definir outra opção
|
|
70
|
+
✅ GATE-3 — output aprovado
|
|
213
71
|
```
|
|
214
72
|
|
|
215
|
-
Aguarde a seleção do usuário. **Nunca resolva automaticamente.**
|
|
216
|
-
|
|
217
73
|
---
|
|
218
74
|
|
|
219
|
-
### GATE-
|
|
220
|
-
|
|
221
|
-
**Quando usar:** Obrigatório antes de qualquer step de implementação (`execution: subagent` ou `execution: inline`) quando o projeto tem ADRs em `docs/`.
|
|
222
|
-
|
|
223
|
-
**Verifica:**
|
|
224
|
-
- [ ] O agent leu todas as ADRs disponíveis em `docs/` (arquivos com `ADR`, `adr`, `decisions`, `architecture-decision` no nome ou caminho)
|
|
225
|
-
- [ ] O output do step lista explicitamente quais ADRs foram consultadas
|
|
226
|
-
- [ ] Nenhuma decisão técnica no output contradiz uma ADR com status `Aceito` ou `Ativo`
|
|
227
|
-
- [ ] Se o step CRIA uma nova ADR, ela segue o template padrão (Contexto / Decisão / Alternativas / Consequências)
|
|
228
|
-
|
|
229
|
-
**Resultado esperado:** Código e documentação conformes com ADRs desde o início — não como revisão posterior.
|
|
75
|
+
### GATE-5 — Entrega / Handoff
|
|
230
76
|
|
|
231
|
-
**
|
|
232
|
-
```
|
|
233
|
-
🚫 GATE-ADR — FALHA: Conflito com ADR existente
|
|
77
|
+
**Quando usar:** Último step de qualquer pipeline antes de marcar como `completed`.
|
|
234
78
|
|
|
235
|
-
|
|
236
|
-
Decisão conflitante no output: {trecho}
|
|
237
|
-
Status da ADR: Aceito
|
|
79
|
+
**Comportamento:** apenas confirmação visual. **Nunca bloqueia.**
|
|
238
80
|
|
|
239
|
-
|
|
240
|
-
Opções:
|
|
241
|
-
- Revise o output para seguir a ADR
|
|
242
|
-
- Proponha uma nova ADR para substituir a existente (requer aprovação do usuário)
|
|
81
|
+
**Se tudo OK:**
|
|
243
82
|
```
|
|
244
|
-
|
|
245
|
-
|
|
83
|
+
✅ GATE-5 — Pronto para entrega
|
|
84
|
+
Squad pode ser marcado como completed.
|
|
246
85
|
```
|
|
247
|
-
⚠️ GATE-ADR — AVISO: ADRs não referenciadas no output
|
|
248
86
|
|
|
249
|
-
|
|
250
|
-
Reexecutando step com instrução explícita de consulta às ADRs.
|
|
87
|
+
**Se itens pendentes (warning, não bloqueia):**
|
|
251
88
|
```
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
⚠️ GATE-ADR — AUSÊNCIA: Decisão arquitetural sem ADR
|
|
256
|
-
|
|
257
|
-
O output contém decisão de alto impacto sem ADR correspondente:
|
|
258
|
-
"{trecho da decisão}"
|
|
259
|
-
|
|
260
|
-
Opções:
|
|
261
|
-
- Crie uma nova ADR para documentar esta decisão antes de prosseguir
|
|
262
|
-
- Use [DECISÃO PENDENTE] para aguardar aprovação do usuário
|
|
263
|
-
|
|
264
|
-
Decisões que requerem ADR: escolha de framework, banco de dados, padrão arquitetural,
|
|
265
|
-
estratégia de cache, política de autenticação, estrutura de dados principal.
|
|
89
|
+
⚠️ GATE-5 — Itens pendentes detectados:
|
|
90
|
+
{lista}
|
|
91
|
+
Squad será finalizado mesmo assim.
|
|
266
92
|
```
|
|
267
93
|
|
|
268
94
|
---
|
|
269
95
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
**Quando usar:** Em steps de frontend/produto que geram especificações de componente, fluxos de UI ou documentação visual. Aplicado automaticamente em steps onde o agent tem `tasks` contendo `design-system`, `component-spec` ou `ux-review`.
|
|
273
|
-
|
|
274
|
-
**Verifica:**
|
|
275
|
-
- [ ] Todos os estados de componente especificados: default, hover, focus, disabled, loading, error
|
|
276
|
-
- [ ] Contraste de texto ≥ 4.5:1 (WCAG 2.1 AA) — valor numérico declarado no output
|
|
277
|
-
- [ ] Estado vazio (`empty state`) documentado para listas e views de dados
|
|
278
|
-
- [ ] Estado de erro com mensagem clara e ação de recuperação
|
|
279
|
-
- [ ] Componentes novos justificados — existência verificada no design system antes de propor novo
|
|
280
|
-
- [ ] Responsividade: breakpoints mobile e desktop definidos (se aplicável ao componente)
|
|
281
|
-
- [ ] Tokens de design usados (sem valores hardcoded de cor, espaçamento ou tipografia)
|
|
282
|
-
|
|
283
|
-
**Output esperado:** Seção `## Verificação GATE-DESIGN` no arquivo de spec com cada item marcado como `✅` ou `⚠️ Justificativa`.
|
|
284
|
-
|
|
285
|
-
**Falha — estados faltando:**
|
|
286
|
-
```
|
|
287
|
-
🚫 GATE-DESIGN — FALHA: Estados de componente incompletos
|
|
288
|
-
|
|
289
|
-
Componente(s) com estados faltando:
|
|
290
|
-
✗ {componente}: falta {estados ausentes}
|
|
291
|
-
|
|
292
|
-
Todo componente interativo deve ter todos os 6 estados especificados.
|
|
293
|
-
Adicione os estados antes de prosseguir.
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
**Falha — contraste:**
|
|
297
|
-
```
|
|
298
|
-
🚫 GATE-DESIGN — FALHA: Contraste insuficiente ou não verificado
|
|
299
|
-
|
|
300
|
-
Requisito: ≥ 4.5:1 para texto normal, ≥ 3:1 para texto grande (WCAG 2.1 AA)
|
|
301
|
-
Pendente: {lista de elementos sem contraste declarado}
|
|
96
|
+
## DECISÕES NO OUTPUT
|
|
302
97
|
|
|
303
|
-
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
**Falha — componente não justificado:**
|
|
307
|
-
```
|
|
308
|
-
⚠️ GATE-DESIGN — AVISO: Componente novo sem verificação de design system
|
|
98
|
+
Não existe mais GATE-DECISION como gate bloqueante.
|
|
309
99
|
|
|
310
|
-
|
|
311
|
-
? {nome do componente}
|
|
100
|
+
Quando um agent precisar tomar uma decisão além do escopo do step, ele deve sinalizar no output com `[?]`:
|
|
312
101
|
|
|
313
|
-
Verifique se já existe antes de propor. Se não existe, documente a justificativa.
|
|
314
102
|
```
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
✅ GATE-DESIGN — Design System e Acessibilidade: aprovado
|
|
103
|
+
[?] Decisão necessária: {descrição curta}
|
|
104
|
+
Opções: A) {opção A} B) {opção B}
|
|
105
|
+
Recomendação: {opção e motivo}
|
|
319
106
|
```
|
|
320
107
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
### GATE-5 — Entrega / Handoff
|
|
324
|
-
|
|
325
|
-
**Quando usar:** Último step de qualquer pipeline antes de marcar como completed.
|
|
326
|
-
|
|
327
|
-
**Verifica:**
|
|
328
|
-
- [ ] Todos os `output_file` definidos no pipeline foram gerados em `docs/.squads/sessions/{feature-slug}/`
|
|
329
|
-
- [ ] `state.json` marca `state.squads["{squad-slug}"].completed_steps` com todos os steps do pipeline
|
|
330
|
-
- [ ] Não há veto_conditions pendentes
|
|
331
|
-
- [ ] Não há `[DECISÃO PENDENTE]` não resolvida nos arquivos da session
|
|
332
|
-
|
|
333
|
-
**Falha:** Liste o que está faltando. Não marque o squad como completed.
|
|
334
|
-
|
|
335
|
-
---
|
|
336
|
-
|
|
337
|
-
## GATES POR EXECUTION MODE
|
|
338
|
-
|
|
339
|
-
O pipeline-runner lê `execution_mode` do squad.yaml e ativa apenas os gates correspondentes:
|
|
340
|
-
|
|
341
|
-
| Gate | BOOTSTRAP | STANDARD | STRICT |
|
|
342
|
-
|---|---|---|---|
|
|
343
|
-
| GATE-0 | ✅ (passa com aviso) | ✅ | ✅ |
|
|
344
|
-
| GATE-1 | ✅ | ✅ | ✅ |
|
|
345
|
-
| GATE-2 | ❌ desativado | ✅ | ✅ |
|
|
346
|
-
| GATE-3 | ❌ desativado | ✅ | ✅ |
|
|
347
|
-
| GATE-4 | ❌ desativado | ❌ desativado | ✅ |
|
|
348
|
-
| GATE-5 | ❌ desativado | ✅ | ✅ |
|
|
349
|
-
| GATE-ADR | ❌ desativado | ✅ | ✅ |
|
|
350
|
-
| GATE-DECISION | ✅ | ✅ | ✅ |
|
|
351
|
-
| GATE-DESIGN | ❌ desativado | ❌ desativado | ✅ |
|
|
352
|
-
|
|
353
|
-
> **GATE-1 e GATE-DECISION são universais** — ativos em todos os modos, sempre.
|
|
354
|
-
> **GATE-DECISION nunca é desativado** — evitar decisões autônomas é princípio inegociável.
|
|
108
|
+
O pipeline-runner detecta `[?]` no output e apresenta ao usuário para resolução antes de prosseguir. Não reexecuta o step — apenas aguarda a escolha e continua com ela como contexto.
|
|
355
109
|
|
|
356
110
|
---
|
|
357
111
|
|
|
358
112
|
## COMO USAR NOS PIPELINES
|
|
359
113
|
|
|
360
|
-
No `pipeline.yaml`, adicione `gate:` em um step:
|
|
361
|
-
|
|
362
114
|
```yaml
|
|
363
115
|
steps:
|
|
364
|
-
- id: gate-
|
|
365
|
-
name: "
|
|
116
|
+
- id: gate-integridade
|
|
117
|
+
name: "Verificar Integridade"
|
|
366
118
|
execution: checkpoint
|
|
367
|
-
gate: GATE-
|
|
368
|
-
# Não tem agent — é validação automática
|
|
119
|
+
gate: GATE-0
|
|
369
120
|
|
|
370
121
|
- id: implementacao
|
|
371
122
|
name: "Implementar Feature"
|
|
372
|
-
agent:
|
|
373
|
-
depends_on: [gate-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
Ou como validação inline antes de continuar um step:
|
|
378
|
-
|
|
379
|
-
```yaml
|
|
380
|
-
- id: spec-final
|
|
381
|
-
name: "Spec Final"
|
|
382
|
-
agent: priscila-produto
|
|
383
|
-
gate: GATE-4 # Gate executado ANTES de aceitar o output
|
|
384
|
-
...
|
|
123
|
+
agent: backend-dev
|
|
124
|
+
depends_on: [gate-integridade]
|
|
125
|
+
gate: GATE-3
|
|
126
|
+
veto_conditions:
|
|
127
|
+
- "output sem código implementado"
|
|
385
128
|
```
|
|
386
129
|
|
|
387
130
|
---
|
|
388
131
|
|
|
389
|
-
##
|
|
390
|
-
|
|
391
|
-
| | Veto Conditions | Gates |
|
|
392
|
-
|--|----------------|-------|
|
|
393
|
-
| **Escopo** | Output de um step específico | Marco estrutural do pipeline |
|
|
394
|
-
| **Foco** | Qualidade do conteúdo gerado | Existência e consistência de artefatos |
|
|
395
|
-
| **Retentativa** | Automática (até 2x) | Bloqueia até usuário resolver |
|
|
396
|
-
| **Exemplo** | "Output sem critérios de aceite" | "Todos os docs de handoff existem" |
|
|
397
|
-
|
|
398
|
-
---
|
|
399
|
-
|
|
400
|
-
## MENSAGENS DE GATE
|
|
132
|
+
## MENSAGENS PADRÃO
|
|
401
133
|
|
|
402
134
|
**Gate passando:**
|
|
403
135
|
```
|
|
404
|
-
✅ GATE-{N} —
|
|
136
|
+
✅ GATE-{N} — aprovado
|
|
405
137
|
```
|
|
406
138
|
|
|
407
139
|
**Gate falhando:**
|
|
408
140
|
```
|
|
409
|
-
🚫 GATE-{N} —
|
|
141
|
+
🚫 GATE-{N} — FALHA
|
|
410
142
|
|
|
411
143
|
Motivo: {descrição específica}
|
|
412
144
|
Itens faltantes:
|