builtin-skills
在为 Crush 创建新的内置技能、编辑现有内置技能(内部/技能/内置/)或用户需要了解嵌入式技能系统如何工作时使用。 --- # 内置技能 Crush 通过 `internal/skills/builtin/` 将技能直接嵌入到二进制文件中。这些始终可用,无需用户配置。 ## 工作原理 - 每个技能都位于 `internal/skills/builtin/<skill-name>/SKILL.md` 中。 - 树在编译时通过 `internal/skills/embed.go` 中的 `//go:embedbuiltin/*` 嵌入。 - `DiscoverBuiltin()` 遍历嵌入式 FS,解析每个 `SKILL.md`,并使用 `crush://skills/` 前缀设置路径(例如,`crush://skills/jq/SKILL.md`)。 - View 工具解析来自嵌入式 FS 的 `crush://` 路径,而不是磁盘。 - 具有相同名称的用户技能会覆盖内置函数(在“Deduplicate()”中最后出现的内容获胜)。 ## 添加新的内置技能 1. 使用 YAML frontmatter(`name`、`description`)和 markdown 指令创建 `internal/skills/builtin/<skill-name>/SKILL.md`。目录名称必须与“名称”字段匹配。 2. 不需要额外的接线 - `//go:embedbuiltin/*` 会自动选择新目录。 3. 在 `internal/skills/skills_test.go` 的 `TestDiscoverBuiltin` 中添加测试断言以验证发现。 4. 构建和测试:`go build 。 && go test ./internal/skills/...` ## 现有内置技能 |技能|目录 |描述 | | -------------- | ----------------------- | ------------------------------------------------------ | | `crush-config` | `内置/crush-config/` |粉碎配置帮助| | `压钩` | `内置/crush-hooks/` |编写、配置和调试挂钩 | | `jq` | `内置/jq/` | jq JSON处理器使用指南 |
更新日志: Source: GitHub https://github.com/charmbracelet/crush
评论加载中...