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 is contained in:
2026-07-21 22:50:37 -04:00
parent 9068aa44f9
commit 5b6c158d2e
15 changed files with 424 additions and 0 deletions

View File

@@ -0,0 +1 @@
# alpha — a top-level skill

View File

@@ -0,0 +1 @@
# delta — another top-level skill

View File

@@ -0,0 +1 @@
# beta — nested under a cosmetic container

View File

@@ -0,0 +1 @@
# not a skill — beta asset that happens to contain SKILL.md

View File

@@ -0,0 +1 @@
# gamma — several containers deep