Skill 迭代复盘
回顾当前对话,整理 skill 使用情况和迭代建议。
触发条件
- •
/skill复盘 - •
/迭代清单 - •「帮我整理一下今天的 skill 迭代」
工作流程
第一步:回顾对话
扫描当前对话,识别:
- •调用了哪些 skill
- •每个 skill 产出了什么
- •用户反馈(正面/负面)
第二步:提取负反馈
识别用户不满或修正意见:
| 类型 | 示例 |
|---|---|
| 直接否定 | 「不对」「不行」「这个不好」 |
| 修正意见 | 「应该是...」「改成...」「其实是...」 |
| 质疑 | 「真的吗?」「这样对吗?」 |
| 补充要求 | 「还要加上...」「漏了...」 |
记录:具体 skill、用户原话、问题本质
第三步:分析迭代方向
| 判断 | 条件 |
|---|---|
| 更新现有 Skill | 问题指向具体步骤/规则,可通过增加检查点解决 |
| 新建 Skill | 完整新工作流、现有 skill 不覆盖、可复用 |
| 不需改动 | 一次性特殊情况、个人偏好 |
第四步:生成迭代清单
第五步:自动快照(用户确认执行后)
当用户确认并执行了 skill 更新后,必须自动执行快照:
bash
# 1. 扫描技能状态 bash ~/.claude/skills/skill-snapshot/scripts/scan.sh # 2. 对每个「未备份」或「已修改」的技能保存快照 bash ~/.claude/skills/skill-snapshot/scripts/save.sh "<skill-name>" "<commit-message>"
快照说明格式:
- •新建 skill:
初始版本:<功能简述> - •更新 skill:
<修改内容简述>
输出格式
markdown
## Skill 迭代复盘 ### 1. 本次使用的 Skill | Skill | 使用次数 | 主要产出 | |-------|---------|---------| | [skill名] | [X次] | [简述产出] | ### 2. 负反馈记录 | Skill | 问题 | 用户原话 | |-------|------|---------| | [skill名] | [问题描述] | 「[原话]」 | ### 3. 现有 Skill 迭代建议 | Skill | 建议修改 | 修改类型 | 优先级 | |-------|---------|---------|-------| | [skill名] | [具体改什么] | [新增规则/修改格式/调整流程] | [高/中/低] | ### 4. 新 Skill 建议 | 建议名称 | 适用场景 | 核心内容 | 来源 | |---------|---------|---------|------| | [skill名] | [什么时候用] | [主要做什么] | 「[触发对话]」 | (无则输出:无) ### 5. 待确认清单 **现有 Skill 更新:** - [ ] [skill名]:[具体修改项] **新建 Skill:** - [ ] 新建 [skill名].md --- 确认后我会执行相应的更新,并自动保存快照。
执行后追加输出
当用户确认并完成 skill 更新后,追加输出快照结果:
markdown
--- ## 快照结果 | 技能 | 版本 | 说明 | |------|------|------| | [skill名] | v[n] | [快照说明] | 所有变更已备份完成。
优先级判断
影响产出质量 > 影响效率 > 影响格式
注意事项
- •只整理当前对话内容
- •负反馈记录用户原话
- •迭代建议要具体可执行
- •新 skill 建议说明来源
- •执行更新后必须自动快照:不需要用户额外确认,直接扫描并保存
Skill 编写准则
执行 skill 更新或新建时,必须遵循以下准则:
核心原则
| 原则 | 说明 |
|---|---|
| 脚本优先 | 功能实现优先使用脚本(sh/python),而非内联代码 |
| 可执行性 | Skill 应该是可直接执行的,而非仅仅是文档 |
| 可测试性 | 每个脚本必须可独立运行和验证 |
| 可维护性 | 脚本与文档分离,便于独立更新 |
实现优先级
code
1. Bash 脚本 (.sh) → 系统操作、文件处理、API 调用、流程自动化 2. Python 脚本 (.py) → 复杂逻辑、数据处理、需要第三方库 3. 内联代码 → 仅当逻辑极简且不可复用时
目录结构
code
skill-name/ ├── skill.md # 触发词、工作流程、使用说明 ├── scripts/ # 脚本目录 │ ├── main.sh # 主脚本 │ └── helper.py # 辅助脚本 └── templates/ # 模板文件(可选)
脚本规范
Bash 脚本模板:
bash
#!/bin/bash
# ============================================================
# skill-name: 功能描述
# ============================================================
set -e # 遇错即停
# ==================== 配置 ====================
CONFIG_VAR="value"
# ==================== 工具函数 ====================
check_dependencies() {
if ! command -v jq &> /dev/null; then
echo "错误: 需要安装 jq"
exit 1
fi
}
# ==================== 主逻辑 ====================
main() {
check_dependencies
# 业务逻辑
}
main "$@"
Python 脚本模板:
python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""skill-name: 功能描述"""
import sys
from pathlib import Path
def main():
pass
if __name__ == "__main__":
main()
SKILL.md 规范
markdown
--- name: skill-name description: "触发条件描述。触发词:/xxx、关键词" --- # Skill 名称 简要说明。 ## 触发方式 - `/command` - 「自然语言触发词」 ## 执行脚本 \`\`\`bash bash ~/.claude/skills/skill-name/scripts/main.sh [args] \`\`\` ## 脚本功能 | 功能 | 说明 | |------|------| | 功能1 | 说明 |
决策树
code
需要实现功能?
│
▼
可以用 shell 命令组合实现? ─是→ Bash 脚本
│
否
▼
需要复杂数据处理? ─是→ Python 脚本
│
否 → 内联代码(最后选择)
必须检查项
- • 脚本有执行权限 (
chmod +x) - • 脚本头部有 shebang (
#!/bin/bash) - • 检查依赖工具 (jq, curl, python 等)
- • 支持代理环境变量 (
https_proxy) - • 使用
set -e或 try-except 处理错误 - • 输出格式结构化,便于解析