Decompose oversized profiles where useful #115

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

Context

Most modules in this repository represent clear capabilities, but some profiles are large because they combine several related layers. modules/profiles/ai-desktop.nix currently owns system services, secrets, Home Manager configuration, package wrappers, MCP integration, and desktop entries.

This is cohesive as an AI desktop experience, but its internal boundaries should be reviewed rather than left to grow indefinitely.

Scope

Review oversized profiles and extract submodules only where the resulting capability is independently understandable, reusable, or testable.

Prioritise ai-desktop as the case study. Candidate boundaries may include:

  • shared AI agent or daemon integration;
  • MCP client configuration and launchers;
  • desktop-only applications and entries;
  • Home Manager user configuration;
  • secrets and service dependencies.

Use the module/profile rules established by #113 and keep the profile as the composition point for the complete experience. Coordinate the Home Manager user split with #111.

Non-goals

  • Do not split the profile mechanically by file length.
  • Do not change service choices or user-facing behaviour without a separate reason.
  • Do not introduce Dendritic or flake-parts.
  • Do not extract helpers that are only implementation details.

Acceptance criteria

  • The profile remaining responsibility is clear and documented.
  • Extracted modules each have a coherent capability and appropriate options.
  • Existing hosts retain equivalent behaviour.
  • NixOS configurations pass nix flake check.
  • Any deferred decomposition is recorded with a reason.
## Context Most modules in this repository represent clear capabilities, but some profiles are large because they combine several related layers. modules/profiles/ai-desktop.nix currently owns system services, secrets, Home Manager configuration, package wrappers, MCP integration, and desktop entries. This is cohesive as an AI desktop experience, but its internal boundaries should be reviewed rather than left to grow indefinitely. ## Scope Review oversized profiles and extract submodules only where the resulting capability is independently understandable, reusable, or testable. Prioritise ai-desktop as the case study. Candidate boundaries may include: - shared AI agent or daemon integration; - MCP client configuration and launchers; - desktop-only applications and entries; - Home Manager user configuration; - secrets and service dependencies. Use the module/profile rules established by #113 and keep the profile as the composition point for the complete experience. Coordinate the Home Manager user split with #111. ## Non-goals - Do not split the profile mechanically by file length. - Do not change service choices or user-facing behaviour without a separate reason. - Do not introduce Dendritic or flake-parts. - Do not extract helpers that are only implementation details. ## Acceptance criteria - The profile remaining responsibility is clear and documented. - Extracted modules each have a coherent capability and appropriate options. - Existing hosts retain equivalent behaviour. - NixOS configurations pass nix flake check. - Any deferred decomposition is recorded with a reason.
nimmo closed this issue 2026-07-29 11:23:48 +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#115
No description provided.