bd sync: 2026-01-12 18:25:21

This commit is contained in:
2026-01-12 18:25:21 -08:00
parent 701e7982e7
commit b477b081f1

View File

@@ -6,7 +6,7 @@
{"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\nPR: https://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:53:10.467933615-08:00","closed_at":"2026-01-10T12:53:10.467933615-08:00","close_reason":"Duplicate of nixos-configs-9l8"} {"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\nPR: https://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:53:10.467933615-08:00","closed_at":"2026-01-10T12:53:10.467933615-08:00","close_reason":"Duplicate of nixos-configs-9l8"}
{"id":"nixos-configs-2hq","title":"Create beads:iterate skill","description":"Beads-aware iteration skill that:\n- Takes bead ID as input\n- Updates thoughts/beads-{id}/plan.md based on feedback\n- Preserves existing plan structure while making targeted changes\n- Based on humanlayer:iterate_plan","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-12T17:53:35.325012-08:00","created_by":"johno","updated_at":"2026-01-12T17:56:45.777325-08:00","closed_at":"2026-01-12T17:56:45.777325-08:00","close_reason":"Created beads_iterate.md skill","dependencies":[{"issue_id":"nixos-configs-2hq","depends_on_id":"nixos-configs-ouf","type":"parent-child","created_at":"2026-01-12T17:53:44.461613-08:00","created_by":"johno"}],"comments":[{"id":2,"issue_id":"nixos-configs-2hq","author":"johno","text":"PR created: https://git.johnogle.info/johno/nixos-configs/pulls/17","created_at":"2026-01-10T21:08:52Z"}]} {"id":"nixos-configs-2hq","title":"Create beads:iterate skill","description":"Beads-aware iteration skill that:\n- Takes bead ID as input\n- Updates thoughts/beads-{id}/plan.md based on feedback\n- Preserves existing plan structure while making targeted changes\n- Based on humanlayer:iterate_plan","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-12T17:53:35.325012-08:00","created_by":"johno","updated_at":"2026-01-12T17:56:45.777325-08:00","closed_at":"2026-01-12T17:56:45.777325-08:00","close_reason":"Created beads_iterate.md skill","dependencies":[{"issue_id":"nixos-configs-2hq","depends_on_id":"nixos-configs-ouf","type":"parent-child","created_at":"2026-01-12T17:53:44.461613-08:00","created_by":"johno"}],"comments":[{"id":2,"issue_id":"nixos-configs-2hq","author":"johno","text":"PR created: https://git.johnogle.info/johno/nixos-configs/pulls/17","created_at":"2026-01-10T21:08:52Z"}]}
{"id":"nixos-configs-2mk","title":"Remove wixos (WSL) configuration","description":"WSL is no longer used. Remove the wixos machine configuration entirely from the flake and any associated home-manager config.","notes":"PR: https://git.johnogle.info/johno/nixos-configs/pulls/20","status":"in_review","priority":3,"issue_type":"task","created_at":"2026-01-10T10:31:28.363467309-08:00","created_by":"johno","updated_at":"2026-01-10T14:19:53.685761099-08:00","comments":[{"id":3,"issue_id":"nixos-configs-2mk","author":"johno","text":"PR: https://git.johnogle.info/johno/nixos-configs/pulls/20","created_at":"2026-01-10T21:11:29Z"}]} {"id":"nixos-configs-2mk","title":"Remove wixos (WSL) configuration","description":"WSL is no longer used. Remove the wixos machine configuration entirely from the flake and any associated home-manager config.","notes":"PR: https://git.johnogle.info/johno/nixos-configs/pulls/20","status":"in_review","priority":3,"issue_type":"task","created_at":"2026-01-10T10:31:28.363467309-08:00","created_by":"johno","updated_at":"2026-01-10T14:19:53.685761099-08:00","comments":[{"id":3,"issue_id":"nixos-configs-2mk","author":"johno","text":"PR: https://git.johnogle.info/johno/nixos-configs/pulls/20","created_at":"2026-01-10T21:11:29Z"}]}
{"id":"nixos-configs-39m","title":"parallel_beads PR description should include validation steps completed","notes":"Gitea issue: https://git.johnogle.info/johno/nixos-configs/issues/13\n\nWhen creating PRs through parallel_beads, the PR description should include what validation steps have been completed (e.g., tests run, linting passed, etc.).","status":"open","priority":2,"issue_type":"feature","created_at":"2026-01-10T21:06:56.358336921-08:00","created_by":"johno","updated_at":"2026-01-10T21:06:56.358336921-08:00"} {"id":"nixos-configs-39m","title":"parallel_beads PR description should include validation steps completed","notes":"Research complete: thoughts/beads-nixos-configs-39m/research.md\nPlan created: thoughts/beads-nixos-configs-39m/plan.md","status":"open","priority":2,"issue_type":"feature","created_at":"2026-01-10T21:06:56.358336921-08:00","created_by":"johno","updated_at":"2026-01-12T18:24:26.892559-08:00"}
{"id":"nixos-configs-45m","title":"Migrate nucdeb2 from Proxmox+Debian to NixOS","description":"Replace the Proxmox+Debian installation on nucdeb2 with NixOS. Document the migration process thoroughly to serve as a guide for migrating nucdeb1 and nucdeb3.","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-10T19:13:03.623201609-08:00","created_by":"johno","updated_at":"2026-01-10T19:13:03.623201609-08:00","dependencies":[{"issue_id":"nixos-configs-45m","depends_on_id":"nixos-configs-0q7","type":"blocks","created_at":"2026-01-10T19:13:12.894453357-08:00","created_by":"johno"}],"comments":[{"id":4,"issue_id":"nixos-configs-45m","author":"johno","text":"## k3s-upgrade Label Requirement\n\nWhen nucdeb2 is migrated to NixOS and running k3s, it must be labeled with `k3s-upgrade=disabled`:\n\n```bash\nkubectl label node nucdeb2 k3s-upgrade=disabled\n```\n\nThis excludes it from the system-upgrade-controller, which tries to upgrade k3s by replacing the binary in-place. This fails on NixOS because /nix/store is immutable. On NixOS, k3s upgrades happen through updating nixpkgs and rebuilding.","created_at":"2026-01-11T04:10:24Z"}]} {"id":"nixos-configs-45m","title":"Migrate nucdeb2 from Proxmox+Debian to NixOS","description":"Replace the Proxmox+Debian installation on nucdeb2 with NixOS. Document the migration process thoroughly to serve as a guide for migrating nucdeb1 and nucdeb3.","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-10T19:13:03.623201609-08:00","created_by":"johno","updated_at":"2026-01-10T19:13:03.623201609-08:00","dependencies":[{"issue_id":"nixos-configs-45m","depends_on_id":"nixos-configs-0q7","type":"blocks","created_at":"2026-01-10T19:13:12.894453357-08:00","created_by":"johno"}],"comments":[{"id":4,"issue_id":"nixos-configs-45m","author":"johno","text":"## k3s-upgrade Label Requirement\n\nWhen nucdeb2 is migrated to NixOS and running k3s, it must be labeled with `k3s-upgrade=disabled`:\n\n```bash\nkubectl label node nucdeb2 k3s-upgrade=disabled\n```\n\nThis excludes it from the system-upgrade-controller, which tries to upgrade k3s by replacing the binary in-place. This fails on NixOS because /nix/store is immutable. On NixOS, k3s upgrades happen through updating nixpkgs and rebuilding.","created_at":"2026-01-11T04:10:24Z"}]}
{"id":"nixos-configs-4yz","title":"Migrate k3s cluster nodes to NixOS","status":"in_progress","priority":2,"issue_type":"epic","created_at":"2026-01-10T19:12:50.908956625-08:00","created_by":"johno","updated_at":"2026-01-10T19:13:41.525993086-08:00","dependencies":[{"issue_id":"nixos-configs-4yz","depends_on_id":"nixos-configs-uje","type":"blocks","created_at":"2026-01-10T19:13:59.246251945-08:00","created_by":"johno"}]} {"id":"nixos-configs-4yz","title":"Migrate k3s cluster nodes to NixOS","status":"in_progress","priority":2,"issue_type":"epic","created_at":"2026-01-10T19:12:50.908956625-08:00","created_by":"johno","updated_at":"2026-01-10T19:13:41.525993086-08:00","dependencies":[{"issue_id":"nixos-configs-4yz","depends_on_id":"nixos-configs-uje","type":"blocks","created_at":"2026-01-10T19:13:59.246251945-08:00","created_by":"johno"}]}
{"id":"nixos-configs-71w","title":"Create k3s-node role and apply to john-endesktop as worker","description":"Create a reusable k3s-node NixOS role/module. Apply it to john-endesktop configured as a worker node joining the existing cluster.","notes":"## Research Notes (2026-01-10)\n\n### Current State\n- No k3s service configuration exists in codebase\n- john-endesktop is currently NFS server providing storage to external k3s cluster\n- kubectl home role exists at `home/roles/kubectl/`\n- origin/k3s branch has prior work using SOPS (not wanted)\n\n### Implementation Requirements\n1. Create `roles/k3s-node/default.nix` with options:\n - `enable` - Enable k3s\n - `role` - \"server\" or \"agent\" (default: agent)\n - `serverAddr` - URL to join (default for agent: https://10.0.0.222:6443)\n - `tokenFile` - Path to token (default: /etc/k3s/token)\n - `extraFlags` - Additional k3s flags\n - `gracefulNodeShutdown` - Enable graceful shutdown\n\n2. Add firewall rules:\n - TCP: 6443 (API), 2379-2380 (etcd HA)\n - UDP: 8472 (flannel VXLAN)\n\n3. Import in `roles/default.nix`\n\n4. Enable on john-endesktop as agent\n\n### Token Storage\nUse Bitwarden + bootstrap script (consistent with kubectl role):\n```bash\nsudo mkdir -p /etc/k3s\nrbw get k3s-cluster-token | sudo tee /etc/k3s/token \u003e /dev/null\nsudo chmod 600 /etc/k3s/token\n```\n\n### Key Files\n- `roles/bluetooth/default.nix` - Simple role pattern\n- `roles/nvidia/default.nix` - Complex role pattern\n- `machines/john-endesktop/configuration.nix` - Host to update\n\n### Research Doc\n`thoughts/shared/research/2026-01-10-k3s-node-role-requirements.md`","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T19:13:01.944871413-08:00","created_by":"johno","updated_at":"2026-01-10T20:09:38.740416079-08:00","closed_at":"2026-01-10T20:09:38.740416079-08:00","close_reason":"Implemented k3s-node role and enabled on john-endesktop as agent. Node joined cluster successfully."} {"id":"nixos-configs-71w","title":"Create k3s-node role and apply to john-endesktop as worker","description":"Create a reusable k3s-node NixOS role/module. Apply it to john-endesktop configured as a worker node joining the existing cluster.","notes":"## Research Notes (2026-01-10)\n\n### Current State\n- No k3s service configuration exists in codebase\n- john-endesktop is currently NFS server providing storage to external k3s cluster\n- kubectl home role exists at `home/roles/kubectl/`\n- origin/k3s branch has prior work using SOPS (not wanted)\n\n### Implementation Requirements\n1. Create `roles/k3s-node/default.nix` with options:\n - `enable` - Enable k3s\n - `role` - \"server\" or \"agent\" (default: agent)\n - `serverAddr` - URL to join (default for agent: https://10.0.0.222:6443)\n - `tokenFile` - Path to token (default: /etc/k3s/token)\n - `extraFlags` - Additional k3s flags\n - `gracefulNodeShutdown` - Enable graceful shutdown\n\n2. Add firewall rules:\n - TCP: 6443 (API), 2379-2380 (etcd HA)\n - UDP: 8472 (flannel VXLAN)\n\n3. Import in `roles/default.nix`\n\n4. Enable on john-endesktop as agent\n\n### Token Storage\nUse Bitwarden + bootstrap script (consistent with kubectl role):\n```bash\nsudo mkdir -p /etc/k3s\nrbw get k3s-cluster-token | sudo tee /etc/k3s/token \u003e /dev/null\nsudo chmod 600 /etc/k3s/token\n```\n\n### Key Files\n- `roles/bluetooth/default.nix` - Simple role pattern\n- `roles/nvidia/default.nix` - Complex role pattern\n- `machines/john-endesktop/configuration.nix` - Host to update\n\n### Research Doc\n`thoughts/shared/research/2026-01-10-k3s-node-role-requirements.md`","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T19:13:01.944871413-08:00","created_by":"johno","updated_at":"2026-01-10T20:09:38.740416079-08:00","closed_at":"2026-01-10T20:09:38.740416079-08:00","close_reason":"Implemented k3s-node role and enabled on john-endesktop as agent. Node joined cluster successfully."}
@@ -26,6 +26,7 @@
{"id":"nixos-configs-jgc","title":"Create beads:research skill","description":"Beads-aware research skill that:\n- Takes bead ID as input\n- Outputs to thoughts/beads-{id}/research.md\n- Updates bead description with artifact link\n- Can close research beads autonomously when satisfied\n- Based on humanlayer:research_codebase","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-12T17:53:32.819068-08:00","created_by":"johno","updated_at":"2026-01-12T17:54:47.575421-08:00","closed_at":"2026-01-12T17:54:47.575421-08:00","close_reason":"Created beads_research.md skill","dependencies":[{"issue_id":"nixos-configs-jgc","depends_on_id":"nixos-configs-ouf","type":"parent-child","created_at":"2026-01-12T17:53:44.281044-08:00","created_by":"johno"}]} {"id":"nixos-configs-jgc","title":"Create beads:research skill","description":"Beads-aware research skill that:\n- Takes bead ID as input\n- Outputs to thoughts/beads-{id}/research.md\n- Updates bead description with artifact link\n- Can close research beads autonomously when satisfied\n- Based on humanlayer:research_codebase","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-12T17:53:32.819068-08:00","created_by":"johno","updated_at":"2026-01-12T17:54:47.575421-08:00","closed_at":"2026-01-12T17:54:47.575421-08:00","close_reason":"Created beads_research.md skill","dependencies":[{"issue_id":"nixos-configs-jgc","depends_on_id":"nixos-configs-ouf","type":"parent-child","created_at":"2026-01-12T17:53:44.281044-08:00","created_by":"johno"}]}
{"id":"nixos-configs-lni","title":"Tune kube-scheduler to weight memory over balanced allocation","description":"After making john-endesktop the primary control-plane node, configure kube-scheduler to:\n\n1. Disable NodeResourcesBalancedAllocation plugin (causes scheduler to prefer 'balanced' nodes even when overutilized)\n2. Configure NodeResourcesFit to use LeastAllocated strategy\n3. Weight memory higher than CPU in scoring (john-endesktop has 24Gi RAM vs 8Gi on other nodes)\n\nThis requires modifying /etc/rancher/k3s/config.yaml and creating a scheduler-config.yaml on the control-plane node(s).\n\nReference: https://kubernetes.io/docs/reference/scheduling/config/","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-11T15:33:05.775928748-08:00","created_by":"johno","updated_at":"2026-01-11T15:33:05.775928748-08:00","dependencies":[{"issue_id":"nixos-configs-lni","depends_on_id":"nixos-configs-0q7","type":"blocks","created_at":"2026-01-11T15:33:10.986737834-08:00","created_by":"johno"}]} {"id":"nixos-configs-lni","title":"Tune kube-scheduler to weight memory over balanced allocation","description":"After making john-endesktop the primary control-plane node, configure kube-scheduler to:\n\n1. Disable NodeResourcesBalancedAllocation plugin (causes scheduler to prefer 'balanced' nodes even when overutilized)\n2. Configure NodeResourcesFit to use LeastAllocated strategy\n3. Weight memory higher than CPU in scoring (john-endesktop has 24Gi RAM vs 8Gi on other nodes)\n\nThis requires modifying /etc/rancher/k3s/config.yaml and creating a scheduler-config.yaml on the control-plane node(s).\n\nReference: https://kubernetes.io/docs/reference/scheduling/config/","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-11T15:33:05.775928748-08:00","created_by":"johno","updated_at":"2026-01-11T15:33:05.775928748-08:00","dependencies":[{"issue_id":"nixos-configs-lni","depends_on_id":"nixos-configs-0q7","type":"blocks","created_at":"2026-01-11T15:33:10.986737834-08:00","created_by":"johno"}]}
{"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-oog","title":"Consider workflow-phase statuses for beads","description":"Evaluate adding explicit statuses to track workflow phases:\n\nPotential statuses:\n- needs_research\n- needs_plan \n- implementing\n- needs_review (already exists for parallel_beads)\n- closed\n\nBenefits:\n- `bd list --status=needs_plan` for phase filtering\n- Clearer pipeline visibility\n- Agents could self-select work by phase\n\nConcerns:\n- More state to maintain (status must match artifact presence)\n- Skills currently infer phase from artifacts, which works\n- Custom status config needed per-repo\n\nQuestions to resolve:\n1. Is artifact-presence inference good enough?\n2. Would explicit statuses help or add friction?\n3. Should this be enforced or advisory?\n\nCould prototype by updating skills to set status when creating artifacts.","status":"open","priority":3,"issue_type":"feature","created_at":"2026-01-12T18:25:15.690571-08:00","created_by":"johno","updated_at":"2026-01-12T18:25:15.690571-08:00"}
{"id":"nixos-configs-ouf","title":"Integrate beads with humanlayer skills","description":"Create beads-aware versions of humanlayer skills (research, plan, implement, iterate) that:\n- Use thoughts/beads-{id}/ for artifact storage\n- Link artifacts from bead descriptions\n- Support autonomy model (research=auto-close, impl=checkpoint)\n- Work with both local thoughts/ and symlinked ~/thoughts patterns","status":"closed","priority":1,"issue_type":"epic","created_at":"2026-01-12T17:53:20.891818-08:00","created_by":"johno","updated_at":"2026-01-12T17:57:52.884229-08:00","closed_at":"2026-01-12T17:57:52.884229-08:00","close_reason":"All skills created and documented"} {"id":"nixos-configs-ouf","title":"Integrate beads with humanlayer skills","description":"Create beads-aware versions of humanlayer skills (research, plan, implement, iterate) that:\n- Use thoughts/beads-{id}/ for artifact storage\n- Link artifacts from bead descriptions\n- Support autonomy model (research=auto-close, impl=checkpoint)\n- Work with both local thoughts/ and symlinked ~/thoughts patterns","status":"closed","priority":1,"issue_type":"epic","created_at":"2026-01-12T17:53:20.891818-08:00","created_by":"johno","updated_at":"2026-01-12T17:57:52.884229-08:00","closed_at":"2026-01-12T17:57:52.884229-08:00","close_reason":"All skills created and documented"}
{"id":"nixos-configs-p1a","title":"Create beads:implement skill","description":"Beads-aware implementation skill that:\n- Takes bead ID as input\n- Reads plan from thoughts/beads-{id}/plan.md\n- Per-plan checkpoint (pause after plan complete for manual validation)\n- Updates bead status as work progresses\n- Based on humanlayer:implement_plan","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-12T17:53:34.468609-08:00","created_by":"johno","updated_at":"2026-01-12T17:56:10.031072-08:00","closed_at":"2026-01-12T17:56:10.031072-08:00","close_reason":"Created beads_implement.md skill","dependencies":[{"issue_id":"nixos-configs-p1a","depends_on_id":"nixos-configs-ouf","type":"parent-child","created_at":"2026-01-12T17:53:44.406117-08:00","created_by":"johno"}]} {"id":"nixos-configs-p1a","title":"Create beads:implement skill","description":"Beads-aware implementation skill that:\n- Takes bead ID as input\n- Reads plan from thoughts/beads-{id}/plan.md\n- Per-plan checkpoint (pause after plan complete for manual validation)\n- Updates bead status as work progresses\n- Based on humanlayer:implement_plan","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-12T17:53:34.468609-08:00","created_by":"johno","updated_at":"2026-01-12T17:56:10.031072-08:00","closed_at":"2026-01-12T17:56:10.031072-08:00","close_reason":"Created beads_implement.md skill","dependencies":[{"issue_id":"nixos-configs-p1a","depends_on_id":"nixos-configs-ouf","type":"parent-child","created_at":"2026-01-12T17:53:44.406117-08:00","created_by":"johno"}]}
{"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"}