`toString` converts a Nix path to a string without registering it as a
build input, causing "custom skill source not found" errors in the Nix
sandbox. String interpolation properly copies the path to the store.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
copytree makes files read-only in Nix sandbox; rglob("DESCRIPTION.md")
then tries to overwrite skill-level copies → PermissionError. chmod
0o644 before copy2 to handle already-existing read-only targets.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When bundled.include is set to a non-empty list, only the listed skills
are installed from the upstream bundled skills directory. When empty
(default), all bundled skills are installed (existing behavior).
Invalid include paths cause a build error with available skills listed.
DESCRIPTION.md files are only copied for categories that have at least
one included skill.