opencode: avoid IFD for skill paths

Classify derived skill files and directories during builds while preserving direct handling for literal paths.
This commit is contained in:
Austin Horstman
2026-08-05 15:04:57 -05:00
parent d330408f81
commit 7ccdf17fdd
3 changed files with 49 additions and 15 deletions

View File

@@ -1,8 +1,9 @@
{ pkgs, ... }:
{ realPkgs, ... }:
let
src = pkgs.writeTextDir "skills/external-skill/SKILL.md" ''
# External Skill
src = realPkgs.runCommand "opencode-ifd-skills-directory" { } ''
mkdir -p "$out/skills/external-skill"
echo '# External Skill' > "$out/skills/external-skill/SKILL.md"
'';
in
{

View File

@@ -1,24 +1,24 @@
{ pkgs, ... }:
{ realPkgs, ... }:
let
src = pkgs.writeTextDir "skills/external-skill/SKILL.md" ''
# Mock Skill
This content simulates a skill living inside a package source.
src = realPkgs.runCommand "opencode-ifd-skill-source" { } ''
mkdir -p "$out/skills/external-skill"
echo '# External Skill' > "$out/skills/external-skill/SKILL.md"
'';
in
{
programs.opencode = {
enable = true;
skills = {
# We reference the specific subfolder inside the store path
internal-skill = "${src}/skills/external-skill";
directory = "${src}/skills/external-skill";
file = "${src}/skills/external-skill/SKILL.md";
};
};
nmt.script = ''
assertFileExists home-files/.config/opencode/skills/internal-skill/SKILL.md
assertFileContent home-files/.config/opencode/skills/internal-skill/SKILL.md \
assertFileContent home-files/.config/opencode/skills/directory/SKILL.md \
"${src}/skills/external-skill/SKILL.md"
assertFileContent home-files/.config/opencode/skills/file/SKILL.md \
"${src}/skills/external-skill/SKILL.md"
'';
}