Community研究与数据分析github.com

知识移交

面向 Claude Code 和 Codex 的 AI 驱动项目交接工具:生成入职文档以及经过隐私过滤的 AI 记忆,并在导入前与当前代码进行验证。

知识移交 是什么?

该技能实现了一个完整的项目知识移交流程,适用于 Claude Code 和 Codex 等 AI 代理。它允许离职同事将项目知识打包成一个包含非技术入职文档和 AI 项目记忆的移交包,存放在项目仓库的 `handover/` 目录下。新同事加入后,可以导入该包并自动验证每段记忆是否与当前代码一致(包括检查文件路径是否存在、是否被重命名等)。工具还严格参考隐私过滤规则,确保不导出用户个人偏好或无关项目历史,同时支持多种 AI 代理(Claude、Codex、Gemini 等)的记忆安装机制。整个流程包括自动模式检测(导入/导出)、记忆过滤、代码验证、冲突处理和详细报告,显著降低了团队交接时的知识损耗和上手成本。

兼容平台✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add ferdinandobons/knowledge-transfer

Installed? Explore more 研究与数据分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

知识移交 是做什么的?

在同事间传递项目知识:一份简短的非技术入职文档以及 AI 积累的项目记忆,一起打包在项目仓库中,让新同事上手时目标明确,其 AI 也能了解情况。

使用方法

Claude Code 独立技能:

/knowledge-transfer            # 自动检测模式(见下文)
/knowledge-transfer export     # 离职同事:构建移交包
/knowledge-transfer import     # 新同事:验证 + 安装记忆,阅读文档

Claude Code 插件安装:

/knowledge-transfer:knowledge-transfer
/knowledge-transfer:knowledge-transfer export
/knowledge-transfer:knowledge-transfer import

Codex 或其他读取 SKILL.md 的代理:

$knowledge-transfer            # 自动检测模式
$knowledge-transfer export     # 离职同事
$knowledge-transfer import     # 新同事

模式检测(无参数)

  1. 如果项目根目录下存在 handover/manifest.json → 宣布进入导入模式。
  2. 否则 → 宣布进入导出模式。

用一行说明检测到的模式并继续。用户可以随时覆盖。

参考文档

生成任何内容前请先阅读以下文档:

  • references/package-format.md — 包结构和清单模式
  • references/privacy-filter.md — 哪些可以导出,哪些不可以
  • references/onboarding-template.md — 文档的结构、语气和长度
  • references/agent-memory.md — 如何在 Claude、Codex 或其他代理中定位和安装记忆

导出阶段

由离职同事在项目根目录下运行。

1. 分析项目

  • 阅读 README、代理指导文件(如果存在,如 CLAUDE.md、AGENTS.md、GEMINI.md、.cursor/rules/ 等)、顶层结构、入口点以及主要配置文件。对于大型代码库,使用子代理而不是内联读取所有内容。
  • 确定:项目的用途、3–7 个主要组件,以及 2–3 个值得叙述的端到端逻辑流程。
  • 检测项目的主导语言(通过 README、文档、最近的提交信息);入职文档使用该语言编写。语言不清楚或混杂时使用英语。

2. 读取记忆

  • 使用 references/agent-memory.md 定位当前代理的项目记忆源。
  • 仅读取定位于此项目或仓库的记忆。不要导出全局用户偏好或不相关的项目历史。
  • 没有记忆目录或没有记忆 → 仅生成文档包,在清单中设置 memories: {"exported": 0, "excluded": 0},并告知用户包中不包含记忆。

3. 过滤记忆

严格对每条记忆应用 references/privacy-filter.md。生成可移植版本(重写后的、中立的版本)以及每条记忆的排除清单及原因。

4. 写入包

  • 如果 handover/ 已存在,则停止并要求用户确认是否覆盖。
  • 按照 references/onboarding-template.md 写入 handover/ONBOARDING.md。
  • 将每条幸存记忆以可移植格式写入 handover/memories/<slug>.md。
  • 按照模式写入 handover/manifest.json(commit SHA 来自 git rev-parse HEAD;如果不是 git 仓库则省略 commit,如果 git 配置没有名称则省略 author)。

5. 最终检查清单 — 在宣布完成前验证

  • 对整个 handover/ 目录树执行 grep 搜索同事的姓名、邮箱和用户名:命中数为零。
  • handover/memories/ 中没有 user 类型的记忆。
  • ONBOARDING.md 的字数在 600–1000 之间(wc -w),并包含模板中的六个章节。
  • 导出的记忆中引用的每个文件/路径在项目中均存在。
  • manifest.json 可解析且计数与实际文件匹配。

向用户报告:包的内容、排除清单及原因,并建议将 handover/ 提交到仓库。未经询问不要提交。


导入阶段

由新同事在克隆后从项目根目录运行。

1. 读取包

  • 读取 handover/manifest.json、handover/ONBOARDING.md 以及 handover/memories/ 中的每个文件。
  • 缺少 handover/ → 停止:说明离职同事必须先运行 /knowledge-transfer export,然后提交结果。
  • manifest.version 未知 → 停止并说明该技能版本过低,无法处理此包。

2. 对照当前代码验证每条记忆

  • 如果仓库是 git 且清单中有 commit,则运行 git diff --stat <commit>..HEAD 查看导出后哪些区域发生了变化。
  • 对于每条记忆,检查其引用的文件、路径和标识符是否仍然存在(使用 Glob/Grep,而非假设)。分类:
    • 有效 — 一切正常 → 按原样安装;
    • 过时,可明显修复 — 例如引用的文件被重命名且新路径明确(通过 git log --follow 或唯一搜索命中)→ 更新记忆正文,然后安装;
    • 过时,无法明显修复 — 丢弃,记录一行原因。

3. 安装

  • 通过当前代理的记忆机制(参见 references/agent-memory.md)安装每条被接受的记忆,保持可移植记忆内容不变,仅在目标代理要求时调整存储包装/索引。
  • 与现有记忆的 Slug 冲突:不要覆盖。报告冲突并询问用户保留哪个。
  • 如果目标记忆存储有索引文件,则为每条安装的记忆追加一行索引(如果不存在则创建)。如果当前代理禁止直接写入记忆,则改为创建或展示经批准的记忆更新工件。

4. 报告

按以下顺序向用户展示:

  1. ONBOARDING.md 的完整内容(设计上它是简短的)。
  2. 导入摘要:已安装 / 已更新 / 已丢弃,每条附一行原因。
  3. 备注:技术问题现在可以依赖导入的记忆。

边界情况

情况行为
导出时无记忆仅包含文档的包;明确说明。
项目不是 git 仓库清单不含 commit;导入验证仅回退到存在性检查。
导出时 handover/ 已存在覆盖前询问。
导入时 handover/ 缺失停止,并给出指导让离职同事先操作。
导入时 Slug 冲突从不覆盖;提出并询问。
manifest.version 未知停止;要求用户更新技能。

相关技能