synapos 2.5.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 +72 -0
- package/.synapos/.manifest.json +155 -0
- package/.synapos/GUIDE.md +660 -0
- package/.synapos/VERSION +1 -0
- package/.synapos/_memory/company.md +11 -0
- package/.synapos/_memory/preferences.md +15 -0
- package/.synapos/copilot.md +451 -0
- package/.synapos/core/best-practices/_catalog.yaml +56 -0
- package/.synapos/core/best-practices/content/blog-post.md +238 -0
- package/.synapos/core/best-practices/content/copywriting.md +164 -0
- package/.synapos/core/best-practices/content/linkedin-post.md +186 -0
- package/.synapos/core/best-practices/dev/api-design.md +274 -0
- package/.synapos/core/best-practices/dev/code-review.md +138 -0
- package/.synapos/core/best-practices/dev/git-workflow.md +256 -0
- package/.synapos/core/best-practices/dev/testing-strategy.md +213 -0
- package/.synapos/core/best-practices/product/product-spec.md +235 -0
- package/.synapos/core/best-practices/product/technical-writing.md +264 -0
- package/.synapos/core/best-practices/product/user-research.md +242 -0
- package/.synapos/core/commands/bump.md +59 -0
- package/.synapos/core/commands/debug/session.md +100 -0
- package/.synapos/core/commands/migrate/v1-to-v2.md +142 -0
- package/.synapos/core/commands/set-model.md +197 -0
- package/.synapos/core/commands/setup/build-business.md +378 -0
- package/.synapos/core/commands/setup/build-tech.md +374 -0
- package/.synapos/core/commands/setup/discover.md +543 -0
- package/.synapos/core/commands/setup/from-code.md +407 -0
- package/.synapos/core/commands/setup/start.md +201 -0
- package/.synapos/core/copilot-adapter.md +283 -0
- package/.synapos/core/gate-system.md +417 -0
- package/.synapos/core/model-adapter.md +245 -0
- package/.synapos/core/orchestrator.md +794 -0
- package/.synapos/core/pipeline-runner.md +784 -0
- package/.synapos/core/pipelines/pre-execution.yaml +107 -0
- package/.synapos/core/rules/product-agent.mdc +59 -0
- package/.synapos/core/skills-engine.md +207 -0
- package/.synapos/core/versioning.md +218 -0
- package/.synapos/skills/.gitkeep +0 -0
- package/.synapos/skills/brave-search/SKILL.md +130 -0
- package/.synapos/skills/fetch-url/SKILL.md +135 -0
- package/.synapos/skills/filesystem/SKILL.md +162 -0
- package/.synapos/skills/github/SKILL.md +148 -0
- package/.synapos/skills/playwright-browser/SKILL.md +124 -0
- package/.synapos/squad-templates/backend/agents/alexandre-api.agent.md +243 -0
- package/.synapos/squad-templates/backend/agents/bruno-base.agent.md +240 -0
- package/.synapos/squad-templates/backend/agents/daniela-dados.agent.md +267 -0
- package/.synapos/squad-templates/backend/agents/roberto-revisao-be.agent.md +219 -0
- package/.synapos/squad-templates/backend/agents/sergio-seguranca.agent.md +266 -0
- package/.synapos/squad-templates/backend/pipelines/api-development.yaml +83 -0
- package/.synapos/squad-templates/backend/pipelines/bug-fix.yaml +41 -0
- package/.synapos/squad-templates/backend/pipelines/database-migration.yaml +56 -0
- package/.synapos/squad-templates/backend/pipelines/quick-fix.yaml +40 -0
- package/.synapos/squad-templates/backend/pipelines/steps/01-gate-integridade.md +66 -0
- package/.synapos/squad-templates/backend/pipelines/steps/02-design-api.md +155 -0
- package/.synapos/squad-templates/backend/pipelines/steps/03-checkpoint-contrato.md +44 -0
- package/.synapos/squad-templates/backend/pipelines/steps/04-implementacao.md +113 -0
- package/.synapos/squad-templates/backend/pipelines/steps/05-seguranca.md +100 -0
- package/.synapos/squad-templates/backend/pipelines/steps/06-review.md +80 -0
- package/.synapos/squad-templates/backend/pipelines/steps/atualizar-tarefa.md +138 -0
- package/.synapos/squad-templates/backend/pipelines/steps/bfbe-02-diagnostico.md +47 -0
- package/.synapos/squad-templates/backend/pipelines/steps/bfbe-03-fix.md +41 -0
- package/.synapos/squad-templates/backend/pipelines/steps/bfbe-04-review.md +42 -0
- package/.synapos/squad-templates/backend/pipelines/steps/dm-02-schema.md +85 -0
- package/.synapos/squad-templates/backend/pipelines/steps/dm-03-checkpoint.md +30 -0
- package/.synapos/squad-templates/backend/pipelines/steps/dm-04-migration.md +58 -0
- package/.synapos/squad-templates/backend/pipelines/steps/dm-05-review.md +44 -0
- package/.synapos/squad-templates/backend/pipelines/steps/qf-02-contexto.md +34 -0
- package/.synapos/squad-templates/backend/pipelines/steps/qf-03-executar.md +49 -0
- package/.synapos/squad-templates/backend/pipelines/steps/qf-04-registrar.md +35 -0
- package/.synapos/squad-templates/backend/template.yaml +72 -0
- package/.synapos/squad-templates/devops/agents/claudio-containers.agent.md +245 -0
- package/.synapos/squad-templates/devops/agents/igor-infra.agent.md +198 -0
- package/.synapos/squad-templates/devops/agents/osvaldo-observabilidade.agent.md +262 -0
- package/.synapos/squad-templates/devops/agents/patricia-pipeline.agent.md +253 -0
- package/.synapos/squad-templates/devops/pipelines/ci-cd-setup.yaml +93 -0
- package/.synapos/squad-templates/devops/pipelines/infra-provision.yaml +56 -0
- package/.synapos/squad-templates/devops/pipelines/quick-fix.yaml +41 -0
- package/.synapos/squad-templates/devops/pipelines/steps/01-gate-integridade.md +62 -0
- package/.synapos/squad-templates/devops/pipelines/steps/02-infra-design.md +31 -0
- package/.synapos/squad-templates/devops/pipelines/steps/03-containers.md +28 -0
- package/.synapos/squad-templates/devops/pipelines/steps/04-checkpoint.md +20 -0
- package/.synapos/squad-templates/devops/pipelines/steps/05-pipeline-cicd.md +29 -0
- package/.synapos/squad-templates/devops/pipelines/steps/06-observabilidade.md +28 -0
- package/.synapos/squad-templates/devops/pipelines/steps/07-review.md +27 -0
- package/.synapos/squad-templates/devops/pipelines/steps/atualizar-tarefa.md +138 -0
- package/.synapos/squad-templates/devops/pipelines/steps/ip-02-design.md +21 -0
- package/.synapos/squad-templates/devops/pipelines/steps/ip-03-iac.md +20 -0
- package/.synapos/squad-templates/devops/pipelines/steps/ip-04-checkpoint.md +22 -0
- package/.synapos/squad-templates/devops/pipelines/steps/ip-05-apply.md +22 -0
- package/.synapos/squad-templates/devops/pipelines/steps/qf-02-contexto.md +34 -0
- package/.synapos/squad-templates/devops/pipelines/steps/qf-03-executar.md +52 -0
- package/.synapos/squad-templates/devops/pipelines/steps/qf-04-registrar.md +35 -0
- package/.synapos/squad-templates/devops/template.yaml +68 -0
- package/.synapos/squad-templates/engineer/agents/leo-engenheiro.agent.md +203 -0
- package/.synapos/squad-templates/engineer/pipeline/steps/01-gate.md +22 -0
- package/.synapos/squad-templates/engineer/pipeline/steps/02-preparacao.md +66 -0
- package/.synapos/squad-templates/engineer/pipeline/steps/03-investigacao.md +110 -0
- package/.synapos/squad-templates/engineer/pipeline/steps/04-checkpoint-contexto.md +24 -0
- package/.synapos/squad-templates/engineer/pipeline/steps/05-arquitetura.md +127 -0
- package/.synapos/squad-templates/engineer/pipeline/steps/06-checkpoint-arquitetura.md +27 -0
- package/.synapos/squad-templates/engineer/pipeline/steps/07-planejamento.md +109 -0
- package/.synapos/squad-templates/engineer/pipeline/steps/08-checkpoint-plano.md +27 -0
- package/.synapos/squad-templates/engineer/pipeline/steps/09-execucao.md +121 -0
- package/.synapos/squad-templates/engineer/pipeline/steps/atualizar-tarefa.md +27 -0
- package/.synapos/squad-templates/engineer/pipeline/steps/visual-spec.md +74 -0
- package/.synapos/squad-templates/engineer/pipelines/feature-development.yaml +107 -0
- package/.synapos/squad-templates/engineer/template.yaml +56 -0
- package/.synapos/squad-templates/frontend/agents/ana-arquitetura-fe.agent.md +245 -0
- package/.synapos/squad-templates/frontend/agents/paulo-performance.agent.md +234 -0
- package/.synapos/squad-templates/frontend/agents/renata-revisao-fe.agent.md +219 -0
- package/.synapos/squad-templates/frontend/agents/rodrigo-react.agent.md +261 -0
- package/.synapos/squad-templates/frontend/agents/tiago-testes-fe.agent.md +229 -0
- package/.synapos/squad-templates/frontend/agents/ursula-ui.agent.md +283 -0
- package/.synapos/squad-templates/frontend/pipelines/bug-fix.yaml +40 -0
- package/.synapos/squad-templates/frontend/pipelines/component-development.yaml +48 -0
- package/.synapos/squad-templates/frontend/pipelines/feature-development.yaml +76 -0
- package/.synapos/squad-templates/frontend/pipelines/quick-fix.yaml +40 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/01-gate-integridade.md +66 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/02-arquitetura.md +100 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/03-checkpoint-design.md +43 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/04-implementacao.md +114 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/05-review.md +104 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/06-docs.md +51 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/atualizar-tarefa.md +138 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/bf-02-diagnostico.md +52 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/bf-03-fix.md +58 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/bf-04-review.md +43 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/cd-02-spec.md +96 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/qf-02-contexto.md +34 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/qf-03-executar.md +45 -0
- package/.synapos/squad-templates/frontend/pipelines/steps/qf-04-registrar.md +35 -0
- package/.synapos/squad-templates/frontend/template.yaml +77 -0
- package/.synapos/squad-templates/fullstack/agents/carlos-coordenador.agent.md +266 -0
- package/.synapos/squad-templates/fullstack/pipelines/bug-fix.yaml +46 -0
- package/.synapos/squad-templates/fullstack/pipelines/integration-feature.yaml +92 -0
- package/.synapos/squad-templates/fullstack/pipelines/quick-fix.yaml +40 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/01-gate-integridade.md +66 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/02-contrato-api.md +63 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/03-checkpoint-contrato.md +25 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/04-frontend.md +35 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/05-backend.md +36 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/06-integracao.md +47 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/07-review.md +49 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/atualizar-tarefa.md +138 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/bf-02-diagnostico.md +34 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/bf-03-fix.md +22 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/bf-04-review.md +22 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/qf-02-contexto.md +34 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/qf-03-executar.md +49 -0
- package/.synapos/squad-templates/fullstack/pipelines/steps/qf-04-registrar.md +35 -0
- package/.synapos/squad-templates/fullstack/template.yaml +93 -0
- package/.synapos/squad-templates/ia-dados/agents/diana-dados.agent.md +269 -0
- package/.synapos/squad-templates/ia-dados/agents/larissa-llm.agent.md +255 -0
- package/.synapos/squad-templates/ia-dados/agents/marco-ml.agent.md +227 -0
- package/.synapos/squad-templates/ia-dados/agents/nelson-notebook.agent.md +252 -0
- package/.synapos/squad-templates/ia-dados/pipelines/data-pipeline.yaml +71 -0
- package/.synapos/squad-templates/ia-dados/pipelines/ml-feature.yaml +91 -0
- package/.synapos/squad-templates/ia-dados/pipelines/quick-fix.yaml +40 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/01-gate-integridade.md +62 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/02-exploracao.md +36 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/03-design.md +25 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/04-checkpoint.md +23 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/05-implementacao.md +26 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/06-avaliacao.md +29 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/07-deploy.md +30 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/atualizar-tarefa.md +138 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/dp-02-design.md +21 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/dp-03-checkpoint.md +14 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/dp-04-implementacao.md +19 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/dp-05-qualidade.md +21 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/dp-06-deploy.md +22 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/qf-02-contexto.md +34 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/qf-03-executar.md +53 -0
- package/.synapos/squad-templates/ia-dados/pipelines/steps/qf-04-registrar.md +35 -0
- package/.synapos/squad-templates/ia-dados/template.yaml +68 -0
- package/.synapos/squad-templates/mobile/agents/felipe-feature.agent.md +234 -0
- package/.synapos/squad-templates/mobile/agents/marina-mobile.agent.md +219 -0
- package/.synapos/squad-templates/mobile/agents/viviane-visual.agent.md +218 -0
- package/.synapos/squad-templates/mobile/pipelines/bug-fix.yaml +47 -0
- package/.synapos/squad-templates/mobile/pipelines/feature-development.yaml +77 -0
- package/.synapos/squad-templates/mobile/pipelines/quick-fix.yaml +40 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/01-gate-integridade.md +62 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/02-arquitetura.md +35 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/03-design-ux.md +29 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/04-checkpoint.md +20 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/05-implementacao.md +26 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/06-review.md +27 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/atualizar-tarefa.md +138 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/bf-02-diagnostico.md +22 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/bf-03-fix.md +23 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/bf-04-review.md +20 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/qf-02-contexto.md +34 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/qf-03-executar.md +49 -0
- package/.synapos/squad-templates/mobile/pipelines/steps/qf-04-registrar.md +35 -0
- package/.synapos/squad-templates/mobile/template.yaml +73 -0
- package/.synapos/squad-templates/produto/agents/ana-analise.agent.md +243 -0
- package/.synapos/squad-templates/produto/agents/eduardo-estrategia.agent.md +258 -0
- package/.synapos/squad-templates/produto/agents/paulo-pesquisa.agent.md +226 -0
- package/.synapos/squad-templates/produto/agents/priscila-produto.agent.md +235 -0
- package/.synapos/squad-templates/produto/agents/tania-tecnica.agent.md +239 -0
- package/.synapos/squad-templates/produto/agents/ursula-ux.agent.md +231 -0
- package/.synapos/squad-templates/produto/pipelines/discovery-spec-handoff.yaml +152 -0
- package/.synapos/squad-templates/produto/pipelines/nova-feature.yaml +77 -0
- package/.synapos/squad-templates/produto/pipelines/quick-fix.yaml +40 -0
- package/.synapos/squad-templates/produto/pipelines/quick-spec.yaml +60 -0
- package/.synapos/squad-templates/produto/pipelines/refinar-docs.yaml +33 -0
- package/.synapos/squad-templates/produto/pipelines/steps/01-gate-integridade.md +48 -0
- package/.synapos/squad-templates/produto/pipelines/steps/02-contexto-negocio.md +119 -0
- package/.synapos/squad-templates/produto/pipelines/steps/03-personas.md +107 -0
- package/.synapos/squad-templates/produto/pipelines/steps/04-checkpoint-research.md +53 -0
- package/.synapos/squad-templates/produto/pipelines/steps/04b-alinhamento-estrategico.md +92 -0
- package/.synapos/squad-templates/produto/pipelines/steps/05-spec.md +138 -0
- package/.synapos/squad-templates/produto/pipelines/steps/05b-checkpoint-spec.md +60 -0
- package/.synapos/squad-templates/produto/pipelines/steps/06-requisitos.md +118 -0
- package/.synapos/squad-templates/produto/pipelines/steps/06b-checkpoint-requisitos.md +53 -0
- package/.synapos/squad-templates/produto/pipelines/steps/06c-visual-spec.md +59 -0
- package/.synapos/squad-templates/produto/pipelines/steps/07-arquitetura.md +160 -0
- package/.synapos/squad-templates/produto/pipelines/steps/08-handoff.md +130 -0
- package/.synapos/squad-templates/produto/pipelines/steps/nf-02-validar-requisito.md +73 -0
- package/.synapos/squad-templates/produto/pipelines/steps/nf-03-verificar-docs.md +69 -0
- package/.synapos/squad-templates/produto/pipelines/steps/nf-04-spec.md +160 -0
- package/.synapos/squad-templates/produto/pipelines/steps/nf-05-checkpoint-aprovacao.md +50 -0
- package/.synapos/squad-templates/produto/pipelines/steps/nf-06-versionar.md +71 -0
- package/.synapos/squad-templates/produto/pipelines/steps/nf-07-handoff.md +99 -0
- package/.synapos/squad-templates/produto/pipelines/steps/nf-08-criar-tarefas.md +232 -0
- package/.synapos/squad-templates/produto/pipelines/steps/qf-02-contexto.md +34 -0
- package/.synapos/squad-templates/produto/pipelines/steps/qf-03-executar.md +49 -0
- package/.synapos/squad-templates/produto/pipelines/steps/qf-04-registrar.md +35 -0
- package/.synapos/squad-templates/produto/pipelines/steps/qs-02-contexto.md +59 -0
- package/.synapos/squad-templates/produto/pipelines/steps/qs-03-spec.md +67 -0
- package/.synapos/squad-templates/produto/pipelines/steps/qs-05-handoff.md +49 -0
- package/.synapos/squad-templates/produto/pipelines/steps/rf-02-selecionar.md +66 -0
- package/.synapos/squad-templates/produto/pipelines/steps/rf-03-delta.md +73 -0
- package/.synapos/squad-templates/produto/pipelines/steps/rf-04-criar-versao.md +86 -0
- package/.synapos/squad-templates/produto/template.yaml +91 -0
- package/.synapos/squads/.gitkeep +0 -0
- package/README.md +285 -0
- package/bin/synapos.js +331 -0
- package/package.json +26 -0
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: synapos-copilot-adapter
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: Mapeamento de capacidades Synapos → GitHub Copilot — como executar os protocolos existentes no contexto IDE-native
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# SYNAPOS COPILOT ADAPTER v1.0.0
|
|
8
|
+
|
|
9
|
+
> Este arquivo define como cada mecanismo do Synapos é executado no GitHub Copilot.
|
|
10
|
+
> O Copilot não tem controle de fluxo real, memória persistente estruturada nem execução de pipeline automática.
|
|
11
|
+
> Este adapter resolve isso usando markdown como engine, comentários como comandos e arquivos como estado.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## PRINCÍPIO GERAL
|
|
16
|
+
|
|
17
|
+
O Copilot lê:
|
|
18
|
+
- `.github/copilot-instructions.md` — automaticamente em todo chat
|
|
19
|
+
- Arquivos abertos no editor — contexto implícito
|
|
20
|
+
- Arquivos referenciados com `@` no chat — contexto explícito
|
|
21
|
+
|
|
22
|
+
Use isso a favor: os arquivos de session, memória e squad.yaml são a "memória" do Copilot.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## MAPEAMENTO DE CAPACIDADES
|
|
27
|
+
|
|
28
|
+
### `AskUserQuestion` → Lista Numerada
|
|
29
|
+
|
|
30
|
+
**Synapos padrão:**
|
|
31
|
+
```
|
|
32
|
+
AskUserQuestion({
|
|
33
|
+
question: "Qual modo de operação?",
|
|
34
|
+
options: [
|
|
35
|
+
{ label: "⚡ Alta Performance" },
|
|
36
|
+
{ label: "💰 Econômico" },
|
|
37
|
+
{ label: "🧑💻 Solo" }
|
|
38
|
+
]
|
|
39
|
+
})
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Copilot Mode:**
|
|
43
|
+
```
|
|
44
|
+
Qual modo de operação?
|
|
45
|
+
|
|
46
|
+
1) ⚡ Alta Performance — Squad completo, docs máxima
|
|
47
|
+
2) 💰 Econômico — Execução rápida, menos checkpoints
|
|
48
|
+
3) 🧑💻 Solo — Sem checkpoints, execução direta
|
|
49
|
+
|
|
50
|
+
(Digite o número da opção)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Regra:** Sempre aguarde uma resposta clara antes de prosseguir. Se a resposta for ambígua, peça confirmação.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
### `execution: subagent` → Execução Inline
|
|
58
|
+
|
|
59
|
+
**Synapos padrão:** Lança um subagente separado com persona + contexto + instruções do step.
|
|
60
|
+
|
|
61
|
+
**Copilot Mode:**
|
|
62
|
+
1. Declare explicitamente qual agent está "falando": `[Agent: {displayName} — {role}]`
|
|
63
|
+
2. Leia o `.agent.md` correspondente para carregar a persona
|
|
64
|
+
3. Injete o contexto disponível (company.md + session files + memories.md)
|
|
65
|
+
4. Execute as instruções do step inline na conversa
|
|
66
|
+
5. Apresente o output com o cabeçalho do agent
|
|
67
|
+
|
|
68
|
+
**Exemplo de output:**
|
|
69
|
+
```
|
|
70
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
71
|
+
🎨 [Agent: Designer React — Especialista em componentes UI]
|
|
72
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
73
|
+
|
|
74
|
+
[output do agent aqui]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### `execution: checkpoint` → Checklist com Confirmação
|
|
80
|
+
|
|
81
|
+
**Synapos padrão:** Pausa interativa com botões clicáveis.
|
|
82
|
+
|
|
83
|
+
**Copilot Mode:**
|
|
84
|
+
```
|
|
85
|
+
⏸ CHECKPOINT: {nome do step}
|
|
86
|
+
|
|
87
|
+
{contexto ou pergunta}
|
|
88
|
+
|
|
89
|
+
Checklist antes de continuar:
|
|
90
|
+
[ ] {critério 1}
|
|
91
|
+
[ ] {critério 2}
|
|
92
|
+
[ ] {critério 3}
|
|
93
|
+
|
|
94
|
+
Digite "ok" para continuar, "ajustar" para modificar o contexto ou "pular" para avançar.
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
> **Modo Solo:** Checkpoints sem `gate:` são pulados automaticamente.
|
|
98
|
+
> Log: `⚡ [SOLO] {nome do step} — checkpoint ignorado`
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### Gates → Checklist de Validação no Output
|
|
103
|
+
|
|
104
|
+
Em vez de gates que bloqueiam automaticamente o fluxo, o Copilot apresenta o gate como checklist ao final do output relevante.
|
|
105
|
+
|
|
106
|
+
**Formato padrão:**
|
|
107
|
+
```
|
|
108
|
+
---
|
|
109
|
+
## Verificação GATE-{N} — {nome do gate}
|
|
110
|
+
|
|
111
|
+
✅ {item validado com sucesso}
|
|
112
|
+
✅ {item validado com sucesso}
|
|
113
|
+
⚠️ {item com aviso — explicação}
|
|
114
|
+
🚫 {item com falha — o que fazer}
|
|
115
|
+
|
|
116
|
+
[GATE-{N}]: {APROVADO | APROVADO COM AVISOS | FALHA}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Se falha:** liste os itens pendentes e pergunte como proceder antes de continuar.
|
|
120
|
+
|
|
121
|
+
**Gates por modo (conforme gate-system.md):**
|
|
122
|
+
|
|
123
|
+
| Gate | BOOTSTRAP | STANDARD | STRICT |
|
|
124
|
+
|---|---|---|---|
|
|
125
|
+
| GATE-0 | ✅ (aviso) | ✅ | ✅ |
|
|
126
|
+
| GATE-1 | ✅ | ✅ | ✅ |
|
|
127
|
+
| GATE-DECISION | ✅ | ✅ | ✅ |
|
|
128
|
+
| GATE-ADR | ❌ | ✅ | ✅ |
|
|
129
|
+
| GATE-2, 3, 5 | ❌ | ✅ | ✅ |
|
|
130
|
+
| GATE-4, GATE-DESIGN | ❌ | ❌ | ✅ |
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### Sistema de Comandos via Comentário
|
|
135
|
+
|
|
136
|
+
O usuário pode ativar comportamentos sem digitar no chat, usando comentários no código.
|
|
137
|
+
|
|
138
|
+
**Sintaxe:**
|
|
139
|
+
```
|
|
140
|
+
// synapos:{comando} {param}:{valor} {param}:{valor}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Parsing pelo Copilot:**
|
|
144
|
+
1. Detecte qualquer linha com `synapos:` no início (comentário ou mensagem no chat)
|
|
145
|
+
2. Extraia o comando e os parâmetros chave:valor
|
|
146
|
+
3. Execute o protocolo correspondente em `.synapos/copilot.md`
|
|
147
|
+
|
|
148
|
+
**Comandos suportados:**
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
// synapos:init
|
|
152
|
+
```
|
|
153
|
+
→ Execute o protocolo de ativação completo (`.synapos/copilot.md` PASSO 1–8)
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
// synapos:squad squad:frontend mode:bootstrap pipeline:bug-fix feature:fix-login
|
|
157
|
+
```
|
|
158
|
+
→ Crie e ative squad diretamente (pula para PASSO 6 do copilot.md)
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
// synapos:step step:02-design-api
|
|
162
|
+
```
|
|
163
|
+
→ Execute o step especificado do pipeline ativo
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
// synapos:gate gate:GATE-2
|
|
167
|
+
```
|
|
168
|
+
→ Execute a validação do gate especificado
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
// synapos:status
|
|
172
|
+
```
|
|
173
|
+
→ Exiba estado atual do squad e session
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
// synapos:decision id:1 choice:A
|
|
177
|
+
```
|
|
178
|
+
→ Resolva uma DECISÃO PENDENTE registrada em open-decisions.md
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
// synapos:memory
|
|
182
|
+
```
|
|
183
|
+
→ Exiba o conteúdo de `docs/.squads/sessions/{feature-slug}/memories.md`
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### Prompt Anchors — Contexto Prioritário
|
|
188
|
+
|
|
189
|
+
Para que o Copilot priorize contexto crítico do projeto, use este padrão no topo de arquivos importantes:
|
|
190
|
+
|
|
191
|
+
```html
|
|
192
|
+
<!-- SYNAPOS: CONTEXT START -->
|
|
193
|
+
Projeto: {nome do projeto}
|
|
194
|
+
Stack: {tecnologias principais}
|
|
195
|
+
Regras críticas:
|
|
196
|
+
- {regra 1 — ex: nunca quebrar autenticação}
|
|
197
|
+
- {regra 2}
|
|
198
|
+
<!-- SYNAPOS: CONTEXT END -->
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
O Copilot lê arquivos abertos no editor e usa este bloco como contexto prioritário.
|
|
202
|
+
Útil para: `README.md`, `docs/_memory/company.md`, arquivos de configuração principal.
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
### State Management — Arquivos como Estado
|
|
207
|
+
|
|
208
|
+
O Copilot não mantém estado entre sessões. Os arquivos abaixo são a fonte de verdade:
|
|
209
|
+
|
|
210
|
+
| Arquivo | Propósito | Quando ler |
|
|
211
|
+
|---------|-----------|------------|
|
|
212
|
+
| `docs/_memory/company.md` | Perfil do projeto | Todo `synapos:init` |
|
|
213
|
+
| `docs/_memory/preferences.md` | Preferências (modelo, IDE, tracker) | Início de cada sessão |
|
|
214
|
+
| `.synapos/squads/{slug}/squad.yaml` | Configuração do squad ativo | Todo `synapos:step` |
|
|
215
|
+
| `docs/.squads/sessions/{slug}/state.json` | Estado da feature | Verificação de progresso |
|
|
216
|
+
| `docs/.squads/sessions/{slug}/memories.md` | Aprendizados acumulados | Início de cada execução |
|
|
217
|
+
| `docs/.squads/sessions/{slug}/context.md` | Contexto da feature | Steps de implementação |
|
|
218
|
+
|
|
219
|
+
**Instrução ao Copilot para cada step:**
|
|
220
|
+
Antes de executar, leia os arquivos listados acima usando `@workspace` ou referenciando-os explicitamente no chat.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
### MODEL-ADAPTER no Copilot
|
|
225
|
+
|
|
226
|
+
O `model_capability` em `preferences.md` também se aplica no Copilot Mode.
|
|
227
|
+
|
|
228
|
+
| `model_capability` | Comportamento |
|
|
229
|
+
|---|---|
|
|
230
|
+
| `high` | Execução padrão — contexto completo |
|
|
231
|
+
| `standard` | Injete o CoT Prefix antes de cada step (S1 do model-adapter.md) |
|
|
232
|
+
| `lite` | Ative todos os mecanismos L1–L6 do model-adapter.md |
|
|
233
|
+
|
|
234
|
+
Para GPT-4o (Copilot padrão): assuma `high`.
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## FLUXO TÍPICO NO COPILOT
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
1. Usuário abre projeto no VS Code / GitHub Copilot Chat
|
|
242
|
+
2. Copilot carrega .github/copilot-instructions.md automaticamente
|
|
243
|
+
3. Usuário digita: synapos:init
|
|
244
|
+
4. Copilot executa .synapos/copilot.md — PASSO 1
|
|
245
|
+
→ Verifica docs/_memory/company.md
|
|
246
|
+
→ Calcula DOC_SCORE
|
|
247
|
+
→ Determina EXECUTION_MODE
|
|
248
|
+
5. Usuário seleciona squad ou cria novo
|
|
249
|
+
6. Squad é criado em .synapos/squads/{slug}/
|
|
250
|
+
7. Pipeline inicia step-by-step
|
|
251
|
+
→ Cada step: lê .agent.md + contexto + instrução
|
|
252
|
+
→ Executa inline
|
|
253
|
+
→ Aplica gates via checklist
|
|
254
|
+
→ Salva output em docs/.squads/sessions/{feature}/
|
|
255
|
+
8. Ao final: atualiza memories.md + state.json
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## LIMITAÇÕES E COMPENSAÇÕES
|
|
261
|
+
|
|
262
|
+
| Limitação do Copilot | Compensação Synapos |
|
|
263
|
+
|----------------------|---------------------|
|
|
264
|
+
| Sem memória persistente entre sessões | `state.json` + `memories.md` como estado externo |
|
|
265
|
+
| Sem execução de pipeline automática | Step-by-step via comandos `synapos:step` |
|
|
266
|
+
| Sem subagentes reais | Personas inline via `.agent.md` + prefixo de agent |
|
|
267
|
+
| Sem botões interativos | Listas numeradas com input explícito |
|
|
268
|
+
| Sem controle de fluxo | Markdown como engine + comentários como comandos |
|
|
269
|
+
| Sem tool calls | Skills simuladas via instruções inline no step |
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## REGRAS DO ADAPTER
|
|
274
|
+
|
|
275
|
+
| Regra | Descrição |
|
|
276
|
+
|-------|-----------|
|
|
277
|
+
| **Arquivo aberto = contexto** | Incentive o usuário a abrir os arquivos relevantes no editor |
|
|
278
|
+
| **@workspace para busca** | Use `@workspace` para encontrar arquivos quando necessário |
|
|
279
|
+
| **Um step por vez** | Nunca execute múltiplos steps simultaneamente |
|
|
280
|
+
| **Gate como checklist** | Todo gate deve ser visível ao usuário como checklist |
|
|
281
|
+
| **DECISÃO PENDENTE é obrigatória** | Qualquer decisão fora do escopo = `[DECISÃO PENDENTE]` |
|
|
282
|
+
| **Nunca assuma modo** | Se o modo não estiver claro, pergunte antes de executar |
|
|
283
|
+
| **Instrua a abrir arquivos** | Se o contexto necessário não estiver carregado, peça ao usuário para abrir o arquivo |
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: synapos-gate-system
|
|
3
|
+
version: 1.5.0
|
|
4
|
+
description: Sistema de quality gates — validação em pontos críticos do pipeline
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# SYNAPOS GATE SYSTEM v1.4.0
|
|
8
|
+
|
|
9
|
+
> Gates são pontos de validação obrigatórios. Falha em um gate bloqueia o avanço.
|
|
10
|
+
> Princípio: **Fail Loud, Never Silent** — nunca ignore uma falha de gate.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## GATES DISPONÍVEIS
|
|
15
|
+
|
|
16
|
+
Use `gate:` nos steps do pipeline.yaml para ativar um gate antes de continuar.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
### GATE-0 — Integridade do Framework e Documentação do Projeto
|
|
21
|
+
|
|
22
|
+
**Quando usar:** No primeiro step de qualquer pipeline. **Obrigatório antes de qualquer execução.**
|
|
23
|
+
|
|
24
|
+
**Verifica — Framework:**
|
|
25
|
+
- [ ] `.synapos/core/orchestrator.md` existe
|
|
26
|
+
- [ ] `.synapos/core/pipeline-runner.md` existe
|
|
27
|
+
- [ ] `docs/_memory/company.md` existe
|
|
28
|
+
- [ ] `docs/_memory/preferences.md` existe
|
|
29
|
+
- [ ] `.synapos/squads/{slug}/squad.yaml` existe
|
|
30
|
+
- [ ] `.synapos/squads/{slug}/agents/` tem pelo menos um .agent.md
|
|
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
|
|
53
|
+
|
|
54
|
+
Para resultados melhores:
|
|
55
|
+
→ /setup:build-tech (+35 pontos de documentação)
|
|
56
|
+
→ /setup:build-business (+40 pontos de documentação)
|
|
57
|
+
|
|
58
|
+
Prosseguindo...
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**STANDARD — docs parcialmente presentes:**
|
|
62
|
+
```
|
|
63
|
+
🟡 GATE-0 (Standard Mode) — Score de documentação: {doc_score}/100
|
|
64
|
+
Contexto parcial. Executando com gates essenciais.
|
|
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
|
+
|
|
72
|
+
Prosseguindo...
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**STRICT — docs completas:**
|
|
76
|
+
```
|
|
77
|
+
🔴 GATE-0 (Strict Mode) — Score de documentação: {doc_score}/100
|
|
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)
|
|
95
|
+
```
|
|
96
|
+
|
|
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
|
+
---
|
|
114
|
+
|
|
115
|
+
### GATE-2 — Contexto Completo
|
|
116
|
+
|
|
117
|
+
**Quando usar:** Antes de steps de implementação/execução (após discovery).
|
|
118
|
+
|
|
119
|
+
**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
|
+
- [ ] Output não está vazio
|
|
135
|
+
- [ ] Output atende os critérios mínimos do agent (Quality Criteria do .agent.md)
|
|
136
|
+
- [ ] Nenhuma veto_condition foi violada
|
|
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:
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
[DECISÃO PENDENTE] {id-sequencial}
|
|
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
|
+
```
|
|
185
|
+
|
|
186
|
+
**Verifica:**
|
|
187
|
+
- [ ] O output **não** contém decisões implícitas (sem `[DECISÃO PENDENTE]` quando deveria ter)
|
|
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:**
|
|
192
|
+
```
|
|
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
|
+
|
|
198
|
+
O agent não pode prosseguir com esta decisão.
|
|
199
|
+
Reexecutando step com instrução: sinalizar como [DECISÃO PENDENTE].
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**Falha — Decisão pendente não resolvida:**
|
|
203
|
+
```
|
|
204
|
+
⏸ GATE-DECISION — AGUARDANDO: Decisão pendente
|
|
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
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Aguarde a seleção do usuário. **Nunca resolva automaticamente.**
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
### GATE-ADR — Conformidade com ADRs (Implementação Guiada por ADRs)
|
|
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.
|
|
230
|
+
|
|
231
|
+
**Falha — Conflito detectado:**
|
|
232
|
+
```
|
|
233
|
+
🚫 GATE-ADR — FALHA: Conflito com ADR existente
|
|
234
|
+
|
|
235
|
+
ADR violada: {adr-id} — {título}
|
|
236
|
+
Decisão conflitante no output: {trecho}
|
|
237
|
+
Status da ADR: Aceito
|
|
238
|
+
|
|
239
|
+
O agent não pode prosseguir com decisões que contradizem ADRs aprovadas.
|
|
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)
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**Falha — ADRs não consultadas:**
|
|
246
|
+
```
|
|
247
|
+
⚠️ GATE-ADR — AVISO: ADRs não referenciadas no output
|
|
248
|
+
|
|
249
|
+
ADRs disponíveis não foram listadas pelo agent.
|
|
250
|
+
Reexecutando step com instrução explícita de consulta às ADRs.
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Falha — Decisão sem ADR correspondente:**
|
|
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.
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
### GATE-DESIGN — Conformidade com Design System e Acessibilidade
|
|
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}
|
|
302
|
+
|
|
303
|
+
Declare o ratio de contraste ou ajuste as cores.
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
**Falha — componente não justificado:**
|
|
307
|
+
```
|
|
308
|
+
⚠️ GATE-DESIGN — AVISO: Componente novo sem verificação de design system
|
|
309
|
+
|
|
310
|
+
Componente(s) propostos sem verificação se existem no design system:
|
|
311
|
+
? {nome do componente}
|
|
312
|
+
|
|
313
|
+
Verifique se já existe antes de propor. Se não existe, documente a justificativa.
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
**Gate passando:**
|
|
317
|
+
```
|
|
318
|
+
✅ GATE-DESIGN — Design System e Acessibilidade: aprovado
|
|
319
|
+
```
|
|
320
|
+
|
|
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.
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## COMO USAR NOS PIPELINES
|
|
359
|
+
|
|
360
|
+
No `pipeline.yaml`, adicione `gate:` em um step:
|
|
361
|
+
|
|
362
|
+
```yaml
|
|
363
|
+
steps:
|
|
364
|
+
- id: gate-contexto
|
|
365
|
+
name: "Validar Contexto"
|
|
366
|
+
execution: checkpoint
|
|
367
|
+
gate: GATE-2
|
|
368
|
+
# Não tem agent — é validação automática
|
|
369
|
+
|
|
370
|
+
- id: implementacao
|
|
371
|
+
name: "Implementar Feature"
|
|
372
|
+
agent: rodrigo-react
|
|
373
|
+
depends_on: [gate-contexto]
|
|
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
|
+
...
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## VETO CONDITIONS vs GATES
|
|
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
|
|
401
|
+
|
|
402
|
+
**Gate passando:**
|
|
403
|
+
```
|
|
404
|
+
✅ GATE-{N} — {nome}: aprovado
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
**Gate falhando:**
|
|
408
|
+
```
|
|
409
|
+
🚫 GATE-{N} — {nome}: FALHA
|
|
410
|
+
|
|
411
|
+
Motivo: {descrição específica}
|
|
412
|
+
Itens faltantes:
|
|
413
|
+
✗ {item 1}
|
|
414
|
+
✗ {item 2}
|
|
415
|
+
|
|
416
|
+
Resolva e execute novamente.
|
|
417
|
+
```
|