Adding a module
The steps are the same for the base platform and for a product layer.
- Create the directory by convention:
for a service,modules/microservices/<domain>/ms-<name>for a screen,modules/surfaces/<domain>/sf-<name>for a process.modules/workflows/wf-<name> - Declare the contract in
and generate the clients withmodules/types/<domain>/. The client appears as abun run genpackage, usable from the browser, from another process on the bus, and from inside a workflow.g-<name> - Write the README with a
section and an ownership-boundary section. The first paragraph of each ends up in the registry on the site — write them for a reader, not for yourself.## Purpose - Add the module to a solution if it does not ship alone: put its short name in
and declare its dependencies.modules/solutions/solutions.json - Rebuild the docs:
at the repository root. The module shows up in the registry and the counters on the ecosystem page recount themselves.bun run build:doc
What you do not have to do: edit module lists in the site data, restate the description in the landing, or register the module anywhere else. Generation runs one way — from sources into data, never back. Anything under is overwritten by the next build.data/
What review asks of a module: it does not reach into another module's storage, does not bypass the bus with direct calls, declares only the permissions it actually uses, and does not quietly widen its area of responsibility.