Community研究與資料分析github.com

ferdinandobons/knowledge-transfer

AI 驅動的專案交接工具,適用於 Claude Code 和 Codex:產生入職文件及經過隱私過濾的 AI 記憶,匯入前會先比對當前程式碼進行驗證。

knowledge-transfer 是什麼?

此技能專為專案團隊成員交接設計,能將離職同事的專案知識與 AI 累積的專案記憶打包成交接套件,並協助新同事驗證與匯入。支援 Claude Code 的獨立模式與插件模式,以及 Codex 等讀取 SKILL.md 的代理。技能包含兩個主要階段:匯出階段會分析專案、過濾含有個人隱私的記憶、並依據模板產生 onboarding 文件及 portable 格式的記憶檔案;匯入階段則會根據交接套件中的 manifest、onboarding 文件與記憶,逐一驗證每個記憶引用的檔案路徑在當前程式碼中是否仍存在,並自動處理常見的重新命名情況。最後將有效記憶安裝到新同事的 AI 代理中,並列出摘要報告。此技能特別注重隱私保護,會嚴格過濾姓名、郵件、使用者名稱等個人資訊,並確保所有輸出的記憶引用路徑皆為有效。

相容平台✓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 的新對話。

說明文件

knowledge-transfer 是做什麼的?

在同事之間轉移專案知識:一份簡短的非技術性入職文件,加上 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 — 套件結構與 manifest 綱要
  • 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 定位當前代理的專案記憶來源。
  • 僅讀取限於此專案或儲存庫的記憶。請勿匯出全域使用者偏好或不相關的專案歷史。
  • 若無記憶目錄或無記憶 → 僅產出文件,將 manifest 中的 memories: {"exported": 0, "excluded": 0} 設為 0,並告知使用者此套件不包含記憶。

3. 過濾記憶

嚴格對每一條記憶套用 references/privacy-filter.md。產生可移植版本(改寫後的中性版本)以及每條記憶的排除清單(附原因)。

4. 編寫套件

  • 如果 handover/ 已存在,請停止執行並詢問是否要覆寫。
  • 按照 references/onboarding-template.md 撰寫 handover/ONBOARDING.md。
  • 將每條保留的記憶以可移植格式寫入 handover/memories/<slug>.md。
  • 按照綱要撰寫 handover/manifest.json(提交 SHA 來自 git rev-parse HEAD;如果不是 git 儲存庫則省略 commit,如果 git config 沒有名稱則省略 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 且 manifest 中有 commit,請執行 git diff --stat <commit>..HEAD 查看匯出後哪些區域發生了變更。
  • 對於每一條記憶,檢查其引用的檔案、路徑和識別碼是否仍然存在(使用 Glob/Grep,而非假設)。分類:
    • 有效 — 一切正常 → 按原樣安裝;
    • 過時,可明顯修正 — 例如引用的檔案已重新命名,且新路徑明確無歧義(使用 git log --follow 或唯一搜尋結果)→ 更新記憶主體後安裝;
    • 過時,無明顯修正 — 棄用,記錄一行原因。

3. 安裝

  • 透過當前代理的記憶機制安裝每一條被接受的記憶(請參閱 references/agent-memory.md),保持可移植記憶內容不變,僅根據目標代理的需求調整儲存包裝器或索引。
  • 若 slug 與現有記憶衝突:請勿覆寫。報告衝突並詢問使用者保留哪一個。
  • 如果目標記憶儲存區有索引檔案,則為每條已安裝的記憶附加一行索引(若索引檔案不存在則建立)。如果當前代理禁止直接寫入記憶,則改為建立或呈現經核准的記憶更新工件。

4. 報告

按以下順序向使用者呈現:

  1. ONBOARDING.md 的完整內容(依設計篇幅較短)。
  2. 匯入摘要:已安裝 / 已更新 / 已棄用,附上每條的推理原因。
  3. 結尾說明:技術問題現在可以依賴已匯入的記憶。

邊界情況

情況行為
匯出時無記憶僅文件套件;明確說明。
專案不是 git 儲存庫Manifest 不含 commit;匯入驗證僅依賴存在性檢查。
匯出時 handover/ 已存在詢問後再覆寫。
匯入時 handover/ 遺失停止並提供離職同仁的操作步驟。
匯入時 slug 衝突絕不覆寫;顯示衝突並詢問。
未知的 manifest.version停止;要求使用者更新技能。

相關技能