Expose lib.mkSkillsShellHook, which takes a list of selected skill derivations and returns a dev-shell shellHook string. On shell entry the hook symlinks each selected skill as a direct child of the project's .claude/skills/, pointing into the store. It is stateless: each entry first removes only store-pointing symlinks (deselected skills included), then relinks the current selection, leaving hand-authored real directories untouched and regenerating a self-ignoring .gitignore of the managed names. Add a nix flake check that sources the produced hook against a fixture project and asserts placement, stale-removal, the collision guard, non-store-symlink survival, and the .gitignore contents.
2.4 KiB
2.4 KiB