Revisando o Diosix
Toda alteração de código e documentação no Diosix deve passar por uma auditoria rigorosa e multi-perspectiva antes do commit ou merge. Nunca aprove mudanças de forma automática e nunca assine a aprovação de código quebrado, incompleto ou não verificado. Os critérios de revisão abaixo espelham developing-diosix e documenting-diosix 1:1 para que a aplicação das habilidades de criação elimine retrabalho pré-commit e pré-merge.
Workflow Obrigatório de Verificação em 4 Etapas
- Gate de Compilação, Completude e Testes (Condição Básica):
- Verifique se a funcionalidade está 100% implementada conforme o projeto, com zero stubs
TODO, código morto ou caminhos de produção simulados (mocked). - Ao refatorar arquivos com mais de 500 linhas, nunca trunque funcionalidades ou testes unitários; sempre componentize arquivos muito grandes em subpastas coesas (
vm/run.zig,panes/modal.zig,tests/gui.zig) em vez de arquivos planosprefix_subname.zig, e verifique se cada submódulo é referenciado no blocotestde seu pai (_ = @import("vm/run.zig");) para quezig build testexecute seus testes unitários. - Verifique se os testes unitários estão no mesmo arquivo
.zigque testam e se os testes de integração residem em diretóriostests/separados. - Escopo das verificações de formato de arquivo e linha/coluna para diretórios de origem rastreados (
build.zig,hypervisor,tools,scripts) em vez de executar globs recursivos sem escopo em.zig-cache/ouzig-out/. - Execute
./scripts/build.sh test --summary alle./scripts/build.shaté que 100% das etapas de compilação e testes passem com zero avisos ou vazamentos.
- Verifique se a funcionalidade está 100% implementada conforme o projeto, com zero stubs
- Revisão Profunda com 4 Personas:
- Audite cada arquivo modificado e seu contexto circundante através de quatro lentes distintas:
- Engenheiro Veterano Cético (completude, expressões idiomáticas, hierarquia de subpastas em vez de arquivos planos
prefix_subname.zig, literais hexadecimais em minúsculas0xfff, constantes/auxiliares nomeados comoPAGE_OFFSET_MASKecrossesPageBoundaryem vez de bitmasks mágicos, zero duplicação de copiar-colar deSpinlock/alinhamento/validadores de caminho, nenhum array de fallback de lista de candidatos histórica comoDEFAULT_GUEST_CANDIDATESpara caminhos internos co-versionados, tipos ABI explícitos de largura fixau64em vez deusize, anotações de tipo explícitasusizeem@min/@maxcom literais, componentização de arquivos >500 linhas sem truncamento, limite <=80 colunas, buffers dinâmicos vs. estáticos, externalização de política para configuração de compilação/tempo de execução, nenhuma síntese binária/ELF/imagem on-the-fly em Zig, nenhum arquivo gerado dentro detools/overlay-common/) - Especialista em Segurança Paranóico (isolamento do raio de explosão do hypervisor, prevenção de double-fetch/TOCTOU de cópia única na memória do convidado, bloqueio seguro para IRQ via
atomic.Spinlock, zeragem criptográfica/de página, limites aritméticos verificados) - Mantenedor do Diosix (modularidade, legibilidade,
defer/errdefer, asserçõescomptimede tamanho/deslocamento ABI, compatibilidade reversa de contrato externo vs. migração atômica in-tree, cobertura de teste de submódulo) - Usuário Iniciante e Avançado (UX sem esforço, erros claros em inglês, flexibilidade de configuração, desempenho)
- Engenheiro Veterano Cético (completude, expressões idiomáticas, hierarquia de subpastas em vez de arquivos planos
- Audite cada arquivo modificado e seu contexto circundante através de quatro lentes distintas:
- Auditoria de Lifetime de Ponteiros e Borrow-Checker Estilo Rust:
- Rastreie manualmente cada ponteiro, slice e alocação em todos os caminhos de fluxo de controle para garantir zero Use-After-Free (UAF), double-free, invalidação de ponteiro em redimensionamento/remapeamento ou referências de pilha pendentes.
- Gate de Documentação, Ortografia e Estilo:
- Verifique se
docs/corresponde a todas as alterações de código (incluindo SBI FIDs, tipos de struct C, flags de CLI e caminhos de arquivo modularizados), está escrito em inglês americano claro e gramaticalmente correto com ortografia verificada e está em conformidade comdocs/style-guide.mdedocs/development.md. - Execute novamente
zig fmt --check build.zig hypervisor tools scriptse./scripts/build.sh test --summary allapós quaisquer correções de revisão.
- Verifique se
- Quando Estiver Inseguro, Pare e Pergunte ao Mantenedor Principal: Se uma revisão descobrir uma compensação arquitetural ou primitiva ausente, pare e pergunte ao mantenedor principal por orientação antes de fazer suposições.
Guias de Referência Focados
Consulte estas listas de verificação de referência durante cada revisão:
- Lista de Verificação das 4 Personas de Revisão: Critérios de inspeção detalhados para o Engenheiro Veterano Cético, Especialista em Segurança Paranóico, Mantenedor do Diosix e Usuário Iniciante/Avançado.
- Auditoria de Borrow-Checker: Metodologia passo a passo para rastrear proveniência de ponteiros, lifetimes, mutabilidade de alias e segurança de memória entre privilégios em Zig.
- Gates Pré-Commit: Comandos de verificação concretos e critérios de aprovação necessários antes de commitar ou fazer merge em
develoustable.