bd daemon sync: 2026-01-12 20:48:26
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
{"id":"nixos-configs-0gl","title":"Evaluate nixos-configs repo structure","description":"# Research Goal\nEvaluate the structure of nixos-configs to identify areas for improvement. The deliverable is a set of child beads—each containing prompts for deeper exploration and actionable improvement plans.\n\n## Research Methodology\nUse `/humanlayer:research_codebase_nt` pattern with parallel subagents:\n- **codebase-locator**: Find files and components\n- **codebase-analyzer**: Understand how code works\n- **codebase-pattern-finder**: Find similar implementations and patterns\n\n## Focus Areas (research all 7)\n\n| Area | Questions to Answer |\n|------|---------------------|\n| **Flake Structure** | Is flake.nix well-organized? Are inputs minimal? Module composition clear? |\n| **System Roles** | Roles properly scoped? Duplication? Consistent option patterns? |\n| **Home-Manager Roles** | Clean separation from system roles? Reusable across platforms? |\n| **Machine Configs** | Are machines DRY? Shared patterns extracted? Hardware abstractions clean? |\n| **Custom Packages** | Packages well-structured? Overlay usage optimal? |\n| **Cross-Platform** | Darwin/WSL/Steam Deck patterns consistent? Code reuse? |\n| **Scripts \u0026 Utilities** | Flake apps organized? Automation opportunities? |\n\n## Deliverables\n1. **Summary of current state** for each focus area\n2. **Child beads** for each area with improvement potential, containing:\n - Prompt: \"Use `/humanlayer:research_codebase_nt` to analyze [specific aspect]\"\n - Prompt: \"Use `/humanlayer:create_plan_nt` to plan [specific improvement]\"\n3. **Recommended priority order** for addressing improvements\n\n## Key Files to Analyze\n- `flake.nix` (9.4KB) - Primary target\n- `roles/default.nix` - System role patterns\n- `home/roles/default.nix` - Home-manager role patterns\n- `machines/*/configuration.nix` - Per-machine patterns\n- `packages/default.nix` - Custom package overlay","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-09T12:47:08.135451956-08:00","created_by":"johno","updated_at":"2026-01-10T10:47:13.866730132-08:00","closed_at":"2026-01-10T10:37:36.380750585-08:00","dependencies":[{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-ny8","type":"blocks","created_at":"2026-01-10T10:08:49.354981408-08:00","created_by":"johno"},{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-auw","type":"blocks","created_at":"2026-01-10T10:08:49.377984171-08:00","created_by":"johno"},{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-dew","type":"blocks","created_at":"2026-01-10T10:08:49.401019609-08:00","created_by":"johno"},{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-pbk","type":"blocks","created_at":"2026-01-10T10:08:49.424263017-08:00","created_by":"johno"},{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-und","type":"blocks","created_at":"2026-01-10T10:08:49.447363253-08:00","created_by":"johno"},{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-rrb","type":"blocks","created_at":"2026-01-10T10:08:49.469936923-08:00","created_by":"johno"},{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-geh","type":"blocks","created_at":"2026-01-10T10:08:49.492543435-08:00","created_by":"johno"}]}
|
{"id":"nixos-configs-0gl","title":"Evaluate nixos-configs repo structure","description":"# Research Goal\nEvaluate the structure of nixos-configs to identify areas for improvement. The deliverable is a set of child beads—each containing prompts for deeper exploration and actionable improvement plans.\n\n## Research Methodology\nUse `/humanlayer:research_codebase_nt` pattern with parallel subagents:\n- **codebase-locator**: Find files and components\n- **codebase-analyzer**: Understand how code works\n- **codebase-pattern-finder**: Find similar implementations and patterns\n\n## Focus Areas (research all 7)\n\n| Area | Questions to Answer |\n|------|---------------------|\n| **Flake Structure** | Is flake.nix well-organized? Are inputs minimal? Module composition clear? |\n| **System Roles** | Roles properly scoped? Duplication? Consistent option patterns? |\n| **Home-Manager Roles** | Clean separation from system roles? Reusable across platforms? |\n| **Machine Configs** | Are machines DRY? Shared patterns extracted? Hardware abstractions clean? |\n| **Custom Packages** | Packages well-structured? Overlay usage optimal? |\n| **Cross-Platform** | Darwin/WSL/Steam Deck patterns consistent? Code reuse? |\n| **Scripts \u0026 Utilities** | Flake apps organized? Automation opportunities? |\n\n## Deliverables\n1. **Summary of current state** for each focus area\n2. **Child beads** for each area with improvement potential, containing:\n - Prompt: \"Use `/humanlayer:research_codebase_nt` to analyze [specific aspect]\"\n - Prompt: \"Use `/humanlayer:create_plan_nt` to plan [specific improvement]\"\n3. **Recommended priority order** for addressing improvements\n\n## Key Files to Analyze\n- `flake.nix` (9.4KB) - Primary target\n- `roles/default.nix` - System role patterns\n- `home/roles/default.nix` - Home-manager role patterns\n- `machines/*/configuration.nix` - Per-machine patterns\n- `packages/default.nix` - Custom package overlay","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-09T12:47:08.135451956-08:00","created_by":"johno","updated_at":"2026-01-10T10:47:13.866730132-08:00","closed_at":"2026-01-10T10:37:36.380750585-08:00","dependencies":[{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-ny8","type":"blocks","created_at":"2026-01-10T10:08:49.354981408-08:00","created_by":"johno"},{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-auw","type":"blocks","created_at":"2026-01-10T10:08:49.377984171-08:00","created_by":"johno"},{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-dew","type":"blocks","created_at":"2026-01-10T10:08:49.401019609-08:00","created_by":"johno"},{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-pbk","type":"blocks","created_at":"2026-01-10T10:08:49.424263017-08:00","created_by":"johno"},{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-und","type":"blocks","created_at":"2026-01-10T10:08:49.447363253-08:00","created_by":"johno"},{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-rrb","type":"blocks","created_at":"2026-01-10T10:08:49.469936923-08:00","created_by":"johno"},{"issue_id":"nixos-configs-0gl","depends_on_id":"nixos-configs-geh","type":"blocks","created_at":"2026-01-10T10:08:49.492543435-08:00","created_by":"johno"}]}
|
||||||
{"id":"nixos-configs-0ov","title":"Extract shared NixOS/Darwin base config","description":"From Flake Structure evaluation: roles/default.nix and roles/darwin.nix share ~50% duplicated code (timezone, base packages, nix settings, gc config). Create roles/common.nix to reduce duplication.","notes":"Plan created: thoughts/beads-nixos-configs-0ov/plan.md - Analysis shows this work is already complete. The roles/common.nix file exists and is imported by both NixOS and Darwin configs.","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-10T10:31:22.36256057-08:00","created_by":"johno","updated_at":"2026-01-12T20:47:20.408469775-08:00"}
|
{"id":"nixos-configs-0ov","title":"Extract shared NixOS/Darwin base config","description":"From Flake Structure evaluation: roles/default.nix and roles/darwin.nix share ~50% duplicated code (timezone, base packages, nix settings, gc config). Create roles/common.nix to reduce duplication.","notes":"Plan created: thoughts/beads-nixos-configs-0ov/plan.md - Analysis shows this work is already complete. The roles/common.nix file exists and is imported by both NixOS and Darwin configs.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T10:31:22.36256057-08:00","created_by":"johno","updated_at":"2026-01-12T20:48:25.849142057-08:00","closed_at":"2026-01-12T20:48:25.849142057-08:00","close_reason":"Already implemented"}
|
||||||
{"id":"nixos-configs-0vf","title":"Fix conflicting audio role config","description":"From System Roles evaluation: The audio role has conflicting services.pulseaudio config present while pipewire is enabled. PipeWire replaces PulseAudio, so the pulseaudio config should be removed.","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-01-10T10:31:25.821735114-08:00","created_by":"johno","updated_at":"2026-01-12T20:47:24.831406474-08:00","closed_at":"2026-01-12T20:47:24.831406474-08:00","close_reason":"Closed"}
|
{"id":"nixos-configs-0vf","title":"Fix conflicting audio role config","description":"From System Roles evaluation: The audio role has conflicting services.pulseaudio config present while pipewire is enabled. PipeWire replaces PulseAudio, so the pulseaudio config should be removed.","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-01-10T10:31:25.821735114-08:00","created_by":"johno","updated_at":"2026-01-12T20:47:24.831406474-08:00","closed_at":"2026-01-12T20:47:24.831406474-08:00","close_reason":"Closed"}
|
||||||
{"id":"nixos-configs-1wd","title":"When building the USB image, find a way to pre-run doom sync","description":"After booting into a live usb, if I want to run emacs I must first run `doom sync` - which also requires internet access. This is time consuming and annoying.","acceptance_criteria":"Upon booting into a live usb image, `emacs -nw` opens emacs to the doom splash screen","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T09:10:21.469199401-08:00","created_by":"johno","updated_at":"2026-01-10T10:47:13.879427741-08:00","closed_at":"2026-01-10T10:30:24.839041681-08:00"}
|
{"id":"nixos-configs-1wd","title":"When building the USB image, find a way to pre-run doom sync","description":"After booting into a live usb, if I want to run emacs I must first run `doom sync` - which also requires internet access. This is time consuming and annoying.","acceptance_criteria":"Upon booting into a live usb image, `emacs -nw` opens emacs to the doom splash screen","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T09:10:21.469199401-08:00","created_by":"johno","updated_at":"2026-01-10T10:47:13.879427741-08:00","closed_at":"2026-01-10T10:30:24.839041681-08:00"}
|
||||||
{"id":"nixos-configs-265","title":"Mu4e emails sending without body content","notes":"Gitea issue #2: https://git.johnogle.info/johno/nixos-configs/issues/2\n\nNOTE: PR #4 exists as a potential fix for this issue.\nhttps://git.johnogle.info/johno/nixos-configs/pulls/4","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-01-10T12:27:40.01586007-08:00","created_by":"johno","updated_at":"2026-01-10T12:28:20.226268233-08:00","closed_at":"2026-01-10T12:28:20.226268233-08:00","close_reason":"Duplicate - PR #4 already addresses this issue"}
|
{"id":"nixos-configs-265","title":"Mu4e emails sending without body content","notes":"Gitea issue #2: https://git.johnogle.info/johno/nixos-configs/issues/2\n\nNOTE: PR #4 exists as a potential fix for this issue.\nhttps://git.johnogle.info/johno/nixos-configs/pulls/4","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-01-10T12:27:40.01586007-08:00","created_by":"johno","updated_at":"2026-01-10T12:28:20.226268233-08:00","closed_at":"2026-01-10T12:28:20.226268233-08:00","close_reason":"Duplicate - PR #4 already addresses this issue"}
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
{"id":"nixos-configs-fkt","title":"Parameterize hardcoded values in roles","description":"From System Roles evaluation: Several roles have hardcoded values that should be configurable:\n- printing role: hardcoded printer URI (ipp://brother.oglehome/ipp/print)\n- nfs-mounts: hardcoded NFS server IP (10.0.0.43)\n- virtualisation: hardcoded 'johno' for docker group","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-10T10:31:25.104059999-08:00","created_by":"johno","updated_at":"2026-01-10T10:31:25.104059999-08:00"}
|
{"id":"nixos-configs-fkt","title":"Parameterize hardcoded values in roles","description":"From System Roles evaluation: Several roles have hardcoded values that should be configurable:\n- printing role: hardcoded printer URI (ipp://brother.oglehome/ipp/print)\n- nfs-mounts: hardcoded NFS server IP (10.0.0.43)\n- virtualisation: hardcoded 'johno' for docker group","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-10T10:31:25.104059999-08:00","created_by":"johno","updated_at":"2026-01-10T10:31:25.104059999-08:00"}
|
||||||
{"id":"nixos-configs-g47","title":"Gitea integration Phase 1: Import-only Go package","description":"Create internal/gitea/ package with REST client and import support.\n\nTarget: git.johnogle.info\n\nDeliverables:\n- types.go - Gitea API response types\n- client.go - REST client with pagination, auth\n- mapping.go - Field conversion to beads format\n- Import via JSONL generation or direct importer integration\n\nParent: nixos-configs-cph","notes":"Plan: thoughts/beads-nixos-configs-g47/plan.md","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-12T20:31:52.854036374-08:00","created_by":"johno","updated_at":"2026-01-12T20:41:43.786807944-08:00","closed_at":"2026-01-12T20:41:43.786807944-08:00","close_reason":"Deprioritized - revisit after more workflow experimentation"}
|
{"id":"nixos-configs-g47","title":"Gitea integration Phase 1: Import-only Go package","description":"Create internal/gitea/ package with REST client and import support.\n\nTarget: git.johnogle.info\n\nDeliverables:\n- types.go - Gitea API response types\n- client.go - REST client with pagination, auth\n- mapping.go - Field conversion to beads format\n- Import via JSONL generation or direct importer integration\n\nParent: nixos-configs-cph","notes":"Plan: thoughts/beads-nixos-configs-g47/plan.md","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-12T20:31:52.854036374-08:00","created_by":"johno","updated_at":"2026-01-12T20:41:43.786807944-08:00","closed_at":"2026-01-12T20:41:43.786807944-08:00","close_reason":"Deprioritized - revisit after more workflow experimentation"}
|
||||||
{"id":"nixos-configs-geh","title":"Evaluate Scripts \u0026 Utilities","description":"# Investigation: Scripts \u0026 Utilities\n\n## Questions to Answer\n- Are flake apps organized?\n- Are there automation opportunities?\n- Are scripts discoverable and documented?\n\n## Key Files\n- Flake apps definitions\n- Shell scripts in the repo\n- Utility modules\n\n## Approach\n1. Use `/humanlayer:research_codebase_nt` to analyze scripts and utilities\n2. Identify missing automation opportunities\n3. Use `/humanlayer:create_plan_nt` to plan improvements","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T10:08:26.9906695-08:00","created_by":"johno","updated_at":"2026-01-10T10:11:53.187286416-08:00","closed_at":"2026-01-10T10:11:53.187286416-08:00","close_reason":"# Scripts \u0026 Utilities Evaluation\n\n## Summary\nThe NixOS config repository has a well-organized scripts and utilities system with good practices in place.\n\n## Flake Apps (4 available apps)\nAll apps defined in flake.nix, cross-platform (x86_64-linux, aarch64-linux, aarch64-darwin):\n- update-doomemacs: Updates DoomEmacs to latest commit with SHA256 refresh\n- update-claude-code: Updates claude-code package from Homebrew cask (supports --dry-run)\n- rotate-wallpaper: Cycles through wallpaper index\n- upgrade: Meta-script updating flake + doom + claude + wallpaper\n\n### Architecture Strengths\n- Uses writeShellScriptBin with explicit dependency paths via makeBinPath\n- Common dependencies (curl, jq, nix, git, sed, grep, coreutils, gawk) properly managed\n- All scripts use set -euo pipefail for safety\n\n## Standalone Scripts (2 root-level)\n- bootstrap.sh: Initial system setup from remote flake\n- build-liveusb.sh: Builds live USB ISO\n\n## Custom Packages (/packages/) - 5 packages\n1. claude-code - Multi-platform binary distribution with GCS URLs\n2. tea-rbw - Wrapper around tea integrating with rbw for auth\n3. app-launcher-server - Python HTTP server for launching allowlisted apps\n4. vulkan-hdr-layer - HDR graphics layer\n5. perles - Go-based TUI for Beads issue tracking\n\n## Recommendations\nMedium Priority:\n- Add help flags to all flake apps for consistency\n- Consider adding nix run .#help app listing all available apps\n\nLow Priority:\n- Move bootstrap.sh and build-liveusb.sh to flake apps\n- Add comments to packages/default.nix describing each package\n\n## Missing Automation Opportunities\n1. No auto-update mechanism (could add CI job or systemd timer)\n2. No pre-commit hooks for Nix syntax validation\n3. No flake.lock update notifications\n\n## Conclusion\nWell-designed scripts/utilities system using good Nix idioms. The flake apps pattern provides cross-platform consistency. Main gap is documentation/discoverability (minor for personal config). No blocking issues."}
|
{"id":"nixos-configs-geh","title":"Evaluate Scripts \u0026 Utilities","description":"# Investigation: Scripts \u0026 Utilities\n\n## Questions to Answer\n- Are flake apps organized?\n- Are there automation opportunities?\n- Are scripts discoverable and documented?\n\n## Key Files\n- Flake apps definitions\n- Shell scripts in the repo\n- Utility modules\n\n## Approach\n1. Use `/humanlayer:research_codebase_nt` to analyze scripts and utilities\n2. Identify missing automation opportunities\n3. Use `/humanlayer:create_plan_nt` to plan improvements","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T10:08:26.9906695-08:00","created_by":"johno","updated_at":"2026-01-10T10:11:53.187286416-08:00","closed_at":"2026-01-10T10:11:53.187286416-08:00","close_reason":"# Scripts \u0026 Utilities Evaluation\n\n## Summary\nThe NixOS config repository has a well-organized scripts and utilities system with good practices in place.\n\n## Flake Apps (4 available apps)\nAll apps defined in flake.nix, cross-platform (x86_64-linux, aarch64-linux, aarch64-darwin):\n- update-doomemacs: Updates DoomEmacs to latest commit with SHA256 refresh\n- update-claude-code: Updates claude-code package from Homebrew cask (supports --dry-run)\n- rotate-wallpaper: Cycles through wallpaper index\n- upgrade: Meta-script updating flake + doom + claude + wallpaper\n\n### Architecture Strengths\n- Uses writeShellScriptBin with explicit dependency paths via makeBinPath\n- Common dependencies (curl, jq, nix, git, sed, grep, coreutils, gawk) properly managed\n- All scripts use set -euo pipefail for safety\n\n## Standalone Scripts (2 root-level)\n- bootstrap.sh: Initial system setup from remote flake\n- build-liveusb.sh: Builds live USB ISO\n\n## Custom Packages (/packages/) - 5 packages\n1. claude-code - Multi-platform binary distribution with GCS URLs\n2. tea-rbw - Wrapper around tea integrating with rbw for auth\n3. app-launcher-server - Python HTTP server for launching allowlisted apps\n4. vulkan-hdr-layer - HDR graphics layer\n5. perles - Go-based TUI for Beads issue tracking\n\n## Recommendations\nMedium Priority:\n- Add help flags to all flake apps for consistency\n- Consider adding nix run .#help app listing all available apps\n\nLow Priority:\n- Move bootstrap.sh and build-liveusb.sh to flake apps\n- Add comments to packages/default.nix describing each package\n\n## Missing Automation Opportunities\n1. No auto-update mechanism (could add CI job or systemd timer)\n2. No pre-commit hooks for Nix syntax validation\n3. No flake.lock update notifications\n\n## Conclusion\nWell-designed scripts/utilities system using good Nix idioms. The flake apps pattern provides cross-platform consistency. Main gap is documentation/discoverability (minor for personal config). No blocking issues."}
|
||||||
{"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":"Plan created: thoughts/beads-nixos-configs-is4/plan.md - NOTE: Work already completed in commit 9973273 (2026-01-10). Recommend closing bead.","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-10T10:31:24.157222208-08:00","created_by":"johno","updated_at":"2026-01-12T20:48:00.823280462-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":"Plan created: thoughts/beads-nixos-configs-is4/plan.md - NOTE: Work already completed in commit 9973273 (2026-01-10). Recommend closing bead.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T10:31:24.157222208-08:00","created_by":"johno","updated_at":"2026-01-12T20:48:25.864179759-08:00","closed_at":"2026-01-12T20:48:25.864179759-08:00","close_reason":"Already implemented"}
|
||||||
{"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":"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"}
|
||||||
|
|||||||
Reference in New Issue
Block a user