Objetivo
Este documento define o padrão de qualidade obrigatório para garantir fidelidade de produção, reduzir falsos positivos e manter previsibilidade de entrega por task.
Proposta do pilar
Quality responde como validar de forma confiável uma entrega antes de fechar uma task.
Ele não substitui:
- Workflow (sequência de execução)
- Skill (especialidade técnica)
- Artefatos oficiais em
Docs/(fonte de verdade)
Nenhuma task pode ser concluída sem Quality Gate aprovado e evidências registradas.
Fontes analisadas
Núcleo do framework
README.mdGUIDE.mdDocs/README.md
Guias e READMEs do framework
Manual/00README.md,Manual/01GUIDE.mdSkills/00README.md,Skills/01GUIDE.mdWorkflows/00README.md,Workflows/01GUIDE.mdQuality/00README.md,Quality/01GUIDE.mdTemplates/Full/00README.md,Templates/Full/01GUIDE.mdTemplates/Quick/00README.md,Templates/Quick/01GUIDE.mdagents/00README.md,agents/01GUIDE.mdagents/behavior/00README.md,agents/behavior/01GUIDE.mdPrototype/00README.md,Prototype/01GUIDE.mdNebulaWeb/README.md
Documentação de qualidade
Quality/gate.mdQuality/realistic-tests.mdQuality/anti-mock.mdQuality/code-style.mdQuality/dependencies.md
Documento web atual
NebulaWeb/content/docs/quality.md
Regras canônicas de qualidade
- Toda task encerra com Quality Gate aprovado.
- Sem evidência objetiva, a task permanece aberta.
- Testes devem priorizar ambiente realista e comportamento observável.
- Mock/stub/placeholder é proibido por padrão, com exceção formal controlada.
- Mudança com impacto de UI exige teste e2e.
- Mudança de API exige validação com Curl e scripts reproduzíveis.
- Mudança crítica em mobile exige BrowserStack (ou alternativa) e dispositivo físico local.
- Dependências devem manter lockfile e compatibilidade comprovada.
- Resultado de qualidade deve ser registrado em
Docs/tasks.mde refletido emDocs/control.md.
Fechar task sem gate aprovado quebra governança do framework e invalida a rastreabilidade da entrega.
Quality Gate
Arquivo-fonte: Quality/gate.md.
Critérios obrigatórios
| # | Critério | Aplicação |
|---|---|---|
| 1 | Lint aprovado | Sempre |
| 2 | Typecheck aprovado | Quando aplicável |
| 3 | Build aprovado | Quando aplicável |
| 4 | Testes realistas executados | Sempre |
| 5 | Sem mock/stub/placeholder fora de exceção formal | Sempre |
| 6 | Validação de API com Curl/scripts reproduzíveis | Quando há API |
| 7 | Validação e2e dos fluxos críticos | Quando há UI |
| 8 | Validação mobile em BrowserStack + dispositivo físico | Quando há app mobile |
| 9 | Dependências e lockfile consistentes | Sempre |
| 10 | Evidências completas registradas na task | Sempre |
Evidências mínimas por task
- Resultado de lint, typecheck e build
- Resultado de testes (suíte, ambiente e versões)
- Comandos Curl/scripts executados (quando há API)
- Relatório e2e dos fluxos críticos (quando há UI)
- Evidência de validação mobile (quando há app mobile)
- Hash do commit da task e lista de arquivos tocadosSe qualquer critério falhar, a task não fecha. O gate é binário: aprovado ou reprovado.
Testes realistas
Arquivo-fonte: Quality/realistic-tests.md.
Princípio: validar com componentes reais e infraestrutura realista, evitando simulações que escondem comportamento de produção.
Backend e API
- Testes de integração com Testcontainers por padrão.
- Contrato de API validado com Curl e scripts versionados.
- Cobertura de erro realista: timeout, indisponibilidade e validação.
Interface web
- Fluxos críticos com teste e2e obrigatório.
- Mudança visual relevante validada com Prototype e e2e.
Mobile
- Fluxos críticos validados em BrowserStack (ou alternativa viável).
- Fluxos críticos validados também em dispositivo físico local.
Evidências obrigatórias de teste
1. Comandos executados
2. Resultado final (aprovado/reprovado) por suíte
3. Ambiente e versões utilizadas
4. Vínculo com TASK-IDPolítica anti-mock
Arquivo-fonte: Quality/anti-mock.md.
Regra geral: mock, stub e placeholder são proibidos por padrão em integração, contrato, e2e e release.
Exceção controlada
A exceção só é permitida com inviabilidade técnica temporária e registro completo na task:
1. Justificativa técnica objetiva
2. Escopo exato da exceção
3. Prazo de remoção
4. Risco assumido
5. Plano de substituição por validação realSem esse registro completo, o QualityAgent deve reprovar o gate.
Padrão de código
Arquivo-fonte: Quality/code-style.md.
Limites obrigatórios
| Escopo | Limite |
|---|---|
| Caracteres por linha | 120 |
| Linhas por arquivo de regra de negócio | 300 |
| Linhas por função/método | 80 (salvo exceção justificada) |
Regras de legibilidade
- Nome de símbolo deve refletir responsabilidade real.
- Evitar função com múltiplas responsabilidades.
- Evitar comentário redundante.
- Tratar erros com mensagens claras e acionáveis.
Exceção de limite
Exceções devem ser registradas em Docs/tasks.md com justificativa técnica explícita.
Dependências e compatibilidade
Arquivo-fonte: Quality/dependencies.md.
Regras obrigatórias
- Lockfile versionado no repositório.
- Evitar faixas de versão amplas em dependências críticas.
- Garantir compatibilidade entre runtime, framework e bibliotecas.
- Atualização de dependência passa por Quality Gate completo.
Validações mínimas
1. Instalação limpa sem conflito
2. Build e testes aprovados após atualização
3. Registro de versão alterada e impacto em `Docs/tasks.md`Restrições
- Não introduzir biblioteca sem justificativa técnica.
- Não manter dependência sem uso real.
- Não atualizar dependência crítica sem evidências de compatibilidade.
Integração com execução por task
1. Selecionar o workflow principal da task
2. Executar a mudança técnica com a skill adequada
3. Aplicar Quality Gate completo
4. Registrar evidências em `Docs/tasks.md`
5. Atualizar status em `Docs/control.md`
6. Fechar com 1 commit por taskQuality valida a saída técnica, mas também valida disciplina operacional (rastreabilidade, evidência e governança).
Ordem de leitura recomendada
1. Quality/01GUIDE.md
2. Quality/realistic-tests.md
3. Quality/anti-mock.md
4. Quality/code-style.md
5. Quality/dependencies.md
6. Quality/gate.mdRegra de precedência
- Contrato vigente em
Docs/contract.yaml - Documento-fonte do domínio em
Docs/ Quality/gate.mdDocs/plan.mdeDocs/tasks.md- Implementação atual
Antipadrões
- Fechar task com checklist parcial de qualidade.
- Marcar “aprovado” sem comando/resultado reproduzível.
- Validar API sem Curl/scripts versionados.
- Validar UI sem e2e em fluxos críticos.
- Usar mock sem exceção formal registrada.
- Atualizar dependência crítica sem evidência de compatibilidade.
Comandos úteis
cd /home/mau/molinari/Framework
# listar documentos do pilar Quality
ls Quality
# revisar READMEs e guias usados como base
rg --files | rg '(README\.md|GUIDE\.md|00README\.md|01GUIDE\.md)$' | sort
# revisar artefatos de execução e qualidade
ls DocsEncerramento
Resumo operacional: Workflow organiza, Skill especializa, Quality valida e Docs/ comprova a entrega.