用途:审查目标 skill 文件,将其中的机械、确定性步骤抽取为独立 shell 脚本,使 skill 只保留需要判断的部分(总结、解释、选择、写作),从而让 skill 更可靠、更一致。
适用触发场景:用户要求从某个 skill 中抽取脚本、希望让 skill 更可靠或更确定、反馈某 skill 不一致或总是写错 CLI 命令、要求把 skill 拆成脚本加提示词、或想审计某 skill 中可抽取为脚本的候选步骤。
主要流程:第一步读取目标 skill 文件,未指定时先询问要审查哪个 skill。第二步逐条分类每个指令:S(脚本)指只有一个正确答案、每次运行结果相同的步骤,如带特定参数的 CLI 命令、固定路径或格式的文件创建、数据收集、目录设置、文件复制、环境检查;A(AI)指需要思考、解释或创造的步骤,如总结数据、在选项间选择、撰写文字或建议、解释结果、依赖上下文的判断。分类结果以表格呈现,含步骤、分类、理由三列。第三步编写处理所有 S 类步骤的 shell 脚本。第四步重写 skill:先调用脚本、读取脚本输出、仅对输出做判断工作;重写后应明显更短,若没有变短则说明原 skill 机械步骤不多,可能不需要此处理。第五步可选:演示脚本如何直接调用 AI CLI,实现确定性编排加按需 AI 判断。
脚本要求:以 #!/bin/bash 开头;先解析脚本自身目录 SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)";相对路径以 $SCRIPT_DIR 为基准;不得硬编码绝对路径;用 command -v 检查所需工具;输入通过参数或环境变量传入;临时文件用 mktemp 并配合 trap 清理;顶部加注释说明用途;结尾输出确认信息;提醒用户执行 chmod +x script.sh;在 shebang 后加 set -euo pipefail;用 ${VAR:-default} 提供默认值;提前校验必需参数并打印用法;校验输入文件或目录存在;正文使用具名变量而非 $1、$2;尽量幂等;脚本放在 skill 文件旁或 scripts/ 目录。
输出物:分类表、处理所有 S 步骤的 shell 脚本、重写后的 skill。
限制与提示:不要强行套用,若 skill 几乎全是判断、只有一两个简单命令,应直接说明不需要脚本;脚本应可独立测试;保持聚焦,一个逻辑阶段一个脚本,避免巨型脚本;变量名要有描述性;引用变量时加引号以处理路径空格;可移植性不可妥协,脚本移动到其他目录或克隆到其他机器都必须可用,不得硬编码路径或依赖特定主目录布局,环境相关值应通过参数或环境变量传入。