Skip to content

Source code

Architecture guidance

  • Read the architecture before changing package boundaries or lifecycle.
  • Keep reusable behaviors, markup, styles, locales, and transport helpers in src/atrium/. Keep domain records and sample workflows in src/showcase/.
  • Keep both template packages independently consumable through their installed publication commands. Starter must work without showcase files. Keep shared scaffolding in src/publisher/, use explicit source allowlists, and reject file/manifest conflicts before writing.
  • Keep package exports and the files allowlist in sync with moves. Resolve shared templates relative to the installed package, never a workspace-specific absolute path.
  • Keep tests and their server support in src/tests/.
  • Keep the entry HTML limited to the shared shell and router outlets. Compile each trusted route template into a lazy module with its optional controller registration. Preserve stale-result rejection, permission checks, focus, and teardown.
  • Use explicit adapter contracts. Pass cancellation signals, reject stale results, and clean up route-owned effects in destroy().
  • Keep credentials out of preference storage. UI capabilities do not replace backend authorization.
  • Keep dependency direction from consumers to the shared package. Importing showcase fixtures, or test helpers from shared runtime code is forbidden.

Author

Laurent Declercq l.declercq@agon-innovation.ch

License

Unless otherwise stated all source code is licensed under LGPL 2.1 and has the following copyright:

© 2026, Agon Partners Innovation AG, All rights reserved.

The design material and the “Agon Ātrium” trademark is the property of their authors. Reuse of them without prior consent of their respective authors is strictly prohibited.

Version

Version: 20260921