# Diagnosis — 2026-09-18 The gap was mechanical for most of the catalogue and structural for a few. **The mechanical part (fixed).** 44 of 70 modules now carry a `build` section and a Dockerfile mirroring the eight that already had one: two named bases (build and runtime), the module's own source compiled against the sdk in the base, and every serve-time entrypoint named in the runtime image so tools serve, events flow, and a provider's provisioner reconciles in the same process (the convention hq issue 061 settled — postgres, gitea and lavinmq were retrofitted to it from running their provisioner as a separate `args` command). Proven end to end: redis, keycloak, mongodb, mosquitto and openai-consumer build through the mesh's own builder from their own directory; the built-store-cross-node bed builds and runs the retrofitted lavinmq and postgres. **The structural part (deferred, each with an owner).** - Three modules need an artifact the mesh build environment cannot fetch — an npm package (model-usage: `pg`; anthropic-manager: `tweetnacl`) or a binary from a public image (minio: `mc`). The build's npm and container runtime reach the mesh's own registry, not the public one; apt works, npm and image pulls do not. This is its own question — [issue 064](../064-a-mesh-build-cannot-fetch-a-modules-external-dependencies/00-report.md). - route-proxy's build context is the mesh-controller repository, not its own module directory (it ships the packaging of a proxy whose canonical source lives with the contract). The build section names a Dockerfile relative to the module; a cross-repository context is a shape it cannot yet express. Deferred pending a design decision on cross-repo build inputs. The remaining modules are exempt rather than unbuilt: the foundation trio (builder, mesh-controller, distribution — built by the foundation's own path, and distribution cannot build through the store it provides, ADR 0072/issue 029), and the upstream-image-only modules that run a stock image and carry no code of their own. **Located in:** mesh-catalog (the manifests and Dockerfiles), with the convention enforced by mesh-controller's builder. Resolved for the mechanical majority; the two structural remainders are tracked as issue 064 and the route-proxy cross-repo deferral.