为什么需要拆解 Skill

一个好用的 Skill,不只写着“做什么”,还记录了作者如何定义完成、安排步骤、分配工作和控制风险。

deconstruct-skill 不复述原文,也不评价它“好不好”,而是把这些隐藏在文件和规则里的设计判断整理出来。你可以用它理解别人的 Skill,也可以拿分析结果改进自己的 Skill。

适合这些场景:

  • 学习一个复杂 Skill 为什么这样设计;
  • 修改 Skill 前,先弄清步骤之间的依赖关系;
  • 比较不同 Skill 的工作流程和风险控制;
  • 把一次性的分析经验整理成可以复用的做法。

六步拆解法

flowchart LR
    A["1. 看交付<br/>最后要得到什么"] --> B["2. 看动作<br/>具体做了什么"]
    B --> C["3. 看顺序<br/>为什么这样安排"]
    C --> D["4. 看分工<br/>谁负责什么"]
    D --> E["5. 看约束<br/>规则在防什么"]
    E --> F["6. 看原则<br/>哪些做法能复用"]
步骤 核心问题 报告中的结果
看交付 它把什么输入变成什么结果? 交付物与完成条件
看动作 它读取、判断、生成和检查了什么? 可观察的动作链
看顺序 为什么必须先做这一步? 步骤之间的因果关系
看分工 用户、AI、脚本和外部工具各做什么? 责任与验收方式
看约束 每条强制规则在避免什么问题? 风险与对应规则
看原则 去掉具体工具后,哪些做法还能复用? 带条件和理由的做法

Skill 如何实现

输入可以是本地 Skill 文件夹、主 SKILL.md 文件或公开仓库链接。分析时会先读取主文件,再按需查看它直接引用的 references/scripts/ 和其他关键资源。

整个过程分为四段:

  1. 确认分析对象和文件边界;
  2. 按六步法提取交付、动作、顺序、分工、约束和可复用做法;
  3. 将结论整理成固定六节的精简报告,不大段引用原文;
  4. 使用确定性脚本检查标题、章节、篇幅和输出路径,再保存为 Markdown 文件。

最终报告固定包含:

  1. 这个 Skill 最后要交付什么
  2. 它具体做了哪些事情
  3. 为什么要按这个顺序做
  4. 用户、AI、脚本和外部工具各负责什么
  5. 这些规则是在避免什么问题
  6. 哪些做法可以用到其他任务中

仓库中的实现分工如下:

想修改的内容 对应文件
触发条件与总体工作流 SKILL.md
六步方法和报告结构 references/six-step-method.md
标题、篇幅、章节与输出校验 scripts/render_report.py
防止修改破坏既有行为 tests/test_render_report.py
Codex 中显示的名称与默认提示 agents/openai.yaml

输出示例

下面的节选来自对 wechat-article-publisher-skill 的静态分析。示例仅用于展示报告的表达方式,原项目内容归原作者所有。

这个 Skill 最后要交付什么

它把用户的逐字稿、口述草稿或已成形观点,转换成一篇保留本人风格且经过事实与反证检查的微信公众号文章,最终在用户明确确认后生成视觉素材、完成排版并创建到公众号草稿箱。

它具体做了哪些事情

隔离用户原话 → 建立写作卡 → 确认大纲 → 写内部初稿 → 反证优先研究 → 审核增强稿 → 确认完稿 → 生图、排版并创建草稿 → 保存记录。

可以复用的做法

当产物成本高或会改变外部状态时,把“方向确认”和“执行授权”设为两道独立门槛,避免将局部反馈误当成整体通过;前提是通过条件和停止点已经定义清楚。

查看完整拆解报告

安装与使用

核心能力使用 Agent Skills 常见的目录结构:技能根目录包含 SKILL.md,详细方法和确定性工具分别放在 references/scripts/。不同 Agent 工具的安装目录和启用方式可能不同。

通用安装

  1. 下载或克隆本仓库;
  2. 把整个 deconstruct-skill 目录放入你的 Agent 工具所约定的 Skills 目录;
  3. 确认 SKILL.md 位于技能根目录,然后重新加载或重启对应工具。

Codex 示例

在本仓库的上一级目录执行:

mkdir -p "${CODEX_HOME:-$HOME/.codex}/skills"
cp -R deconstruct-skill "${CODEX_HOME:-$HOME/.codex}/skills/deconstruct-skill"

然后可以这样提出任务:

使用 $deconstruct-skill 拆解这个 Skill:<本地路径或公开仓库链接>。
把完整报告保存到 reports/,并在对话中给我一个简短摘要。

如果你的工具不支持 $技能名 语法,直接用自然语言说明“使用 deconstruct-skill”即可。

修改与开发

建议使用一个短循环来迭代:修改规则 → 运行测试 → 用真实 Skill 验证输出

运行现有测试:

python3 -m unittest discover -s tests -v

单独检查一份已经写好的分析正文:

python3 scripts/render_report.py \
  --analysis /path/to/analysis.md \
  --title "目标 Skill 拆解报告" \
  --output reports/target-skill-report.md

常见修改入口:

  • 想改变拆解方法:修改 references/six-step-method.md
  • 想改变执行流程或触发条件:修改 SKILL.md
  • 想改变报告长度、标题或校验规则:修改 scripts/render_report.py,并同步补充测试;
  • 想改变 Codex 中的展示文字:修改 agents/openai.yaml

项目结构

deconstruct-skill/
├── SKILL.md
├── agents/
│   └── openai.yaml
├── references/
│   └── six-step-method.md
├── scripts/
│   └── render_report.py
├── tests/
│   └── test_render_report.py
├── examples/
│   └── wechat-article-publisher-report.md
├── README.md
└── LICENSE

参与贡献

欢迎通过 Issue 提交新的拆解场景、表达问题或兼容性反馈,也欢迎通过 Pull Request 改进方法、脚本、测试和示例。修改后请先运行测试,并说明你用什么真实 Skill 验证过结果。

许可证

本项目使用 MIT License