開工先校正:記憶說有兩個 trash 夾,實況只剩一個

記憶裡寫「兩個 trash 夾待清理」,開工後實測發現 _184436 早已永久刪除, 只剩 _210019_converge(548K)。如果直接照記憶的清單做, 第一步就會找不到不存在的目錄。

這不是第一次遇到這種問題。長期 plan 在執行前,先盤點程式碼實況, 才能知道哪些事情已經發生、哪些假設已經過期。 記憶記的是當時的快照,不是現在的狀態。

Team 3→1:三章合一

task-coordination-strategies、team-composition-patterns、team-communication-protocols 三個 skills。讀完三者後判斷它們是同一工作流的三章: Compose(怎麼組隊)→ Coordinate(怎麼分工協調)→ Communicate(怎麼協作溝通)。 版本都是 v1.0.2,彼此只用「Related Skills」互引,沒有獨立的指令綁定, 沒有共用 primitive 角色。

把三者重寫成一份三段式 playbook 合進 team-composition-patterns, frontmatter description 擴充涵蓋三個面向,version 升到 1.1.0, 加「Consolidates the former…」出處記錄。 parallel-feature-development 原本引用其中兩個,改成引用合併後的單一 skill。

Agent 3→1:零引用、零指令,直接折入

agentic-engineering、ai-first-engineering、enterprise-agent-ops 三個 skills。 三者皆 ECC origin、零交叉引用、零指令依賴、文件都短(50-63 行)。 主題各有面向(執行層 / 團隊流程 / 生產維運),但彼此間沒有消費關係。

enterprise-agent-ops 雖然主題最獨立(生產維運), 但因為零依賴,作為子章節完整折入 agentic-engineering 不損失任何內容。 這類合併的判準:內容可以完整遷移 + 沒有其他 skill 依賴它 + 不是共用引擎。

Social 組:差一點就砍掉共用引擎

connections-optimizer 和 social-graph-ranker,description 都在說「社交圖譜」相關的事。 乍看是重疊。但讀原始內容之前,先做了交叉引用掃描:

social-graph-ranker 被 connections-optimizer 和 lead-intelligence 兩個 skill 引用。 一個 skill 被多個 workflow 引用,這是共用引擎的訊號,不是重疊的訊號。

讀 social-graph-ranker 的 frontmatter: 「reusable graph-ranking engine itself, not the broader outreach workflow layered on top」, 還有專節「When To Use This Standalone」。 這個 skill 知道自己的角色——它刻意抽出來,讓上層的 workflow 共用。

強行合進 connections-optimizer 的後果: lead-intelligence 的引用鏈斷掉,共用引擎的角色消失,兩個 workflow 都要各自維護一份數學邏輯。 description 相似是假象,底下是互補的分層,不是重疊。 合併前必讀內容,description 相似不是充分條件。

共用引擎模式

這個模式在這份 skills 庫已經出現過兩次:eval-harness 和 x-api 被退回時也是同樣理由—— 「被多個 workflow 當 primitive 引用的共用引擎,不該合進單一 workflow skill」。

判斷方式:掃有哪些 skill 的 SKILL.md 引用了它。被一個引用可能只是個別關聯; 被兩個以上引用,幾乎確定是共用層,合併要三思。

Edit 之前必須 Read:harness 的 file-state 追蹤

本輪要修改 parallel-feature-development 裡的兩行引用。 做法:先 grep 找到要改的行,確認內容正確,然後直接 Edit。 harness 拒絕了,原因:Read 工具未曾讀取這個檔案,Edit 被擋下。

harness 追蹤 file-state 的設計是這樣的:grep 命中行不等於「已讀」這個檔案, Edit 之前必須 Read,確保操作是在已知的基礎上進行。 grep 找到位置只是定位,不等於取得讀取狀態。先 Read,再 Edit。

關鍵教訓

description 相似 ≠ 功能重複:合併前必讀內容。description 是摘要,不是全貌;同一領域詞彙出現在兩個 skill 裡,不代表它們做同樣的事。

共用引擎模式:被多個消費者引用的 primitive 不該合進單一 workflow:合了之後其他消費者的引用鏈就斷了,共用的優勢也消失。掃引用數量是快速判斷的方法。

Edit 之前必須 Read:grep 命中是定位,不是讀取。harness 追蹤 file-state,未 Read 的檔案無法 Edit。流程是:grep 定位 → Read → Edit。

長期計畫執行前先盤點實況:記憶記的是當時的快照,不是現在的狀態。開工前對照程式碼,找出記憶裡已經過期的假設。

決策性提問中斷時,用前置分析 + 預設安全選項代替:本輪兩次 AskUserQuestion 串流中斷。換策略:在提問前把所有分析做完、把預設值設為最保守的選項,中斷也不會卡住決策。

來源:個人開發日誌 2026-06-04 · Claude Code skills 庫管理 · 183→179 skills(-4)· team 3→1 + agent 3→1 合併,social 組撤回保留