feat: package skills as per-skill Nix derivations (task 0001)
Add the content tier: a standalone flake that auto-discovers each skill (a directory containing a SKILL.md, at any depth) and exposes it as an individually addressable derivation built by lib.mkSkill. Directories without a SKILL.md are descended through as cosmetic containers; once a SKILL.md is found, that directory's subfolders are its assets, not further skills. Skill names must be globally unique across the tree — a collision is a hard eval-time error, not a warning. A fixture-driven skill-build check under `nix flake check` exercises the recursive walk, the builder, the SKILL.md-at-$out-root contract, the eval-time name passthru, and the collision error. The repo ships no real skill content yet, so packages.<system> is empty today.
This commit was merged in pull request #1.
This commit is contained in:
1
checks/fixtures/valid/alpha/SKILL.md
Normal file
1
checks/fixtures/valid/alpha/SKILL.md
Normal file
@@ -0,0 +1 @@
|
||||
# alpha — a top-level skill
|
||||
1
checks/fixtures/valid/delta/SKILL.md
Normal file
1
checks/fixtures/valid/delta/SKILL.md
Normal file
@@ -0,0 +1 @@
|
||||
# delta — another top-level skill
|
||||
1
checks/fixtures/valid/group/beta/SKILL.md
Normal file
1
checks/fixtures/valid/group/beta/SKILL.md
Normal file
@@ -0,0 +1 @@
|
||||
# beta — nested under a cosmetic container
|
||||
1
checks/fixtures/valid/group/beta/tools/SKILL.md
Normal file
1
checks/fixtures/valid/group/beta/tools/SKILL.md
Normal file
@@ -0,0 +1 @@
|
||||
# not a skill — beta asset that happens to contain SKILL.md
|
||||
1
checks/fixtures/valid/one/two/three/gamma/SKILL.md
Normal file
1
checks/fixtures/valid/one/two/three/gamma/SKILL.md
Normal file
@@ -0,0 +1 @@
|
||||
# gamma — several containers deep
|
||||
Reference in New Issue
Block a user