Immutable. This exact content is served forever at /api/v1/blob/7dc60b7744f761e2.
---
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。