Objetivo: ao final, o consultor monta um workflow que responde a @claude num PR e outro que roda por cron, e sabe passar as skills do plugin da Wayon para dentro do CI.
anthropics/claude-code-action@v1, instalada com /install-github-app (exige admin do repositório). O modo é detectado: sem prompt responde a @claude; com prompt executa direto.claude_args, que aceita qualquer argumento do CLI — --max-turns (padrão 10), --model e --allowedTools são os três que mais importam num pipeline.prompt aceita invocação de skill, e a action instala plugin antes de executar (plugin_marketplaces + plugins) — então a skill que a squad empacotou no plugin da Wayon roda dentro do CI.| Input | Para que serve | Obrigatório |
|---|---|---|
anthropic_api_key |
Chave da API, sempre via secret | Sim, para API direta (não para Bedrock/Vertex) |
prompt |
Instrução, em texto ou invocação de skill | Não — sem ele, responde à menção |
claude_args |
Qualquer argumento do CLI do Claude Code | Não |
plugin_marketplaces |
Lista de URLs Git de marketplace de plugin, uma por linha | Não |
plugins |
Lista de plugins a instalar antes de executar, uma por linha | Não |
github_token |
Token para a API do GitHub | Não |
trigger_phrase |
Frase de gatilho (padrão: @claude) |
Não |
use_bedrock / use_vertex |
Usar Amazon Bedrock ou Google Cloud em vez da API direta | Não |
@claude num PR ou issuename: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
jobs:
claude:
runs-on: ubuntu-latest
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
Sem prompt, a action responde a menções de @claude em comentário. O comentário precisa dizer @claude, não /claude — é a causa nº 1 de "não respondeu".
name: Rollup Meridiano
on:
schedule:
- cron: "0 9 * * *"
workflow_dispatch:
jobs:
rollup:
runs-on: ubuntu-latest
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: "Resuma os commits de ontem e as issues abertas dos objetos CAP do Meridiano"
claude_args: |
--max-turns 10
--allowedTools Read,Grep,Glob
Duas escolhas deliberadas: workflow_dispatch junto do cron, para disparar à mão ao testar; e --allowedTools só de leitura, porque um workflow que relata não precisa de ferramenta de escrita.
name: Revisão de spec
on:
pull_request:
types: [opened, synchronize]
jobs:
revisao:
runs-on: ubuntu-latest
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
plugin_marketplaces: "https://github.com/wayon/claude-plugins.git"
plugins: "wayon-sap@wayon-plugins"
prompt: "/wayon-sap:revisao-spec"
É o fechamento do arco do nível: a skill do módulo 2.4, empacotada em plugin no módulo 3.3, rodando desassistida no módulo 3.5. Para skill que vive no próprio repositório (em .claude/skills/), rode actions/checkout antes do passo da action e passe /nome-da-skill.
Quem tem workflow da beta precisa ajustar — a v1 tem mudança incompatível:
| Input da beta | Equivalente na v1 |
|---|---|
@beta |
@v1 |
mode: "tag" / mode: "agent" |
(removido — detectado automaticamente) |
direct_prompt |
prompt |
custom_instructions |
claude_args: --append-system-prompt |
max_turns |
claude_args: --max-turns |
model |
claude_args: --model |
allowed_tools |
claude_args: --allowedTools |
| Situação | Escolha |
|---|---|
| Revisão automática em todo PR, sem manter workflow | Code Review gerenciado (aula 3.5.4) |
| Fluxo próprio: responder a menção, implementar spec, gerar relatório | GitHub Actions (esta aula) |
| Rodar a skill da squad dentro do CI | GitHub Actions, com plugins |
Os dois convivem no mesmo repositório e não competem.
Regra Wayon Em repositório de cliente, todo workflow do Claude Code começa com
--allowedToolsmínimo e--max-turnsexplícito. Workflow que só relata roda com ferramenta de leitura apenas. Nenhum workflow recebe permissão de escrita em branch protegido, e a chave da API vive exclusivamente em secret do repositório — nunca no arquivo do workflow, que é versionado e visível para todo mundo com acesso ao repo.
📖 GitHub Actions · Repositório da action
prompt. Alguém comenta @claude revisa isso aqui num PR e nada acontece com aquele workflow.prompt e resposta a menção deveriam funcionar juntosNão é bug: o modo é detectado a partir da presença do prompt, e isso é comportamento documentado.
prompt preenchido, a action roda em modo automação e executa aquele prompt direto, em vez de esperar mençãoCorreto. Para responder a menção, o workflow não deve passar prompt.
mode: "tag" no workflowmode foi removido na v1 — era input da versão beta, e hoje o modo é detectado automaticamente.
--allowedTools só com ferramentas de leitura, mais --max-turns explícitoCorreto. Workflow que relata não precisa de ferramenta de escrita, e o teto de turnos evita loop virar fatura.
O padrão é mais permissivo do que a tarefa exige — dar o mínimo é a regra Wayon para repositório de cliente.
--max-turns 1, para garantir custo mínimoUm único turno provavelmente não completa a tarefa; o objetivo é ter teto, não impedir o trabalho.
wayon-sap, publicado no marketplace da Wayon. Como rodar essa skill dentro do CI?A action instala plugin antes de executar, justamente para esse caso.
prompt, como textoFunciona mal e duplica: a skill passa a existir em dois lugares e sai de sincronia com o plugin.
plugin_marketplaces e plugins na action, e usar prompt com a skill namespaced (/wayon-sap:revisao-spec)Correto. O prompt aceita invocação de skill, e o plugin é instalado antes da execução.
Tanto a instalação do GitHub App quanto a criação de secret exigem admin do repositório.
/install-github-app com a flag de usuário comumNão existe essa flag: o requisito de admin é do GitHub, não do Claude Code.
Correto, e vale resolver antes de prometer a automação no plano de projeto.
on: pull_request, que é o caminho padrão para revisãoFunciona, mas exige manter um workflow — e o enunciado pede explicitamente não manter.
Correto — lembrando que é preview, só Team e Enterprise, e indisponível sob Zero Data Retention.
Routine reage a PR, mas é feita para executar uma tarefa que você descreveu, não para o fluxo de revisão com achados inline por severidade.
O check run sempre termina com conclusão neutra, justamente para não bloquear merge por branch protection.
O Code Review nunca aprova PR — aprovação continua sendo ato de uma pessoa.
Correto. É desenho deliberado, para não atropelar o processo de revisão que já existe.
REVIEW.md na raiz, listando o que não deve ser reportadoCorreto. REVIEW.md é injetado como instrução de prioridade máxima em cada agente da revisão.
CLAUDE.md do projetoFunciona parcialmente: o Code Review lê o CLAUDE.md como contexto, mas instrução específica de revisão pega com muito mais força no REVIEW.md.
Joga fora todo o valor por um problema de calibração que tem solução direta.
A distinção não é por classe de problema; é por origem e gravidade.
Os dois passam pela mesma etapa de verificação; a diferença é outra.
Correto — e o roxo é útil em rollout, porque cataloga dívida que ninguém tinha mapeado.
Correto. Prometer em proposta seria erro; o /code-review local continua disponível como alternativa.
A restrição é do Zero Data Retention na organização, não da visibilidade do repositório.
O comportamento de disparo não muda a indisponibilidade sob Zero Data Retention.
@claude review para rodar de novo, porque a revisão falhouA revisão não falhou — os achados existem, só não estão onde você procurou.
Correto. Se houve push durante a revisão, achados de linha que mudou vão para "Additional findings" no corpo, não para inline.
O botão Re-run do GitHub não redispara o Code Review — e, de todo modo, o problema aqui não é a revisão não ter rodado.