Improve a skill via a test-fix-retest loop — static checks, targeted fixes, keep or revert on score change.
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-skill-improve-f238ca7db779 ,按照其中的说明把「skill-improve」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
!bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation
Automation mode: Resolve modes.automation (project.local.yaml →
project.yaml → default collaborative). Every AskUserQuestion call and
every file write follows .claude/docs/automation-modes.md
(collaborative asks always · guided major-only · autonomous logs and proceeds;
automation_always_ask categories always prompt).
Runs an improvement loop on a single skill: test → fix → retest → keep or revert.
Read the skill name from the first argument. If missing, output usage and stop:
Usage: /skill-improve [skill-name]
Example: /skill-improve tech-debt
Verify .claude/skills/[name]/SKILL.md exists. If not, stop with:
"Skill '[name]' not found."
Run /skill-test static [name] and record the baseline score:
Display to the user:
Static baseline: [N] failures, [M] warnings
Failing: Check 4 (no ask-before-write), Check 5 (no handoff)
If baseline is 0 FAILs and 0 WARNs, note it and proceed to Phase 2b.
Look up the skill's category: field in CCGS Skill Testing Framework/catalog.yaml.
If no category: field is found, display:
"Category: not yet assigned — skipping category checks."
and skip to Phase 3.
If category is found, run /skill-test category [name] and record the category baseline:
Display to the user:
Category baseline: [N] failures, [M] warnings ([category] rubric)
If BOTH static and category baselines are 0 FAILs and 0 WARNs, stop: "This skill already passes all static and category checks. No improvements needed."
Read the full skill file at .claude/skills/[name]/SKILL.md.
For each failing or warning static check, identify the exact gap:
context: fork set but fewer than 5 phases foundFor each failing or warning category check (if category was assigned in Phase 2b), identify the exact gap in the skill's text. For example:
Show the full combined diagnosis to the user before proposing any changes.
Write a targeted fix for each failure and warning. Show the proposed changes as clearly marked before/after blocks. Only change what is failing — do not rewrite sections that are passing.
Ask: "May I write this improved version to .claude/skills/[name]/SKILL.md?"
If the user says no, stop here.
Record the current content of the skill file (for revert if needed).
Write the improved skill to .claude/skills/[name]/SKILL.md.
Re-run /skill-test static [name] and record the new static score.
If a category was assigned, also re-run /skill-test category [name] and record the new category score.
Display the comparison:
Static: Before [N] failures, [M] warnings → After [N'] failures, [M'] warnings
Category: Before [N] failures, [M] warnings → After [N'] failures, [M'] warnings (if applicable)
Combined change: improved / no change / worse
Count the combined failure total: static FAILs + category FAILs + static WARNs + category WARNs.
If combined score improved (combined failure count is lower than baseline): Report: "Score improved. Changes kept." Show a summary of what was fixed in each dimension.
If combined score is the same or worse:
Report: "Combined score did not improve."
Show what changed and why it may not have helped.
Ask: "May I revert .claude/skills/[name]/SKILL.md using git checkout?"
If yes: run git checkout -- .claude/skills/[name]/SKILL.md
/skill-test static all to find the next skill with failures./skill-improve [next-name] to continue the loop on another skill./skill-test audit to see overall coverage progress.