<!-- title: 写第一件Skill：控制流八式 -->

# 写第一件Skill：控制流八式

## 概述

这是系列第8轮。前七轮把榜单拆了、把官方件拆了、把新星拆了，这轮回答读者问得最多的一件事：**看完这么多拆解，我自己怎么写第一件？**

选题上刻意不追榜。前几轮的周报已经反复证明，新星榜是一条约14天保质期的传送带，今天的热门下月就在45天层里躺平。所以本轮换标准：不抄当周最火的，抄**最耐拆的**——官方仓库 anthropics/skills 里那批体量最小的字帖件（也是 Claude Code 里 example-skills 插件的同款内容），其中体量最小、回路最全的 algorithmic-art 当主标本。

核心发现一句话：**写了七轮拆解之后回头看，件的差距不在SKILL.md的段落结构——七段式骨架人人会抄——真正的差距在控制流**。什么时候侦察、什么时候落盘、循环几轮停、缺料时问不问，这些“程序行为”才是热门件和空货架件的分水岭。本轮把官方件里的行为设计提炼成八种控制流，然后现场用它写一件能跑的第一件。

> 事实核验说明：本轮成文环境无法联网核对当周榜单与星数，所以本文不给任何未经验证的下载量、Star数和“本周最热”判断；评测表只对结构可判的维度打星，实测类维度留空。宁缺毋滥。

## 字帖件横评：五件官方件当教材

先给本轮要用的五块字帖定位。它们全部出自官方 example-skills 插件，名字是实装可查的，路数判断来自系列前七轮的拆解积累：

| 字帖件 | 功能完整度 | 设计质量 | 实战效果 | 上手难度 | 社区活跃度 |
|--------|-----------|---------|---------|---------|-----------|
| algorithmic-art | ★★★★☆ | ★★★★★ | —（未实测） | ★★★★☆ | —（未查证） |
| skill-creator | ★★★★☆ | ★★★★☆ | — | ★★★★★ | — |
| canvas-design | ★★★★☆ | ★★★★★ | — | ★★★☆☆ | — |
| webapp-testing | ★★★★★ | ★★★★☆ | — | ★★★☆☆ | — |
| internal-comms | ★★★☆☆ | ★★★☆☆ | — | ★★★★★ | — |

打分口径：功能完整度看开箱即用程度，设计质量看控制流密度，上手难度看件体量与依赖。实战与社区两项本周无据可查，直接留空——一个系列拆了八轮，最不该丢的就是“没测过就不给星”这条底线。

## 主标本开盖：algorithmic-art 为什么是最佳第一课

在官方那批小件里挑字帖，algorithmic-art 有三个别人没有的优势：

**第一，它干的事最“软”，但骨架最“硬”。** 生成艺术听起来玄，它的SKILL.md却是一条严密流水线：接题、定色彩系统、写 p5.js 代码、落盘初版、自我评审、迭代两三轮、交付单个 HTML 文件。一个不到百行的件，把“模型怎么干一件多轮次活”演示得明明白白。

**第二，它逼你面对“随机性管理”。** 生成艺术天然不可复现，这件的处理是给生成过程留种子参数——想要同款变体就改种子重跑，而不是凭运气重摇。这是所有生成类件（图、文、代码）都会撞上的问题，它给了最轻量的解法。

**第三，它有标准的“外字库”。** 色彩系统不写在主文件里，而是外置成参考文件，主文件只留一句“何时去读哪个”。这正是渐进披露的最小可运行样例：主件一屏读完，重资料按需加载。

对照另外四件：skill-creator 是官方的“造件机”，教你写件但体量大、适合第二轮再抄；canvas-design 的审美循环更深但依赖审美积累；webapp-testing 和浏览器、脚本绑定重；internal-comms 最简单但控制流也最薄。**第一件抄 algorithmic-art 的骨相，是对的。**

## 八种控制流：SKILL.md 真正的写法

下面是本轮的正菜。八式全部提炼自官方件的行为设计，每式给出“是什么、示范句怎么写、什么时候用”。示范句都是我按官方路数重写的模板，直接可套。

### 一、门卫式：第一段不是干活，是筛选

热门件的正文第一段从来不是“如何工作”，而是“什么归我管、什么不归我管”。没有门卫条款的件，什么请求都往身上揽，触发泛化之后使用者反而不知道它擅长什么。

```markdown
## 边界
- 只处理 X 类请求。用户要 Y 时，明确说明本件不适用并建议替代做法。
```

配套动作在 frontmatter：description 里同时写清触发场景和排除场景，正文的门卫和门牌的说辞要一致。前几轮拆触发工程时说过“一个字段定生死”，门卫式就是那个字段在正文里的延伸。

### 二、侦察式：动手前先看清现场

任何写文件、改代码类的件，第一道工序都该是侦察：先读目标文件、看目录结构、确认现有约定，再决定动哪里。直接开写的件在真实项目里必然翻车，因为真实项目永远有你没料到的现状。

```markdown
1. 侦察：先读 <目标文件/目录>，列出现状与约束。看不清就先报告，不猜。
```

webapp-testing 是这式的极致：测试动手前先侦察应用结构，侦察结果决定测试路径。

### 三、问路式：缺料时，问还是默认

执行中途发现关键信息缺失，怎么办？热门件的写法是**写明判据，而不是让模型自己临场发挥**：影响交付物正确性的参数缺失→停下来问；纯风格类缺失→合理默认并声明假设。

```markdown
- 缺数据、缺路径、会影响正确性的信息：向用户要，禁止编造。
- 缺风格、缺偏好：按默认值做，并在结果里声明"我按 X 假设处理"。
```

这条是空货架件最常缺的。没有它，模型要么全程打断你，要么全程瞎猜，二选一都难受。

### 四、落盘式：先出初版，再谈好坏

生成类件的共同纪律：**第一版产物立刻写到盘上**（文件、画布、代码），然后进入修改循环。绝不许在“脑内”反复打磨憋一个一次性大招——那样用户全程看不到中间产物，改起来也没有落点。

```markdown
3. 落盘：第一版直接写入 <文件名>，哪怕粗糙。后续修改都在这份文件上进行。
```

algorithmic-art 的循环就是“落盘初版→评审→改”三步舞，canvas-design 同款。这是官方件出现频率最高的行为约束。

### 五、外字库式：重资料放 references/，主件只留路标

大块静态内容——模板、色板、检查清单、API 速查——全部外置到 `references/` 目录，主文件只写“什么时候、读哪个文件”。主文件保持一屏能读完，因为主文件内容是常驻上下文的，字字都要花重复成本；外置文件只在用到时才加载。

```markdown
## 参考资料
- 产出周报前，读 references/template.md 获取版式。
- 涉及品牌色时，读 references/colors.md。
```

判据一句话：**每次触发都要用的，留在主件；偶尔用的，外置。** 前几轮拆资产件写法五式时讲过语料外置，这式是它的最小实现。

### 六、留种式：随机产物要可复现

凡是有随机性的产出（生成艺术、命名、创意文案），都要把“这版的参数”记下来落档。用户说“再来一版差不多但稍改”时，改种子而不是重摇骰子。

```markdown
- 每次生成记录所用 seed 与关键参数到产物注释里，保证可复现、可微调重放。
```

只此一式是生成类件专属，写纯流程件（如周报）可以跳过。

### 七、停机式：循环必须带刹车

自检-修改循环没有停机条件，模型就会无限重写，越改越偏。官方件的标准写法是**双刹车**：次数上限（最多两三轮）或达标判据（通过清单即停），先到先停。

```markdown
4. 自检：对照清单逐项过。全部通过，或已修改 2 轮，即停止迭代。
```

停机式是控制流里最容易被新手漏掉的一条，也是“件跑起来收不住”事故的第一元凶。

### 八、交割式：收尾要报告“产了什么、在哪、怎么用”

件的最后一步不是沉默结束，而是交割：报告产物路径、形态、还有什么留给用户补。这一条把“对话”变成“交付”，是工具感和聊天感的分界线。

```markdown
5. 交割：报告文件路径与结构，并列出需要用户确认或补充的 1-3 个点。
```

internal-comms 这类文档件把交割做得最细，因为它的产物就是格式化文书，缺一项确认就废一份稿。

## 手把手：用八式写第一件

空谈无凭，现场写。目标：一件 `weekly-report`（值班周报生成器）——体量小、触发明确、八式能用上七式，是理想的第一件。

### 第一步：建目录

```bash
mkdir -p ~/.claude/skills/weekly-report/references
```

个人级件放 `~/.claude/skills/`，项目级件放仓库的 `.claude/skills/`。目录名就是件名，用小写连字符。

### 第二步：写 SKILL.md（全文照抄可用）

```markdown
---
name: weekly-report
description: 生成值班/项目周报。当用户要写周报、周总结、汇报本周进展时使用；闲聊、写诗、写简历等请求不适用。
---

# 值班周报生成器

把散乱的一周工作记录，整理成一份能直接交出去的周报。

## 边界
- 只处理周报类请求。其他文档请求说明不适用。

## 工作流
1. 侦察：查看当前目录的 git log、TODO、会议记录，列出本周事项。
   缺关键信息（数据、人名、日期）就向用户要，禁止编造。
2. 定版式：读 references/template.md，按模板字段组织内容。
3. 落盘：第一版直接写入 weekly-report-draft.md。
4. 自检：对照模板检查——有数据吗？有阻塞吗？有下周计划吗？
   全部通过，或已改 2 轮，即停。
5. 交割：报告文件路径，提醒用户补充只有本人知道的业务细节。
```

对号入座：description 排除句+正文「边界」=门卫式；第1步=侦察式+问路式；第2步=外字库式；第3步=落盘式；第4步=停机式；第5步=交割式。七式上身，全程 20 行。

### 第三步：放字库

```markdown
<!-- references/template.md -->
# 本周周报
## 一、本周完成（每条带数据）
## 二、进行中与阻塞（阻塞要写卡在哪、需要谁）
## 三、下周计划（不超过 5 条，按优先级）
```

### 第四步：双向试触发

新开一个会话，正话反话各测一次：说“帮我整理本周值班周报”，应当触发；说“帮我写首诗”，应当不触发。误触发回炉改 description 的排除句，哑火就补触发场景词。这一步是前几轮拆“触发工程”的全部实践形态——**件的好坏在装机的第一分钟就能测出来**。

## 八式串起来的执行回路

一件写对了的 Skill，运行时长这样：

```mermaid
flowchart TD
    A["用户请求"] --> B{"门卫判断"}
    B -->|不归我管| C["说清边界"]
    B -->|归我管| D["侦察现场"]
    D --> E{"料够吗"}
    E -->|不够| F["问路补料"]
    F --> D
    E -->|够| G["读外置字库"]
    G --> H["落盘初版"]
    H --> I{"自检达标"}
    I -->|未达标| J["定点修改"]
    J --> H
    I -->|达标或两轮| K["交割报告"]
```

而写第一件的工序，则是另一条短回路：

```mermaid
flowchart TD
    A["建目录"] --> B["写门牌"]
    B --> C["写正文五段"]
    C --> D["字库外置"]
    D --> E["装机"]
    E --> F{"正反各测一次"}
    F -->|误触发或哑火| B
    F -->|通过| G["开工"]
```

两张图叠起来看，会发现一个有意思的事实：**写件的人设计左边的回路，跑件的时候模型走右边的回路——SKILL.md 就是这两张图之间的编译器。**

## 第一件最常见的四个翻车点

1. **description 写成口号。** “一个强大的写作助手”不是触发条件，“当用户要写 XX / 改 XX 时使用”才是。门牌是路由器读的，不是人读的。
2. **正文写成百科。** 把所有领域知识塞进主文件，触发一次就顶满一屏上下文。判据只有一条：每次都用→留，偶尔用→外置。
3. **循环没刹车。** 只写“反复打磨直到完美”，跑起来就是无限返工。次数上限或达标清单，至少要有一个。
4. **没有拒绝条款。** 什么单都接的件，等于没有定位。门卫式一句话的成本，换来的定位清晰度是十倍的。

## 按需取用的排行榜

- **当第一件字帖**：algorithmic-art——体量最小、回路最全、八式齐了七式
- **学触发与门牌设计**：skill-creator——官方造件机，它教的就是怎么写 description
- **学迭代循环**：canvas-design——落盘-评审-修改的深度演示
- **学工具衔接**：webapp-testing——侦察式与脚本调用的教科书
- **学交割契约**：internal-comms——产物即文书，交付纪律最严

## 安装与上手机会

```bash
# 把官方字帖件抄回本机当对照
git clone https://github.com/anthropics/skills
cp -r skills/algorithmic-art ~/.claude/skills/

# 在聚合市场里搜更多字帖（2300+ 件的目录站也可作补充）
npx skills find generative-art
```

写自己的第一件：

```bash
mkdir -p ~/.claude/skills/weekly-report/references
# 按上文第二步、第三步填入 SKILL.md 与 template.md
# 新开会话，说"帮我整理本周值班周报"验收
```

八轮拆解到此收官。榜单会过期，传送带会换血，但控制流不会——把八式抄进你的第一件，比多装十个热门件值钱。

## 参考来源

1. [anthropics/skills 官方仓库](https://github.com/anthropics/skills) — 本文全部字帖件的源头，algorithmic-art、skill-creator 等均在仓库根目录按件分文件夹
2. [skillsmp.com](https://skillsmp.com) — 2300+ 件的聚合目录，验证件名与赛道分布
3. [skills.sh](https://skills.sh) — Skills 生态榜单站，本文弃用当周热度、改选字帖的判断依据所在
4. [mcpservers.org/agent-skills](https://mcpservers.org/agent-skills) — 官方与社区件的精选库
5. Anthropic 工程博客 Agent Skills 专文（anthropic.com/engineering） — 渐进披露与 references/scripts 分层设计的官方论述

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
