Clarify module, profile, and host boundaries #113

Closed
opened 2026-07-28 08:35:02 +01:00 by nimmo · 0 comments
Owner

Context

This repository already has a useful layered structure, but the boundaries between reusable modules, profiles, host composition, and Home Manager configuration are not always explicit.

Scope

Document and clarify the intended architecture:

  • modules provide one coherent capability or policy;
  • profiles compose related capabilities into a usable environment;
  • hosts select modules and profiles, then provide hardware facts and host-specific values;
  • Home Manager modules own user-specific configuration;
  • helper functions and packages remain implementation details unless they need user-facing options.

Review the current boundary cases and record which are intentional, which should be renamed or narrowed, and which should be deferred. Coordinate the Home Manager split with #111.

Non-goals

  • Do not introduce the Dendritic pattern or flake-parts.
  • Do not reorganise every file for aesthetic consistency.
  • Do not split cohesive service modules merely because they contain multiple packages.
  • Do not move host facts into abstract shared modules.

Acceptance criteria

  • The intended architecture and decision rules are documented in the repository.
  • The main current boundary cases are reviewed and either corrected or explicitly deferred.
  • Any resulting refactor is small, reviewable, and passes nix flake check.
  • #111 follows the documented module, profile, and user boundaries.
## Context This repository already has a useful layered structure, but the boundaries between reusable modules, profiles, host composition, and Home Manager configuration are not always explicit. ## Scope Document and clarify the intended architecture: - modules provide one coherent capability or policy; - profiles compose related capabilities into a usable environment; - hosts select modules and profiles, then provide hardware facts and host-specific values; - Home Manager modules own user-specific configuration; - helper functions and packages remain implementation details unless they need user-facing options. Review the current boundary cases and record which are intentional, which should be renamed or narrowed, and which should be deferred. Coordinate the Home Manager split with #111. ## Non-goals - Do not introduce the Dendritic pattern or flake-parts. - Do not reorganise every file for aesthetic consistency. - Do not split cohesive service modules merely because they contain multiple packages. - Do not move host facts into abstract shared modules. ## Acceptance criteria - The intended architecture and decision rules are documented in the repository. - The main current boundary cases are reviewed and either corrected or explicitly deferred. - Any resulting refactor is small, reviewable, and passes nix flake check. - #111 follows the documented module, profile, and user boundaries.
nimmo closed this issue 2026-07-28 10:06:22 +01:00
Sign in to join this conversation.
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nimmo/nixos-config#113
No description provided.