Docs
StandardConcepts

MvA — Methodology Verification Application

O que é um MvA — a implementação em software de um framework de metodologia.

O que é um MvA?

Um Methodology Verification Application (MvA) é o software que implementa um Methodology Verification Framework (MvF) como regras de validação executáveis. Ele recebe documentos de dMRV, os avalia contra todas as regras definidas no MvF e retorna resultados determinísticos PASSED ou FAILED com explicações.

A distinção principal: o MvF é a especificação (o que verificar), o MvA é a implementação (o código que verifica).

Metodologia (base científica) → MvF (especificação de verificação) → MvA (implementação em software)

O que um MvA faz

Um MvA processa documentos MassID por meio de seu conjunto de regras:

  1. Valida documentos da cadeia de suprimentos — Cada regra inspeciona aspectos específicos de um MassID: identidades dos atores, dados de eventos, registros de pesagem, manifestos, geolocalização e mais.
  2. Aplica regras de cálculo — Certas regras realizam cálculos como quantificação de emissões (CO2e evitado) ou medições de distância geográfica.
  3. Alimenta o sistema de auditoria — Cada avaliação de regra produz um resultado rastreável com os dados exatos que foram verificados e por que passou ou falhou.

Cada regra é uma função determinística: dado o mesmo documento de entrada e a mesma versão da regra, ela sempre produz a mesma saída. Isso torna o sistema de verificação totalmente auditável e reproduzível.

Princípios de design

O MvA é construído sobre quatro princípios que garantem a integridade da verificação automatizada:

  • Fidelidade — O MvA espelha o MvF exatamente. Cada regra no MvF tem um processador de regra correspondente no MvA, e a lógica de avaliação corresponde à especificação.
  • Rastreabilidade — Cada resultado PASSED ou FAILED é vinculado aos dados de origem específicos que foram avaliados, tornando os resultados verificáveis de forma independente.
  • Determinismo — A mesma entrada sempre produz a mesma saída. Sem aleatoriedade, sem estado externo que possa alterar resultados entre execuções.
  • Conformidade com padrões — Todos os MvAs seguem os requisitos do Carrot dMRV Standard para estrutura, testes e documentação.

Arquitetura

O MvA é implementado como um monorepo open-source implantado como funções serverless:

O código segue uma arquitetura de duas camadas:

  • Bibliotecas de regras compartilhadas — Contêm a lógica de verificação real. Processadores de regras compartilhados são reutilizados entre metodologias. Cada regra é um módulo independente com seus próprios testes.
  • Wrappers de aplicação de metodologia — Camadas finas de implantação que encapsulam bibliotecas compartilhadas como funções serverless. Cada metodologia implanta seu próprio conjunto de regras, incluindo regras específicas da metodologia.

Essa arquitetura significa que uma regra como weighing é implementada uma vez na biblioteca compartilhada e implantada em múltiplas metodologias (ex.: BOLD Recycling e BOLD Carbon (CH₄)). Regras específicas da metodologia (como prevented-emissions) ficam apenas na camada de aplicação daquela metodologia.

Regras do framework vs. regras da aplicação

O sistema de metodologias da Carrot utiliza uma arquitetura de regras em duas camadas:

  • Regras do framework definem o que deve ser verificado no nível da especificação. São os requisitos do MvF — por exemplo, "o documento deve ter um valor maior que zero" ou "um ator reciclador deve estar presente."

  • Regras da aplicação definem como a verificação é executada como código open-source. Cada regra de aplicação é uma função independente que avalia um documento MassID e retorna PASSED ou FAILED.

O mapeamento entre as duas camadas não é um-para-um. Uma única regra de aplicação pode satisfazer múltiplas regras do framework (ex.: mass-id-qualifications verifica valor, unidade, categoria e tipo do documento em uma única passagem). Inversamente, uma regra do framework pode exigir múltiplas regras de aplicação para verificação completa.

Veja as regras do framework e da aplicação para cada metodologia:

O papel do MvA Developer

MvA Developers são engenheiros que implementam e mantêm processadores de regras. O papel requer:

  • Proficiência com a linguagem de programação e ferramentas do monorepo
  • Compreensão do padrão de processador de regras
  • Capacidade de traduzir especificações do MvF em código determinístico
  • Práticas rigorosas de teste: testes unitários, testes de integração com documentos seed e testes end-to-end

Consulte o Guia do MvA Developer para o processo de implementação passo a passo.

Saiba mais sobre MvF

On this page