1.6 KiB
Contributing
Ekklesia is being built in verified, reviewable phases. Changes should preserve the dependency boundaries described in repository-boundaries.md.
Before opening a change, run:
pnpm verify
Migration-runner changes also require the disposable live PostgreSQL suite:
pnpm test:migrations:integration
See the testing guide for the distinction between unit and live evidence and for credential-safe troubleshooting.
When adding or changing a module manifest, also run pnpm modules:validate directly for focused,
path-aware discovery errors. It is included in pnpm verify.
If Docker is available, also validate the development infrastructure:
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.
Runtime registries and aggregate schemas will be produced by later phases. Do not add a manually
maintained feature-module registry; discovery starts from validated ekklesia.module.json files.