Skip to content

Remove nix-ai-tools package support (Vibe Kanban) - #28

Merged
impactaky merged 2 commits into
mainfrom
impactaky/7718-remove-ai-tools
Dec 15, 2025
Merged

Remove nix-ai-tools package support (Vibe Kanban)#28
impactaky merged 2 commits into
mainfrom
impactaky/7718-remove-ai-tools

Conversation

@impactaky

@impactaky impactaky commented Dec 15, 2025

Copy link
Copy Markdown
Owner

Summary

Remove the nix-ai-tools flake input to simplify the codebase. Alternative tools like mise can handle AI tooling installation more flexibly with simpler configuration and broader ecosystem support.

Changes

  • flake.nix: Removed nix-ai-tools input and simplified the loadPackages function
  • packages.nix: Simplified function signature from pkgs: nix-ai-tools: to pkgs:
  • test/packages.nix: Simplified function signature to match
  • openspec/project.md: Removed nix-ai-tools references from documentation

Why

The nix-ai-tools input added complexity to the flake for minimal benefit:

  • Users can use mise, direct nixpkgs packages, or other package managers for AI development tools
  • Reduces maintenance burden by removing an external flake dependency
  • Simplifies the packages.nix interface for users

Breaking Change

Users who were using packages from nix-ai-tools in their packages.nix will need to migrate to alternative installation methods.


This PR was written using Vibe Kanban

Summary by CodeRabbit

  • Chores

    • Removed nix-ai-tools integration from the project.
  • Documentation

    • Updated specs and project documentation to reflect the removal.
    • Added migration guidance for users to use alternative package managers like mise or direct nix installation.
  • Refactor

    • Simplified configuration by removing nix-ai-tools dependencies.

✏️ Tip: You can customize this high-level summary in your review settings.

## Proposal: remove-ai-tools-package

**Created files:**
- `openspec/changes/remove-ai-tools-package/proposal.md` - Describes why and what changes
- `openspec/changes/remove-ai-tools-package/tasks.md` - Implementation checklist
- `openspec/changes/remove-ai-tools-package/specs/nix-flake/spec.md` - Delta spec documenting the removal

**Summary:**
- Removes `nix-ai-tools` input from `flake.nix`
- Simplifies `packages.nix` and `test/packages.nix` function signatures
- Updates documentation in `openspec/project.md`
- Migration path: Users should use mise or other tools for AI development tooling

The proposal passes `openspec validate --strict`. Ready for your review and approval before implementation.
**Files modified:**

1. **`flake.nix`** - Removed `nix-ai-tools` input and simplified the `loadPackages` function to no longer pass the `nix-ai-tools` parameter

2. **`packages.nix`** - Changed from `pkgs: nix-ai-tools: with pkgs; [...]` to `pkgs: with pkgs; [...]`

3. **`test/packages.nix`** - Changed from `pkgs: nix-ai-tools: with pkgs; [...]` to `pkgs: with pkgs; [...]`

4. **`openspec/project.md`** - Removed references to nix-ai-tools from documentation

5. **`openspec/changes/remove-ai-tools-package/tasks.md`** - Marked implementation tasks as complete

**Note:** Nix is not available in this environment, so `nix flake check` could not be run locally. The Docker-based test suite (task 2.2) will validate the changes when CI runs.
@impactaky impactaky changed the title Remove ai-tools packages support (vibe-kanban) Remove nix-ai-tools package support (Vibe Kanban) Dec 15, 2025
@coderabbitai

coderabbitai Bot commented Dec 15, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

This PR removes the nix-ai-tools dependency and integration from the Nix flake configuration. Changes include removing the flake input, updating function signatures to drop the nix-ai-tools parameter, simplifying package loading logic, and updating documentation. No new functionality is introduced.

Changes

Cohort / File(s) Change Summary
Flake configuration
flake.nix
Removed nix-ai-tools from flake inputs; updated outputs function signature to accept only nixpkgs; simplified loadPackages from 2-argument to 1-argument function; removed nix-ai-tools argument from import call; adjusted package path resolution to drop nix-ai-tools.packages reference.
Package definitions
packages.nix, test/packages.nix
Replaced packages list with empty list in packages.nix; updated test/packages.nix function signature from (pkgs, nix-ai-tools) to (pkgs); changed package reference scope to directly use pkgs.
Project documentation
openspec/project.md
Removed nix-ai-tools from Nix components list and Package Sources section.
Change specification
openspec/changes/remove-ai-tools-package/proposal.md, openspec/changes/remove-ai-tools-package/specs/nix-flake/spec.md, openspec/changes/remove-ai-tools-package/tasks.md
Added proposal, migration guidance spec, and implementation/validation task documentation for nix-ai-tools removal.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Verify flake.nix import and loadPackages changes don't break the build system
  • Confirm that single-parameter function signatures in packages.nix and test/packages.nix integrate correctly with the updated flake configuration
  • Cross-check that all nix-ai-tools references have been consistently removed across configuration and documentation files

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Remove nix-ai-tools package support' accurately and concisely describes the main change: removing nix-ai-tools integration from the flake and simplifying related functions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch impactaky/7718-remove-ai-tools

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between aa29157 and f427b12.

📒 Files selected for processing (7)
  • flake.nix (2 hunks)
  • openspec/changes/remove-ai-tools-package/proposal.md (1 hunks)
  • openspec/changes/remove-ai-tools-package/specs/nix-flake/spec.md (1 hunks)
  • openspec/changes/remove-ai-tools-package/tasks.md (1 hunks)
  • openspec/project.md (1 hunks)
  • packages.nix (1 hunks)
  • test/packages.nix (1 hunks)
🧰 Additional context used
📓 Path-based instructions (7)
openspec/changes/**/tasks.md

📄 CodeRabbit inference engine (openspec/AGENTS.md)

Create tasks.md with numbered implementation checklist items using markdown checkbox format - [ ] for tracking progress

Files:

  • openspec/changes/remove-ai-tools-package/tasks.md
openspec/changes/**/*.md

📄 CodeRabbit inference engine (openspec/AGENTS.md)

openspec/changes/**/*.md: Run openspec validate [change] --strict before sharing proposals to resolve validation issues
Use clear references with file.ts:42 format for code locations, reference specs as specs/auth/spec.md, and link related changes and PRs

Files:

  • openspec/changes/remove-ai-tools-package/tasks.md
  • openspec/changes/remove-ai-tools-package/specs/nix-flake/spec.md
  • openspec/changes/remove-ai-tools-package/proposal.md
openspec/project.md

📄 CodeRabbit inference engine (openspec/AGENTS.md)

Maintain project conventions in project.md and reference it during all work planning

Files:

  • openspec/project.md
openspec/changes/**/specs/**/*.md

📄 CodeRabbit inference engine (openspec/AGENTS.md)

openspec/changes/**/specs/**/*.md: Write delta specs using ## ADDED|MODIFIED|REMOVED|RENAMED Requirements sections with at least one #### Scenario: per requirement
For MODIFIED requirements, copy the entire existing requirement block from specs and paste under ## MODIFIED Requirements, then edit to reflect new behavior
Use correct scenario formatting with #### Scenario: headers (4 hashtags) followed by bullet points with **WHEN** and **THEN** statements; avoid using ###, bold, or bullet points for scenario headers
Use SHALL/MUST for normative requirements; use should/may only when intentionally non-normative

Files:

  • openspec/changes/remove-ai-tools-package/specs/nix-flake/spec.md
openspec/changes/**/proposal.md

📄 CodeRabbit inference engine (openspec/AGENTS.md)

openspec/changes/**/proposal.md: Create proposal.md with Why, What Changes, and Impact sections when creating a new change proposal
In proposal.md, mark breaking changes with BREAKING annotation in the What Changes section

Files:

  • openspec/changes/remove-ai-tools-package/proposal.md
packages.nix

📄 CodeRabbit inference engine (CLAUDE.md)

Use packages.nix for user-customizable package list; edit this file to modify available packages

Files:

  • packages.nix
flake.nix

📄 CodeRabbit inference engine (CLAUDE.md)

Use flake.nix to define multi-architecture package environment for x86_64 and aarch64 on Linux/macOS

Files:

  • flake.nix
🧠 Learnings (7)
📓 Common learnings
Learnt from: CR
Repo: impactaky/shelffiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-14T12:03:06.329Z
Learning: Applies to flake.nix : Use `flake.nix` to define multi-architecture package environment for x86_64 and aarch64 on Linux/macOS
📚 Learning: 2025-12-14T12:03:44.126Z
Learnt from: CR
Repo: impactaky/shelffiles PR: 0
File: openspec/AGENTS.md:0-0
Timestamp: 2025-12-14T12:03:44.126Z
Learning: Applies to openspec/changes/**/*.md : Run `openspec validate [change] --strict` before sharing proposals to resolve validation issues

Applied to files:

  • openspec/changes/remove-ai-tools-package/tasks.md
📚 Learning: 2025-12-14T12:03:06.329Z
Learnt from: CR
Repo: impactaky/shelffiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-14T12:03:06.329Z
Learning: Applies to flake.nix : Use `flake.nix` to define multi-architecture package environment for x86_64 and aarch64 on Linux/macOS

Applied to files:

  • openspec/changes/remove-ai-tools-package/tasks.md
  • openspec/project.md
  • openspec/changes/remove-ai-tools-package/specs/nix-flake/spec.md
  • flake.nix
  • test/packages.nix
📚 Learning: 2025-12-14T12:03:06.329Z
Learnt from: CR
Repo: impactaky/shelffiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-14T12:03:06.329Z
Learning: Applies to packages.nix : Use `packages.nix` for user-customizable package list; edit this file to modify available packages

Applied to files:

  • openspec/project.md
  • openspec/changes/remove-ai-tools-package/specs/nix-flake/spec.md
  • packages.nix
  • flake.nix
  • test/packages.nix
📚 Learning: 2025-12-14T12:03:06.329Z
Learnt from: CR
Repo: impactaky/shelffiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-14T12:03:06.329Z
Learning: Applies to entrypoint/env.sh : Set XDG base directory variables in `entrypoint/env.sh` pointing to repository subdirectories using `${PATH_ID}` for user/group-specific paths to prevent conflicts

Applied to files:

  • openspec/project.md
📚 Learning: 2025-12-14T12:03:06.329Z
Learnt from: CR
Repo: impactaky/shelffiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-14T12:03:06.329Z
Learning: Applies to entrypoint/{bash,zsh,fish} : Implement shell-specific launchers in `entrypoint/{bash,zsh,fish}` that set appropriate shell variables (ZDOTDIR for zsh, HISTFILE for bash) and fall back to `launch_in_bwrap.sh` when Nix packages unavailable

Applied to files:

  • openspec/project.md
  • packages.nix
  • test/packages.nix
📚 Learning: 2025-12-14T12:03:06.329Z
Learnt from: CR
Repo: impactaky/shelffiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-14T12:03:06.329Z
Learning: Applies to test/**/*.bats : Use BATS framework tests to verify each shell correctly loads configurations from `config/` directories with environment variables (SHELFFILES_*_TEST="loaded") to verify loading

Applied to files:

  • packages.nix
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (8)
packages.nix (1)

1-2: LGTM! Function signature correctly simplified.

The function signature has been successfully simplified to take only pkgs as a parameter, removing the nix-ai-tools dependency. The empty package list is intentional and users can customize this file by adding packages from pkgs as needed.

openspec/project.md (1)

31-31: LGTM! Documentation correctly updated.

The reference to packages.nix is accurate and consistent with the removal of nix-ai-tools from the project.

openspec/changes/remove-ai-tools-package/specs/nix-flake/spec.md (1)

1-12: LGTM! Spec properly formatted and documented.

The removal requirement is well-documented with clear reasoning and migration guidance. The spec follows the required format with proper scenario structure using #### Scenario: headers and WHEN/THEN statements.

test/packages.nix (1)

1-8: LGTM! Test package configuration correctly updated.

The function signature has been successfully simplified to accept only pkgs as a parameter, maintaining all necessary test dependencies (fish, zsh, bats) for the test suite.

openspec/changes/remove-ai-tools-package/proposal.md (1)

1-16: LGTM! Proposal properly structured and documented.

The proposal follows the required format with clear Why, What Changes, and Impact sections. The breaking change is properly annotated with BREAKING, and migration guidance is provided for affected users.

flake.nix (3)

7-7: LGTM! Input parameter correctly removed.

The nix-ai-tools input has been successfully removed from the outputs parameter list, consistent with the removal of the corresponding flake input.


18-22: LGTM! Function signature and import correctly simplified.

The loadPackages function signature has been successfully simplified to accept only two parameters (_: pkgs:), and the import call at line 22 correctly passes a single argument to match the updated packages.nix signature.


28-28: LGTM! Function call correctly updated.

The loadPackages call now correctly passes two arguments (system and nixpkgs.legacyPackages.${system}) matching the simplified function signature, removing the now-obsolete nix-ai-tools.packages.${system} parameter.

Comment thread openspec/changes/remove-ai-tools-package/tasks.md
@impactaky
impactaky merged commit 40121dd into main Dec 15, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant