---
id: ci-cd-configuration
agent: devops
title: Configurar workflows de CI/CD
inputs: [story/objetivo de infra, stack do projeto]
outputs: [workflows do GitHub Actions, confirmação de configuração]
elicit: true
modes: [interactive]
---

# Configurar workflows de CI/CD

**Objetivo:** criar ou atualizar os workflows do GitHub Actions que rodam os gates do projeto (lint,
typecheck, test, build) em CI, espelhando o pre-push local. Gestão de CI/CD é exclusiva do @devops.

**Pré-condições:**
- O objetivo rastreia a uma story/spec de infraestrutura. Sem isso, **elicito** o escopo — não invento
  pipeline.
- O repositório tem git e remoto GitHub. Se for greenfield, **pare** e recomende `*environment-bootstrap`.

## Passos

1. **Detecte o contexto do repositório** — remoto, branch base e a stack (gerenciador de pacotes,
   scripts de `lint`/`test`/`build`). Nunca assuma repo fixo.
2. **Mapeie os gates do projeto** que o CI deve espelhar: os mesmos comandos do `pre-push-quality-gate`
   (lint, typecheck, test, build). O CI é a rede de segurança remota do gate local.
3. **Gere/atualize o workflow** em `.github/workflows/` — triggers (push/PR para a branch base), matriz
   de versões se aplicável, e os jobs dos gates. Reuse padrão existente antes de criar do zero.
4. **Revele a proposta.** Mostre o YAML do workflow e os gatilhos ao usuário.
5. **[ELICITAÇÃO] Peça o "ok" explícito** para gravar/atualizar o workflow. Configuração de pipeline
   muda o comportamento da entrega — pede confirmação.
6. **Grave o arquivo do workflow** localmente (`git add`/`git commit` com o id da story). A subida ao
   remoto segue pelo fluxo normal (`*push`) — eu não empurro fora do gate.
7. **Reporte.** Devolvo o caminho do workflow, os gates cobertos e o próximo passo (subir via `*push`
   para o CI rodar).

## Critério de pronto (DoD)

- [ ] Stack e gates do projeto mapeados dinamicamente
- [ ] Workflow cobre os mesmos gates do pre-push (lint, typecheck, test, build)
- [ ] Confirmação humana obtida antes de gravar/atualizar o workflow
- [ ] Workflow versionado por commit local (subida segue por `*push`)
- [ ] Caminho do workflow e gates cobertos reportados

## Falha / recuperação

- **Escopo ausente** → elicito a story/objetivo de infra; não invento pipeline.
- **Stack sem scripts de gate** (sem `lint`/`test`/`build` definidos) → sinalizo a lacuna e devolvo ao
  @dev para definir os scripts antes de cravar o CI sobre eles.
- **Greenfield sem remoto** → recomendo `*environment-bootstrap` antes de configurar Actions.
- **Usuário não confirma** → não gravo o workflow.
