我們花了兩天時間,終於造出了能自我進化的Skills管理器。
整理版優先睇
手搓 Skills 管理三件套,實現自動化迭代與自我進化
作者卡茲克同林機夢逗,一直沉迷用 Skills 去提升生產力,但發現 Skills 嘅管理同迭代極唔方便:手動查更新、手動改文檔、手動將 bug 修復經驗填返入去,搞到「一時爽,後續維護火葬場」。為咗解決呢個問題,佢哋花咗兩日時間,手搓咗一套 Skills 管理三件套——github-to-skills、skill-manager、skill-evolution-manager,再加埋 Claude 官方嘅 skill-creator,四個 Skill 就搞掂曬所有增刪改查同迭代升級功能。
佢哋嘅核心做法係:先用 github-to-skills 喺打包 GitHub 項目時注入 git 資訊(url 同 hash),每個 Skill 就有咗身份 ID;再用 skill-manager 做本地管家,一句話查狀態、對比版本、刪除 Skills;最後用 skill-evolution-manager,透過外掛式嘅 evolution.json 檔案,將對話入面嘅經驗同 bug 修複寫入「存檔」,就算主 Skill.md 被新版本覆蓋,經驗都唔會丟失,重新注入返入去,實現真正嘅自我進化。
整體結論係:呢套方案令 Skills 從靜態文件變成動態成長嘅系統,越用越聰明,而且已經開源放上 GitHub(https://github.com/KKKKhazix/Khazix-Skills),希望拋磚引玉,幫到同樣熱衷 Skill…
- 結論:Skills 需要動態管理同迭代,作者用三件套實現咗全自動流程,包括身份標識、版本監控同經驗存檔。
- 方法:透過 github-to-skills 注入 git url 同 hash,每個 Skill 有唯一身份,後續管理先有辦法對比更新。
- 差異:evolution.json 獨立於主 Skill.md 儲存經驗,避免 Git 更新覆蓋掉自定義調教,做到「遊戲存檔」式保存。
- 啟發:創造嘅快樂唔輸畀刷短視頻,Skills 係一種可以持續進化嘅智力資產,值得花時間打磨。
- 可行動點:去 GitHub 下載作者開源嘅三件套,試下將自己常用嘅 GitHub 項目打包成有身份嘅 Skill,再用 skill-manager 同 evolution-manager 建立自己嘅進化流程。
Khazix-Skills 倉庫(三件套開源)
GitHub 上嘅倉庫,包含 github-to-skills、skill-manager、skill-evolution-manager 三個 Skill 嘅原始碼同使用說明。
Skills 管理嘅痛點:一時爽,後續火葬場
作者一直覺得 Skills 好有價值,無論對個人定團隊,都係「創造嘅快樂」。但佢發現,Skills 從來唔係固化嘅嘢,要隨時間、自己變強、GitHub 項目更新而動態調整。問題係:手動查更新?手動改文檔?手動將 bug 修復經驗填返入去?「呢個真係有點顯得太呆逼了」。
特別係上一篇文章反響好大,但評論區有高手提出核心問題:點樣管理、升級、迭代 Skills?作者不斷反思,最終決定手搓一個解決方案。
三件套:身份、管理、進化
作者同夥伴用兩日時間,整咗Skills 管理三件套,再加 Claude 官方嘅 skill-creator,四個 Skill 就搞掂所有增刪改查同迭代升級。核心係三個:
- github-to-skills:專用嘅 GitHub 項目轉 Skills 工具,注入身份資訊。
- skill-manager:本地 Skills 大管家,負責查詢、版本監控同刪除。
- skill-evolution-manager:根據對話經驗自動迭代 Skills,透過 evolution.json 外掛存檔。
github-to-skills:畀每個 Skill 一個身份證
原來官方嘅 skill-creator 打包 GitHub 項目時,產生嘅 SKILL.md 冇任何 GitHub 相關數據,冇版本號、冇倉庫地址,後續管理根本關聯唔返。作者整咗 github-to-skills,喺生成文檔頭部加入 github_url 同 github_hash,就好似超市貨品有條形碼,可以盤點庫存。
呢個改動令 skill-manager 可以用本地 hash 對比遠程倉庫最新 commit,輸出「過期」或「最新」狀態。作者仲保留咗原版 skill-creator,因為唔係所有 Skill 都來自 GitHub,自己經驗型嘅 Skill 唔需要呢啲資訊。
skill-manager 嘅功能包括:Skills 查詢(列出表格,區分 GitHub 打包 Skill 同正常 Skill)、版本監控(請求 GitHub API 對比哈希)、Skills 管理(一句話刪除唔需要嘅 Skill)。作者而家成日打開 OpenCode 就掃一次更新,好方便。
skill-evolution-manager:外掛式經驗存檔,避免衝突
最大嘅難題係:GitHub 更新會覆蓋主 SKILL.md,但用戶自己調教嘅修改同 bug 修復經驗點算?作者諗到一個方法:分開存放。GitHub 拉取最新項目時照改 SKILL.md,而所有迭代、報錯經驗就存到一個全新自定義嘅 evolution.json 檔案,類似遊戲存檔。
skill-evolution-manager 嘅作用就係:對話期間默默記筆記,記錄「邊度搞砸咗、邊度需要改進」,對話結束後將經驗寫入 evolution.json,然後再注入返 SKILL.md。下次再遇到同一情況,Skill 就會直接繞過。作者形容呢個係「真正的自我進化,亦係覆盤」。
開源分享:希望拋磚引玉
作者知道呢篇文可能閲讀量好差,但佢哋覺得「創造嘅快樂」值得分享。三個 Skill 已經上傳到 GitHub(https://github.com/KKKKhazix/Khazix-Skills),完全免費開源。佢哋話而家做法未必完美,歡迎大神交流改進。
SKills 真係一個偉大嘅時代。即使不完美,都希望呢個思路對大家有幫助。作者最後多謝讀者,順便求讚、睇、轉發同星標。

好多朋友話 好似打開咗新世界嘅大門。
但係,亦都有好多眼利嘅、動手能力強嘅朋友,喺留言區提出咗好犀利嘅問題:

例如將Github項目打包成Skills一時爽,後續維護全部係火葬場。
手動去check更新?手動去改文檔?手動將好不容易累積嘅Bug fix經驗填返去?
呢個真係有啲太蠢。
呢三件套,再加上Claude官方嗰個Skill-creator,呢四個Skill,直接解決咗我所有Skills嘅增刪改查同迭代升級功能。,令Skills庫實現真正嘅全自動化管理同自我進化。

我哋搓嘅呢三件套,分別係:
github-to-skills:專用嘅Github項目轉Skills嘅Skill。
skill-manager:一個專用嘅管理本地所有Skills嘅Skill。
skill-evolution-manager:一個可以將過程中嘅對話同經驗,自動以外掛形式對某個Skill進行迭代升級。
唔講咁多,老規矩,先睇效果。
我而家本地有一堆Skills,好似上次嗰個下載video神器yt-dlp。
因為好多Github上面嘅項目,都係動態更新緊,我梗係希望我哋本地嘅Skills都可以根據對方倉庫嘅動態,做到自動更新。
而家我只需要對住OpenCode講一句:
幫我check曬所有Skills嘅狀態。
下一秒,一個清晰嘅報告就掟咗過嚟:

可以見到,截圖入面嘅兩個Skill有兩種狀態。
company-claude-skills嘅狀態:過期。
yt-dlp嘅狀態:最新。
而家我哋只需要講一句:
開始升級,佢就會自動去Github拉最新嘅code,重新構建Skill文檔。

GitHub更新咗,舊版嘅SKILL.md唔係俾覆蓋咗咩?咁我平時調教Skills優化嘅各種修改同經驗咪直接冇咗?咁唔係好大鑊,完全用唔到咩?
你講得啱。
因為我自己用Skills嘅時候,執行期間成日會出現bug,而呢啲bug其實都係呢個Skill嘅經驗,理論上下次執行係可以避免嘅,所以我成日會喺跑完之後,將個chat過程俾Skill-Creator重新根據成個對話記錄,將呢啲經驗寫入返原本個Skill度,令到呢個Skill變得越來越勁。
好似我之前呢個yt-dlp嘅Skill,第一次報錯並解決咗之後,就根據chat記錄,等佢自主改咗一啲嘢。

當SKILL.md俾新版本覆蓋時,佢就會發揮作用,將save入面嘅經驗重新注入返入Skill.md。

效果如下:

全程幾十秒,唔使我諗嘢。
我發現之前用官方skill-creator雖然打包到,但佢生成嘅SKILL.md文檔入面冇關於GitHub嘅數據。

就好似你去超市買嘢,件商品冇barcode,你點盤點庫存啊係咪。
對於後續Skills管理器嚟講,佢去scan呢啲Skills時,根本唔知呢件嘢對應Github邊個倉庫,更唔好講對比版本。
如果強行去掃去match,失敗率極高,效果極唔穩定。
所以,呢三件套第一個解決方案自然係要對Skills生成器開刀,即係要針對SKILL.md嘅metadata落手。
我改咗skill-creator,做咗個github-to-skills。
佢嘅功能好簡單:喺打包Github項目時,強制注入一啲關於github嘅資訊。
呢啲資訊包括兩樣嘢:
github_url:佢由邊度嚟。
github_hash:佢係邊個版本。
咁樣,每一個經由呢個github-to-skills產出嘅Skill都自帶身份ID。
可能仲有人唔明咁樣設計有咩用,對後續管理有咩幫助,直接上圖對比,大家應該就會明。
呢個係原版Skill.md入面嘅資訊。

呢個係改進後SKILL.md入面嘅資訊。

你會發現,多咗嘢。
而呢個就可以好簡單同後續Github倉庫更新做關聯,仲可以用hash值做版本對照。
相當於我哋俾每個SKill都做咗個身份系統。
有咗身份ID,後續自動化管理先有可能,可以話呢個係成個系統嘅地基。
而點解呢個github-to-skills同原有skill-creator共存?好簡單,因為唔係所有Skills都係封裝Github項目,仲有好多係我哋自己經驗同工作flow,呢啲冇必要注入Github資訊。
有咗身份ID嘅Skill,接下來係重頭戲,skill-manager。
呢樣嘢就係你Skills嘅大管家,負責你所有本地Skills嘅管理同更新。
佢嘅功能有呢啲。
1. Skills查詢:主要是最近無論學習定測試,成日裝Skills裝得太鬼多,長期對住一堆folder,我都唔記得呢啲Skills係做乜。。
不過而家透過呢個skill-manager,佢可以直接俾我一個靚啲嘅table,列出所有Skills嘅類型、描述、版本,仲可以自己分邊啲係GitHub打包嘅skill、邊啲係正常skill,真係可以列出我成個家底。

最終結果入面,如果輸出狀態係過期,就代表需要更新對應Skills;如果係最新就唔使更新。

3. Skills管理:一個好簡單嘅小功能,就係...如果有唔需要或者用唔著嘅,可以用佢一句話直接delete。

呢個小Skill好有用,相當於以前嘅Mod或者plugin manager,只係將更新迭代嘅過程都放咗喺對話入面。
我個人覺得非常方便。
而家成日打開OpenCode,冇事就先scan一次Skills睇下有冇更新,然後先開始做嘢。
你可以理解成,呢個Skill會喺對話嘅時候靜靜記低note,Skill邊度出錯、邊度要改進,佢全部記低喺小本本。
對話結束,佢將呢啲經驗save到一個叫evolution.json嘅文件,然後寫入Skill.md,下次再遇到同樣嘅坑,Skill就會直接避開,一坑唔踩兩次。
講真,我一直覺得呢個先係真正嘅自我進化,亦可以理解成我哋成日講嘅覆盤。

https://github.com/KKKKhazix/Khazix-Skills

如果有大佬有更好嘅思路或者更靚嘅寫法,歡迎交流。
因為我哋都喺不斷學習緊。
我只係覺得Skills真係一個好偉大嘅時代。
所以,喺唔完美嘅情況下,依然想同大家分享我哋嘅思路同玩法。
只希望對大家有啲少少嘅幫助。
咁我哋,就。
心滿意足喇。
多謝你哋睇我嘅文章。
以上,既然睇到呢度,如果覺得唔錯,順手俾個like、睇、轉發三連啦,如果想第一時間收到推送,都可以俾我個星標⭐~多謝你睇我嘅文章,我哋下次再見。
> / 作者:卡茲克、林機夢逗
> / 投稿或爆料,請聯絡電郵:wzglyay@virxact.com

很多小夥伴直呼 打開了新世界的大門。
但是,也有很多眼尖的、動手能力強的小夥伴,在評論區提出了非常犀利的問題:

比如把Github項目打包成Skills一時爽,後續維護全是火葬場。
手動去查更新?手動去改文檔?手動去把好不容易積攢的Bug修復經驗填回去?
這真的有點顯得太呆逼了。
這三件套,再加上Claude官方的那個Skill-creator,這四個SKill,直接解決了我所有Skills的增刪改查還有迭代升級功能,讓Skills庫,實現真正的全自動化管理和自我進化。

我們搓的這三件套,分別是:
github-to-skills:專用的Github項目轉Skills的Skill。
skill-manager:一個專用的管理本地所有SKills的Skill。
skill-evolution-manager:一個能將過程中的對話和經驗,自動以外掛的形式,對某Skill進行迭代升級。
話不多說,老規矩,先看效果。
我現在本地有一堆Skills,比如上次那個下載視頻的神器 yt-dlp。
因為很多的Github上的項目,也一直實在動態更新的,我肯定是希望,我們本地的Skills,也是可以根據他們倉庫的動態,實現自動更新的。
而現在,我只需要對着OpenCode說一句:
幫我檢查一下所有的Skills狀態。
下一秒,一個清晰的報告就甩在了我臉上:

可以看到,截圖中的兩個Skill,有兩種狀態。
company-claude-skills的狀態:過期。
yt-dlp的狀態:最新。
而現在,我們只需要說一句:
開始升級,它就會自動去Github拉取最新的代碼,重新構建Skill文檔。

GitHub 更新了,舊版的SKILL.md不就被覆蓋掉了,那我平時調教Skills優化不斷迭代的各種修改和經驗不就直接也沒了嗎?這特麼不是巨坑嗎,完全用不了啊。
你說的對。
因為我自己用Skills,在運行的過程中,難免會出現一些BUG,而這些BUG其實都是這個SKill的經驗,理論上下一次運行,是完全可以避免的,所以我經常會在跑完之後,把這個聊天過程,讓Skill-Creator,重新根據整個對話記錄,把這些經驗,寫入到原來的SKill裏,讓這個Skill,變得越來越牛逼。
比如我之前這個yt-dlp的Skill,第一次報錯並就解決以後,就根據聊天記錄,讓它自主的修改迭代了一些東西。

當SKILL.md被新版本覆蓋時,它便會發揮它的作用,將存檔裏的經驗,重新注入回到Skill.md裏。

效果如下:

全程幾十秒,不用我動一下腦子。
我發現之前用的官方skill-creator,雖然能打包,但是它生成的 SKILL.md文檔裏,沒有關於GitHub的相關數據。

這就好比你去超市買東西,商品上沒條形碼,你咋盤點庫存啊對吧。
對於後續的Skills管理器來說,它去掃描這些Skills的時候,根本不知道這玩意對應Github上的哪個倉庫,更別提對比版本了。
如果強行去掃去匹配,失敗率極高,效果極其不穩定。
所以,這三件套的第一個解決方案,自然就是需要對SKills生成器開刀,也就是,要針對SKIIL.md元數據頭下手。
我魔改了skill-creator,做了一個github-to-skills。
它的功能也很簡單:在打包Github項目的時候,強制注入一些關於github的信息。
這個信息包含這兩樣東西:
github_url:它從哪來的。
github_hash:它是哪個版本。
這樣,每一個經由這個github-to-skills產出的Skill,都自帶了身份ID。
可能還有的人沒明白這樣設計有什麼用,對我們後續管理有什麼幫助,直接上圖對比,大家應該就可以明白了。
這事原版Skill.md裏的信息。

這是改進後的SKILL.md裏的信息。

你會發現,多了東西。
而這個,就可以非常簡單的,跟後續的Github倉庫更新進行關聯了,並且可以用哈希值進行版本號對照。
相當於,我們給每個SKill,都做了一個身份系統。
有了身份ID,後續的自動化管理,才有了可能,可以這麼說,它就是整個系統的地基了。
而之所以為啥這個github-to-skills和原有的skill-creator共存,其實特別簡單,因為不是所有的Skills,都是封裝的Github項目,還有很多,是我們自己經驗和工作流,這種其實沒必要注入Github的信息了。
有了身份ID的Skill,接下來就是重頭戲了,skill-manager。
這玩意就是你skills的大管家,負責你所有本地Skills的管理和更新。
它的功能有這些。
1. Skills查詢:主要是最近不管是學習還是測試,經常裝的Skills太特麼多了,常年看着一堆文件夾,我都忘了這些Skills到底是幹啥的。。。
不過現在通過這個skill-manager,它可以直接給我吐出一個好看點的表格,列出所有Skills的類型、描述、版本,而且是可以自己區分哪些是GitHub打包的skill,哪些是正常的skill,真就是可以列出我所有家底。

最終的結果中,如果輸出的對應狀態為過期,那就說明需要更新對應的Skills了,若為狀態為最新則說明無需更新。

3. Skills管理:一個非常簡單的小功能,就是...如果有不需要的或者用不上的,可以用它,來一句話直接刪除。

這個小Skill,非常的有用,相當於我們以前的Mod或者插件管理器,只不過把更新迭代的過程也放在了對話裏。
我個人認為,還是非常方便的。
現在經常打開OpenCode,沒事就先掃一遍Skills是不是有更新,然後再開始幹活。
你可以理解錯,這個Skill會在對話的時候,會默默記筆記,Skill哪裏搞砸了、哪裏需要改進,它全記在小本本上。
對話結束,它把這些經驗保存到一個叫evolution.json的文件裏,然後寫進Skill.md,下次再遇到同樣的坑,Skill就會直接繞過,一坑不踩兩次。
說真的,我一直覺得,這才是真正的自我進化,也可以理解為我們常說的覆盤。

https://github.com/KKKKhazix/Khazix-Skills

如果有大佬們有更好的思路或者更棒的寫法,也歡迎交流。
因為我們也在不斷的學習中。
只是,我覺得SKills真的是一個偉大的時代。
所以,在不完美的情況下,依然還是想跟大家分享一下我們的思路和玩法。
只希望,能對大家有一些小小的幫助。
那我們,也就。
心滿意足了。
謝謝你們看我的文章。
以上,既然看到這裏了,如果覺得不錯,隨手點個贊、在看、轉發三連吧,如果想第一時間收到推送,也可以給我個星標⭐~謝謝你看我的文章,我們,下次再見。
>/ 作者:卡茲克、林機夢逗
>/ 投稿或爆料,請聯繫郵箱:wzglyay@virxact.com