---
title: "W04 上机练习三：一轮轮改，再沉淀成你的 Skill"
---

# 🧪 练习三：一轮轮改，再沉淀成你的 Skill

[上机导航](https://ai.lingnan.top/materials/2026-autumn/w04/lab-manual) · [常见问题](https://ai.lingnan.top/materials/2026-autumn/w04/faq)

开始之前先看[上机导航](https://ai.lingnan.top/materials/2026-autumn/w04/lab-manual)“开始之前”一节：在终端里用 Claude Code；要交什么见导航页“做完要交什么”。

这是“先把一次任务做对，再把做对的方法写成 Skill”的实践：先带着它把练习二的演示文稿一轮轮改对，再请 `skill-creator` 把你说过的意见整理成一个新 Skill。

**练习二、三接着做，A–D 是递进步骤，不是四选一。** 在练习二的 `宏观基本面汇报/` 项目里，保留练习二的初版，另存修改版，按下面的顺序推进：

练习二初版 → A 多轮反馈与修改 → B 把做法沉淀为新 Skill → C 在新会话里测触发，通过后完整运行 → D 回看版本历史（用了 Git 的）。

A、B、C 依次完成；Git 是建议项，D 的 Git 操作适用于用了 Git 的同学，没用 Git 不必为了 D 另建仓库。**新会话不等于新文件夹**：触发测试仍在同一个项目里退出重开 Claude Code，不用搬走已有数据、规则或 Skill；完整运行时把新产物另存到项目内的 `汇报_测试/`，是为了与旧稿区分，不是换一个项目。

练习三要交三样：新 Skill 文件夹、交互记录、改过的演示文稿 HTML。几轮修改意见和触发测试都在对话里完成，交互记录里看得到，不用另交记录文件。

## A. 多轮反馈

**做什么**：对练习二的演示文稿一轮一轮提意见，**至少两轮**。改的是练习二那一版之后的新版本，练习二那一版留着不动。每一轮：

1. 在浏览器里看一遍，找出要改的地方，一次说清楚；
2. 它改完，你刷新浏览器再看；
3. 在对话里说清你看了之后满不满意、还要改哪里。你说了什么、它改了什么，交互记录里都看得到，不用另外写记录文件。想另记一份 `协作记录/反馈记录.md`，方便沉淀 Skill 时对照，可以，这是个人笔记，不用交。

建议用 Git 管理版本，每轮改完提交一次，提交说明写“第几轮：改了什么、为什么”，改坏了可以退回。

意见从下面五个方面找，要具体到能写进步骤：

| 方面 | 写得进步骤的意见举例 |
| --- | --- |
| 指标选择 | “少了金融类指标，加社融存量同比”；“社融增量每月波动太大，换成存量同比” |
| 口径 | “GDP 用当季同比，不用累计同比”；“同比变化写‘百分点’，不写‘%’”；“每条数据都带原发布链接和获取时间” |
| 图表 | “PMI 图加一条 50 的荣枯线”；“单位不同的指标分开画，不共用一根纵轴”；“图下三行：标题、单位、来源” |
| 结论表述 | “每条判断先写依据再写结论”；“‘事实’里不出现‘说明’‘意味着’”；“不写‘强劲复苏’这类没有数据撑着的词” |
| 版式 | “一页一个要点”；“判断页和事实页用不同底色”；“字号放大到后排能看清” |

“做得好看点”“再专业一点”写不进步骤；“PMI 加一条 50 的荣枯线”写得进。

**做对了会看到**：交互记录里有至少两轮，每轮写了你说的意见和它改了什么；浏览器里刷新后，每轮提的意见都能在页面上找到改动。

## B. 用 skill-creator 沉淀

**做什么**

1. 从课程仓库把 `skills/skill-creator/` 整个文件夹拷进项目的 `.claude/skills/`，退出重开 Claude Code，`/skills` 里看得到 `skill-creator`。用 Codex 的不用拷：Codex 自带 `skill-creator`，点名用 `$skill-creator`。
2. 在同一个项目里，把下面这段指令发给它。若加载 `skill-creator` 后已换了会话，先让它读取此前导出的真实交互记录，确认能找到你每轮提出的意见；有 `协作记录/反馈记录.md` 或 Git 历史的可一并参考，不让它凭记忆补写。示范指令也在材料包 `模板/沉淀指令_示范.md` 里。

**Claude Code 版**

```txt
用 skill-creator 帮我把这次做宏观基本面分析演示文稿的做法沉淀成一个新技能，名字叫 macro-fundamentals-report。
这个技能要把三样东西结合起来：
1. 取数：调用 macro-data 取近三年中国宏观指标，写清取哪几类指标、每类首选哪个接口、怎样核最新一期；
   每个数字可追溯、有留痕：下载到的每一条数据同时记下获取时间、来源机构、原始来源链接和引用信息
   （发布标题、发布日期，二手接口加接口名），数据文件逐行带来源列，取数记录逐指标汇总；
2. 出页：调用 html-slides 做演示文稿，写清页面结构（封面、数据与口径、走势页、我的判断、局限）；
3. 我的反馈：回看这次对话里我前面几轮提过的意见（有 协作记录/反馈记录.md 的也读，用了 Git 的也读提交历史），把它们逐条归纳进步骤、口径规定和最后的自检清单。
正文里写明：先用 macro-data 取数，再用 html-slides 出页；事实与判断分开；取不到的写“未取到”，不补造；
取数失败时改用项目里 宏观数据_备用/ 的 CSV。
不要把这次的具体月份和数值写进技能。
放到本项目的 .claude/skills/macro-fundamentals-report/。
description 写清：做什么、我平时会怎么说、什么时候不用它（比如只查一个数、写投资建议）。
先访谈我、给我看草稿，我确认后再写文件。不要跑评测。
```

**Codex 版**：把倒数第三行（“放到本项目的 .claude/skills/macro-fundamentals-report/。”）换成：

```txt
放到本项目的 .agents/skills/macro-fundamentals-report/，不要放到 ~/.codex/skills 或其他个人目录。
```

这一行不能省：Codex 自带的 `skill-creator` 不写明位置时，默认把技能写进个人级的旧路径 `~/.codex/skills`，不在项目里，也不跟着项目走。

3. 读它给的草稿，对照你每一轮提过的意见逐轮看：
   - 每一轮的意见都进了 Skill 吗？进在步骤、口径规定还是自检清单里？
   - 有没有把这次的具体月份、数值写死（例如“2026 年 8 月 CPI 0.8%”）？有就让它改成做法（例如“先确认最新一期是哪个月”）。
   - 正文里是不是写明了先调用 `macro-data`、再调用 `html-slides`？取数一步有没有写逐条留痕？
4. 确认后让它写文件。写完退出重开，`/skills` 里看得到 `macro-fundamentals-report`。

**做对了会看到**：`.claude/skills/macro-fundamentals-report/SKILL.md` 存在，开头两道 `---` 之间有 `name: macro-fundamentals-report` 和一段 `description`；正文里找得到你每轮反馈的影子，例如你说过“PMI 图加 50 荣枯线”，自检清单里就有这一条。

它开始跑评测、停不下来：按 `Esc`，再说一遍“不要跑评测，给我看草稿”。

## C. 触发测试（在新会话里）

测的是：你照常说话时，它想不想得起这个新技能。要在**新会话**里测（退出重开），因为刚写完技能的那个会话里它记得前面的对话，测不准。

**做什么**：留在同一个项目里退出重开 Claude Code，先输入 `/skills`，确认列表里有 `macro-fundamentals-report`；没有就先按常见问题第 30a 条排查。确认加载后，不先让它读 `SKILL.md`，也不手动点名技能，分别发下面三句话（每句看清是否调用后可按 `Esc` 停下，再退出重开测下一句）：

| 句子 | 应当 |
| --- | --- |
| “帮我做一份中国宏观基本面分析的演示文稿” | 来：屏幕上出现 `Skill(macro-fundamentals-report)` |
| “看看近几年中国宏观数据，做几页分析” | 来 |
| “查一下上个月的 CPI 是多少” | 不来：这句只该用 `macro-data` 或直接回答 |

三句结果不符合预期，先按常见问题第 30a 条排查，不继续生成整份演示文稿：

- 该来没来：先核对当前会话是否加载了新 Skill，再检查 `description` 是否写清任务和你的自然说法；修改后在同项目的新会话里重测。
- 不该来却来了：检查描述的适用范围，补清不适用的任务；修改后在新会话里重测。
- 手动点名可用来排查，但不代替自然触发测试；读了 `SKILL.md` 或生成了 HTML，也不能据此认定触发通过。

三句结果符合预期后，再换一个时间窗口或指标组合完整做一次，例如“做一份近两年中国宏观基本面分析演示文稿，加上工业增加值，输出到项目内的新文件夹 `汇报_测试/`”。核对实际调用记录和取数过程，看它是按新 Skill 从取数做起，还是照抄项目里已有的演示文稿，再检查数据来源与成品。做完可以问它“你按哪个技能的第几步做的”，但要与过程记录对照。

测试的每句话、它来没来、换窗口那次做出了什么，都在对话里完成，交互记录里看得到，不用另交测试记录。想另记一份 `协作记录/触发测试记录.md` 也可以，是个人笔记，不用交。

✅ 自查：`name` 与文件夹同名，只用小写字母、数字和连字符；`SKILL.md` 第一行就是 `---`，前面没有空行；三句测试的结果在对话里都看得到。

## D. 回看版本历史（用了 Git 的）

用了 Git 的，把新 Skill 单独提交一次：对它说“把 `.claude/skills/macro-fundamentals-report/` 单独提交一次，提交说明写‘沉淀新技能 macro-fundamentals-report 并完成触发测试’。只提交这一样。”

然后打开历史图看一眼：VS Code 左侧点“源代码管理”图标（或按 `Ctrl + Shift + G`，Mac 同样），面板下方有“源代码管理图”，折叠着的点标题展开。装了 Git Graph 扩展的，也可以点源代码管理面板顶部的 Git Graph 图标，或按 `Ctrl + Shift + P`（Mac `Command + Shift + P`）输入 `Git Graph: View Git Graph`。

**做对了会看到**：历史图上从下往上依次是：第一次提交 → 初版 → 第一轮 → 第二轮 →（更多轮）→ 沉淀新技能，每轮反馈一个节点，新 Skill 单独一个节点。哪一轮改坏了，可以从这里找回那一轮之前的版本。

## ✅ 练习三自查

- [ ] 交互记录里看得出至少两轮反馈，每轮的意见具体到能写进步骤，也看得出它改了什么
- [ ] 新 Skill 在项目的 `.claude/skills/macro-fundamentals-report/`（Codex：`.agents/skills/…`），不在个人目录
- [ ] 说得出新 Skill 里哪几条来自你哪一轮的反馈
- [ ] 新 Skill 里没有写死具体月份和数值；写明了先调用 `macro-data`、再调用 `html-slides`，取数时逐条留痕
- [ ] 新会话里两句该来的来了，一句不该来的没来；换窗口那次没有照抄旧文件
- [ ] 三句测试和换窗口那次的过程与结果，在对话里都看得到

**本练习要交**：新 Skill 文件夹 `macro-fundamentals-report/`（打成 ZIP）；交互记录（`/export` 导出的 `.txt` 或 `.md`，可多份，几轮修改意见和触发测试都在里面）；改过的演示文稿 HTML（有外部文件就连同打成 ZIP）。不用另交反馈记录、触发测试记录。
