Skip to main content

evolve-skill

Evolve an existing skill by refining its content in-place or creating an advanced variant. Covers assessing the current skill, gathering evolution requirements, choosing scope (refinement vs. variant), applying changes, updating version metadata, and synchronizing the registry and cross-references. Use when a skill's procedure steps are outdated, user feedback reveals gaps, a skill needs a complexity upgrade, an advanced variant is needed alongside the original, or related skills are added and cross-references are stale.

Jump to install

Source facts

Repository
pjt222/agent-almanac
Last source activity
September 15, 2026 at 08:59
Detected SKILL.md language
Mixed languages
Stars
34
Forks
4

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
evolve-skill
locale
wenyan-lite
source_locale
en
source_commit
82c77053
translator
Julius Brussee homage — caveman
translation_date
2026-04-24
description
Evolve an existing skill by refining its content in-place or creating an advanced variant. Covers assessing the current skill, gathering evolution requirements, choosing scope (refinement vs. variant), applying changes, updating version metadata, and synchronizing the registry and cross-references. Use when a skill's procedure steps are outdated, user feedback reveals gaps, a skill needs a complexity upgrade, an advanced variant is needed alongside the original, or related skills are added and cross-references are stale.
license
MIT
allowed-tools
Read Write Edit Bash Grep Glob
metadata
{"author":"Philipp Thoss","version":"1.2","domain":"general","complexity":"intermediate","language":"multi","tags":"meta, skill, agentskills, maintenance, evolution, versioning"}
# 演化既有技能 改、擴或建以 `create-skill` 原著之技能之進階變體。此程涵技能生命週期之維護面:差距評估、施針對性改、升版、保持登記冊與交互引用之同步。 ## 適用時機 - 工具變後技能之步驟陳舊或不全 - 使用者回饋示缺陷阱、步驟不明或驗證弱 - 技能需自基本升至中等(或中等升至進階) - 需原之外之進階變體(如 `create-r-package` 與 `create-r-package-advanced`) - 加或移相關技能而交互引用陳 ## 輸入 - **必要**:待演之既有 SKILL.md 之路徑 - **必要**:演化觸發(回饋、工具變、複雜升、新相關技能、所發現之陷阱) - **選擇性**:若變之目標複雜度等級(basic、intermediate、advanced) - **選擇性**:是否建進階變體而非就地改(預設:就地改) ## 步驟 ### 步驟一:評當前技能 讀既有 SKILL.md 並對品質清單評各節: | 節 | 所察 | 常見問題 | |---|---|---| | Frontmatter | 所必欄俱在,`description` < 1024 字 | 缺 `tags`、陳 `version` | | When to Use | 3-5 具體觸發條件 | 模糊或重疊觸發 | | Inputs | 必要 vs 選擇性分清 | 選擇性輸入缺預設 | | Procedure | 各步有 code + Expected + On failure | 缺 On failure、以偽碼代實命 | | Validation | 各項為二元過/敗 | 主觀標準(「代碼清」) | | Common Pitfalls | 3-6,帶因與避 | 過泛(「謹之」) | | Related Skills | 2-5 有效技能引用 | 陳引用指已改或移之技能 | ```bash # Read the skill cat skills/<skill-name>/SKILL.md # Check frontmatter parses head -20 skills/<skill-name>/SKILL.md # Verify related skills still exist grep -oP '`[\w-]+`' skills/<skill-name>/SKILL.md | sort -u ``` **預期:** 具體差距、弱處或改善機會之清單。 **失敗時:** 若 SKILL.md 不存或無 frontmatter,此技不適——改用 `create-skill` 自頭著之。 ### 步驟二:採演化需求 識並分類演化之觸發: | 觸發 | 例 | 典型範圍 | |---|---|---| | 使用者回饋 | 「Step 3 不明」 | 改 | | 工具變 | 新 API 版、棄用之命 | 改 | | 發現陷阱 | 未文檔之常見敗 | 改 | | 複雜升 | 技能於實際用過淺 | 改或變體 | | 新相關技能 | 鄰接技能已加 | 改(交互引用) | | 進階用例 | 高階使用者需深覆 | 變體 | 編前先記所需之具體改。列各改及其目標節。 **預期:** 具體改之清單(如「於 Step 4 加 On failure」、「加新 Step 6 處理邊緣情 X」、「更 Related Skills 納 `new-skill`」)。 **失敗時:** 若改不明,進前諮詢使用者以釐。演化目標泛則改善亦泛。 ### 步驟三:擇演化範圍 以此決策矩陣定是就地改或建變體: | 標準 | 就地改(in-place) | 進階變體(新技能) | |---|---|---| | 技能 ID | 不變 | 新 ID:`<skill>-advanced` | | 檔路徑 | 同 SKILL.md | 新目錄 | | 版本升 | Minor(僅破壞則 Major) | 起於 1.0 | | 複雜 | 或增 | 高於原 | | Registry | 無新項 | 加新項 | | Symlinks | 無變 | 需新 symlink | | 原技能 | 直接修 | 保全,得交互引用 | **改**:於提升品質、補差距或加適度新內容時擇之。技能保其身分。 **變體**:當演後之版會令技能長倍、改目標受眾或需實質異之輸入時擇之。原技能保於較簡之用例。 **預期:** 明決——改或變體——含理由。 **失敗時:** 若不定,預設改。後可抽變體;合回則難。 ### 步驟四:施內容改 #### 就地改 直接編既有 SKILL.md: - Open for editing - Add/revise procedure steps - Strengthen Expected/On failure pairs - Add tables or examples - Update When to Use triggers - Revise Inputs if scope changed 遵此編輯規: - 保所有既有節——加內容,勿移節 - 插入後保步驟編號連續 - 每新或改之步皆須有 Expected 與 On failure - 新陷阱於 Common Pitfalls 節末 - 新相關技能於 Related Skills 節末 #### 變體 ```bash # Create the variant directory mkdir -p skills/<skill-name>-advanced/ # Copy the original as a starting point cp skills/<skill-name>/SKILL.md skills/<skill-name>-advanced/SKILL.md # Edit the variant: # - Change `name` to `<skill-name>-advanced` # - Update `description` to reflect the advanced scope # - Raise `complexity` (e.g., intermediate → advanced) # - Reset `version` to "1.0" # - Add/expand procedure steps for the advanced use case # - Reference the original in Related Skills as a prerequisite ``` **預期:** SKILL.md(改或新變體)過步驟一之評估清單。 **失敗時:** 若步驟編輯破文檔結構,以 `git diff` 審改並以 `git checkout -- <file>` 回部分編輯。 ### 步驟 4.5:同步翻譯之變體 > **翻譯存時必行。** 此步適於依此程之人類作者與 AI 代理。勿略——陳 `source_commit` 值致 `npm run validate:translations` 於所有語言報假陳舊警。 察演化之技能是否存譯文並更以反新源狀態: ```bash # Check for existing translations ls i18n/*/skills/<skill-name>/SKILL.md 2>/dev/null ``` #### 若譯文存 1. 取當前源 commit hash: ```bash npm run validate:translations ``` 2. 更各譯文 frontmatter 中之 `source_commit`: ```bash npm run check:fence-propagation -- --id <skill-name> node tools/provenance-field.mjs --field fence_basis_commit --set $(git rev-parse --short HEAD) <mirror paths> ``` 3. 於 commit 訊息中納受影響語言以旗標檔供重譯: ```text evolve(<skill-name>): <description of changes> Translations flagged for re-sync: de, zh-CN, ja, es Changed sections: <list sections that changed> ``` 4. 再生譯狀態檔: ```bash npm run translation:status ``` #### 若無譯文 無需行動。進步驟五。 #### 於變體 遞譯新變體至變體穩(1-2 版)。譯 v1.0 之變體若至 v1.2 可能實質變為浪工。於變體至少一改後再加譯。 **預期:** 所有譯文之 `source_commit` 已更至當前 commit。Commit 訊息記哪些語言需重譯及何節改。`npm run translation:status` 以 0 出。 **失敗時:** 若 `sed` 未能配 frontmatter 欄,譯文或有非標準格式。手開之並驗其於 YAML frontmatter 有 `source_commit`。若欄缺,檔未正鷹架——以 `npm run translate:scaffold` 重建。 ### 步驟五:更版與元數據 升 frontmatter 之 `version` 欄: | 改類 | 版升 | 例 | |---|---|---| | 錯字修、措詞釐清 | Minor:1.0 → 1.1 | 修 Step 3 中不明之句 | | 新步、新陷阱、新表 | Minor:1.0 → 1.1 | 加 Step 7 處邊緣情 | | 重構程、改輸入 | Major:1.0 → 2.0 | 自 5 步重組為 8 步 | 亦更: - `complexity` 若範圍擴(如 basic → intermediate) - `tags` 若覆域變 - `description` 若技能範圍實質異 **預期:** Frontmatter `version` 反改之幅。新變體起於 `"1.0"`。 **失敗時:** 若忘升版,次演化無法辨當前態與前態。恒於 commit 前升之。 ### 步驟六:更登記冊與交互引用 #### 就地改 無需改登記冊(路徑不變)。僅於他技能之 Related Skills 變時更交互引用: ```bash # Check if any skill references the evolved skill grep -r "<skill-name>" skills/*/SKILL.md ``` #### 變體 加新技能至 `skills/_registry.yml`: ```yaml - id: <skill-name>-advanced path: <skill-name>-advanced/SKILL.md complexity: advanced language: multi description: One-line description of the advanced variant ``` 然後: 1. 增登記冊頂之 `total_skills` 2. 於原技能之 Related Skills 加指向變體之交互引用 3. 於變體之 Related Skills 加指向原技能之交互引用 4. 建 symlink 以發現 slash command: ```bash # Project-level ln -s ../../skills/<skill-name>-advanced .claude/skills/<skill-name>-advanced # Global ln -s /mnt/d/dev/p/agent-almanac/skills/<skill-name>-advanced ~/.claude/skills/<skill-name>-advanced ``` **預期:** 登記冊 `total_skills` 配 `find skills -name SKILL.md | wc -l`。交互引用雙向。 **失敗時:** 若登記計誤,執 `find skills -name SKILL.md | wc -l` 取實計並修登記冊。於破 symlink,以 `readlink -f` 除錯解析。 ### 步驟七:驗已演技能 行全驗證清單: - [ ] SKILL.md 於預期路徑存 - [ ] YAML frontmatter 無誤解析 - [ ] `version` 已升(改)或設為 "1.0"(變體) - [ ] 所有節俱在:When to Use、Inputs、Procedure、Validation、Common Pitfalls、Related Skills - [ ] 每步有 Expected 與 On failure 區 - [ ] Related Skills 引用有效存之技能名 - [ ] 登記冊項存且路徑正確(僅變體) - [ ] `total_skills` 計配磁碟實際技能數 - [ ] Symlink 正確解析(僅變體) - [ ] `git diff` 示原內容無誤刪 - [ ] 於帶譯之改:`source_commit` 已更或譯已旗標待重譯 ```bash # Verify frontmatter head -20 skills/<skill-name>/SKILL.md # Count skills on disk vs registry find skills -name SKILL.md | wc -l grep total_skills skills/_registry.yml # Check symlinks (for variants) ls -la .claude/skills/<skill-name>-advanced readlink -f .claude/skills/<skill-name>-advanced/SKILL.md # Review all changes git diff ``` **預期:** 所有清單項過。已演技能已備以 commit。 **失敗時:** 逐一處理每敗項。演後最常之問題為陳之 `total_skills` 計——恒末驗之。 ## 驗證 - [ ] SKILL.md 存並有有效 YAML frontmatter - [ ] `version` 欄反所作之改 - [ ] 所有步有 Expected 與 On failure 區 - [ ] Related Skills 引用有效(無破交互引用) - [ ] 登記冊 `total_skills` 配磁碟實際計 - [ ] 於變體:`_registry.yml` 中有新項含正確路徑 - [ ] 於變體:symlink 已建於 `.claude/skills/` 與 `~/.claude/skills/` - [ ] `git diff` 確無誤移內容 - [ ] 於帶譯之改:`source_commit` 已更或譯已旗標待重譯 ## 常見陷阱 - **忘升版**:無版升則無法追何時何變。恒於 commit 前更 frontmatter 之 `version`。 - **誤刪內容**:重組步時易落 On failure 區或表列。恒於 commit 前審 `git diff`。 - **陳交互引用**:建變體時,原與變體須互引。單向引用使圖不全。 - **登記計漂移**:建變體後,`total_skills` 計須增。忘之致他查登記之技能驗證敗。 - **演後陳譯**:庫中 1,288 譯文,每次技能演化觸發至 4 語言檔之陳舊。恒以 `ls i18n/*/skills/<skill-name>/SKILL.md` 察既存譯文並更各譯文 frontmatter 之 `source_commit`,或於 commit 訊息中旗標以待重譯。略此致 `npm run validate:translations` 報陳舊警。 - **改中範圍蔓延**:改倍技能長應為變體。若爾加逾 3 新步,重思步驟三之範圍決。 - **避於 NTFS 掛載路徑用 `git mv`(WSL)**:於 `/mnt/` 路徑,`git mv` 目錄可致破權限(`d?????????`)。改用 `mkdir -p` + 複製檔 + `git rm` 舊路徑。見 [環境指南](../../guides/setting-up-your-environment.md) 除錯節。 ## 相關技能 - `create-skill` — 著新技能之基;evolve-skill 假其原依之 - `commit-changes` — 以描述訊息 commit 已演技能 - `configure-git-repository` — 版本控之技能改 - `security-audit-codebase` — 審已演技能有無誤納密秘
View on GitHub