Skip to content

Contributing

Read AGENTS.md before changing behaviour. The key invariants are:

  • one Laravel modular monolith owns management;
  • PostgreSQL owns desired state;
  • DNS and HTTP traffic never pass through Laravel;
  • external effects are asynchronous, revisioned, bounded, and last-valid-state preserving;
  • no default per-domain process, container, timer, cache directory, or server block;
  • real non-browser runtime qualification lives under tests/e2e.

Keep changes small and production named. Do not introduce lifecycle labels such as phase numbers into production filenames or classes. Normal CRUD belongs in controllers and Eloquent; add abstractions only for real external boundaries or genuinely reusable policy.

See Documentation contributions and the Documentation audit.

CDNFoundry documentation