AULA 56 / 61 · ACESSO GRATUITO

Modelos de governança

Graciliano TolentinoEngenharia Caracol · Edição 2.0
Nesta aula
  1. Registros preenchidos para uma cadeia verificável
  2. README de entrada
  3. Registro de decisão arquitetural preenchido
  4. Registro de evidência preenchido
  5. Gate preenchido com impedimentos explícitos
  6. Rollback preenchido e delimitado
  7. Handoff preenchido para o próximo ciclo

Registros preenchidos para uma cadeia verificável

Os registros deste capítulo estão conectados à Oficina Caracol. Eles exemplificam conteúdo preenchido, não uma coleção de campos vazios. A execução automatizada citada ocorreu em 2 de novembro de 2026, com Node v24.22.1 e npm 11.9.0, e consta do relatório pratica/docs/evidencias/resultado-pratica.json e dos artefatos de evidência do pacote. Esse contexto identifica a execução; resultados futuros devem receber identificação própria. O material de julho é a fonte histórica do método, não a data desses testes novos.

A cadeia é simples: a decisão ADR-001 limita a arquitetura; REQ-001 a REQ-005 definem comportamentos; EV-OC-001 resume verificações e limites; GATE-001 decide o alcance; rollback e handoff explicam como retornar e continuar. O registro não inventa assinatura humana, hash de commit ou aceite inexistente. Onde a confirmação depende de uma pessoa, o estado permanece pendente.

README de entrada

markdown
# Oficina Caracol
Finalidade: estudar catálogo público e reserva simulada com dados fictícios.
Versão do pacote: 2.0.0.
Contexto verificado: Node v24.22.1; npm 11.9.0; execução em 2026-11-02.
Dados: data/casos.json; contrato {id,titulo,descricao,ativo}.
API pública: somente {id,titulo,descricao} dos registros ativos.
Execução dentro de pratica: npm ci; npm test; npm run validate.
Servidor local: npm start; abrir http://127.0.0.1:3000.
Recuperação de estudo: npm run snapshot; npm run restore.
Alcance da recuperação: somente sandbox/recuperacao.
Regras e decisões: docs/decisao-001.md.
Resultados e limites: docs/evidencia-001.md e registros brutos.
Liberação: consultar docs/gate-001.md.
Bloqueios humanos: percurso manual de acessibilidade, leitura com alunos,
revisão independente e aceite da autoridade permanecem pendentes.
Próximo passo: reproduzir localmente e registrar as verificações humanas.
Não há dados pessoais, cadastro ou banco externo.
As reservas existem somente na memória de um processo.
Este pacote não constitui autorização de uso em produção.

Os comandos do README são uma rota de entrada. O ponto e vírgula nesta descrição separa etapas; quem executa deve observar o resultado de cada comando antes de continuar. O servidor permanece em execução até ser encerrado. A recuperação é um exercício separado e não substitui a restauração do código.

Registro de decisão arquitetural preenchido

markdown
# ADR-001 Persistência e fronteiras do exemplo
Status: decisão didática adotada nesta edição.
Contexto: ensinar catálogo, validação, HTTP e retry com dependências externas zero.
Requisitos relacionados: REQ-001, REQ-002, REQ-003 e REQ-005.
Alternativas: aplicação estática sem servidor; servidor com banco e framework;
Node com APIs padrão e memória local.
Decisão: catálogo em JSON validado; reservas simuladas em memória;
resposta pública construída somente com id, titulo e descricao.
Justificativa: tornar os contratos observáveis sem credenciais e serviços externos.
Consequências: reiniciar apaga reservas; não há deduplicação entre processos;
não há autenticação, disponibilidade contínua ou garantia de produção.
Evidências relacionadas: EV-OC-001 e testes de catálogo, operações e servidor.
Revisar se: surgirem usuários reais, dados pessoais, persistência obrigatória
ou múltiplos processos. A revisão exigirá novo escopo e novos controles.
Autoria do registro didático: edição revista da Engenharia Caracol.
Revisão humana independente: não realizada.

Registro de evidência preenchido

markdown
# EV-OC-001 Verificações do pacote local
Afirmação sustentada: os cenários automatizados definidos foram executados
e os resultados abaixo foram obtidos no pacote Oficina Caracol 2.0.0.
Execução: 2026-11-02; Node v24.22.1; npm 11.9.0.
Procedimentos: npm ci; npm test; npm run validate; smoke HTTP;
npm run snapshot; npm run restore; exercício antes e depois.
Resultado de npm test: saída 0; 18 testes aprovados; 0 falhas inesperadas.
Resultado de validate: saída 0; sintaxe de 14 arquivos JavaScript,
dados de 3 registros e 18 testes aprovados.
HTTP: GET /api/casos devolveu 200 e IDs site-acessivel e catalogo-local.
Retry: mesma chave e caso devolveram sim-1 nas duas respostas 200.
Conflito: a mesma chave para outro caso devolveu 409 e CONFLITO_CHAVE.
Recuperação: snapshot e restore saíram com 0 na sandbox.
Antes: uma falha intencional isolada detectou exposição de rascunho-interno.
Depois: os 6 testes de catálogo passaram.
Artefato bruto: relatório pratica/docs/evidencias/resultado-pratica.json e logs do pacote.
Limites: não prova ausência de defeitos; não verifica interação humana;
não prova segurança de produção, persistência ou concorrência distribuída.
Observação: houve aviso npm sobre http-proxy herdado do ambiente;
os comandos citados concluíram com os códigos registrados.
Responsabilidade humana de revisão e aceite: pendente.

Observe a diferença entre teste falho e resultado inesperado: exercicio:antes foi criado para detectar uma implementação defeituosa isolada. Sua saída 1 era esperada e precisa permanecer visível. Esconder essa falha apagaria justamente a demonstração de que o teste protege a regra. Os seis testes do exercício depois já fazem parte da suíte principal de dezoito. Não os some como se fossem testes independentes.

Gate preenchido com impedimentos explícitos

markdown
# GATE-001 Estado da edição de estudo
Escopo avaliado: pacote executável local com dados fictícios e documentação.
Evidência técnica: EV-OC-001 e resultados brutos identificados.
REQ-001, REQ-002, REQ-003 e REQ-005: cenários automatizados aplicáveis aprovados.
REQ-004: estrutura inspecionada; teclado, leitor de tela e alunos pendentes.
Riscos residuais: reservas voláteis; recuperação só sandbox; cobertura limitada.
Veredito para publicação do aplicativo para usuários externos: BLOQUEADO.
Motivo: verificações humanas e aceite da autoridade ainda não registrados.
Exploração local: os resultados técnicos sustentam o exercício descrito;
não equivalem a aprovação pedagógica ou operacional para terceiros.
Próxima ação: executar o roteiro manual e obter revisão e aceite identificados.
Responsável por assumir o aceite: ainda não designado nominalmente.
Prazo de liberação: não definido; a falta de prazo não elimina o bloqueio.
Reabrir: mudança relevante em contrato, código, dados ou contexto de uso.
Não declarar M5 completo da capacidade com REQ-004 pendente.

Um gate bloqueado é um resultado útil: mostra precisamente o que a automação permite afirmar e qual decisão continua aberta. Após a verificação humana, produza uma revisão do registro, vinculando as novas evidências. Não altere silenciosamente a fotografia anterior para sugerir que a aprovação já existia.

Rollback preenchido e delimitado

markdown
# Plano de retorno da demonstração
Gatilho: o exercício de recuperação precisa restaurar os dados fictícios da sandbox.
Pré-condição: ler o procedimento e manter o trabalho em ambiente de estudo.
Fonte preservada: data/casos.json não é alvo dos comandos de recuperação.
Snapshot: npm run snapshot produz sandbox/recuperacao/snapshot.json.
Restore: npm run restore produz sandbox/recuperacao/atual.json.
Resultado observado em 2026-11-02: ambos concluíram com saída 0,
3 registros e SHA-256 coincidente no relatório de execução.
Confirmação adicional: o teste de recuperação verifica preservação do catálogo fonte.
Fora do alcance: código, dados de produção e reservas em memória.
Se o componente defeituoso for outro: parar, preservar evidência
e planejar um retorno específico; não chamar este script de solução universal.
Comunicação: registrar componente afetado, ação escolhida, resultado e limites.
Ensaio em ambiente de produção: não realizado e não autorizado pelo exemplo.

Handoff preenchido para o próximo ciclo

markdown
# Transferência da Oficina Caracol
Finalidade: permitir reprodução e continuação do estudo local.
Estado recebido: suíte automatizada verificada; validações humanas pendentes.
Arquitetura: catálogo JSON; regras em catalogo.mjs e operacoes.mjs;
HTTP em servidor.mjs; interface em public.
Executar: seguir README e registrar a versão local do Node.
Fontes de estado: contrato, ADR-001, EV-OC-001 e GATE-001.
Acessos: nenhum cadastro ou credencial externa necessário ao exercício.
Risco de continuidade: reiniciar o processo apaga reservas simuladas.
Retorno: consultar rollback.md e respeitar a fronteira da sandbox.
Próximo trabalho: verificar teclado e feedback, revisar com iniciantes
e apresentar os resultados à autoridade responsável pela edição.
Recebedor nominal e confirmação de reprodução: pendentes.
O registro está preenchido; o aceite humano ainda não ocorreu.

Essa última linha impede uma confusão frequente: entregar o texto de handoff é uma ação do emissor; alguém conseguir continuar o trabalho é uma observação sobre a transferência. São eventos diferentes e exigem registros diferentes.

Fontes relacionadas

Consulte os limites e as seções de apoio de cada referência.

S07 S08 S14 S15 S19
Conseguiu explicar o que aprendeu?

Tente o exercício antes de consultar a solução. Marque a aula para organizar sua leitura.

A conclusão desta leitura não equivale a certificação ou aceite de um projeto real. Teste os exemplos no escopo indicado e registre as limitações.