yichen-skills 运维指南:源码与安装版哈希比对及发布链维护详解
【免费下载链接】yichen-skills项目地址: https://gitcode.com/gh_mirrors/yi/yichen-skills
yichen-skills 是面向 Claude Code 与 Codex 的开源 Skill 合集,涵盖 X 长文草稿上传、微信数据解析、统一搜索、内容归档等 21 个技能。安装之后,最常见的运维问题就是:本地安装目录到底和仓库源码差在哪?本文带你用一条只读哈希比对命令检查源码与安装版差异,并掌握 5 步发布链维护流程,让升级既安全又不覆盖旧版 🛠️
一、先分清两个角色:发布源与安装版
理解运维的前提,是分清两份代码的关系:
| 角色 | 位置 | 说明 |
|---|---|---|
| 公开发布源 | 本仓库(Git 跟踪文件) | 所有 Skill 的唯一权威来源 |
| 安装版 | ~/.agents/skills/等本地目录 | 运行副本,是实际被 Agent 加载的代码 |
三条核心原则(出自 docs/skill-maintenance.md):
- 个人凭据、账号选择、代理、私有核心及其配置只留在本机,不进入公开仓库;
- 修复必须先合并到公开工作区,再测试、发布、安装,不执行双向自动覆盖;
- 安装版多出来的文件或运行产物不算差异,比对只针对 Git 已跟踪的公开文件。
💡 如果还没拿到源码,先克隆仓库,再把各个 Skill 目录原样复制进你的技能加载路径(如
~/.agents/skills/),目录名保持不变:git clone https://gitcode.com/gh_mirrors/yi/yichen-skills
二、一条命令完成只读哈希比对
仓库内置了只读比对脚本 scripts/compare_installed_skills.py,直接运行:
python3 scripts/compare_installed_skills.py # 自定义安装根目录,可重复传入 --local-root(首个命中生效) python3 scripts/compare_installed_skills.py --local-root "$HOME/.agents/skills"它的工作方式对新手非常友好 🔍
- 只算哈希,不动手:对 Git 已跟踪的公开 Skill 文件逐一计算 SHA-256(见 digest 函数),不调用任何 Skill、不读取密钥、不写入也不同步;
- 默认安装根:
~/.agents/skills和~/.codex/skills,可重复指定--local-root覆盖; - 软链接安全:支持根目录是软链接,但不跟随 Skill 内部的嵌套链接,避免误读外部文件;
- 不猜新旧:不按修改时间推断哪个版本更新,也不枚举安装版额外文件和运行产物;
- Grok 插件需显式指定:
yichen-grok-consult是 Codex 插件而非普通 Skill,必须用--grok-plugin-root显式给出插件安装位置,脚本不会自动搜索缓存。
三、读懂比对报告:3 种状态、4 个字段
脚本输出一份 JSON 报告,顶层就两个关键声明:read_only: true和version_precedence_inferred: false(只读、不推断版本新旧)。每个 Skill 一条记录:
| 字段 | 含义 | 新手怎么理解 |
|---|---|---|
status: identical | 公开文件全部一致 | ✅ 无需处理 |
status: different | 存在改动或缺失 | ⚠️ 看下面两个字段定位 |
status: not_found | 本地未安装该 Skill | 想用时再装 |
identical/changed | 逐文件列出一致 / 哈希不同的路径 | 精确到文件,不用自己 diff |
missing_locally | 公开版有、本地缺的文件 | 升级安装即可补齐 |
nested_links_skipped | 因内部软链接被跳过的文件 | 属于安全跳过,非错误 |
两个容易忽略的细节:
- 别名机制:部分 Skill 的规范安装名不带
yichen-前缀,脚本内置了 ALIASES 映射,例如yichen-volc-asr会同时尝试volc-asr,避免"其实装了但没找到"的误报; - 排除目录:
work、.git、node_modules、outputs、logs、private等运行目录被列入 EXCLUDED 名单,本地备份和工作产物不会污染比对结果。
四、5 步维护流程:从合并到安装
确认差异后,按 源码与安装版维护 的固定流程操作:
- 建独立工作区:从远端最新
main检出,核对 public(公开)/ installed(安装版)/ private(本机私有)三类来源; - 只迁移授权增量:保留公开许可证、来源说明、环境变量和安全门禁,仅迁移明确授权发布的通用增量;
- 先备份再动刀:把受影响文件备份到本机
work/,记录路径、哈希和 Git 提交号;安装前再核一次基线,发现并发变更就停止覆盖该文件; - 离线验证:运行受影响模块的离线测试与必要集成验证,日志中不得出现凭据或私人内容;
- 推送后回读:回读远端提交确认合入,再核对安装版;新增插件代码可能需要下一次会话重新加载,不要擅自中断当前任务。
五、发布链维护:这些 Skill"故意不一样"
比对出差异后别急着覆盖——部分 Skill 的公开版与本机私有实现有意采用不同发布链(见 有意保留的不同发布链):
| Skill | 公开版本 | 本机私有部分(哈希不同属正常) |
|---|---|---|
| X 文章草稿上传器 | 固定 tag 的公开版,能力以自身 README 为准 | 独立的私有 Ailu 集成,运行时与信任契约不同;私有版本号大不代表可整包公开 |
| 剪映编辑 | 公开入口 Skill | 私有核心 另行授权,源码/运行库哈希固定,差异须按配套核心验证,不能改固定值绕过校验 |
| ASR 路由 | 环境变量注入配置 | 本机可存在目录外执行器和钥匙串适配;不能因 Skill 目录缺文件就判定未安装 |
| 企微官方 CLI | 可配置 helper | 私有 helper 可以不同,绝不把本机路径写进公开代码 |
| Grok 咨询插件 | MCP + 授权策略 + Skill 入口 一起核对 | 个人.mcp.json的代理与登录态配置不被覆盖;入口相同不等于插件完整相同 |
另外,系统和插件缓存由各自安装机制管理;没有本机独立入口的公开 Skill 不自动安装或删除 🧩
六、新手高频疑问
- Q:比对显示某文件
changed,可以直接覆盖吗?先查它是否属于上表的"不同发布链";属于则保留本地版本,不属于才走备份 → 合并 → 验证流程。 - Q:脚本会修改我的安装目录吗?不会。报告自带
read_only: true声明,全程零写入。 - Q:为什么我安装版里多出来的文件没被报告?脚本只比对 Git 跟踪的公开文件,安装侧额外文件和运行产物不在枚举范围内,这是刻意设计。
- Q:新装的插件不生效?新增插件代码可能需要下一次会话重新加载,按流程等待即可。
七、相关文件速查
- 维护规范总纲:docs/skill-maintenance.md
- 只读比对脚本:scripts/compare_installed_skills.py
- 别名与排除目录实现:ALIASES / EXCLUDED
- 上传器公开版说明:yichen-x-article-draft-uploader/README.md
- 剪映公开入口说明:yichen-jianying-edit/README.md
- Grok 插件说明:plugins/yichen-grok-consult/README.md
【免费下载链接】yichen-skills项目地址: https://gitcode.com/gh_mirrors/yi/yichen-skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考