# The `build/` folder

`build/` holds only generated files. It is never edited, never committed
and never read as input, and the same source always produces the same
bytes. Anything a person reviews and keeps lives outside it, such as the
record of the public API ([The public API
record](07-http.md#the-public-api-record)) or the identity registry
([Stable identity](stable-identity.md)).

```text
build/
  manifest.json               the application's manifest (area 18)
  catalogue/
    libraries.md              every library function and constant: signature or type and value, description, callers or readers
    failures.md               every failure: code, kind, status, client fields
  report/
    database.md               every table, column and index, with the query that needs it
    queries.md                each query call: store or cache, row bound, queries per request
    permissions.md            who can do what to every entity and field, and the actions listed apart
  diagnostics/                the error catalogue
  inventory/                  routes and callables
  audit/                      failures, entities, transactions, configuration, policy
  openapi/openapi.json
  compatibility/              public failure codes
  approval/                   the behaviour review subject
  rust/                       a deployable's Rust and cargo's builds of it (jadpo build only)
  target/                     the runnable app (jadpo build only)
```

For a project, `jadpo check` writes `build/manifest.json` ([Records and
manifest](18-records-and-manifest.md)) and the catalogues
`build/catalogue/libraries.md` and `failures.md`, each with a `.json`
twin. It writes them whether or not there are errors, so what an agent
looks up is never stale. A file is rewritten only when its bytes change.
Loose files, outside any project, write nothing.

Each report is written as Markdown, which an agent can search, with a
`.json` twin for tools. The query report is specified with
[Reads and writes](reads-and-writes.md), and is kept beside the schema
report because a reviewer reads them together.

Not built yet: the reports, OpenAPI and the monitoring rules in
`build/`, which come with the pages that specify them. Among them are
the schema report ([Data](data.md)) and the permissions report ([The
permissions report](09-policy.md#the-permissions-report)).
