The same checks `pnpm build` runs, from the same code — the point is not a second
opinion but a place where the findings stay put. A warning printed during a build
has scrolled away by the time anyone reads it.

::devtools-panel{tab="checks"}
::

## What it checks

**Errors** are things that make a URL unreachable:

- a **collection with no pages**, whose whole prefix is a 404;
- a **folder named like a repository or version segment**, which the prefix
  shadows entirely.

**Warnings** are things that quietly degrade a page:

- **no `title` or no `description`** — the table of contents, the cards, the OG
  image and llms.txt all read them;
- a **link to a page nothing serves**, resolved exactly as `ProseA` resolves it at
  render time: under the source's own prefix first, bare second;
- a **link to an anchor that page does not have**;
- what a **generated section** could not make sense of — an artefact that was not
  there at that ref, one the type read nothing out of, an unresolvable `$ref` in
  an OpenAPI document, a changelog heading that reads like a release but does not
  parse as one.

::callout{type="tip" title="Sections used to report elsewhere"}
An artefact is parsed while the config is loading, so what a type could not read
was printed long before a dev server had finished starting — and gone by the
time anyone looked. Those findings come through this panel now, which is the
whole reason it exists. See
[What the build checks](/concepts/build-checks).
::

## Notes

Findings name their file in quotes, and the panel turns the first one into a link
that opens your editor there.

The links are checked as **internal only**. An external URL is not this build's to
verify, and checking it would put the network in the build.