工作流程技能怎么写?从7个精品项目中提炼的模式与最佳实践

楔子

今天分享的这篇文章,在阿里巴巴和蚂蚁集团内部的技术分享平台ATA上,热度远超想象。

可见大家在工作中,想把自己的复杂工作流程/SOP(标准操作程序)写成Skill时,会所遇到不知道怎么写,以及写完之后Skill运行不符合预期的情况。

图片

在这篇文章中,青斧大佬分析了7个最顶尖的技能案例,并根据分析结果总结了5种工作流技能的设计模式。

经过作者青斧的授权,在这里把文章分享给大家,希望大家在构建自己的工作流程技能时,也能够收获一些启发~

还有什么?

大家其实可以让你的通用Agent(如Claude Code)根据本文文章的内容,快速Vibe出一个SOP智能分析工具,根据SOP文档,选择最适合的技能模式生成对应技能。

图片

同时进行沙盘成绩,一步到位~

图片

欢迎大家关注OceanBase社区公众号“老纪的技术唠嗑局”,在这里,我们将持续为大家更新与 [#AI](javascript:😉 和 [#Data](javascript:😉 相关的技术内容~

话不多说,正文开始。

本文基于对 7 个来自 OpenAI、Google Labs、obra、Trail of Bits、Dean Peters 等团队生产级技能的逐行分析,提炼出的可复用的五种技能设计模式、写作技巧和反面教训。

一、技能是什么

大家对技能基本都有所了解,这里只言简意赅地提两句。

Skill 是一个文件夹,核心是 SKILL.md 文件,使用 YAML frontmatter + Markdown 正文 的格式。当 LLM 判断需要某个 Skill 时,会调用 skill 工具加载它,SKILL.md 的全部内容会作为工具结果注入到对话上下文中,LLM 读到后自主决定怎么执行。

my-skill/

├── SKILL.md         
# 主文件(必须)

├── scripts/         
# 可执行脚本(可选)

├── references/      
# 详细参考文档(可选,按需加载)

├── resources/       
# 模板、清单等资源(可选)

└── examples/        
# 示例(可选)

关键机制:技能本质是“知识注入”——它不会动态生成新工具,而是把指令文本注入到LLM的上下文中,LLM使用已有的工具(bash、read、edit等)来执行这些指令。

技能文件结构
技能文件结构


二、Frontmatter:决定技能是否被加载的“门面”

2.1 必填字段

|
字段
|
作用
|
效果
|
| --- | --- | --- |
| name |
唯一标识符,小写连字符
| test-driven-development |
| description | 最关键
——LLM通过决定是否加载
|
见下方对比
|

2.2 写法决定加载率说明

# 好的 description — 包含触发短语和关键词

description:
Deploy
applications
and
websites
to
Vercel.
Use
when
the
user

requests
deployment
actions
like
"deploy my app"
,
"push this live"
,

or
"create a preview deployment"
.


# 好的 description — 定义时序位置

description:
Use
when
implementing
any
feature
or
bugfix,
before
writing

implementation
code


# 差的 description — 太模糊

description:
Helps
with
deployment
stuff

核心原则

  • 引用触发脚本:把用户可能说的话写进去(“部署我的应用程序”、“推送此活动”)

  • 定义尺寸:说明“在什么之前/之后”使用(“编写实现代码之前”)

  • 包含产品关键词:如果覆盖大平台,把所有产品名上市来

2.3 可选扩展字段

从7个技能中观察到的扩展字段:

|
字段
|
来源
|
作用
|
| --- | --- | --- |
| references |
OpenCode Cloudflare
|
声明最重要的参考文档
|
| allowed-tools |
Google Labs缝合环
|
需要声明的工具权限
|
| type |
迪恩·彼得斯发现过程
|
声明 技能类型(工作流程/组件)
|
| best_for |
迪恩·彼得斯发现过程
|
最适合的场景列表
|
| scenarios |
迪恩·彼得斯发现过程
|
具体的触发 场景 示例
|
| estimated_time |
迪恩·彼得斯发现过程
|
股票支付时间
|


三、5种核心设计模式

5种核心设计模式
5种核心设计模式

模式1:线性流程

适用:场景部署、安装、迁移等具有明确的步骤操作。

代表:openai/skills — vercel-deploy [1](77行)

结构

# 标题

## Prerequisites(前置条件)

## Quick Start(主流程:Step 1 → 2 → 3)

## Fallback(降级方案)

## Troubleshooting(故障排除)

关键技巧

|
技巧
|
效果
|
为什么有效
|
| --- | --- | --- |
|
安全默认值
|
“始终部署为预览版,而非生产环境”
|
防止法学硕士进行危险操作
|
|
具体命令
|
每步给出可直接执行的 bash 命令
|
LLM 不需要猜测
|
|
超时提示
|
“使用 10 分钟(600000 毫秒)超时”
|
防止LLM因超时中断
|
|
降级方案
|
CLI 失败有后备脚本
|
提供B计划
|
|
负面指令
|
不要使用 curl 命令验证已部署的 URL。
|
明确禁止不该做的事
|

适用判断:如果你的技能可以用“先做A,再做B,最后做C”描述,就用线性模型。

线性流程模式
线性流程模式


模式2:决策树+阶梯加载

适用包括:大型平台选型、产品导航、问题诊断。

代表:openai/skills — cloudflare-deploy [2](224行)

结构

# 标题

## Authentication(认证前置)

## Quick Decision Trees(决策树)

### "I need to run code"(按用户意图分类)

### "I need to store data"

### "I need AI/ML"

## Product Index(产品索引表)

关键技巧

|
技巧
|
效果
|
为什么有效
|
| --- | --- | --- |
|
用户意图分类
|
“我需要运行代码” 而不是 “计算产品”
|
使用语言用户技术术语
|
|
树形导航
| ├─ 边缘无服务器函数 → workers/ |
LLM 快速定位正确产品
|
|
渐进式披露
|
主文件 7KB,参考文献/ 展开到几十万字
|
不浪费上下文窗口
|
|
产品指数表
|
产品 → 参考的映射表
|
构造的快速查找
|

适用判断:如果你的技能覆盖的知识域有10+个分支,且每个分支都有大量详细文档,就用决策树模式。

决策树模式
决策树模式

进阶:同一个知识域可以拆成两个技能——

  • 导航型(cloudflare):只做选型,不涉及操作

  • 操作型(cloudflare-deploy):包含认证、命令、故障排除


模式3:循环迭代

适用场景:TDD、代码审查、设计评审等需要反复执行的流程。

代表:obra/superpowers — 测试驱动开发[3](371行)

结构

# 标题

## The Iron Law(铁律——不可违反的核心原则)

## Red-Green-Refactor(循环体)

### RED — 写失败的测试

### Verify RED — 验证确实失败

### GREEN — 写最少的代码

### Verify GREEN — 验证确实通过

### REFACTOR — 清理

### Repeat(回到 RED)

## Common Rationalizations(借口反驳表)

## Verification Checklist(退出条件)

关键技巧

|
技巧
|
效果
|
为什么有效
|
| --- | --- | --- |
|
强硬语气
|
删除它,重新开始。
|
LLM倾向“灵活变通”,强硬语气提高服从率
|
|
好/坏对比
|
使用 <Good> 和 <Bad> 标签概括代码示例
|
对比教学效果最好
|
|
借口反驳表
|
预判LLM可能的12种偷懒借口并逐一反驳
|
堵死所有逃生路径
|
|
验证清单
|
8 项清单作为循环退出条件
|
确保质量达标才能结束
|
|
人体兜底
|
“问问你的人类伙伴”
|
空闲时兼职人
|

适用判断:如果你的技能需要LLM反复执行“做→验证→改进”的循环,就用迭代模式。

循环迭代模式
循环迭代模式


模式4:接力棒循环(跨会话持久化)

适用:场景多次迭代的长期项目,需要跨多个会话持续工作。

代表:google-labs-code/stitch-skills —stitch-loop [4](203行)

结构

# 标题

## Overview(接力棒模式概述)

## The Baton System(接力棒文件规范)

## Execution Protocol(6 步执行协议)

### Step 1: Read the Baton(读接力棒)

### Step 2: Consult Context Files(查阅上下文)

### Step 3: Generate(执行任务)

### Step 4: Integrate(集成结果)

### Step 5: Update Documentation(更新文档)

### Step 6: Prepare the Next Baton ⚠️(写下一个接力棒——关键!)

## File Structure Reference(文件协议)

## Orchestration Options(编排方式)

关键技巧

|
技巧
|
效果
|
为什么有效
|
| --- | --- | --- |
|
文件即状态
| next-prompt.md
 作为接力棒
|
LLM不必记得“模仿哪了”
|
|
续命机制
|
步骤 6 标记为 Critical + MUST
|
忘记写接力棒循环就断了
|
|
文件协议
|
每份文件都有明确的职责
|
LLM按协议读写文件
|
|
编排关联
|
CI/CD、人在回路、Agent链驱动驱动
|
相同的技能配备多种自动化环境
|

适用判断:如果你的技能需要跨多个会话持续工作,或者需要多个代理协作,就用接力棒模式。

接力棒循环模式
接力棒循环模式

与模式3的区别

|
维度
|
循环迭代(TDD)
|
接力棒循环(Stitch Loop)
|
| --- | --- | --- |
|
状态存储
|
LLM对话上下文
|
外部文件系统
|
|
跨会话
|

|

|
|
循环退出
|
清单全部打勾
|
路线图清空
|
|
适用时长
|
单次会话(分钟~小时)
|
长期项目(天~周)
|


模式5:多阶段+检查点+技能编排

适用场景:复杂的多周流程,需要在关键节点做Go/No-Go决策。

代表:deanpeters/Product-Manager-Skills — discovery-process [5](502行)

结构

# 标题

## Key Concepts(核心概念 + 反模式)

## Phase 1: Frame the Problem(阶段 1)

### Activities(调用哪些子 Skill)

### Outputs(阶段产出)

### Decision Point 1(检查点:YES/NO + 时间影响)

## Phase 2-6...(重复相同结构)

## Complete Workflow(端到端时间线)

## Common Pitfalls(常见陷阱)

## References(引用的子 Skill 列表)

关键技巧

|
技巧
|
效果
|
为什么有效
|
| --- | --- | --- |
|
统一阶段模板
|
每个阶段都有活动 → 输出 → 决策点
|
LLM 理解快速结构
|
|
决策检查点
|
"达到灌溉了吗?YES → 下一阶段,NO → +1 周"
|
防止盲目推进
|
|
技能编排
|
调度10+个子技能完成各个阶段
|
编排器模式,大技能调度小技能
|
|
时间影响
|
每个NO路径标注“+2-3天”、“+1周”
|
让我们了解用户延迟成本
|
|
相互协议分离
|
引用 workshop-facilitation 定义 交互方式
|
关注点分离
|

适用判断:如果你的技能跨越多天/多周,有明确的阶段划分和Go/No-Go决策点,就用多阶段模式。

多级检查点模式
多级检查点模式


特殊模式:思维框架(控制LLM“怎么想”)

适用:安全审计、代码审查、架构分析等需要深度思考的场景。

代表:Trailofbits/skills —audit-context-building [6](302行)

结构

# 标题

## Purpose(定位:控制思维方式,不是控制行为)

## When to Use / When NOT to Use

## Rationalizations(借口反驳表)

## Phase 1: Initial Orientation(定向扫描)

## Phase 2: Ultra-Granular Function Analysis(逐行分析——核心)

### Per-Function Checklist(函数微分析清单)

### Cross-Function Flow Analysis(跨函数追踪)

### Output Requirements(输出格式 + 量化阈值)

### Completeness Checklist(完整性检查)

## Phase 3: Global System Understanding(全局理解)

## Stability Rules(反幻觉规则)

## Non-Goals(明确禁止做的事)

关键技巧

|
技巧
|
效果
|
为什么有效
|
| --- | --- | --- |
|
思维工具
|
第一性原理、5个为什么、5个如何
|
给 LLM 分析框架具体命令
|
|
确定阈值
|
"每个函数最少 3 个不变量、5 个假设"
|
强制LLM达到足够的分析深度
|
|
非目标约束
|
“不要识别漏洞、不要提出修复”
|
克制LLM最尝试的事,先理解再判断
|
|
反幻觉规则
|
“永远不要为了迎合先前的假设而篡改证据”
|
防止LLM自我欺骗
|
|
子代理指导
|
当以及如何使用函数分析器代理
|
分而治之
|

适用判断:如果你的技能需要LLM进行深度分析而不是快速执行,需要控制的是“思维质量”而不是“操作步骤”,就用思维框架模式。


四、通用写作技巧

4.1 防止LLM偷懒的4种武器

防止LLM偷懒的4种武器
防止LLM偷懒的4种武器

|
武器
|
原理
|
示例来源
|
| --- | --- | --- |
|
强硬语气
|
LLM对命令式语气的服从率更高
|
TDD:“删除它,重新开始。”
|
|
借口反驳表
|
预判LLM的自我合理化路径并堵死
|
TDD:12种借口+反驳;审核:6种借口
|
|
确定阈值
|
硬性给出的最低标准
|
审计:“最少3个不变量、5个假设”
|
|
负面指令
|
明确表示“不要做X”
|
vercel-deploy:“不要使用 curl 命令访问 URL”
|

4.2 教学的三种有效方式

|
方式
|
原理
|
示例来源
|
| --- | --- | --- |
|
好/坏对比
|
对比学习效果最好
|
TDD:<Good> vs <Bad> 代码示例
|
|
具体命令
|
LLM擅长执行具体指令
|
vercel-deploy:每步都有 bash 命令
|
|
完整示例
|
展示期望的输出格式
|
审计:引用 FUNCTION_MICRO_ANALYSIS_EXAMPLE.md
|

4.3 安全与边界的3条原则

|
原则
|
做法
|
示例来源
|
| --- | --- | --- |
|
安全默认值
|
默认选择最安全的选项
|
vercel-deploy:“始终以预览方式部署”
|
|
权限最小化
|
仅在必要时提升权限
|
vercel-deploy:“不要升级安装检查”
|
|
人体兜底
|
空闲时兼职人
|
TDD:“询问你的人类伙伴”
|

4.4 知识组织的3层架构

知识组织 3 层架构
知识组织 3 层架构

  • 第1层:Frontmatter(~100 tokens)→ LLM 扫描所有技能的描述,决定是否加载

  • 第2层:SKILL.md正文(<5K tokens)→核心指令、决策树、流程步骤

  • 第 3 层:references/ 和 resources/  (每秒加载)→ 详细文档、示例、清单,LLM 使用读取工具读取

代币预算参考

|
体系
|
代币预算
|
内容
|
| --- | --- | --- |
|
前言
|
约100个代币
|
name + description
|
|
主文件
|
2K-5K tokens
|
核心指令
|
|
参考文档(单个)
|
1K-3K tokens
|
按需加载
|
|
总上下文占用
|
<10K tokens
|
主文件 + 1-2 个参考文档
|


五、模式选择决策树

模式选择决策树
模式选择决策树

你的 Skill 需要做什么?

│

├─ 执行一个有明确步骤的操作

│  └─ → 模式 1:线性流程

│

├─ 在大量选项中帮用户选择正确的方向

│  └─ → 模式 2:决策树 + 按需加载

│

├─ 在单次会话中反复执行
"做→验证→改进"

│  └─ → 模式 3:循环迭代

│

├─ 跨多个 session 持续推进一个长期项目

│  └─ → 模式 4:接力棒循环

│

├─ 跨越多天/多周,有阶段划分和 Go/No-Go 决策

│  └─ → 模式 5:多阶段 + 检查点

│

└─ 需要 LLM 进行深度分析而非快速执行

   └─ → 特殊模式:思维框架

六、快速上手模板

最小可用 Skill(线性模式)

---

name:
my-skill

description:
[一句话描述做什么
+
什么时候触发]

---


# Skill 名称


[一句话核心原则
+
安全默认值]


## Prerequisites


-
[前置条件
1
]

-
[前置条件
2
]


## Steps


### Step 1: [动作]


```bash

[具体命令]

Step 2: [动作]

[具体指令]

Step 3: [动作]

[具体指令]

Troubleshooting

|
Issue
|
Solution
|
| --- | --- |
|
[问题 1]
|
[解决方案]
|

### 循环迭代 Skill 模板


```yaml

---

name: my-loop-skill

description: [描述 + 触发时机]

---


# Skill 名称


## Core Principle


[不可违反的铁律]


## The Loop


### Phase A — [动作]


[具体指令]


### Verify A


[验证命令]


### Phase B — [动作]


[具体指令]


### Verify B


[验证命令]


### Repeat


回到 Phase A。


## Rationalizations


| Excuse | Reality |

|--------|---------|

| 
"[借口 1]"
 | [反驳] |


## Completion Checklist


- [ ] [条件 1]

- [ ] [条件 2]

七、参考资源

官方规范

  • Agent Skills 开放标准[7]

  • anthropics/skills — 官方模板[8]

  • anthropics/skills — 规范文档[9]

精选仓库

  • openai/skills[10] — OpenAI Codex 官方 Skill 目录

  • obra/superpowers[11] — 14 个工作流型 Skill

  • google-labs-code/stitch-skills[12] — 设计到代码的 Skill

  • deanpeters/Product-Manager-Skills[13] — 40+ 产品管理 Skill

  • trailofbits/skills[14] — 安全审计 Skill

  • openclaw/clawhub[15] — Skill 注册中心

精选列表

  • VoltAgent/awesome-agent-skills[16] — 500+ Skill 索引

  • travisvn/awesome-claude-skills[17] — 精选列表 + Skill vs MCP 对比


八、本文分析的 7 个 Skill 速查表

|

|
Skill
|
来源
|
模式
|
行数
|
一句话精髓
|
| --- | --- | --- | --- | --- | --- |
|
1
| vercel-deploy |
OpenAI
|
线性
|
77
|
最小但完整的 Skill 模板
|
|
2
| cloudflare-deploy |
OpenAI
|
线性 + 决策树
|
224
|
大平台的渐进式披露
|
|
3
| cloudflare |
OpenCode
|
纯决策树
|
211
|
导航型 vs 操作型的区别
|
|
4
| test-driven-development |
obra
|
循环迭代
|
371
|
堵死 LLM 偷懒的所有退路
|
|
5
| stitch-loop |
Google Labs
|
接力棒循环
|
203
|
文件即状态,跨 session 持久化
|
|
6
| discovery-process |
Dean Peters
|
多阶段 + 检查点
|
502
|
编排器模式,调度 10+ 子 Skill
|
|
7
| audit-context-building |
Trail of Bits
|
思维框架
|
302
|
控制 LLM "怎么想"而非"做什么"
|

图片

参考资料

[1]

openai/skills — vercel-deploy: https://github.com/openai/skills/tree/main/skills/.curated/vercel-deploy

[2]

openai/skills — cloudflare-deploy: https://github.com/openai/skills/tree/main/skills/.curated/cloudflare-deploy

[3]

obra/superpowers — test-driven-development: https://github.com/obra/superpowers/tree/main/skills/test-driven-development

[4]

google-labs-code/stitch-skills — stitch-loop: https://github.com/google-labs-code/stitch-skills/tree/main/skills/stitch-loop

[5]

deanpeters/Product-Manager-Skills — discovery-process: https://github.com/deanpeters/Product-Manager-Skills/tree/main/skills/discovery-process

[6]

trailofbits/skills — audit-context-building: https://github.com/trailofbits/skills/tree/main/plugins/audit-context-building/skills/audit-context-building

[7]

Agent Skills 开放标准: https://agentskills.io/

[8]

anthropics/skills — 官方模板: https://github.com/anthropics/skills/tree/main/template

[9]

anthropics/skills — 规范文档: https://github.com/anthropics/skills/tree/main/spec

[10]

openai/skills: https://github.com/openai/skills

[11]

obra/superpowers: https://github.com/obra/superpowers

[12]

google-labs-code/stitch-skills: https://github.com/google-labs-code/stitch-skills

[13]

deanpeters/Product-Manager-Skills: https://github.com/deanpeters/Product-Manager-Skills

[14]

trailofbits/skills: https://github.com/trailofbits/skills

[15]

openclaw/clawhub:  https://github.com/openclaw/clawhub

[16]

VoltAgent/awesome-agent-skills:  https://github.com/VoltAgent/awesome-agent-skills

[17]

travisvn/awesome-claude-skills:  https://github.com/travisvn/awesome-claude-skills

期往内容推荐

图片

posted on 2026-04-29 17:53  老纪的技术唠嗑局  阅读(54)  评论(0)    收藏  举报