Claude Skill
Kyure-A/agent-skills-nix
使用 Nix 声明式管理 Claude Skill。为基于 Nix 的环境提供可复现、版本控制的代理技能配置。
概览
仓库信息
安装这个 Skill
git clone https://github.com/Kyure-A/agent-skills-nix.gitRegistry 信息
项目简介
一个基于 Nix 的工具,用于声明式管理 Claude Skill,实现可复现、版本控制的代理技能配置。
Declarative management of Agent Skills on Nix
要点
- 使用 Nix 表达式进行声明式技能定义
- 可复现且版本控制的技能配置
- 与 Nix 生态系统的无缝集成
- 支持多种技能来源和依赖管理
使用场景
- 在基于 Nix 的开发环境中管理 Claude Skill
- 跨团队共享和复制技能配置
- 在 CI/CD 流水线中自动化技能部署
- 跨机器保持一致的代理行为
README 摘要
# agent-skills-nix Declarative management of Agent Skills (directories containing `SKILL.md`) with flake-pinned sources, discovery, selection, bundling, and Home Manager integration. ## Concepts - **sources**: Named inputs (flake or path) pointing at a skills root (`subdir`). Optional `idPrefix` namespaces discovered skill IDs to avoid collisions across sources. - **discover**: Recursively scans sources for directories that contain `SKILL.md`, producing a catalog. Skills can be nested (e.g. `ecosystem/c-ecosystem/`) and their IDs use `/` as separator. - **skills.enable / skills.enableAll / skills.explicit**: Declaratively pick discovered skills, enable-all (global or by source list), and explicitly specified ones; no accidental auto-install unless you opt in. - **targets**: Agent-specific destinations synced from a store bundle (structure: `link`, `symlink-tree`, `copy-tree`). Targets are opt-in (`enable = false` by default). The `dest` option supports shell variable expansion at runtime (e.g. `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills`). See **Default target paths** below. ## Source filters Each source supports optional filters to control discovery: - **`idPrefix`** (`null | string`, default: `null`): Prefix prepended to discovered skill IDs. Useful when multiple sources expose the same relative path, e.g. `idPrefix = "openai";` turns `pdf` into `openai/pdf`. - **`filter.maxDepth`** (`null | int`, default: `null`): Maximum recursion depth for SKILL.md discovery. `null` = unlimited (capped internally at 100 to guard against symlink loops), `1` = immediate children only, `2` = one level of nesting. Set to `1` to restore pre-recursive (flat-only) behavior. - **`filter.nameRegex`** (`null | string`, default: `null`): Regex matched against the skill's relative path (