# Checklist de Revisao

## Estrutura base
- Preserve o namespace `http://www.davinti.com.br/vitruvio/form` e o `schemaLocation` oficial na raiz quando o artefato for formulario Vitruvio.
- Confirme a presenca e a ordem logica dos blocos `descriptorScript`, `form`, `name`, `initScript`, `validators` e `buttons` quando o tipo de arquivo usar esse skeleton.
- Mantenha IDs e nomes existentes sempre que possivel para evitar quebra de bind e scripts acoplados.

## Bind e dados
- Em `bind`, todo `parameter` precisa de `defaultValue`, inclusive para `string`, `number` e `date`.
- Reuse parametros ja existentes antes de criar novos binds paralelos.
- Se a alteracao depende de variavel de processo, confira se ela sai de `execution.getVariable` ou se precisa ser registrada no `initScript`.

## Escolha de evento
- `initScript`: inicializacao de globais, filtros padrao, datas iniciais e estado de tela.
- `valueChange`: recarga de campos dependentes e widgets quando filtros mudam.
- `itemChange`: persistencia e validacao de celulas editaveis em `DBTable`.
- `onClickScript`: acoes principais como gerar, enviar, processar ou abrir fluxo auxiliar.
- `TabChangeScript`: alternancia de abas e atualizacao de widgets dependentes da aba atual.

## Script embarcado
- Use apenas sintaxe compativel com Rhino ES5.
- Monte SQL e HTML com concatenacao incremental.
- Use `engine.getField`, `engine.getLabel`, `engine.getWidget` e `engine.setGlobalVariable` seguindo os padroes do repositorio.
- Evite criar validacoes redundantes para componentes que ja existem em tela.

## Fontes internas do workspace
- `Vitruvio/Documentação/eventos-vitruvio.md`
- `Vitruvio/Documentação/Componentes/README.md`
- `Vitruvio/Documentação/Componentes/*.ts`