> ## Documentation Index
> Fetch the complete documentation index at: https://zeropath.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Cobertura e Avisos

> Quão completamente o ZeroPath escaneou sua cadeia de suprimentos, e como eliminar os pontos cegos

As descobertas de dependências são apenas tão completas quanto o grafo contra o
qual são comparadas. Se um manifesto não pode ser totalmente resolvido,
geralmente por causa de um lockfile ausente, seus pacotes transitivos permanecem
invisíveis e uma vulnerabilidade pode se esconder ali. O ZeroPath mede isso
diretamente e apresenta o resultado como **cobertura**, tornando as lacunas de
resolução visíveis e rastreáveis.

<h2 id="resolution-coverage">
  Cobertura de resolução
</h2>

Cada scan reporta, por ecossistema, quantos manifestos **descobriu** versus
quantos **resolveu** completamente. A página Supply Chain consolida isso em:

* **Scan coverage** — a fração geral de manifestos descobertos que foram
  resolvidos, em todos os repositórios medidos.
* **Coverage by ecosystem** — a fração de manifestos resolvidos por ecossistema,
  para que você identifique um ecossistema uniformemente fraco (por exemplo,
  "nenhum lockfile do Gradle em lugar algum").
* **Coverage by repository** — os repositórios menos cobertos primeiro.
* **Coverage blind spots** — avisos ativos, divididos por severidade (blocker /
  warning / info).

<Note>
  Repositórios cujo scan mais recente é anterior à medição de cobertura são
  omitidos das consolidações, de modo que um repositório não medido nunca é exibido
  como totalmente coberto.
</Note>

<h3 id="resolution-fidelity">
  Fidelidade de resolução
</h3>

A cobertura também reporta a **fidelidade** que o ZeroPath alcançou por
ecossistema, o tipo de resolução por trás dos números:

* **Deterministic** — resolvido a partir de um lockfile commitado (ou de um
  `requirements.txt` totalmente fixado com `==`, que é tratado como equivalente
  a um lockfile), de modo que o inventário reflete exatamente as versões fixadas
  às quais seu build está travado.
* **Build-less** — grafo transitivo completo resolvido diretamente do manifesto,
  sem necessidade de lockfile. Veja
  [Ecossistemas suportados](/pt/sca/ecosystems) para a matriz por ecossistema.
* **Degraded (direct-only)** — apenas as suas dependências diretas foram
  resolvidas, porque um lockfile obrigatório está ausente. Descobertas em
  dependências diretas ainda aparecem; apenas a cauda transitiva está ausente.
  Este é o estado a corrigir.

O painel **Resolution fidelity by ecosystem** agrupa os ecossistemas degradados
em um resumo expansível. Cada linha de ecossistema mostra seu nível de cobertura,
o número de manifestos afetados e um chevron para expandir o detalhamento.
Expandir uma linha lista os arquivos de manifesto afetados agrupados por tipo de
aviso, para que você veja exatamente quais manifestos precisam de atenção. Para
ecossistemas com muitos manifestos afetados, o painel exibe uma prévia dos
primeiros arquivos e aponta para a tabela completa de avisos abaixo para o
restante.

<h2 id="coverage-warnings">
  Avisos de cobertura
</h2>

Manifestos que não puderam ser totalmente analisados são sinalizados com um aviso
específico, para que você veja exatamente qual parte do grafo pode estar
incompleta e por quê. Você pode clicar em qualquer linha de aviso para expandi-la
e ver, inline, a mensagem completa do aviso, o tipo, o repositório e o caminho do
arquivo. Filtre a lista de avisos por severidade, tipo ou repositório, e
**exporte um relatório de cobertura** (CSV) para acompanhamento.

| Aviso                                             | O que significa                                                                                                                                                                                               | O que fazer                                                                                                                                           |
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Transitive dependencies unresolved**            | As dependências diretas foram resolvidas, mas seus pacotes transitivos não puderam ser — quase sempre um lockfile ausente. Descobertas diretas ainda aparecem.                                                | Faça commit do lockfile do ecossistema (veja abaixo).                                                                                                 |
| **Missing lockfile**                              | Um ecossistema que exige um lockfile commitado foi encontrado sem um — mais frequentemente Ruby ou PHP, embora manifestos de JavaScript e Go também possam gerá-lo quando escaneados sem seu lockfile.        | Faça commit do lockfile do ecossistema — `Gemfile.lock`, `composer.lock`, `package-lock.json`/`yarn.lock`/`pnpm-lock.yaml` ou `go.sum` (veja abaixo). |
| **Dependency resolution failed**                  | Um manifesto não pôde ser resolvido de forma alguma (por exemplo, um POM do Maven cujo pai está inacessível). Descobertas em dependências diretas ainda são preservadas; apenas a cauda transitiva é afetada. | Corrija o manifesto/a referência ao pai, faça commit de um lockfile, ou reescaneie se foi transitório.                                                |
| **Dependency resolution failed (infrastructure)** | Um manifesto não pôde ser resolvido por causa de um problema transitório de infraestrutura durante o scan — não é um problema no seu projeto. Descobertas em dependências diretas são preservadas.            | Nenhuma ação necessária; o problema costuma ser transitório e o próximo scan verificará novamente.                                                    |
| **Zero dependencies anomaly**                     | Um manifesto resolveu zero pacotes apesar de haver código substancial por perto — uma provável falha silenciosa de resolução. (Apenas scans completos.)                                                       | Verifique se o manifesto é válido e está commitado; reescaneie.                                                                                       |
| **Vulnerability lookup failed**                   | Os dados de advisories de vulnerabilidade não puderam ser alcançados após novas tentativas, então o status de um pacote é desconhecido para este scan.                                                        | Geralmente transitório; o próximo scan verifica novamente.                                                                                            |
| **Exploit intelligence unavailable**              | Os feeds de inteligência de exploits KEV e EPSS estavam indisponíveis no momento do scan.                                                                                                                     | Geralmente transitório; afeta apenas o sinal de priorização.                                                                                          |
| **License lookup failed**                         | O enriquecimento de licenças não pôde ser alcançado após novas tentativas.                                                                                                                                    | Geralmente transitório; o próximo scan enriquece novamente.                                                                                           |

<Info>
  Os três primeiros avisos dizem respeito à **resolução de dependências** e são
  resolvidos quando você faz commit de um lockfile ou corrige o manifesto. A
  variante de **infraestrutura** da falha de resolução de dependências não exige
  nenhuma ação sua — é um problema transitório do lado da plataforma que se
  resolve no próximo scan. Uma **anomalia de zero dependências** é um sinal
  consultivo para reverificar e reescanear, não necessariamente uma correção de
  lockfile. Os três últimos são avisos **transitórios de fonte de dados** que
  geralmente se resolvem sozinhos no próximo scan.
</Info>

<h3 id="why-findings-don-t-vanish-on-a-failed-scan">
  Por que as descobertas não desaparecem em um scan com falha
</h3>

Quando um manifesto não pode ser resolvido durante um scan, o ZeroPath **carrega
adiante** as descobertas de SCA existentes para ele em vez de marcá-las como
resolvidas. Isso impede que uma vulnerabilidade confirmada desapareça
silenciosamente por causa de uma falha transitória de resolução. Uma descoberta
só é resolvida automaticamente quando seu manifesto foi analisado com sucesso e
a vulnerabilidade realmente desapareceu.

<h2 id="generate-lockfiles-before-scanning">
  Gere lockfiles antes de escanear
</h2>

Resolver um aviso **Transitive dependencies unresolved** ou **Missing lockfile**
quase sempre significa fazer commit do lockfile daquele ecossistema. Os comandos
abaixo produzem o arquivo que o ZeroPath procura:

```bash theme={null}
# Go — commit go.sum
go mod tidy

# Python (Pipenv / Poetry / uv) — commit a lockfile, or fully pin requirements.txt
pipenv lock          # Pipfile.lock
poetry lock          # poetry.lock
uv lock              # uv.lock

# Gradle — commit gradle.lockfile (Gradle dependency locking)
./gradlew dependencies --write-locks

# SBT — commit build.sbt.lock (sbt-dependency-lock plugin)
sbt dependencyLock

# NuGet — commit packages.lock.json (NuGet 4.9+)
dotnet restore --use-lock-file --force-evaluate

# Cargo — commit Cargo.lock
cargo generate-lockfile

# Ruby — commit Gemfile.lock
bundle lock

# PHP — commit composer.lock
composer install

# Elixir — commit mix.lock
mix deps.get

# Dart / Flutter — commit pubspec.lock
flutter pub get      # or: dart pub get

# Swift — commit Package.resolved
swift package resolve
```

Para **npm/Yarn/pnpm**, **Maven** e um **`requirements.txt`** totalmente fixado
com `==` (que o ZeroPath trata como equivalente a um lockfile para resolução
determinística), nenhum lockfile é necessário para cobertura completa — veja
[Ecossistemas suportados](/pt/sca/ecosystems).

<Tip>
  A plataforma de Agentes do ZeroPath inclui um playbook **Coverage Autopilot** que
  lê os avisos de cobertura registrados após cada scan, publica orientações por
  manifesto e pode abrir pull requests que geram lockfiles.
</Tip>

<h2 id="operational-notes">
  Notas operacionais
</h2>

<AccordionGroup>
  <Accordion title="Saída determinística">
    Inventários, alertas e SBOMs são gerados a partir do mesmo conjunto de dados
    ordenado, de modo que diffs e revisões permanecem estáveis de um scan para o
    outro.
  </Accordion>

  <Accordion title="Snapshots históricos">
    Cada scan captura um inventário pontual no tempo, permitindo diffs entre
    scans, [exportações de SBOM](/pt/sca/sbom-exports) e investigações
    retroativas.
  </Accordion>

  <Accordion title="Datação de exposição">
    O SCA captura o commit git mais antigo que introduziu uma entrada de
    manifesto afetada, para que você veja há quanto tempo uma vulnerabilidade
    vive no seu histórico.
  </Accordion>

  <Accordion title="Recuperação automática">
    Scans são retomados após interrupções, falhas repetidas são limitadas, jobs
    obsoletos são limpos e inventários concluídos são reutilizados sempre que
    possível.
  </Accordion>
</AccordionGroup>
