bd daemon sync: 2026-01-10 13:11:11

This commit is contained in:
2026-01-10 13:11:11 -08:00
parent 5b492046e6
commit 602d3067f0

View File

@@ -18,7 +18,7 @@
{"id":"nixos-configs-is4","title":"Extend nvidia role to include driver configuration","description":"From System Roles evaluation: The current roles.nvidia only handles packages, not driver configuration. The hardware.nvidia block is duplicated in zix790prors and wixos. Extend the role to include driver config with options for open driver, power management, etc.","notes":"PR: https://git.johnogle.info/johno/nixos-configs/pulls/9","status":"in_review","priority":2,"issue_type":"task","created_at":"2026-01-10T10:31:24.157222208-08:00","created_by":"johno","updated_at":"2026-01-10T12:50:57.214398872-08:00"} {"id":"nixos-configs-is4","title":"Extend nvidia role to include driver configuration","description":"From System Roles evaluation: The current roles.nvidia only handles packages, not driver configuration. The hardware.nvidia block is duplicated in zix790prors and wixos. Extend the role to include driver config with options for open driver, power management, etc.","notes":"PR: https://git.johnogle.info/johno/nixos-configs/pulls/9","status":"in_review","priority":2,"issue_type":"task","created_at":"2026-01-10T10:31:24.157222208-08:00","created_by":"johno","updated_at":"2026-01-10T12:50:57.214398872-08:00"}
{"id":"nixos-configs-ny8","title":"Evaluate Flake Structure","description":"# Investigation: Flake Structure\n\n## Questions to Answer\n- Is flake.nix well-organized?\n- Are inputs minimal and up-to-date?\n- Is module composition clear?\n\n## Key Files\n- `flake.nix` (9.4KB) - Primary target\n\n## Approach\n1. Use `/humanlayer:research_codebase_nt` to analyze flake.nix organization\n2. Identify unnecessary inputs or outdated patterns\n3. Use `/humanlayer:create_plan_nt` to plan improvements if needed","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T10:08:22.006574928-08:00","created_by":"johno","updated_at":"2026-01-10T10:11:04.339971068-08:00","closed_at":"2026-01-10T10:11:04.339971068-08:00","close_reason":"## Flake Structure Evaluation Summary\n\n### Overall Assessment: Well-Organized\n\nThe flake.nix is reasonably well-organized for a personal NixOS configuration managing multiple machines across different platforms (NixOS, Darwin, Steam Deck).\n\n---\n\n### Inputs Analysis (11 inputs)\n\n**Essential Inputs (correctly configured):**\n- `nixpkgs` (25.11 stable) - Primary nixpkgs\n- `nixpkgs-unstable` - For bleeding-edge packages\n- `home-manager` / `home-manager-unstable` - Properly follows respective nixpkgs\n- `nix-darwin` - For macOS support, follows nixpkgs\n- `nixos-wsl` - For WSL support\n\n**Specialized Inputs (justified):**\n- `plasma-manager` / `plasma-manager-unstable` - KDE configuration\n- `jovian` - Steam Deck support (follows nixpkgs-unstable)\n- `beads` - Task management tooling\n\n**Custom/Private Inputs:**\n- `google-cookie-retrieval` - Personal tool from git.johnogle.info\n\n**Note:** All inputs properly use `follows` for nixpkgs deduplication - this is a best practice.\n\n---\n\n### Module Composition\n\n**Good Patterns:**\n1. **Role-based architecture** - Both system (`roles/`) and home-manager (`home/roles/`) use a role pattern with `mkEnableOption`\n2. **Machine separation** - Each machine has its own `configuration.nix` under `machines/\u003cname\u003e/`\n3. **Stable/Unstable separation** - `nixosModules` vs `nixosModulesUnstable` for different base systems\n4. **Platform separation** - `darwinModules` for macOS-specific configuration\n5. **Overlay pattern** - Clean overlay providing `pkgs.unstable` and `pkgs.custom`\n\n**Machine Coverage:**\n- 7 NixOS systems: nix-book, boxy, wixos, zix790prors, live-usb, nix-deck, john-endesktop\n- 1 Darwin system: johno-macbookpro\n\n---\n\n### Observations\n\n**Strengths:**\n1. Consistent structure across all machine definitions\n2. Home-manager properly integrated with `useGlobalPkgs = true`\n3. Custom packages accessible via `pkgs.custom`\n4. Flake apps for common maintenance tasks (update-doomemacs, upgrade, etc.)\n5. Compatibility shim for bitwarden-\u003ebitwarden-desktop rename\n\n**Minor Issues:**\n1. `wixos` and `zix790prors` include `inputs.home-manager.nixosModules.home-manager` twice (already in nixosModules)\n2. Description is generic (\"A very basic flake\") - could be more descriptive\n3. Some code duplication between nixosModules and nixosModulesUnstable overlays\n\n**Not Issues:**\n- Duplicate plasma-manager inputs (stable/unstable) are intentional for different nixpkgs bases\n\n---\n\n### Recommendations (Optional)\n\n1. **Low priority:** Remove duplicate home-manager imports in wixos/zix790prors\n2. **Low priority:** Update flake description to be more meaningful\n3. **Low priority:** Could extract common overlay logic to reduce duplication\n\nNo blocking issues found. The flake is well-structured for its purpose."} {"id":"nixos-configs-ny8","title":"Evaluate Flake Structure","description":"# Investigation: Flake Structure\n\n## Questions to Answer\n- Is flake.nix well-organized?\n- Are inputs minimal and up-to-date?\n- Is module composition clear?\n\n## Key Files\n- `flake.nix` (9.4KB) - Primary target\n\n## Approach\n1. Use `/humanlayer:research_codebase_nt` to analyze flake.nix organization\n2. Identify unnecessary inputs or outdated patterns\n3. Use `/humanlayer:create_plan_nt` to plan improvements if needed","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T10:08:22.006574928-08:00","created_by":"johno","updated_at":"2026-01-10T10:11:04.339971068-08:00","closed_at":"2026-01-10T10:11:04.339971068-08:00","close_reason":"## Flake Structure Evaluation Summary\n\n### Overall Assessment: Well-Organized\n\nThe flake.nix is reasonably well-organized for a personal NixOS configuration managing multiple machines across different platforms (NixOS, Darwin, Steam Deck).\n\n---\n\n### Inputs Analysis (11 inputs)\n\n**Essential Inputs (correctly configured):**\n- `nixpkgs` (25.11 stable) - Primary nixpkgs\n- `nixpkgs-unstable` - For bleeding-edge packages\n- `home-manager` / `home-manager-unstable` - Properly follows respective nixpkgs\n- `nix-darwin` - For macOS support, follows nixpkgs\n- `nixos-wsl` - For WSL support\n\n**Specialized Inputs (justified):**\n- `plasma-manager` / `plasma-manager-unstable` - KDE configuration\n- `jovian` - Steam Deck support (follows nixpkgs-unstable)\n- `beads` - Task management tooling\n\n**Custom/Private Inputs:**\n- `google-cookie-retrieval` - Personal tool from git.johnogle.info\n\n**Note:** All inputs properly use `follows` for nixpkgs deduplication - this is a best practice.\n\n---\n\n### Module Composition\n\n**Good Patterns:**\n1. **Role-based architecture** - Both system (`roles/`) and home-manager (`home/roles/`) use a role pattern with `mkEnableOption`\n2. **Machine separation** - Each machine has its own `configuration.nix` under `machines/\u003cname\u003e/`\n3. **Stable/Unstable separation** - `nixosModules` vs `nixosModulesUnstable` for different base systems\n4. **Platform separation** - `darwinModules` for macOS-specific configuration\n5. **Overlay pattern** - Clean overlay providing `pkgs.unstable` and `pkgs.custom`\n\n**Machine Coverage:**\n- 7 NixOS systems: nix-book, boxy, wixos, zix790prors, live-usb, nix-deck, john-endesktop\n- 1 Darwin system: johno-macbookpro\n\n---\n\n### Observations\n\n**Strengths:**\n1. Consistent structure across all machine definitions\n2. Home-manager properly integrated with `useGlobalPkgs = true`\n3. Custom packages accessible via `pkgs.custom`\n4. Flake apps for common maintenance tasks (update-doomemacs, upgrade, etc.)\n5. Compatibility shim for bitwarden-\u003ebitwarden-desktop rename\n\n**Minor Issues:**\n1. `wixos` and `zix790prors` include `inputs.home-manager.nixosModules.home-manager` twice (already in nixosModules)\n2. Description is generic (\"A very basic flake\") - could be more descriptive\n3. Some code duplication between nixosModules and nixosModulesUnstable overlays\n\n**Not Issues:**\n- Duplicate plasma-manager inputs (stable/unstable) are intentional for different nixpkgs bases\n\n---\n\n### Recommendations (Optional)\n\n1. **Low priority:** Remove duplicate home-manager imports in wixos/zix790prors\n2. **Low priority:** Update flake description to be more meaningful\n3. **Low priority:** Could extract common overlay logic to reduce duplication\n\nNo blocking issues found. The flake is well-structured for its purpose."}
{"id":"nixos-configs-pbk","title":"Evaluate Machine Configs","description":"# Investigation: Machine Configs\n\n## Questions to Answer\n- Are machine configs DRY (Don't Repeat Yourself)?\n- Are shared patterns extracted to roles?\n- Are hardware abstractions clean?\n\n## Key Files\n- `machines/*/configuration.nix` - Per-machine patterns\n- `machines/*/hardware-configuration.nix` - Hardware specifics\n\n## Approach\n1. Use `/humanlayer:research_codebase_nt` to analyze machine config patterns\n2. Identify repeated config across machines\n3. Use `/humanlayer:create_plan_nt` to plan extraction of shared patterns","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T10:08:24.907956263-08:00","created_by":"johno","updated_at":"2026-01-10T10:11:48.293696883-08:00","closed_at":"2026-01-10T10:11:48.293696883-08:00","close_reason":"## Machine Configuration Analysis Complete\n\n### Summary\nAnalyzed 8 machine configurations across different platform types:\n- **NixOS Desktop/Laptop**: nix-book, zix790prors, boxy, nix-deck, wixos\n- **NixOS Server**: john-endesktop (ZFS/NFS)\n- **NixOS Live USB**: live-usb\n- **Darwin/macOS**: johno-macbookpro\n\n### DRY Assessment: GOOD\nThe configuration is already well-factored with an extensive roles system covering:\n- `audio`, `bluetooth`, `btrfs`, `desktop`, `kodi`, `nfs-mounts`, `nvidia`, `printing`, `remote-build`, `spotifyd`, `users`, `virtualisation`\n- Desktop sub-roles: `x11`, `wayland`, `kde`, `sddm`, `gaming`, `steamos`\n\nMachine configs are concise (40-115 lines) and focus on machine-specific settings only.\n\n### DRY Violations Identified\n\n**Minor (Low Priority)**:\n1. **Boot loader** - `boot.loader.systemd-boot.enable = true` repeated in 5 machines. Could be a role option, but these are one-liners and machine-specific.\n\n2. **NetworkManager** - `networking.networkmanager.enable = true` in 4 machines. Could be part of desktop role default.\n\n3. **NVIDIA config duplication** - `hardware.nvidia` block duplicated in `zix790prors` and `wixos` with different values. The existing `roles.nvidia` only handles packages, not driver config.\n\n4. **Graphics enable** - `hardware.graphics.enable = true` in 2 machines with manual `enable32Bit`. Could be part of gaming role.\n\n### Hardware Configuration Assessment: CLEAN\nHardware configs properly use `nixos-generate-config` patterns. Notable improvements:\n- `nix-book` and `zix790prors` use the new `roles.btrfs` abstraction for filesystem management with deduplication and scrubbing\n- `nix-deck` uses Jovian modules for Steam Deck hardware\n\n### Recommendations\n\n1. **Extend nvidia role** - Move `hardware.nvidia` and `services.xserver.videoDrivers` config into `roles.nvidia` with options for open driver, power management, etc.\n\n2. **Add AMD GPU role** - Create `roles.amdgpu` for machines like boxy with AMD graphics config.\n\n3. **Consider boot role** - Could add `roles.boot` with common systemd-boot config, but benefit is marginal.\n\n4. **Network role optional** - Could add `roles.network` but current per-machine network config is appropriate for flexibility.\n\n5. **No action needed** - The current structure is already well-organized. The identified duplications are minimal and don't justify immediate refactoring.\n\n### Architecture Quality: HIGH\n- Clean separation: machine-specific vs shared roles\n- Roles are composable with sensible options\n- Hardware configs are properly isolated\n- Flake structure is well-organized with stable/unstable variants\n- Home-manager integration is consistent across machines"} {"id":"nixos-configs-pbk","title":"Evaluate Machine Configs","description":"# Investigation: Machine Configs\n\n## Questions to Answer\n- Are machine configs DRY (Don't Repeat Yourself)?\n- Are shared patterns extracted to roles?\n- Are hardware abstractions clean?\n\n## Key Files\n- `machines/*/configuration.nix` - Per-machine patterns\n- `machines/*/hardware-configuration.nix` - Hardware specifics\n\n## Approach\n1. Use `/humanlayer:research_codebase_nt` to analyze machine config patterns\n2. Identify repeated config across machines\n3. Use `/humanlayer:create_plan_nt` to plan extraction of shared patterns","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T10:08:24.907956263-08:00","created_by":"johno","updated_at":"2026-01-10T10:11:48.293696883-08:00","closed_at":"2026-01-10T10:11:48.293696883-08:00","close_reason":"## Machine Configuration Analysis Complete\n\n### Summary\nAnalyzed 8 machine configurations across different platform types:\n- **NixOS Desktop/Laptop**: nix-book, zix790prors, boxy, nix-deck, wixos\n- **NixOS Server**: john-endesktop (ZFS/NFS)\n- **NixOS Live USB**: live-usb\n- **Darwin/macOS**: johno-macbookpro\n\n### DRY Assessment: GOOD\nThe configuration is already well-factored with an extensive roles system covering:\n- `audio`, `bluetooth`, `btrfs`, `desktop`, `kodi`, `nfs-mounts`, `nvidia`, `printing`, `remote-build`, `spotifyd`, `users`, `virtualisation`\n- Desktop sub-roles: `x11`, `wayland`, `kde`, `sddm`, `gaming`, `steamos`\n\nMachine configs are concise (40-115 lines) and focus on machine-specific settings only.\n\n### DRY Violations Identified\n\n**Minor (Low Priority)**:\n1. **Boot loader** - `boot.loader.systemd-boot.enable = true` repeated in 5 machines. Could be a role option, but these are one-liners and machine-specific.\n\n2. **NetworkManager** - `networking.networkmanager.enable = true` in 4 machines. Could be part of desktop role default.\n\n3. **NVIDIA config duplication** - `hardware.nvidia` block duplicated in `zix790prors` and `wixos` with different values. The existing `roles.nvidia` only handles packages, not driver config.\n\n4. **Graphics enable** - `hardware.graphics.enable = true` in 2 machines with manual `enable32Bit`. Could be part of gaming role.\n\n### Hardware Configuration Assessment: CLEAN\nHardware configs properly use `nixos-generate-config` patterns. Notable improvements:\n- `nix-book` and `zix790prors` use the new `roles.btrfs` abstraction for filesystem management with deduplication and scrubbing\n- `nix-deck` uses Jovian modules for Steam Deck hardware\n\n### Recommendations\n\n1. **Extend nvidia role** - Move `hardware.nvidia` and `services.xserver.videoDrivers` config into `roles.nvidia` with options for open driver, power management, etc.\n\n2. **Add AMD GPU role** - Create `roles.amdgpu` for machines like boxy with AMD graphics config.\n\n3. **Consider boot role** - Could add `roles.boot` with common systemd-boot config, but benefit is marginal.\n\n4. **Network role optional** - Could add `roles.network` but current per-machine network config is appropriate for flexibility.\n\n5. **No action needed** - The current structure is already well-organized. The identified duplications are minimal and don't justify immediate refactoring.\n\n### Architecture Quality: HIGH\n- Clean separation: machine-specific vs shared roles\n- Roles are composable with sensible options\n- Hardware configs are properly isolated\n- Flake structure is well-organized with stable/unstable variants\n- Home-manager integration is consistent across machines"}
{"id":"nixos-configs-pea","title":"Consider removing unused vulkan-hdr-layer package","description":"From Custom Packages evaluation: vulkan-hdr-layer in packages/ appears to be unused anywhere in the configuration. Decide whether to remove it or document its intended use.","status":"open","priority":4,"issue_type":"task","created_at":"2026-01-10T10:31:26.59180827-08:00","created_by":"johno","updated_at":"2026-01-10T10:31:26.59180827-08:00"} {"id":"nixos-configs-pea","title":"Consider removing unused vulkan-hdr-layer package","description":"From Custom Packages evaluation: vulkan-hdr-layer in packages/ appears to be unused anywhere in the configuration. Decide whether to remove it or document its intended use.","status":"in_review","priority":4,"issue_type":"task","created_at":"2026-01-10T10:31:26.59180827-08:00","created_by":"johno","updated_at":"2026-01-10T13:11:10.957563278-08:00"}
{"id":"nixos-configs-rrb","title":"Evaluate Cross-Platform Patterns","description":"# Investigation: Cross-Platform Patterns\n\n## Questions to Answer\n- Are Darwin/WSL/Steam Deck patterns consistent?\n- Is code reuse maximized across platforms?\n- Are platform-specific concerns properly isolated?\n\n## Key Files\n- Darwin machine configs\n- WSL machine configs\n- Steam Deck configs\n- Platform-conditional role patterns\n\n## Approach\n1. Use `/humanlayer:research_codebase_nt` to analyze cross-platform patterns\n2. Identify platform-specific vs shared code\n3. Use `/humanlayer:create_plan_nt` to plan better code sharing","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T10:08:26.316991479-08:00","created_by":"johno","updated_at":"2026-01-10T10:11:52.982340314-08:00","closed_at":"2026-01-10T10:11:52.982340314-08:00","close_reason":"## Cross-Platform Pattern Evaluation\n\n### Platform Overview\n\nThe repository supports **4 distinct platforms**:\n1. **NixOS** (primary): 6 machines (zix790prors, nix-book, boxy, wixos, nix-deck, john-endesktop)\n2. **Darwin/macOS**: 1 machine (johno-macbookpro/blkfv4yf49kt7)\n3. **WSL (NixOS-WSL)**: 1 machine (wixos)\n4. **Steam Deck**: 1 machine (nix-deck, using Jovian-NixOS)\n\n### Architecture Analysis\n\n#### Are Darwin/WSL/Steam Deck Patterns Consistent?\n\n**MIXED**: The patterns are partially consistent but have notable differences:\n\n**Consistent patterns:**\n- All platforms use home-manager for user configuration\n- All home configs import `./roles` (shared) + platform-specific base role\n- Use of `home.roles` option system across all platforms\n- Common `home.stateVersion = \"24.05\"` across all configs\n\n**Inconsistent patterns:**\n- WSL config embeds NVIDIA/graphics config directly rather than using a role\n- Steam Deck uses `nixosModulesUnstable` (different module set) vs stable for others\n- Darwin uses completely separate `darwinModules` with different role structure\n\n#### Is Code Reuse Maximized?\n\n**PARTIALLY - Rating: 7/10**\n\n**Good reuse:**\n- Home roles are well-factored - most roles work cross-platform\n- `base` role uses `pkgs.stdenv.isLinux` for conditional behavior\n- `emacs` role uses `pkgs.stdenv.isDarwin` to select macport vs standard emacs\n- `aerospace` role properly guards Darwin-only features with assertion\n- Shared wallpaper config across i3, sway, plasma-manager, sketchybar\n\n**Duplication found:**\n1. **roles/default.nix vs roles/darwin.nix**: ~50% duplicated code\n - Both define: time.timeZone, environment.systemPackages, nix.* settings\n - Darwin lacks: i18n settings, xserver.xkb, openssh, emergency mode config\n \n2. **Flake module lists**: nixosModules/nixosModulesUnstable/darwinModules have overlapping overlay configs\n\n3. **Home paths**: Darwin uses `/Users/johno` vs Linux `/home/johno` - handled correctly with mkForce\n\n#### Are Platform-Specific Concerns Properly Isolated?\n\n**GOOD - Rating: 8/10**\n\n**Well isolated:**\n- `home/roles/base-darwin` imports aerospace (Darwin-only)\n- `home/roles/base-linux` imports plasma-manager, i3+sway (Linux-only)\n- `aerospace` role has explicit Darwin assertion\n- System roles (audio, bluetooth, desktop, etc.) are NixOS-only in roles/default.nix\n- Steam Deck config imports `roles/desktop/steamos.nix` for Jovian integration\n\n**Could improve:**\n- WSL-specific config inline in machine config rather than a `wsl` role\n- NVIDIA config duplicated in wixos vs using roles.nvidia\n\n### Key Findings\n\n#### Cross-Platform Role Structure\n```\nhome/roles/\n default.nix -- Shared roles (imported by all)\n base-darwin/ -- Darwin-specific (aerospace)\n base-linux/ -- Linux-specific (plasma-manager, i3+sway)\n aerospace/ -- Darwin-only with assertion\n plasma-manager/ -- Linux-only (imported via base-linux)\n i3+sway/ -- Linux-only (imported via base-linux)\n [other roles] -- Cross-platform\n```\n\n#### Platform Conditionals Found (4 instances)\n1. `packages/claude-code/default.nix:42` - autoPatchelfHook for Linux\n2. `home/roles/emacs/default.nix:23` - emacs-macport vs emacs\n3. `home/roles/base/default.nix:34` - randomizedDelaySec only on Linux\n4. `home/roles/aerospace/default.nix:116` - Darwin-only assertion\n\n### Recommendations\n\n1. **Extract shared system config**: Create `roles/common.nix` for settings shared between NixOS and Darwin (timezone, nix settings, base packages)\n\n2. **Create WSL role**: Move wixos NVIDIA/graphics config to `roles/wsl.nix` for reusability\n\n3. **Consolidate flake overlays**: The overlay configuration is repeated 3x - could extract to a function\n\n4. **Document platform matrix**: Add comments in flake.nix explaining which modules support which platforms\n\n5. **Consider conditional imports**: Some roles (desktop, communication) have Linux-only packages but no guards - could add `lib.optionals pkgs.stdenv.isLinux`"} {"id":"nixos-configs-rrb","title":"Evaluate Cross-Platform Patterns","description":"# Investigation: Cross-Platform Patterns\n\n## Questions to Answer\n- Are Darwin/WSL/Steam Deck patterns consistent?\n- Is code reuse maximized across platforms?\n- Are platform-specific concerns properly isolated?\n\n## Key Files\n- Darwin machine configs\n- WSL machine configs\n- Steam Deck configs\n- Platform-conditional role patterns\n\n## Approach\n1. Use `/humanlayer:research_codebase_nt` to analyze cross-platform patterns\n2. Identify platform-specific vs shared code\n3. Use `/humanlayer:create_plan_nt` to plan better code sharing","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T10:08:26.316991479-08:00","created_by":"johno","updated_at":"2026-01-10T10:11:52.982340314-08:00","closed_at":"2026-01-10T10:11:52.982340314-08:00","close_reason":"## Cross-Platform Pattern Evaluation\n\n### Platform Overview\n\nThe repository supports **4 distinct platforms**:\n1. **NixOS** (primary): 6 machines (zix790prors, nix-book, boxy, wixos, nix-deck, john-endesktop)\n2. **Darwin/macOS**: 1 machine (johno-macbookpro/blkfv4yf49kt7)\n3. **WSL (NixOS-WSL)**: 1 machine (wixos)\n4. **Steam Deck**: 1 machine (nix-deck, using Jovian-NixOS)\n\n### Architecture Analysis\n\n#### Are Darwin/WSL/Steam Deck Patterns Consistent?\n\n**MIXED**: The patterns are partially consistent but have notable differences:\n\n**Consistent patterns:**\n- All platforms use home-manager for user configuration\n- All home configs import `./roles` (shared) + platform-specific base role\n- Use of `home.roles` option system across all platforms\n- Common `home.stateVersion = \"24.05\"` across all configs\n\n**Inconsistent patterns:**\n- WSL config embeds NVIDIA/graphics config directly rather than using a role\n- Steam Deck uses `nixosModulesUnstable` (different module set) vs stable for others\n- Darwin uses completely separate `darwinModules` with different role structure\n\n#### Is Code Reuse Maximized?\n\n**PARTIALLY - Rating: 7/10**\n\n**Good reuse:**\n- Home roles are well-factored - most roles work cross-platform\n- `base` role uses `pkgs.stdenv.isLinux` for conditional behavior\n- `emacs` role uses `pkgs.stdenv.isDarwin` to select macport vs standard emacs\n- `aerospace` role properly guards Darwin-only features with assertion\n- Shared wallpaper config across i3, sway, plasma-manager, sketchybar\n\n**Duplication found:**\n1. **roles/default.nix vs roles/darwin.nix**: ~50% duplicated code\n - Both define: time.timeZone, environment.systemPackages, nix.* settings\n - Darwin lacks: i18n settings, xserver.xkb, openssh, emergency mode config\n \n2. **Flake module lists**: nixosModules/nixosModulesUnstable/darwinModules have overlapping overlay configs\n\n3. **Home paths**: Darwin uses `/Users/johno` vs Linux `/home/johno` - handled correctly with mkForce\n\n#### Are Platform-Specific Concerns Properly Isolated?\n\n**GOOD - Rating: 8/10**\n\n**Well isolated:**\n- `home/roles/base-darwin` imports aerospace (Darwin-only)\n- `home/roles/base-linux` imports plasma-manager, i3+sway (Linux-only)\n- `aerospace` role has explicit Darwin assertion\n- System roles (audio, bluetooth, desktop, etc.) are NixOS-only in roles/default.nix\n- Steam Deck config imports `roles/desktop/steamos.nix` for Jovian integration\n\n**Could improve:**\n- WSL-specific config inline in machine config rather than a `wsl` role\n- NVIDIA config duplicated in wixos vs using roles.nvidia\n\n### Key Findings\n\n#### Cross-Platform Role Structure\n```\nhome/roles/\n default.nix -- Shared roles (imported by all)\n base-darwin/ -- Darwin-specific (aerospace)\n base-linux/ -- Linux-specific (plasma-manager, i3+sway)\n aerospace/ -- Darwin-only with assertion\n plasma-manager/ -- Linux-only (imported via base-linux)\n i3+sway/ -- Linux-only (imported via base-linux)\n [other roles] -- Cross-platform\n```\n\n#### Platform Conditionals Found (4 instances)\n1. `packages/claude-code/default.nix:42` - autoPatchelfHook for Linux\n2. `home/roles/emacs/default.nix:23` - emacs-macport vs emacs\n3. `home/roles/base/default.nix:34` - randomizedDelaySec only on Linux\n4. `home/roles/aerospace/default.nix:116` - Darwin-only assertion\n\n### Recommendations\n\n1. **Extract shared system config**: Create `roles/common.nix` for settings shared between NixOS and Darwin (timezone, nix settings, base packages)\n\n2. **Create WSL role**: Move wixos NVIDIA/graphics config to `roles/wsl.nix` for reusability\n\n3. **Consolidate flake overlays**: The overlay configuration is repeated 3x - could extract to a function\n\n4. **Document platform matrix**: Add comments in flake.nix explaining which modules support which platforms\n\n5. **Consider conditional imports**: Some roles (desktop, communication) have Linux-only packages but no guards - could add `lib.optionals pkgs.stdenv.isLinux`"}
{"id":"nixos-configs-tcu","title":"Add platform compatibility guards to cross-platform roles","description":"From Cross-Platform evaluation: Some roles like desktop and communication contain Linux-only packages but no guards. Add lib.optionals pkgs.stdenv.isLinux where appropriate to prevent issues on Darwin.","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-10T10:31:29.864582809-08:00","created_by":"johno","updated_at":"2026-01-10T10:31:29.864582809-08:00"} {"id":"nixos-configs-tcu","title":"Add platform compatibility guards to cross-platform roles","description":"From Cross-Platform evaluation: Some roles like desktop and communication contain Linux-only packages but no guards. Add lib.optionals pkgs.stdenv.isLinux where appropriate to prevent issues on Darwin.","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-10T10:31:29.864582809-08:00","created_by":"johno","updated_at":"2026-01-10T10:31:29.864582809-08:00"}
{"id":"nixos-configs-tdf","title":"Add skill to import Gitea issues as beads","description":"Create a skill that imports open Gitea issues as beads, skipping those already imported","notes":"Technique from session:\n\n1. Use `tea issues` to list open issues (not curl)\n2. Use `tea issue N` to get full details\n3. Check existing beads with `bd list` to find already-imported issues\n4. Skip PRs that have bead IDs in title (e.g. '[nixos-configs-xxx]') or body ('Bead ID: xxx')\n5. For new issues, create bead with:\n - Appropriate type (bug/feature/task based on issue content)\n - Priority P2 default\n - Notes containing Gitea issue URL\n - Description from issue body\n6. Report what was imported vs skipped\n\nPR: https://git.johnogle.info/johno/nixos-configs/pulls/15","status":"in_review","priority":2,"issue_type":"feature","created_at":"2026-01-10T12:29:28.686736386-08:00","created_by":"johno","updated_at":"2026-01-10T13:06:14.642580963-08:00"} {"id":"nixos-configs-tdf","title":"Add skill to import Gitea issues as beads","description":"Create a skill that imports open Gitea issues as beads, skipping those already imported","notes":"Technique from session:\n\n1. Use `tea issues` to list open issues (not curl)\n2. Use `tea issue N` to get full details\n3. Check existing beads with `bd list` to find already-imported issues\n4. Skip PRs that have bead IDs in title (e.g. '[nixos-configs-xxx]') or body ('Bead ID: xxx')\n5. For new issues, create bead with:\n - Appropriate type (bug/feature/task based on issue content)\n - Priority P2 default\n - Notes containing Gitea issue URL\n - Description from issue body\n6. Report what was imported vs skipped\n\nPR: https://git.johnogle.info/johno/nixos-configs/pulls/15","status":"in_review","priority":2,"issue_type":"feature","created_at":"2026-01-10T12:29:28.686736386-08:00","created_by":"johno","updated_at":"2026-01-10T13:06:14.642580963-08:00"}