diff options
| author | 2026-09-21 15:57:04 +0200 | |
|---|---|---|
| committer | 2026-09-21 15:57:04 +0200 | |
| commit | c3f882fae8f4c1ae84deafc310357846e8b66ad1 (patch) | |
| tree | 7d8e9fac29bec584fb39283c41d0d73632fb01e8 /openspec/changes/add-claude-code-slack-spotify-discord-teams/tasks.md | |
| parent | a6e0ae7b4eb877d0c22ae84ee55d6a85618ca4c1 (diff) | |
| download | desktop-flake-c3f882fae8f4c1ae84deafc310357846e8b66ad1.tar.gz desktop-flake-c3f882fae8f4c1ae84deafc310357846e8b66ad1.tar.bz2 desktop-flake-c3f882fae8f4c1ae84deafc310357846e8b66ad1.zip | |
Add Slack, Discord, Spotify, teams-for-linux, and Claude Code
Provisions these via home-manager, scoping unfree-package access to
exactly these packages and skipping any that aren't available for the
current system/architecture (e.g. aarch64-linux lacks Discord/Spotify
builds) instead of failing evaluation.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
Diffstat (limited to 'openspec/changes/add-claude-code-slack-spotify-discord-teams/tasks.md')
| -rw-r--r-- | openspec/changes/add-claude-code-slack-spotify-discord-teams/tasks.md | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/openspec/changes/add-claude-code-slack-spotify-discord-teams/tasks.md b/openspec/changes/add-claude-code-slack-spotify-discord-teams/tasks.md new file mode 100644 index 0000000..82aa94f --- /dev/null +++ b/openspec/changes/add-claude-code-slack-spotify-discord-teams/tasks.md | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | ## 1. Unfree package gating | ||
| 2 | |||
| 3 | - [ ] 1.1 Create `lib/unfree-allowlist.nix` containing `[ "slack" "discord" "spotify" "claude-code" ]` and verify it evaluates with `nix eval --file lib/unfree-allowlist.nix` (or `nix-instantiate --eval`) | ||
| 4 | - [ ] 1.2 Update `lib/mkHome.nix` to construct `pkgs` via `import inputs.nixpkgs { inherit system; config.allowUnfreePredicate = pkg: builtins.elem (inputs.nixpkgs.lib.getName pkg) (import ./unfree-allowlist.nix); }` instead of `inputs.nixpkgs.legacyPackages.${system}`, and verify `nix flake show` still lists both `homeConfigurations` without error | ||
| 5 | - [ ] 1.3 Update `lib/mkNixos.nix` to prepend a module setting the same `nixpkgs.config.allowUnfreePredicate` (reusing `lib/unfree-allowlist.nix`), and verify `nix flake check` (or `nix eval .#nixosConfigurations` for any configured host) still evaluates without an "unfree package" error | ||
| 6 | |||
| 7 | ## 2. Desktop applications module | ||
| 8 | |||
| 9 | - [ ] 2.1 Create `modules/home/desktop-apps.nix` with `home.packages = builtins.filter (lib.meta.availableOn pkgs.stdenv.hostPlatform) ([ pkgs.slack pkgs.discord pkgs.spotify ] ++ lib.optional pkgs.stdenv.hostPlatform.isLinux pkgs.teams-for-linux);` and verify the file evaluates standalone via `nix-instantiate --eval --strict -E 'import ./modules/home/desktop-apps.nix { pkgs = import <nixpkgs> {}; lib = (import <nixpkgs> {}).lib; }'` or equivalent | ||
| 10 | - [ ] 2.2 Add `./desktop-apps.nix` to the `imports` list in `modules/home/default.nix` and verify `home-manager build --flake .#tom@linux` and `home-manager build --flake .#tom@darwin` both evaluate successfully (run on a machine with Nix installed - not available in this environment) | ||
| 11 | - [ ] 2.3 Verify on the build output (or via `nix eval`) that `tom@darwin`'s closure excludes `teams-for-linux` while `tom@linux`'s includes it, confirming the Linux-only guard works as intended | ||
| 12 | |||
| 13 | ## 3. Claude Code CLI | ||
| 14 | |||
| 15 | - [ ] 3.1 Add `pkgs.claude-code` to `modules/home/dev-tools.nix`'s `home.packages`, guarded with `lib.optional (lib.meta.availableOn pkgs.stdenv.hostPlatform pkgs.claude-code) pkgs.claude-code`, and verify `claude-code` appears on `PATH` after `home-manager build --flake .#tom@linux` (or `.#tom@darwin`) followed by activation on a machine with Nix installed | ||
| 16 | |||
| 17 | ## 4. End-to-end verification | ||
| 18 | |||
| 19 | - [ ] 4.1 Run `nix flake check` on a machine with Nix installed and confirm no evaluation errors for either `homeConfigurations` entry | ||
| 20 | - [ ] 4.2 Run `statix check` and `deadnix` (already used by this repo's `devShells.default`) over the changed files and fix any findings | ||
