review-style

Verifica se o código segue os guias de estilo do projeto sem fornecer sugestões de melhoria.

O que é review-style?

Esta skill é responsável por validar se o código está em conformidade com os guias de estilo definidos no projeto. Diferente de revisões de código tradicionais, ela funciona como uma verificação binária (aprovado/violações), não oferecendo feedback construtivo ou sugestões de melhoria. É utilizada durante a fase de verificação TDD, em revisões de PR e em qualquer validação de estilo. A skill recebe arquivos de contexto (como o guia de estilo relevante e os arquivos alterados) e dados sobre a fase atual (designer/tester/implementor) para determinar quais regras aplicar. Suporta multi-ciclos através de um arquivo ledger, evitando reabrir violações já resolvidas ou disputadas. Retorna um resultado estruturado no formato `StyleResult`, que indica aprovação (`accept`) ou lista as violações encontradas. Ela é compatível com agentes como Claude Code, Cursor e Codex, sendo ideal para equipes que desejam automatizar a verificação de estilo sem intervenção humana.

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

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 Estilo

Propósito

Verificar se o código segue todos os guias de estilo do projeto. Esta é uma verificação de aprovação/reprovação, não uma sessão de feedback.

Quando Usar

  • Fase de verificação TDD
  • Revisão de PR para conformidade de estilo
  • Qualquer revisão de código que exija validação de estilo

Entradas Necessárias

context_files

  • Guia de estilo para a fase sendo revisada (ex.: docs/style/rust-design.md)
  • Arquivos alterados a revisar
  • Arquivo ledger (opcional) para revisões multi-ciclo

context_data

  • phase: Qual fase (designer/tester/implementor) – determina quais regras do guia de estilo se aplicam
  • changed_files: Lista de arquivos a revisar

Formato da Resposta

Retorne uma resposta estruturada seguindo este esquema:

class StyleResult(BaseModel):
    status: Literal["accept", "violations"]
    violations: list[str] = []  # Cada item: "arquivo:linha - descrição"
    themes: str | None = None   # Padrão opcional entre violações

Se todas as verificações passarem:

StyleResult(status="accept")

Se alguma verificação falhar:

StyleResult(
    status="violations",
    violations=[
        "src/config.rs:23 - seletores snafu importados no nível do módulo; deveriam estar dentro da função",
        "src/parser.rs:45 - comentários Given/When/Then ausentes no teste",
    ],
    themes="Várias violações decorrem de uma abordagem inconsistente de tratamento de erros"
)

Consciência do Ledger

Quando um arquivo ledger é fornecido em context_files:

  1. Leia ciclos anteriores – Verifique quais violações foram levantadas e como o implementador respondeu
  2. Verifique itens RESOLVIDOS – Confirme se as correções foram realmente aplicadas
  3. Respeite itens DISPUTADOS – NÃO reabra se o motivo do implementador for válido
  4. Levante apenas NOVAS violações – Problemas não discutidos anteriormente

Guias de Estilo (Fontes Autoritativas)

Os guias de estilo em docs/style/ são a ÚNICA fonte de verdade:

  • docs/style/rust-design.md – Regras da fase de design (tipos, assinaturas, bon, nutype, snafu)
  • docs/style/rust-impl.md – Regras da fase de implementação (tratamento de erros, imports, sem panics)
  • docs/style/rust-test.md – Regras da fase de teste (Given/When/Then, test_case, asserções)

Leia o guia aplicável e use seu julgamento. Não confie em resumos.

Procedimento

1. Identifique as Regras Aplicáveis

Com base na fase:

  • designer: regras rust-design.md (especialmente a tabela de Escolhas de Crate do Projeto)
  • tester: regras rust-test.md
  • implementor: regras rust-impl.md
  • Arquivos de teste (módulos #[cfg(test)]) sempre recebem as regras rust-test.md independentemente da fase

2. Revise Cada Arquivo

Verifique conforme as regras do guia de estilo aplicável. Sinalize apenas violações claras, não preferências de estilo.

Verificações críticas para a fase designer:

  • Structs compostas (2+ campos) usam #[derive(Builder)] com #[non_exhaustive]
  • Novos tipos validados usam nutype
  • Erros usam snafu com #[snafu(module)]
  • Corpos de função são todo!(), não implementações

Verificações críticas para a fase implementor:

  • Nenhum unwrap()/expect() no código de produção
  • Seletores de contexto snafu importados dentro de funções
  • Sem linhas em branco entre imports

Verificações críticas para a fase tester:

  • Comentários Given/When/Then em cada teste
  • test_case para testes parametrizados

3. Retorne Resultado Estruturado

Use o esquema StyleResult. O orquestrador analisa isso para decidir os próximos passos.

O Que Esta Skill NÃO Faz

  • Sugerir melhorias não relacionadas a violações
  • Fornecer feedback construtivo geral
  • Revisar escopo/correção (use review-scope para isso)
  • Sinalizar preferências de estilo que não estão nos guias

Esta é uma verificação binária: aceitar ou violações.

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-code

Deep code review generating PR comments via principled question-driven analysis

review-scope

Verify code changes match intended scope and requirements without exceeding boundaries

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