从会话中识别固定工作流并自动生成可复用的 Skill。用户下次只需提供关键参数即可 重复执行相同流程。同时支持对已创建的 Skill 进行增量更新(添加步骤、修改流程、 删除步骤、调整顺序等)。 当用户提到以下任意情况时,立即使用本 Skill: - "把这个流程保存为 skill" / "把这个工作流抽取出来"...
本 Skill 的核心能力:从对话中提取可复用的工作流,生成结构化的 Skill 文件, 让 Claude 在后续会话中能按照固定流程执行任务。
工作流 Skill 是一个结构化的 SKILL.md 文件,它定义了:
在创建或更新 Skill 之前,必须先检测当前运行环境,因为不同环境的 Skill 安装路径完全不同。执行以下检测逻辑:
# 环境检测
if [ -d "$HOME/.claude" ] && command -v claude &>/dev/null; then
echo "ENV=claude-code"
echo "SKILL_DIR=$HOME/.claude/skills"
echo "REGISTRY=$HOME/.claude/skills/.auto-skill-registry.json"
elif [ -d "/mnt/skills/user" ]; then
echo "ENV=claude-ai"
echo "SKILL_DIR=/mnt/user-data/outputs"
echo "REGISTRY=/mnt/skills/user/.auto-skill-registry.json"
else
echo "ENV=unknown"
echo "SKILL_DIR=$HOME/.claude/skills"
echo "REGISTRY=$HOME/.claude/skills/.auto-skill-registry.json"
fi
各环境的行为差异:
| 环境 | Skill 写入路径 | 安装方式 |
|---|---|---|
| Claude Code | ~/.claude/skills/<skill-name>/ | 直接写入,立即生效,下次会话可通过 /skill 调用 |
| Claude.ai | /mnt/user-data/outputs/<skill-name>/ | 生成文件供用户下载,用户需到 Customize > Skills 手动上传 |
| 未知环境 | ~/.claude/skills/<skill-name>/ | 尝试直接写入,失败则输出到当前目录 |
Claude.ai 特别注意:Claude.ai 的代码执行环境是临时沙箱,写入
/mnt/skills/user/ 的文件在会话结束后会消失。所以必须:
/mnt/user-data/outputs/ 供用户下载present_files 工具向用户展示文件下载链接Claude Code 的 Skill 加载机制要求:文件必须放在以 skill 名称命名的子目录下,
文件名必须是 SKILL.md(全大写)。这不是建议,是硬性要求,否则 Claude Code
无法识别该 Skill。
正确结构(以 fix-easy-bug 为例):
~/.claude/skills/fix-easy-bug/ ← 必须是子目录
└── SKILL.md ← 文件名必须是 SKILL.md(全大写)
以下都是错误的,会导致 Skill 无法被发现:
# ❌ 错误:直接放在 skills 目录下,没有子目录
~/.claude/skills/fix-easy-bug.md
# ❌ 错误:文件名不对
~/.claude/skills/fix-easy-bug/fix-easy-bug.md
~/.claude/skills/fix-easy-bug/skill.md
# ❌ 错误:路径层级不对
~/.claude/skills/SKILL.md
创建文件时必须使用以下命令序列(不可省略 mkdir):
mkdir -p $SKILL_DIR/<skill-name>
cat > $SKILL_DIR/<skill-name>/SKILL.md << 'SKILL_EOF'
<Skill 内容>
SKILL_EOF
在 Claude.ai 环境下同理:
mkdir -p /mnt/user-data/outputs/<skill-name>
# 将 SKILL.md 写入该子目录
所有由 auto-create-skill 创建的 Skill 都会被记录到注册表中,方便管理。 注册表路径根据环境自动选择(见上方环境检测)。
根据用户意图,本 Skill 有三种操作模式:
从当前会话或用户描述中,收集以下关键信息:
simple-bugfix关键原则:向用户确认你的理解是否正确,不要假设。特别关注:
用结构化的方式向用户呈现你提取到的工作流,例如:
📋 工作流:简单 BUG 修复 (simple-bugfix)
输入参数:
- jira_id (必填): Jira Issue ID,如 PROJ-1234
步骤:
1. [自动] 通过 Jira MCP 查询 {jira_id} 的 BUG 详情
2. [自动] 分析 BUG 信息,定位代码问题
3. [自动] 修复代码
4. [等待确认] 通知用户验证修复结果
5. [用户确认后] 提交到 bugfix/{jira_id} 分支并推送远端
请用户确认或修改后再继续。
用 references/workflow-skill-template.md 作为参考模板,生成 SKILL.md。
生成前请先阅读模板文件(路径根据 auto-create-skill 自身安装位置而定):
cat ~/.claude/skills/auto-create-skill/references/workflow-skill-template.mdcat /mnt/skills/user/auto-create-skill/references/workflow-skill-template.md生成 Skill 时遵循以下原则:
description 要「积极触发」——列出所有可能的
触发短语,宁多勿少[AUTO] = 自动执行,无需用户干预[CONFIRM] = 执行后等待用户确认才能继续[INPUT] = 需要用户在此步提供额外信息首先执行环境检测(参见上方「环境检测」章节),确定 SKILL_DIR。
# ✅ 正确:先建子目录,再在里面写 SKILL.md
mkdir -p ~/.claude/skills/<skill-name>
cat > ~/.claude/skills/<skill-name>/SKILL.md << 'SKILL_EOF'
---
name: <skill-name>
description: ...
---
<Skill 内容>
SKILL_EOF
# ❌ 绝对禁止:不要这样做
echo "..." > ~/.claude/skills/<skill-name>.md
python3 <auto-create-skill所在路径>/scripts/manage_registry.py add \
--name "<skill-name>" \
--description "<one-line description>" \
--path "$HOME/.claude/skills/<skill-name>/SKILL.md" \
--params '<JSON array of param names>'
告知用户:「Skill 已安装,你可以在新会话中通过 /skill 找到它,
或直接描述任务让 Claude 自动触发。」
创建后验证(必做):
# 验证文件路径是否正确
if [ -f "$HOME/.claude/skills/<skill-name>/SKILL.md" ]; then
echo "✅ Skill 文件路径正确"
head -5 "$HOME/.claude/skills/<skill-name>/SKILL.md"
else
echo "❌ 错误:SKILL.md 未在正确位置创建!"
# 检查是否误创建为平铺文件
ls -la "$HOME/.claude/skills/" | grep "<skill-name>"
fi
/mnt/user-data/outputs/<skill-name>/SKILL.mdpresent_files 工具向用户提供下载链接<skill-name> 文件夹python3 ~/.claude/skills/auto-create-skill/scripts/manage_registry.py listpython3 /mnt/skills/user/auto-create-skill/scripts/manage_registry.py list常见的修改类型:
用 diff 风格或并列方式展示修改前后的差异:
修改前步骤:
1. [AUTO] 查询 Jira
2. [AUTO] 修复代码
3. [CONFIRM] 用户验证
4. [AUTO] 提交并推送到 bugfix/{jira_id}
修改后步骤:
1. [AUTO] 查询 Jira
2. [AUTO] 修复代码
3. [CONFIRM] 用户验证
4. [AUTO] 提交并推送到 bugfix/{jira_id}
+ 5. [AUTO] 合并主分支并推送开发环境 ← 新增
# 备份(路径根据环境检测结果确定)
cp $SKILL_DIR/<skill-name>/SKILL.md \
$SKILL_DIR/<skill-name>/SKILL.md.bak
# 更新注册表(如果需要)
python3 <auto-create-skill所在路径>/scripts/manage_registry.py update \
--name "<skill-name>" \
--description "<updated description>"
Claude.ai 环境下更新已有 Skill:由于沙箱环境限制,需要:
/mnt/user-data/uploads/ 获取)/mnt/user-data/outputs/present_files 提供下载python3 <auto-create-skill所在路径>/scripts/manage_registry.py list
以友好的格式向用户展示所有已创建的 Skill,包含名称、描述、参数、创建/更新时间。
读取并向用户展示目标 Skill 的完整工作流定义。
python3 <auto-create-skill所在路径>/scripts/manage_registry.py remove \
--name "<skill-name>"
同时删除对应的 Skill 目录(需要用户确认)。
在生成或更新 Skill 后,对照以下清单检查:
<skill-name>/SKILL.md(子目录 + 全大写文件名),
不是 <skill-name>.md<skill-name>/SKILL.md 子目录结构中,
绝不可以直接在 skills 目录下创建 <skill-name>.md 文件。违反此规则会导致
Skill 无法被 Claude Code 识别。每次创建后必须执行验证。ZIP package — ready to use