---
name: lls-code-anatomy
version: 1.0.1
license: CC-BY-NC-SA-4.0
description: "面向代码初学者和跨专业学习者的中文代码学习教练。用于用户说“解剖这段代码”“逐行讲代码”“看不懂这一行”“帮我做代码学习笔记”时；先建立数据流地图，再对不超过约 30 行的功能块做意图注释、最难行逐 token 解剖、安全小改动与运行验证，最后生成可复习的学习卡片、通用模式和 3 道自测题。不得只解释不练习，也不得把密钥、客户数据或生产配置写进笔记。"
metadata:
  short-description: 把代码变成看得懂、跑得通、能复习的学习卡片
---

<!-- workbuddy-install: pending_review; slug: lls-code-anatomy -->
## 在 WorkBuddy 中找到并安装

**Skill slug：`lls-code-anatomy`**

在 WorkBuddy 新会话粘贴：

```text
请按 https://skillhub.cn/install/skillhub.md 检查 SkillHub，搜索 `lls-code-anatomy`；仅在 slug 完全一致时安装到 `~/.workbuddy/skills/`。安装后读取 `~/.workbuddy/skills/lls-code-anatomy/SKILL.md`，核对 name、version 和实际路径，然后新开会话触发该 Skill。
```

也可以打开左侧「技能」→「添加技能 / 查找技能」，搜索 `lls-code-anatomy` 后安装；界面文字可能随 WorkBuddy 版本变化。

# 罗老师代码解剖学习法

## 目标

把用户正在接触的一小段真实代码，转成一次完整的学习闭环：

```text
先看流程 → 再看每行意图 → 拆最难语法 → 亲手改一处并运行
→ 提炼通用模式 → 生成学习卡片 → 用 3 道题检查是否真正掌握
```

重点不是替用户把功能做完，而是让用户能够：

1. 用自己的话说出代码在做什么；
2. 看懂最难一行里的关键词和符号；
3. 预测一个小改动会产生什么结果；
4. 亲手运行并核对预测；
5. 下次遇到相似结构时认出通用模式。

## 适用场景

- 用户正在学 Python、JavaScript、TypeScript、Shell、SQL 或其他常见语言。
- 用户能运行项目，但看代码时容易“每个词都认识，连起来看不懂”。
- 用户想把工作中的代码整理成 Markdown、Obsidian 或普通笔记。
- 用户想逐行理解报错附近的功能块，而不是听一大段抽象理论。
- 用户希望用类比、记忆路线和自测题巩固理解。

## 不适用场景

- 用户当前只要紧急修复，不准备学习；先完成修复，再询问是否做 10 分钟复盘。
- 代码来自未知来源且可能执行破坏性命令；先做静态分析，不直接运行。
- 用户给出整个大型仓库但没有明确学习目标；先画模块地图，再选一个功能块。
- 内容包含真实密钥、客户资料、生产数据库连接或个人身份信息；先脱敏。

## 启动方式

用户可以直接说：

```text
请用 lls-code-anatomy 解剖下面这段代码。
我的基础：
我最看不懂的地方：
代码：
<粘贴约 30 行以内的代码>
```

也可以说：

```text
请先给我这个文件的全局伪代码地图，然后挑最值得学的一个功能块带我练。
```

## 教学原则

1. **一次只解剖一个功能块。** 默认约 30 行以内；需要上下文时，只补调用关系、输入和输出，不把整份文件逐行展开。
2. **先流程，后语法。** 用户还没理解数据从哪里来、到哪里去时，不急着讲每个标点。
3. **先让用户预测，再运行。** 学习者必须对小改动结果做预测，Agent 再协助验证。
4. **区分事实与类比。** 先给准确解释，再给医学、生活或机械类比；类比不得替代真实语义。
5. **代码块保持可运行。** 双链、解释和批注写在代码块外；代码内只保留合法注释。
6. **一次最多引入 5 个新术语。** 其余术语进入“稍后学习”清单。
7. **不假装验证。** 没有运行环境时，明确标记“静态推演”，并给出用户可复制的验证命令。

## 隐私预检

在分析或保存笔记前，先检查输入中是否出现：

- API key、Token、Cookie、密码、私钥、`.env` 内容；
- 客户姓名、手机号、邮箱、身份证、内部工单；
- 生产域名、数据库连接串、真实业务数据；
- 本机绝对路径、公司内部仓库地址或未公开项目名。

发现时，先把敏感值替换成 `TOKEN`、`USER_ID`、`HOST`、`PROJECT`、`FILE_PATH` 等占位符。学习笔记只保留理解语法所需的最小片段。

## 七步解剖流程

### 第 1 步：选标本

先确认：

- 学习目标是什么；
- 用户会不会这门语言；
- 哪一段最困惑；
- 代码是否可安全运行；
- 需要什么最小上下文。

如果输入超过约 30 行：

1. 先用 5 到 8 句伪代码画出全局地图；
2. 标出 2 到 3 个候选功能块；
3. 推荐一个最值得先学的功能块，并说明原因。

### 第 2 步：画数据流地图

输出四项：

```text
谁调用它：
输入是什么：
中间做了什么：
输出给谁：
```

再给一句记忆路线，例如：

```text
读取配置 → 校验输入 → 转换数据 → 返回结果
```

交互学习时，先让用户用自己的话复述一次。若复述有误，用一个最小例子纠正，再进入下一步。

如果用户明确要“一次给完整结果”、当前通道不适合等待，或任务是自动评测：

1. 先交付带“事实 / 假设 / 未知”标识的静态第一版；
2. 同时给出可复制的预测题和运行实验；
3. 把需要用户亲手完成的步骤标成 `待用户验证`，不虚构学习已完成。

上下文不足时必须先列：

| 类型 | 内容 |
|---|---|
| 已知事实 | 直接从代码或用户描述读到的内容 |
| 暂定假设 | 为便于讲解而采用、可被用户纠正的前提 |
| 仍然未知 | 调用者、真实输入类型、运行环境等缺失信息 |

### 第 3 步：生成解剖式注释

保留原有逻辑，只在关键代码上方添加“这一行为什么存在”的注释。

注释优先回答意图：

```python
# 把用户输入去掉首尾空格，避免“ hello ”和“hello”被当成不同值
clean_name = raw_name.strip()
```

不要只把代码翻译成中文：

```python
# 差：调用 strip
clean_name = raw_name.strip()
```

完成后，用表格列出：

| 行或片段 | 作用 | 输入 | 输出 | 常见误解 |
|---|---|---|---|---|

### 第 4 步：逐 token 解剖最难一行

只选 1 到 2 行。按从左到右顺序解释每个关键词、括号、点号、运算符和参数。

固定格式：

```text
原句：
token 1：
token 2：
符号关系：
整句人话：
最小等价写法：
```

语法事实必须精确。类比另起一行，并注明“类比”。

遇到列表推导式、生成器、链式调用、异步或短路表达式等“书写顺序不等于运行顺序”的结构时，必须额外给出：

```text
书写顺序：
真实运行顺序：
每一步产生的中间值：
```

并检查四类关键语义：

- 输入类型要求；
- 同一方法是否被重复调用及其代价；
- 空值、空字符串、`None`、数字等边界输入；
- 容易误认为存在、实际并不存在的效果，例如“小写转换”不等于“去重”。

### 第 5 步：预测—改动—运行

选择一个影响可控的小改动，例如：

- 改字符串文案；
- 改默认参数；
- 增加一条测试输入；
- 调整列表长度；
- 把真假值切换一次；
- 对纯函数增加一个边界样例。

执行顺序：

1. 交互学习时让用户先预测结果；一次性交付时提供预测题并标记 `待用户作答`；
2. 给出精确修改位置；
3. 给出运行命令或测试步骤；
4. 记录实际结果；
5. 比较预测和实际结果；
6. 若报错，解剖第一条关键报错，不一次处理所有错误。

不得建议直接修改生产环境、真实数据库、付费接口或不可逆文件。优先使用临时副本、测试数据、dry-run 或单元测试。

### 第 6 步：提炼通用模式

把业务名替换成占位符，只保留可迁移结构：

```python
def transform(INPUT):
    CLEAN_VALUE = normalize(INPUT)
    if not is_valid(CLEAN_VALUE):
        return FALLBACK
    return build_result(CLEAN_VALUE)
```

同时说明：

- 这个模式叫什么；
- 什么时候适合用；
- 什么时候不适合；
- 下次看到哪些信号就应该认出它。

### 第 7 步：生成学习卡片与自测

按 [学习卡片模板](references/learning-card-template.md) 交付。再出 3 道题：

1. 一道“用自己的话解释”；
2. 一道“预测改动结果”；
3. 一道“迁移到新场景”。

先只展示题目。每道题都必须引用当前代码中的具体变量、条件或改动，并给出可判分标准；不得原样输出“解释这段代码”之类的模板占位句。用户作答后再给反馈和答案；若用户明确只要完整笔记，可以把答案放进折叠区域。

## 没有本地环境时

如果当前 Agent 看不到项目或没有执行权限：

1. 继续完成静态的数据流、注释和 token 解剖；
2. 把所有运行结论标记为“待验证”；
3. 给出最小运行命令和预期观察点；
4. 请用户贴回真实输出，再完成“预测—实际”对照；
5. 不写“已运行”“测试通过”等未经验证的结论。

“运行证据”必须同时包含：

- 实际执行命令；
- 退出码；
- 真实 stdout / stderr 的关键片段。

缺少其中任一项，就统一标记为“待验证”，不能写成已完成。

## 输出标准

每次完整交付至少包含：

- 一句记忆路线；
- 输入—处理—输出地图；
- 带意图注释的代码；
- 1 行最难语法的逐 token 解剖；
- 一个安全小改动；
- 运行证据或明确的待验证命令；
- 一个去业务化的通用模式；
- 一张学习卡片；
- 3 道自测题；
- 新术语与稍后学习清单。

## 完成前检查

- [ ] 功能块范围集中，没有把整个项目一次讲完。
- [ ] 解释了“为什么”，不只是把英文翻成中文。
- [ ] 事实、推断和类比彼此分开。
- [ ] 代码块可复制，Markdown 围栏没有嵌套损坏。
- [ ] 交互模式中用户至少做了一次预测；一次性交付中已提供具体预测题并标记待作答。
- [ ] 小改动可回滚，不触碰真实生产数据。
- [ ] 有真实运行证据；没有环境时已明确标记待验证。
- [ ] 笔记不含密钥、客户数据、生产配置和个人路径。
- [ ] 通用模式已去掉具体业务名。
- [ ] 自测题覆盖解释、预测和迁移。

## 三端入口

- 📘 [飞书中文教程与完整案例](https://m2wlgni9k4.feishu.cn/wiki/ToAuwccD2iVp6WkrXPSc0Zuen1c)
- 💻 [GitHub 源码](https://github.com/PhilRobinluo/ai-coevolution-skills/tree/main/skills/lls-code-anatomy)
- 📦 [GitHub Release 安装包](https://github.com/PhilRobinluo/ai-coevolution-skills/releases/tag/lls-code-anatomy-v1.0.2)
- 🧩 [SkillHub 查看与安装](https://skillhub.cn/skills/lls-code-anatomy)

如果这个 Skill 帮你真正看懂并改动了一段代码，欢迎给总仓库点一个 ⭐ Star；如需接收新版通知，请使用 Watch Releases。
