Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

skill-manager · 技能管理器

技能本体只留一份,项目里全是引用 —— 用 NTFS 目录联接替代复制,让 AI 编程工具的 skills 技能可维护、可同步、可进 git。

License Go Platform Release Downloads

在 Claude Code、opencode 等 AI 编程工具里,技能(skill) 是一个包含 SKILL.md 的文件夹:把它放进项目目录,AI 就会按照你的固定流程、规范、工作流来干活。

技能一多,复制粘贴式的管理就崩了——改一处,所有项目的副本全旧。skill-managerWindows 目录联接(Junction) 把技能"引用"进项目:

  • 技能本体永远留在技能库,项目里只是链接,更新自动同步到所有项目
  • 创建链接不需要管理员权限(符号链接才需要)
  • 每个项目自动维护一份清单,换机器后按一个键全部重建

目录

界面预览

启动后依次选择「技能库目录」和「项目技能目录」,即可进入主界面:

⚙ 技能管理器
库: D:\skills   项目: D:\project\.opencode\skills

╭────────────────────────────────────────────────────╮ ╭─────────────────────────────────────────╮
│   技能库 (4)                                       │ │项目目录 (2)                             │
│                                                    │ │已链接 1 · 失效 0 · 外来 1               │
│  [ ] code-review                                   │ │✓ tdd → D:\skills\tdd                    │
│  Review the changes since a fixed point (commit, b…│ │⚠ notes                                  │
│                                                    │ │                                         │
│  [✓] tdd                                           │ │清单 1 项(r 键重建)                    │
│  Test-driven development. Red-green-refactor       │ │                                         │
│                                                    │ │                                         │
│  [ ] gh                                            │ │                                         │
│  Use when working with GitHub CLI (gh)             │ │                                         │
│                                                    │ │                                         │
│  [ ] siyuan-api                                    │ │                                         │
│  SiYuan (思源笔记) REST API skill                  │ │                                         │
│                                                    │ │                                         │
│  ...                                               │ │                                         │
╰────────────────────────────────────────────────────╯ ╰─────────────────────────────────────────╯
就绪 · 技能 4 · 已链接 1 · 失效 0 · 外来 1
↑↓ 移动 · Space 链接/解除 · Enter 详情 · / 过滤 · d 清理失效 · r 重建 · s 切换目录 · q 退出
  • 左栏:技能库列表。[✓] 已链接 · [ ] 未链接 · [!] 链接已失效 · [⚠] 同名位置是普通文件夹
  • 右栏:项目目录现状,每个链接指向哪里一目了然

功能特性

  • 零复制 — 技能本体只在技能库存一份,所有项目通过目录联接引用,技能更新全局生效
  • 免管理员 — 目录联接(Junction)是 NTFS 原生能力,普通用户权限即可创建
  • TUI 交互 — 终端全键盘操作:空格链接/解除、/ 过滤、Enter 预览技能内容,不用记命令
  • 失效链接识别 — 技能库目录被移动/删除后,链接自动标记为失效,d 键一键清理(有确认)
  • 清单可进 git — 项目目录内自动维护 .skill-links.json,换机器/同事拉代码后 r 键重建全部链接
  • 外来目录保护 — 同名位置存在普通文件夹时拒绝覆盖,绝不误删
  • 会话记忆 — 记住上次的目录组合,启动回车即进
  • 单文件分发 — 静态编译 exe,零依赖,约 4 MB,无需安装

工作原理

技能库目录                          项目技能目录
D:\skills\tdd\SKILL.md  ──Junction──►  D:\project\.opencode\skills\tdd
(本体,唯一副本)                      (目录联接,仅引用)
操作 机制
链接 mklink /J 创建目录联接(无需管理员权限)
识别 读取 NTFS 重解析点,区分 junction / 符号链接 / 普通目录
解除 只删除链接本身,技能库内容永不触碰
重建 依据 .skill-links.json 清单一键恢复

技术栈:Go + Bubble Tea(opencode 同款 TUI 库),列表/输入/翻页使用官方 bubbles 组件;目录选择内嵌 Windows 原生文件夹对话框,不依赖外部文件。

安装

从 Release 下载(推荐)

前往 Releases 下载 skill-manager-vX.Y.Z-windows-amd64.exe,解压即用。

要求:Windows 10/11 64 位,技能库与项目目录必须位于 NTFS 磁盘(FAT32 / U 盘不支持目录联接)。无需管理员权限、无需联网。

自行构建

需要 Go 1.26+:

go build -trimpath -ldflags "-s -w" -o skill-manager.exe .

或直接运行打包脚本(产出单文件 exe):

.\build.ps1

使用指南

  1. 选择技能库目录 —— 技能本体的存放位置(每个技能是一个含 SKILL.md 的文件夹)。支持预设库、Windows 原生目录选择框、手动输入
  2. 选择项目技能目录 —— 想让技能"出现"的位置(例如项目的 .opencode\skills.claude\skills
  3. 主界面操作 —— 空格键链接/解除,按需过滤、预览、清理
按键 功能
/ j / k 移动光标
Space 链接 / 解除链接(即时生效,同步更新清单)
Enter 查看技能内容(SKILL.md)
/ 模糊过滤(Esc 退出并清空)
d 清理失效链接(确认框)
r 从清单重建全部链接
s 重新选择目录
q / Ctrl+C 退出

自定义技能库预设

程序同目录的 skill-manager.config.json 可手动编辑,把自己的技能库加入启动列表:

{
  "lastLibrary": "",
  "lastProject": "",
  "presets": ["D:\\my-skills", "E:\\team-skills"]
}

程序放在可写目录即可(如 C:\Program Files 等只读目录会无法保存配置)。

常见问题

为什么不用符号链接(symbolic link)? 符号链接在 Windows 上需要管理员权限或开发者模式;目录联接(Junction)是普通用户权限就能创建的 NTFS 原生能力,对文件夹场景两者效果一致。

技能更新后项目侧会自动同步吗? 会。链接只是引用,技能库里的改动立即对链接了它的所有项目生效。

换电脑 / 同事拉下代码后链接全没了怎么办? 目录联接本身无法提交进 git,但 .skill-links.json 清单可以。拉到项目后运行本工具选好目录,按 r 键一键重建。

链接显示失效([!])是怎么回事? 技能库目录被移动或删除了。按 d 清理失效链接,或修复技能库路径后按 r 重建。

项目目录里出现 标记的普通文件夹会被动吗? 不会。工具只管理自己创建的链接,外来目录只提示不触碰。

友情链接

  • Linux.do —— 中文开发者社区,AI 编程工具与效率工具爱好者的聚集地

开发

go test ./...                    # 单元测试(junction 生命周期、断链、安全删除、TUI 全流程)
go vet ./...                     # 静态检查
.\build.ps1                      # 打包 exe

真实技能库集成测试(可选):

$env:SKM_TEST_LIB = "C:\path\to\skills"
$env:SKM_TEST_PROJ = "D:\path\to\temp-proj"
go test ./core/ -run TestRealLibraryIntegration -v

许可证

MIT

About

技能管理器:用 NTFS 目录联接把 AI 工具的 skills 技能链接进项目,本体零复制、免管理员、清单一键重建。Go + Bubble Tea TUI

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages