revisão-de-código

Revisão profunda de PR gerando comentários via análise baseada em princípios e questionamentos.

O que é revisão-de-código?

Esta skill executa uma revisão de código abrangente e rigorosa de um Pull Request, substituindo julgamentos subjetivos por um processo sistemático de geração e resposta a perguntas derivadas de princípios de revisão. Ela produz um documento final com comentários específicos para o PR e artefatos de raciocínio verificáveis. O processo é dividido em fases: mapeamento inicial do PR, refinamento da lista de perguntas, resposta a cada pergunta (usando subagentes especializados para fatos, pesquisa, design, corretude ou marcando como 'precisa do autor'), avaliação holística antes e depois da revisão por commit, filtragem de implicações e síntese final. A skill suporta qualquer repositório Git com GitHub CLI autenticado e opera localmente, sem postar comentários automaticamente no GitHub. É ideal para equipes que desejam revisões consistentes, rastreáveis e focadas em categorias como corretude lógica, suposições não declaradas, segurança de tipos e intenção do autor, em vez de classificações subjetivas de gravidade.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cbgbt/bottlerocket-forest/tree/main/skills/review-code

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Skill de Revisão de Código

Revise um PR gerando e respondendo TODAS as perguntas derivadas dos princípios de revisão. Produz um documento final com comentários específicos para o PR e referências aos artefatos de raciocínio.

Como Funciona

Revisão de código é interrogatório: gere perguntas, responda a todas elas, destaque o que não está claro ou é preocupante.

O que esta skill produz:

  • Perguntas derivadas dos princípios de revisão
  • Respostas para cada pergunta (ou "precisa do autor" explícito)
  • Implicações extraídas das respostas
  • Preocupações levantadas, organizadas por categoria

O que esta skill NÃO produz:

  • Classificações de gravidade (crítico/maior/menor)
  • Classificações de bloqueio vs. não bloqueio
  • Recomendações de aprovação

Processo: 0. Configuração - Fazer checkout do branch do PR localmente

  1. Exploração - Mapeia o território do PR, gera perguntas iniciais (podem ser superficiais)
  2. Refinar Perguntas - Preenche lacunas de conhecimento, gera o backlog REAL de perguntas, classifica por tipo
  3. Responder Perguntas - Roteia cada pergunta para o manipulador adequado, produz documento de Q&A
  4. Pré-Avaliação Holística - Avalia a abordagem usando Q&A (em paralelo com a etapa 5)
  5. Revisão por Commit - Revisa cada commit usando Q&A (em paralelo) 5.5. Filtrar Implicações - Decisão binária de exposição + categorização
  6. Pós-Avaliação Holística - Reavalia, verifica atendimento a requisitos
  7. Sintetizar - Combina em preocupações organizadas por categoria

Tipos de pergunta e manipuladores:

  • FATO → skill fact-find (respostas citadas)
  • PESQUISA → skill deep-research (documentos educacionais)
  • DESIGN → avaliação de design (propor alternativas, avaliar contra princípios)
  • CORRETUDE → análise de corretude (rastrear código, verificar comportamento)
  • INTENÇÃO → marcado como precisa-do-autor (não pode ser auto-respondido)

Insight chave: Cada pergunta recebe uma resposta explícita e documentada (ou "precisa do autor" explícito). Isso cria artefatos verificáveis.

Entrada

  • Referência do PR (URL, número ou branch)
  • Opcional: problemas críticos ou documentação identificados pelo usuário

Configuração

Antes de começar, o orquestrador faz checkout do PR:

# No diretório do repositório alvo
gh pr checkout <PR-number>

Pré-requisitos:

  • O diretório de trabalho deve ser o repositório que contém o PR
  • Sem alterações não commitadas (falhe cedo se estiver sujo)
  • GitHub CLI autenticado

Após o checkout, todos os subagentes leem o código do sistema de arquivos local em vez de usar a CLI gh para diffs.

Espaço de Trabalho

Crie planning/<pr-slug>/ para todos os artefatos. Não faça commit destes artefatos — são documentos de trabalho, não entregáveis.

planning/<pr-slug>/
├── 00-scout.md           # Mapa de território inicial
├── 01-questions.md       # Backlog de perguntas refinado e classificado
├── 02-answers.md         # Documento consolidado de Q&A
├── answers/              # Artefatos de resposta individuais
│   ├── fact-Q1.md
│   ├── design-Q2.md
│   └── ...
├── 03-commit-NN.md       # Revisões por commit
├── 04-holistic-pre.md
├── filtered-implications.md  # Implicações categorizadas a serem expostas
├── 05-holistic-post.md
└── REVIEW.md             # Saída final

Protocolo de Subagente

Arquivos a passar: PRINCIPLES.md, o arquivo de instrução do agente, artefatos de fases anteriores

Dados a passar: caminho do workspace, dados específicos da fase

Respostas:

OUTPUT: <filename>
STATUS: ok | problems
NOTES: <if problems>

Confie em STATUS: ok. Em caso de problems, leia as notas e decida.

Acesso ao Repositório

O PR é verificado localmente antes do início da revisão. Os subagentes recebem:

  • repo_path: Caminho para o repositório com o PR verificado
  • base_ref: O branch base (ex.: main)
  • head_ref: O branch do PR (verificado)

Os subagentes leem os arquivos diretamente de repo_path. Use git diff {base_ref}...HEAD para diffs.

Fases

0. Configuração

Faça checkout do PR localmente antes de qualquer análise:

gh pr checkout <PR-number>

Capture base_ref dos metadados do PR para comandos diff.

1. Exploração

Agente: agents/01-scout.md Arquivos: PRINCIPLES.md, arquivo do agente Dados: workspace, repo_path, base_ref, pr_number, contexto do usuário Saída: 00-scout.md

2. Refinar Perguntas

Agente: agents/02-refine-questions.md Arquivos: PRINCIPLES.md, arquivo do agente, 00-scout.md Dados: workspace, repo_path, base_ref, issues/documentação vinculadas Saída: 01-questions.md

Esta fase usa fact-find para preencher lacunas de conhecimento e produz um backlog de perguntas classificado.

3. Responder Perguntas

Para cada pergunta em 01-questions.md, instancie o agente de resposta apropriado:

TipoAgenteSaída
FATOagents/03-answer-fact.mdanswers/fact-{id}.md
PESQUISAagents/04-answer-research.mdanswers/research-{id}.md
DESIGNagents/05-answer-design.mdanswers/design-{id}.md
CORRETUDEagents/06-answer-correctness.mdanswers/correctness-{id}.md
INTENÇÃO(pular—marcar como precisa-do-autor)

Execute os agentes de resposta em paralelo quando possível.

Após todos completarem, consolide em 02-answers.md:

# Perguntas Respondidas

| ID | Tipo | Pergunta | Resumo da Resposta | Detalhe |
|----|------|----------|---------------------|---------|
| Q1 | FATO | ... | ... | [answers/fact-Q1.md] |

## Precisa do Autor
| ID | Pergunta | Por Que Não Podemos Responder |

4. Pré-Avaliação Holística

Agente: agents/07-holistic-pre.md Arquivos: PRINCIPLES.md, arquivo do agente, 01-questions.md, 02-answers.md Dados: workspace, descrição do PR, mensagens de commit Saída: 04-holistic-pre.md

Pode ser executada em paralelo com a Fase 5.

5. Revisão por Commit

Agente: agents/08-commit-review.md (um por commit, em paralelo) Arquivos: PRINCIPLES.md, arquivo do agente, 01-questions.md, 02-answers.md Dados: workspace, repo_path, base_ref, commit_sha, commit_message, commit_number, total_commits, all_commit_messages Saída: 03-commit-NN.md

for each commit in PR:
    spawn commit_reviewer(
        commit_diff=commit.diff,
        commit_number=N,
        ...
    ) → 03-commit-{N}.md
# One agent per commit - do not batch

5.5. Filtrar Implicações

Agente: agents/085-filter-implications.md Arquivos: PRINCIPLES.md, arquivo do agente, todos os 03-commit-*.md Dados: workspace Saída: filtered-implications.md

O agente analisa as implicações e perguntas ao autor diretamente dos arquivos de revisão de commit.

Decisão binária de exposição (expor ou não) mais categorização:

  • corretude - Erros lógicos, bugs, comportamento incorreto
  • suposição - Suposições não declaradas que podem não se sustentar
  • sistema-de-tipos - Preocupações de segurança de tipo, restrições ausentes
  • intenção - Perguntas sobre a intenção do autor que precisam de esclarecimento
spawn implication_filter(workspace=workspace) → filtered-implications.md
# Agent extracts implications from 03-commit-*.md files

6. Pós-Avaliação Holística

Agente: agents/09-holistic-post.md Arquivos: PRINCIPLES.md, arquivo do agente, 01-questions.md, 02-answers.md, 04-holistic-pre.md, todos os 03-commit-*.md, filtered-implications.md Dados: workspace Saída: 05-holistic-post.md

7. Sintetizar

Agente: agents/10-synthesize.md Arquivos: PRINCIPLES.md, arquivo do agente, todos os artefatos Dados: workspace Saída: REVIEW.md

Organiza as preocupações expostas por categoria (corretude, suposição, sistema-de-tipos, intenção), não por gravidade.

8. Entregar

Apresente REVIEW.md ao usuário.

⚠️ APENAS LOCAL: Esta skill produz artefatos apenas localmente. NÃO ofereça postar comentários no GitHub ou interagir com o GitHub de qualquer forma além do gh pr checkout inicial. A saída da revisão é para o usuário agir manualmente.

Preservação de Tokens

Você orquestra; subagentes analisam. Confie nas respostas de status.

Não leia artefatos intermediários exceto:

  • STATUS: problems → leia as anotações
  • O usuário faz uma pergunta
  • Depuração de uma falha

Sempre leia: Respostas de status, saída final REVIEW.md.

Arquivos da Skill

skills/review-code/
├── SKILL.md
├── PRINCIPLES.md
└── agents/
    ├── 01-scout.md
    ├── 02-refine-questions.md
    ├── 03-answer-fact.md
    ├── 04-answer-research.md
    ├── 05-answer-design.md
    ├── 06-answer-correctness.md
    ├── 07-holistic-pre.md
    ├── 08-commit-review.md
    ├── 085-filter-implications.md
    ├── 09-holistic-post.md
    └── 10-synthesize.md

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

ad-hoc-implementation-plan

Transform a rough plan into implement-commit ready artifacts. Allows rigorous review while implementing.

build-kit-locally

Build a kit and publish it to a locally hosted registry for development testing

build-variant-from-local-kits

Build a variant using locally published kits for development validation

deep-research

Create educational documents that build understanding progressively with citations

edit-spec-file

Edit Bottlerocket RPM spec files following project style conventions

fact-find

Quick lookup of specific facts about Bottlerocket with citations

idea-honing

Clarify feature ideas through iterative Q&A, recording insights to guide concept development

implement-commit

Implement commits from an implementation plan using a TDD pipeline

local-registry

Start and manage a local OCI registry for Bottlerocket kit development

prepare-core-kit-release

Prepare bottlerocket-core-kit for release by bumping version and updating changelog

propose-feature-concept

Create a new feature concept document to pitch the idea and explain the problem/solution

propose-feature-design

Create or update feature technical design document with architecture and implementation guidance

propose-feature-requirements

Create or update feature requirements specification using EARS notation with examples and appendices

propose-feature-test-plan

Create a test plan mapping EARS requirements and Critical Constraints to specific tests

propose-implementation-plan

Create an implementation plan with atomic commits that build toward a complete feature

review-scope

Verify code changes match intended scope and requirements without exceeding boundaries

review-style

Verify code follows project style guides without providing improvement suggestions

test-local-twoliter

Build and test local changes to twoliter before releasing

update-twoliter

Update all Bottlerocket repositories to a new Twoliter version

Habilidades Relacionadas