# Contributing Ekklesia is being built in verified, reviewable phases. Changes should preserve the dependency boundaries described in [repository-boundaries.md](docs/architecture/repository-boundaries.md). Before opening a change, run: ```bash pnpm verify ``` If Docker is available, also validate the development infrastructure: ```bash pnpm infrastructure:config ``` ## Package rules - Use strict TypeScript for production packages. - Expose supported entry points through package `exports`; do not import another package's private source paths. - Use `workspace:` ranges for internal package dependencies. - Keep modules backend-only. Module packages cannot contain React, mobile, stylesheet, or other UI source files. - Put rendering, layout, navigation, accessibility, and all other presentation concerns in a surface. - Add or update tests when changing a contract or architectural rule. - Record major architectural changes in an ADR rather than burying them in an implementation. Generated registries and schemas will be produced by later phases. Do not add a manually maintained feature-module registry.