---
title: "W04 上机手册：Skills 与可复用任务"
---

# 🧭 W04 上机手册：装一个 Skill，用两个 Skill，造一个 Skill

三个练习，一个比一个进一步：

| 练习 | 做什么 | 用到的 Skill | 项目文件夹 |
| --- | --- | --- | --- |
| 练习一（基础） | 从 GitHub 下载 `html-slides`，装进项目，用它做一份网页演示文稿 | `html-slides` | `网页演示练习/` |
| 练习二（进阶） | 用 `macro-data` 取近三年中国宏观数据，再用 `html-slides` 做一份宏观基本面分析演示文稿，写出你对当前中国宏观基本面的判断 | `macro-data` + `html-slides` | `宏观基本面汇报/` |
| 练习三（沉淀） | 对练习二的演示文稿一轮轮提意见、让它改；再用 `skill-creator` 把取数、出页和你的意见沉淀成一个新 Skill，并测试它 | 前两个 + `skill-creator` | 同练习二 |

练习一做完就达标。练习一学会的装法、重开、确认，练习二开头会再做一遍；练习二的演示文稿是练习三的起点。

本手册用到的 Skill 都在课程组的公开仓库 <https://github.com/ai-lingnan/sysu-awesome-cc> 的 `skills/` 文件夹里，从那里下载，材料包里不附。材料包里有练习一的素材、练习二的备用数据和几个模板，见各练习“准备”一节。

每一步写两样：做什么；做对了会看到什么，可以逐项对照检查。几处附了实际画面的截图，供对照。灰底方框是电脑常识，已经会的跳过。

## 做完要交什么

三个练习各交两样：

1. **交互记录**：你和 Claude Code 的对话，交 `.txt` 或 `.md` 文本文件，不收截图。在会话里输入 `/export 文件名` 导出（见文末“导出对话”）；这个练习用过几段会话就导出几份，不用合并。交互记录里要能看出你审阅了 AI 的产物、提出了具体反馈、让它修改过；把手册整份丢给它“替我全部做完”，记录里看不出这些。
2. **最终产物**：

| 练习 | 最终产物 |
| --- | --- |
| 练习一 | 网页演示文稿的 HTML（它生成的 `html_deck_…/index.html`）；文件夹里还有图片、样式等外部文件的，把整个文件夹打成 ZIP |
| 练习二 | 宏观基本面分析演示文稿的 HTML（有外部文件就连同打成 ZIP），加上 `协作记录/取数记录.md` |
| 练习三 | 用 `skill-creator` 沉淀出的 Skill 文件夹 `macro-fundamentals-report/`（打成 ZIP），加上 `协作记录/触发测试记录.md` |

Git 历史不用另交。建议用 Git 管理版本，每轮改完提交一次，改坏了可以退回。

## 开始之前

### 在终端里用 Claude Code

本手册的操作都在**终端**里运行 `claude`。用 VS Code 的：菜单“终端 → 新建终端”（英文界面 Terminal → New Terminal），窗口下方出现的就是终端，在里面输入 `claude` 回车。

> 💡 **常识：VS Code 里的两种 Claude Code**
>
> VS Code 里有两种用法：一是在终端里输入 `claude`（命令行界面），二是点侧边栏或右上角的 Claude 图标打开的图形面板。有些功能只在命令行界面里能用，在图形面板或其他非终端环境里输入 `/export` 等命令，会看到 `/export isn't available in this environment.`。本手册的步骤按终端写；图形面板里做不了的，回到终端做。

> 💡 **常识：键盘上的几个键**
>
> - `Enter`（回车）：发送、确认。Mac 键盘上写作 `return`。
> - `Tab`：键盘左侧、字母 Q 左边的那个键，上面常印着 `Tab` 或 `⇥`。在终端里按它可以补全文件名。
> - `Ctrl`：键盘左下角。Mac 上用的也是 `control`，不是 `command`（⌘）。本手册写 `Ctrl + C`，意思是按住 `Ctrl` 不放，再按一下 `C`。
> - `Esc`：键盘左上角。Claude Code 正在干活时按一下，让它停下。
> - `Shift + Tab`：切换 Claude Code 的权限模式，屏幕最下面一行会跟着变。

### 电脑上没有 VS Code

先按 W01 安装手册装好：<https://ai.lingnan.top/materials/2026-autumn/w01/installation>。装好之前，练习一可以用 Mac 的“终端”或 Windows 的 PowerShell 启动 `claude`，文件夹用访达或资源管理器操作（隐藏文件夹怎么显示见练习一第 4 步）。

---

## 练习一（基础）：从 GitHub 装 html-slides，做一份网页演示文稿

### 准备

材料包 `01_网页演示/素材/` 里有两份背景资料：`背景_经济金融类实习市场_教学模拟.md`、`背景_岗位类别与技能说明.md`（教学模拟材料）。

### 第 0 步：建项目文件夹

**做什么**

1. 在你平时放作业的位置（桌面、文档，或之前建的 `agent-lab` 都可以）新建一个文件夹，起名 `网页演示练习`。
2. 在 `网页演示练习` 里面再建一个文件夹 `素材`，把材料包里那两份背景资料拷进去。
3. 打开 VS Code，菜单“文件 → 打开文件夹”，选 `网页演示练习`，点“打开”。弹出“是否信任此文件夹的作者”时选“是，我信任此作者”。
4. 菜单“终端 → 新建终端”，在下方终端里输入 `claude` 回车。第一次在这个文件夹里启动时，它会问你是否信任这个文件夹里的文件，用方向键选“是”的那一项（通常是第一项），回车。

**做对了会看到**：VS Code 左侧文件栏最上面是 `网页演示练习`，下面有 `素材`，展开能看到两份 `.md` 文件；下方终端里出现 Claude Code 的欢迎界面，第三行是你这个文件夹的路径，路径最后一段是 `网页演示练习`。

> 💡 **常识：文件夹、路径和“建项目”**
>
> 路径是一个文件夹一层层的地址。同一个文件夹，两种系统写法不同：
>
> | | 路径长什么样 | 分隔符 |
> | --- | --- | --- |
> | Mac | `/Users/你的用户名/Documents/网页演示练习` | `/` |
> | Windows | `C:\Users\你的用户名\Documents\网页演示练习` | `\` |
>
> Mac 的“文稿”就是 `Documents`；Windows 的“文档”也是。终端里的 `~` 代表你的用户文件夹（Mac 是 `/Users/你的用户名`，Windows 是 `C:\Users\你的用户名`）。
>
> “建项目”就是建一个文件夹，把这件事要用的文件都放进去，再用 VS Code 打开它、在里面启动 `claude`。在哪个文件夹启动 `claude`，它就把哪个文件夹当成项目。

### 第 1 步：打开课程仓库页

**做什么**：浏览器打开 <https://github.com/ai-lingnan/sysu-awesome-cc>。页面中间是文件列表，点进 `skills` 文件夹，里面每个子文件夹就是一个 Skill。点开 `html-slides`，能看到 `SKILL.md` 和 `assets`、`references`、`scripts` 等几个子文件夹。

**做对了会看到**：`skills` 下有十几个以英文小写和连字符命名的文件夹，其中有 `html-slides`、`macro-data`、`skill-creator`：

![课程仓库 skills 文件夹：十几个 Skill 文件夹，其中有 html-slides、macro-data、skill-creator](/course-materials/2026-autumn/w04/lab-manual/w04-1-skills-list.webp)

点开 `html-slides`，里面是 `assets`、`evals`、`references`、`scripts` 四个子文件夹和一个 `SKILL.md`：

![html-slides 文件夹：assets、evals、references、scripts 四个子文件夹和 SKILL.md](/course-materials/2026-autumn/w04/lab-manual/w04-1-html-slides-folder.png)

> 💡 **常识：GitHub 是什么**
>
> GitHub 是放代码和文件的公共网站，一个项目叫一个“仓库”（repository）。看和下载公开仓库不用注册账号。

### 第 2 步：下载

两条路，任选一条。没用过 Git 命令的走路一。

**路一：下载 ZIP（推荐）**

回到仓库首页（点页面左上方的 `sysu-awesome-cc` 仓库名即可回去），点文件列表右上方的绿色 **Code** 按钮，在弹出的菜单最下面点 **Download ZIP**。浏览器会下载一个 `sysu-awesome-cc-main.zip`（约 1 MB），一般在“下载”文件夹里。

![仓库首页的绿色 Code 按钮，点开后菜单最下面一项是 Download ZIP](/course-materials/2026-autumn/w04/lab-manual/w04-2-code-download-zip.png)

**路二：用 Git 克隆（会用 Git 的）**

在终端里运行（不是在 Claude Code 里，先退出它，或另开一个终端）：

```bash
git clone https://github.com/ai-lingnan/sysu-awesome-cc.git
```

也可以直接对 Claude Code 说：“把 https://github.com/ai-lingnan/sysu-awesome-cc 克隆到我的‘下载’文件夹。”克隆得到的是普通文件夹，不用解压，跳到第 3 步最后一句去找 `html-slides`。以后仓库更新了，在这个文件夹里运行 `git pull` 就能拿到新版。

> 💡 **常识：下载与“下载”文件夹**
>
> 浏览器下载的文件默认放在“下载”文件夹：Mac 是访达左侧的“下载”（`/Users/你的用户名/Downloads`），Windows 是资源管理器左侧的“下载”（`C:\Users\你的用户名\Downloads`）。找不到时，点浏览器右上角的下载图标，再点文件旁的“在文件夹中显示”。

### 第 3 步：解压

> 💡 **常识：ZIP 与解压**
>
> ZIP 是把一堆文件和文件夹打成一个包，方便下载。用之前要“解压”，还原成普通文件夹。

**做什么**

| | 操作 | 解压后的样子 |
| --- | --- | --- |
| Mac | 在访达里双击 `sysu-awesome-cc-main.zip` | 旁边出现文件夹 `sysu-awesome-cc-main`，里面就是 `skills` 等。用 Safari 下载的，可能已经自动解压好了 |
| Windows | 右键 ZIP → “全部解压缩…”（Windows 11 右键菜单里直接有；没有就先点“显示更多选项”）→ “提取” | 出现文件夹 `sysu-awesome-cc-main`，**里面还有一层同名文件夹** `sysu-awesome-cc-main`，再往里才是 `skills` |

进 `skills`，找到 `html-slides` 文件夹，点进去确认里面有 `SKILL.md`。

**做对了会看到**：一个普通的 `html-slides` 文件夹，里面有 `SKILL.md` 和 `assets`、`evals`、`references`、`scripts` 四个子文件夹，和第 1 步在网页上看到的一样。文件夹图标上没有拉链标记，地址栏里没有 `.zip` 字样（有的话，你看到的还是压缩包里面）。

⚠️ Windows 上直接双击 ZIP，看到的是“预览”，不是解压。从预览窗口里拖出来的文件夹可能缺文件。一定先“全部解压缩”。

### 第 4 步：把技能文件夹拷到对的位置

Claude Code 在两个位置找 Skill：

| 位置 | 路径 | 效果 |
| --- | --- | --- |
| **项目级（本练习用）** | 项目文件夹里的 `.claude/skills/` | 只在这个项目里能用，跟着项目走，可以连同项目发给组员 |
| 个人级 | Mac：`/Users/你的用户名/.claude/skills/`；Windows：`C:\Users\你的用户名\.claude\skills\` | 这台电脑上所有项目都能用 |

用 Codex 的同学：项目级是 `.agents/skills/`，个人级是 `~/.agents/skills/`（`~` 见第 0 步常识框）。下文凡写 `.claude/skills/` 的，Codex 换成 `.agents/skills/`。

**做什么**：在 `网页演示练习` 里建出 `.claude/skills/` 两层文件夹，再把第 3 步找到的**整个** `html-slides` 文件夹放进 `skills`。三种做法任选：

1. **在 VS Code 里（推荐）**：鼠标移到左侧文件栏标题 `网页演示练习` 那一行，点出现的“新建文件夹”图标，输入 `.claude` 回车；右键 `.claude` → “新建文件夹”，输入 `skills` 回车。然后从访达或资源管理器里，把 `html-slides` 文件夹拖到 VS Code 文件栏的 `skills` 上，松手后 VS Code 会复制一份进去。VS Code 文件栏里以点开头的文件夹是看得见的。
2. **让 Claude Code 建文件夹**：对它说“在当前项目里新建 `.claude/skills` 文件夹”，它会请你批准，批准后，再用访达或资源管理器把 `html-slides` 拖进去。
3. **全在访达或资源管理器里做**：先让隐藏文件夹显示出来（见下面的常识框），再新建、拖动。Mac 访达不让直接把新文件夹命名成以点开头的名字，这种情况用做法 1 或 2 建。

**做对了会看到**：VS Code 文件栏里一层层展开是 `网页演示练习/.claude/skills/html-slides/SKILL.md`，`html-slides` 下面还有 `assets`、`references` 等子文件夹；`.claude` 和 `素材` 并排，都在 `网页演示练习` 下面一层。

两种常见的放错：

- 多了一层：`.claude/skills/sysu-awesome-cc-main/skills/html-slides/…`，把整个仓库拷了进去。
- 少了一层：`.claude/skills/SKILL.md`，只拷了文件，外面没有 `html-slides` 文件夹。

> 💡 **常识：隐藏文件夹**
>
> 名字以 `.` 开头的文件夹（如 `.claude`、`.git`）是放配置的，系统默认不显示，不是没有。要显示出来：
>
> - Mac 访达：按 `Command + Shift + .`（句点），再按一次恢复隐藏。
> - Windows 11 资源管理器：顶部“查看 → 显示 → 隐藏的项目”；Windows 10：顶部“查看”选项卡，勾选“隐藏的项目”。
> - VS Code 文件栏默认就显示。

### 第 5 步：退出，重新打开 Claude Code

`.claude/skills/` 是 Claude Code 启动之后才建的，要退出再启动一次，它才会去读这个文件夹。

**做什么**

1. 在运行 Claude Code 的终端里按一次 `Ctrl + C`，最下面出现 `Press Ctrl-C again to exit`；紧接着再按一次 `Ctrl + C`，Claude Code 退出，回到命令行提示符（一行以 `%`、`$` 或 `>` 结尾、光标在后面闪的文字）。
2. 输入 `claude` 回车，重新启动。

**做对了会看到**：按第一次后屏幕最下面出现 `Press Ctrl-C again to exit`；按第二次后 Claude Code 的界面消失，回到命令行提示符；再输入 `claude`，重新出现欢迎界面，输入框是空的，上一段对话不在屏幕上。

> 💡 **常识：按一次 Ctrl + C 和按两次；什么是“新会话”**
>
> - 按一次：它正在干活时是打断；输入框里有字时是清空；什么都没做时，屏幕提示“再按一次退出”。
> - 紧接着按第二次：退出 Claude Code。**按两次 Ctrl + C 只是退出**，还要再输入 `claude` 才算重新打开。
> - 退出后再输入 `claude` 启动，就是一个**新会话**：屏幕上没有上一次的对话，它重新读取项目规则和技能清单。旧对话没有丢，存在你电脑上，想接着上次聊，启动时输入 `claude --continue`（接最近一次）或 `claude --resume`（从列表里选），本练习不需要。
> - 用 VS Code 图形面板的：关掉面板，重新打开，点“新对话”。

### 第 6 步：确认它看得到

**做什么**：在 Claude Code 里输入 `/skills` 回车。

**做对了会看到**：弹出一个技能列表，其中一行是 `html-slides`，后面标着 `project`（项目级）和一个很小的 token 数（例如 `~40 tok`，这就是它平时常驻的那一行描述的大小）。按 `Esc` 关掉列表。

列表里没有 `html-slides`：回第 4 步核对那一串路径，确认做过第 5 步；还不行看[常见问题](/materials/2026-autumn/w04/faq)。也可以直接问它“你有哪些技能可用”，让它列出来。

### 第 7 步：自然说话，让它自己来一次

**做什么**：在输入框里粘贴下面这段话，回车。

```txt
把 素材/ 里的两份背景资料做成一份 6 页左右的网页演示文稿，给同学介绍经济金融类实习市场。
不要配图，不做截图审阅，不导出 PDF，只做 HTML。
```

它开始干活前，屏幕上会出现这样两行：

```txt
⏺ Skill(html-slides)
  ⎿  Successfully loaded skill
```

这说明它读了你的话，自己判断这件事归 `html-slides` 管，打开了这个技能。之后它会写文件，每次写文件前可能请你批准（选 Yes 回车）。等它说做完了，在 VS Code 文件栏里找它生成的文件夹（一般叫 `html_deck_…`），里面有 `index.html`。

**做对了会看到**：屏幕上出现过上面那两行；在访达或资源管理器里双击 `index.html`，浏览器打开一份暖纸色底、深红强调色、宋体标题的网页演示文稿；按键盘方向键 → ← 翻页，封面和目录能点。每个人做出来的标题、版式会不一样，下面是一次实测的封面：

![浏览器里打开的网页演示文稿封面：暖纸色底，标题“经济金融类实习市场”，“实习市场”四字为深红色](/course-materials/2026-autumn/w04/lab-manual/w04-7-deck-cover.webp)

> 💡 **常识：用浏览器打开 HTML**
>
> `.html` 文件就是网页，双击会用默认浏览器打开。没反应：右键 → “打开方式” → 选 Chrome 或 Edge。在 VS Code 里不能直接预览网页，要到访达或资源管理器里双击；VS Code 文件栏里右键文件，选“在访达中显示”（Windows 是“在文件资源管理器中显示”）可以跳过去。

它问要不要装 Playwright、要不要生成配图、要不要导出 PDF：回答“不要，只做 HTML”。这几步要另装程序，本练习不需要。

### 第 8 步：点名，再让它来一次

**做什么**：输入下面这段话，回车。

```txt
/html-slides 在最后加一页“给大二同学的三条找实习建议”，建议只能来自素材里写到的内容。
```

`/html-slides` 要写在最前面，后面空一格再写要求。输入 `/html` 时屏幕上会弹出候选，按 `Tab` 或回车可以补全。

**做对了会看到**：它不再自己判断，直接按 `html-slides` 干活。改完后回到浏览器，按 `F5`（Mac 按 `Command + R`）刷新，翻到最后一页，多了“三条找实习建议”，每条建议旁边能看出出自哪份素材：

![新加的最后一页“给大二同学的三条找实习建议”，每条后面标了依据来自哪份素材](/course-materials/2026-autumn/w04/lab-manual/w04-8-deck-last-page.webp)

两种用法的区别：第 7 步是**它自己想起来**，靠的是技能的描述和你的话对得上；第 8 步是**你点名**，不管你的话里有没有它认得的词，都用这个技能。它想不起来时，就点名。

### 第 9 步：打开 SKILL.md 读一遍

**做什么**：在 VS Code 文件栏点开 `.claude/skills/html-slides/SKILL.md`。

**找出三样东西**

- 文件最上面两道 `---` 之间：`name: html-slides` 是技能的名字，和文件夹同名；`description:` 后面那段是描述。平时它常驻的就是这一段，靠它判断什么时候用这个技能。
- 第二道 `---` 以下是正文：它决定用这个技能以后才读。
- 正文里提到的 `references/…`、`scripts/…`、`assets/…` 文件，做到那一步才打开。

然后用自己的话写一句：这个技能在什么时候会被用上？

**做对了会看到**：文件第 1 行和第 4 行各是一道 `---`；第 2 行是 `name: html-slides`；第 3 行以 `description:` 开头，是一段中文，讲它做浏览器里放映的 HTML 课件、适用于网页演示文稿；第 4 行以下是正文。

做到这里，练习一达标。

还有余力：用你自己以前做过的一份简报素材，再用 `html-slides` 做一份，和当时不用 Skill 做的成品放在一起比一比。

### ✅ 练习一自查

- [ ] 路径对得上：`网页演示练习/.claude/skills/html-slides/SKILL.md`（Codex：`.agents/skills/html-slides/SKILL.md`）
- [ ] `/skills` 列表里有 `html-slides`
- [ ] 自然说话那次，屏幕上出现过 `Skill(html-slides)`
- [ ] `/html-slides` 点名那次，最后一页加上了，内容能在素材里找到出处
- [ ] 双击 `index.html`，浏览器里能翻页
- [ ] 说得出 `name`、`description`、正文各在哪里，用一句话说出这个技能什么时候会被用上

**本练习要交**：交互记录（`/export` 导出的 `.txt` 或 `.md`，可多份）；网页演示文稿 HTML（有外部文件就把整个 `html_deck_…` 文件夹打成 ZIP）。

---

## 练习二（进阶）：两个 Skill 接力，做一份宏观基本面分析演示文稿

### 任务

做一份宏观基本面分析演示文稿（HTML，在浏览器里翻页），题目“当前中国宏观基本面：近三年指标走势与我的判断”。不是把走势图堆在一起，要在几个宏观指标近三年走势的基础上，落到你自己对当前中国宏观基本面的判断，做成可以上台讲的演示文稿。

- **指标**：至少四个，覆盖增长、价格、景气、金融四类中的三类以上。可以参考：GDP 当季同比（增长）；CPI 同比、PPI 同比（价格）；制造业 PMI（景气）；社会融资规模存量同比或 M2 同比（金融）。
- **时间**：近三年。月度指标约 36 期，季度指标约 12 期；写明数据截至哪一期。
- **页面**（8–10 页）：封面（题目、数据截至哪一期、取数日期、作者）→ 数据与口径（每个指标一行：来源机构、原发布链接、取数接口或文件、口径、最新一期）→ 各指标走势（一页一到两张图，图下写“事实”）→ 我的判断（两到三条，每条下面挂依据）→ 局限与待确认。

**三条硬要求**

1. **每个数字可追溯、有留痕**：布置取数任务时就要求 AI，下载到的每一条数据同时记下获取时间、来源机构、原始来源链接（原发布页面的 URL）和引用信息（发布标题、发布日期）；经 AKShare 等二手接口取的，同时写接口名。数据文件逐行带这些来源列，`取数记录.md` 按指标汇总。演示文稿里的每个数字，都能顺着这些记录找回原发布。
2. **结论有数据支撑**：每条判断下面写明依据哪个指标、哪几期、数值多少，这些数字在页面上找得到。
3. **事实与判断分开**：“事实”只描述数据（升了还是降了、高点低点、连续几期）；“我的判断”是你的解读。两者用不同标签和版式区分。不写投资建议，不预测具体数值。

完整的任务说明与自查清单也放在材料包 `02_宏观汇报/口径与要求/汇报要求.md`。

### 准备

材料包 `02_宏观汇报/` 里有：

| 文件或文件夹 | 用途 |
| --- | --- |
| `宏观数据_备用/` | 一份现成的宏观月度数据 CSV（2024-01 至 2026-08，GDP 到 2026Q2，逐行附来源机构、来源网址与发布日期）和它的来源说明。取不到数时用，只读 |
| `口径与要求/汇报要求.md` | 任务说明与自查清单，只读 |
| `模板/CLAUDE_模板.md` | 项目规则模板，改名 `CLAUDE.md` 放项目根目录 |
| `模板/gitignore_白名单.txt` | 用 Git 的，改名 `.gitignore` 放项目根目录 |
| `模板/取数记录_模板.md`、`反馈记录_模板.md`、`触发测试记录_模板.md` | 三份记录模板，放进项目的 `协作记录/` |
| `模板/沉淀指令_示范.md` | 练习三给 `skill-creator` 的示范指令 |

### 第 1 步：建项目，装两个 Skill

**做什么**

1. 新建项目文件夹 `宏观基本面汇报`，用 VS Code 打开。
2. 把材料包 `02_宏观汇报/` 里的 `宏观数据_备用`、`口径与要求` 两个文件夹拷进项目；把 `模板/CLAUDE_模板.md` 拷进项目根目录并改名 `CLAUDE.md`；新建文件夹 `协作记录`，把三份记录模板拷进去，去掉文件名里的“_模板”。
3. 用练习一的办法，从课程仓库把 `macro-data` 和 `html-slides` 两个文件夹拷进项目的 `.claude/skills/`。练习一下载解压过的仓库文件夹可以直接用。
4. 在终端里启动 `claude`，输入 `/skills`，列表里有 `macro-data` 和 `html-slides` 两个。
5. 建议开启 Git 版本记录，后面每轮改完提交一次，改坏了可以退回：把 `模板/gitignore_白名单.txt` 拷进项目根目录并改名 `.gitignore`（前面有点，没有 `.txt`），再对它说：“在这个项目里开启 Git 版本记录，先告诉我 `.gitignore` 会让哪些文件进版本记录，等我确认再做第一次提交。”确认清单里没有 `.claude/skills/macro-data`、`.claude/skills/html-slides`（下载来的技能随时能重新下载，不进版本记录），再让它提交。

**做对了会看到**：`/skills` 列表里 `macro-data`、`html-slides` 两行都在，后面都标着 `project`。项目文件栏大致是这样（`.gitignore` 是开启了 Git 才有的）：

```txt
宏观基本面汇报/
├── CLAUDE.md
├── .gitignore
├── .claude/skills/
│   ├── html-slides/
│   └── macro-data/
├── 宏观数据_备用/        只读
├── 口径与要求/           只读
└── 协作记录/             取数记录.md、反馈记录.md、触发测试记录.md
```

改名时看不到 `.txt` 后缀：Windows 资源管理器“查看 → 显示 → 文件扩展名”；Mac 在 VS Code 文件栏里右键“重命名”最方便。

### 第 2 步：先读 Skill，再配环境

`macro-data` 要用 Python 和 AKShare 等程序取数。装别人的 Skill，先读一遍它要你装什么。

**做什么**：对它说：

```txt
先读 .claude/skills/macro-data/SKILL.md，告诉我：要取近三年中国的 GDP、CPI、PPI、PMI、社融或 M2，
按它的路由表走哪个数据源、要装什么、在我这台电脑上最少要装什么。先别装，讲完等我确认。
```

它讲完后，按它的说明决定。**第一次用 `macro-data` 时，它会先检查你电脑上的环境；缺什么，它会说明要装什么、装到哪里、大约多久，按提示确认后再装。**安装过程中每条命令都会请你批准；有需要你自己动手的步骤（例如双击安装包、勾选某个选项），它会一步一步说。

**做对了会看到**：它说清了要走的数据源和要装的东西；装完后它会跑一次测试取数，告诉你环境可用，并报出测试取到的是哪个指标、哪一期。

环境装了很久还跑不通，不要一直耗着，直接走本练习末尾的“取不到数怎么办”。

### 第 3 步：取数，逐条留痕

**做什么**：布置取数任务时，就把留痕要求一起说清。对它说：

```txt
用 macro-data 取近三年中国的 GDP 当季同比、CPI 同比、PPI 同比、制造业 PMI、社融存量同比（或 M2 同比），
原始数据存进 宏观数据/，每个指标一份 CSV 文件。
下载到的每一条数据都要同时记下：获取时间、来源机构、原始来源链接（原发布页面的 URL）、
发布标题、发布日期；经 AKShare 等二手接口取的，再加一列接口名。这些作为数据文件的列，逐行写。
找不到原发布链接的写“未找到”，不要编。
每取完一个指标，在 协作记录/取数记录.md 里汇总一行：指标、接口或文件、获取时间、来源机构、
最新一期的原发布链接和发布日期、覆盖期间、最新一期是哪个月、有没有滞后。
取不到的写“未取到”，不要补造。
```

取到之后先看每个指标的**最新一期**是哪个月。有的接口会滞后很久（`macro-data` 的 `SKILL.md` 里写了这类坑），滞后的让它换接口重取。

再打开一两份数据文件看看：来源列有没有空着的、链接是不是指向国家统计局或中国人民银行的原发布页面。有空着或写“未找到”的，让它说明原因，能补的补上。

**做对了会看到**：屏幕上出现过 `Skill(macro-data)`；`宏观数据/` 里每个指标一份数据文件，每一行都有获取时间、来源机构、原始来源链接、发布标题、发布日期（二手接口另有接口名）；`取数记录.md` 每个指标汇总一行。

### 第 4 步：看数，定判断

**做什么**

1. 让它把每个指标的走势用三五句话描述出来，只说事实：升还是降、高点低点在哪一期、最近连续几期怎样。
2. 你读完，**自己**写两三条判断。判断是你的，它负责找数据。
3. 把你的判断发给它：“为这几条判断各找支撑的数据和可能的反例，写明哪个指标、哪几期、数值多少。”

**做对了会看到**：每条判断下面有两三条依据，也有它找到的反例；依据里的数字都能在 `宏观数据/` 的文件里找到，那一行带着来源链接。

> 💡 **事实和判断怎么分**
>
> “CPI 同比连续三个月低于 1%”是事实，数据自己会说；“需求偏弱”是判断，是你的解读，要挂依据。写“事实”时不用“说明”“意味着”这类词。

### 第 5 步：出页

**做什么**：对它说：

```txt
用 html-slides 把上面的内容做成 8–10 页的宏观基本面分析演示文稿，结构按 口径与要求/汇报要求.md。
图用内嵌 SVG 或页面内脚本绘制，不引外部图表库；每张图下写单位和来源。
“数据与口径”页每个指标写来源机构、原发布链接、获取时间。
“事实”与“我的判断”用不同标签区分。不要配图，不做截图审阅，不导出 PDF。
```

**做对了会看到**：屏幕上出现过 `Skill(html-slides)`；双击生成的 `index.html`，浏览器里能翻页，每张图下有单位和来源；“我的判断”那一页每条判断下面挂着依据，标签和版式与“事实”页不同。

### 第 6 步：自查

按下面的清单逐项查一遍，没过的让它改。审阅时发现的问题，一次说清楚要它怎么改，这些来回都会留在交互记录里。用 Git 的，都过了之后对它说：“把这一版提交，提交说明写‘练习二：宏观基本面分析演示文稿初版’。”这一版是练习三的起点。

### ✅ 练习二自查

- [ ] `/skills` 里有 `macro-data` 与 `html-slides`；取数和出页时屏幕上各出现过调用那一行
- [ ] 数据文件每一行都带获取时间、来源机构、原始来源链接、发布标题、发布日期；二手接口取的带接口名
- [ ] `取数记录.md` 每个指标汇总一行；滞后的写明
- [ ] 任选一张图上的两个点，回 `宏观数据/` 找到那两行，打开来源链接，原发布里的数字与发布日期对得上
- [ ] 每条“我的判断”下面有依据，依据里的数字在页面上找得到
- [ ] 事实与判断分开标注；没有投资建议，没有具体数值预测
- [ ] 取不到的指标写“未取到”，没有补造
- [ ] 断网后双击 `index.html`，所有页和图都能显示
- [ ] 用了 Git 的：下载来的两个技能文件夹没有进版本记录（`git status` 或 VS Code 源代码管理面板里看不到它们）

**本练习要交**：交互记录（`/export` 导出的 `.txt` 或 `.md`，可多份）；宏观基本面分析演示文稿 HTML（有外部文件就连同打成 ZIP），加上 `协作记录/取数记录.md`。

### 取不到数怎么办

1. **全部改用备用数据**：对它说“`macro-data` 取数没跑通，改用 `宏观数据_备用/宏观月度数据_2024-2026.csv`，数据与口径页写明来源是这份文件以及文件里每行的来源机构、原发布网址和发布日期”。这份 CSV 每行已带来源机构、原发布网址和发布日期，是课程组 2026-09-21 从国家统计局、中国人民银行官网整理的；`取数记录.md` 里获取方式写“课程备用数据”。这份数据从 2024 年 1 月开始，不到三年，题目改成“2024 年以来”，在“局限”页写明。
2. **部分取到**：取到几个用几个，其余从备用 CSV 补，数据与口径页逐个标来源。
3. 两种情况都照样用 `html-slides` 出页，自查清单照样适用。在 `取数记录.md` 里写清卡在哪一步、报的什么错，这也是一条可以写进练习三 Skill 的经验。

---

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

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

### A. 多轮反馈

**做什么**：对练习二的演示文稿一轮一轮提意见，**至少两轮**。每一轮：

1. 在浏览器里看一遍，找出要改的地方，一次说清楚；
2. 它改完，你刷新浏览器再看；
3. 在 `协作记录/反馈记录.md` 记下：这一轮你说了什么、它改了什么、你看了之后满不满意。

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

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

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

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

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

### B. 用 skill-creator 沉淀

**做什么**

1. 从课程仓库把 `skills/skill-creator/` 整个文件夹拷进项目的 `.claude/skills/`，退出重开 Claude Code，`/skills` 里看得到 `skill-creator`。用 Codex 的不用拷：Codex 自带 `skill-creator`，点名用 `$skill-creator`。
2. 在同一个项目里（反馈记录都在这里），把下面这段指令发给它。它也在材料包 `模板/沉淀指令_示范.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. 读它给的草稿，对照 `反馈记录.md` 逐轮看：
   - 每一轮的意见都进了 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，分别发下面三句话（每句测完可以按 `Esc` 让它停下，再退出重开测下一句）：

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

再换一个时间窗口或指标组合完整做一次，例如“做一份近两年中国宏观基本面分析演示文稿，加上工业增加值，输出到新文件夹 `汇报_测试/`”。看它是按新 Skill 的步骤从取数做起，还是照抄项目里已有的演示文稿。做完问它：“你按哪个技能的第几步做的？”

每次的结果记进 `协作记录/触发测试记录.md`。

- 该来没来：在 `description` 里补上你刚才那句话的说法，改完重测这一句。
- 不该来却来了：在 `description` 里补一句“不用于……”，改完重测这一句。

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

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

用了 Git 的，把新 Skill 和测试记录单独提交一次：对它说“把 `.claude/skills/macro-fundamentals-report/` 和 `协作记录/触发测试记录.md` 单独提交一次，提交说明写‘沉淀新技能 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 单独一个节点。哪一轮改坏了，可以从这里找回那一轮之前的版本。

### ✅ 练习三自查

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

**本练习要交**：交互记录（`/export` 导出的 `.txt` 或 `.md`，可多份）；用 `skill-creator` 沉淀出的 Skill 文件夹 `macro-fundamentals-report/`（打成 ZIP），加上 `协作记录/触发测试记录.md`。

---

## 附：回看这次协作

### 导出对话

在**终端里运行的** Claude Code 输入：

```txt
/export 协作记录/对话记录_练习二.txt
```

会把这次会话的对话和工具输出写成一个文本文件。不带文件名只输入 `/export`，会弹出菜单，可以选复制到剪贴板或保存为文件。几段会话就导出几份：之前的会话用 `claude --resume` 从列表里找回，再 `/export`。

会话很长时，Claude Code 会自动“压缩”（屏幕上出现 `Conversation compacted`），把前面的对话换成一段摘要。压缩之后再 `/export`，导出的是摘要加压缩之后的内容，前面的原话不在里面。所以做长任务时，**在每个练习做完时就导出一次**；已经压缩了的，见[常见问题](/materials/2026-autumn/w04/faq)“会话被压缩后导出不全”。

### 要记住的四件事

1. Skill 就是一个文件夹加一个 `SKILL.md`，放在项目的 `.claude/skills/` 里（Codex 是 `.agents/skills/`）；第一次放进去后退出重开。
2. 它平时只带着描述，用到才读正文；描述决定它来不来，想不起来就点名 `/技能名`。
3. 装别人的 Skill 先读一遍：它要装什么、要做什么，签字的是你。
4. 先把一次任务做对，再把做对的方法写成 Skill；写完在新会话里测：该来的来，不该来的不来。
