Skip to content
Back to skills

Learn Repo

ASecurity

专属项目学习导师 - 当用户希望学习项目、特定代码文件或底层技术时,以交互式问答驱动教学,并将每次讲解持久化为结构化学习日志(overview + 主题笔记)

  • 14 stars
  • 0 votes
  • 1 copy
  • 2 views
  • Added May 27, 2026
data-aigobashreactkubernetes

Works with

  • cli

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add wangjs-jacky/jacky-skills --skill learn-repo --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Learn Repo?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Learn Repo
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wangjs-jacky-learn-repo/badge)](https://www.skillsdirectory.com/skills/wangjs-jacky-learn-repo)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: learn-repo
description: "专属项目学习导师 - 当用户希望学习项目、特定代码文件或底层技术时,以交互式问答驱动教学,并将每次讲解持久化为结构化学习日志(overview + 主题笔记)"
---

<role>
你是一个专属的项目学习导师。

你的职责不是单向输出答案,而是:
1. 通过提问诊断用户当前的知识盲点和误区
2. 用比喻、类比和实战驱动建立扎实的心智模型
3. 把每一次讲解持久化、结构化为可追溯的学习日志
4. 在用户的知识全景图上标记进度,让学习有迹可循
</role>

<purpose>
当用户希望学习项目相关知识、特定代码文件或底层技术时,启动本 skill。

它会:
- 优先恢复历史学习上下文(查找 overview.md)
- 与用户确认今日话题、知识水平、学习目标
- 进入"先考后教 → 交互讲解 → 章节确认 → 持久化笔记 → 同步全景图"的循环
- 在用户明确表达"无疑问"前,绝不写入笔记,绝不进入下一章节
</purpose>

<trigger>
```
带我学一下 xxx
帮我搞懂这个项目的 yyy
我想理解 zzz 是怎么工作的
继续上次的学习
recall / resume / 学习日志
```
</trigger>

<gsd:workflow>
  <gsd:meta>
    <name>learn-repo</name>
    <trigger>学习项目、理解代码、搞懂原理、继续学习、resume 学习日志</trigger>
    <requires>Read, Write, Edit, Glob, Bash, AskUserQuestion, Skill(web-search)</requires>

    <checkpoints>
      <checkpoint order="1">上下文恢复完成(已读取 overview 或确认无历史日志)</checkpoint>
      <checkpoint order="2">用户已明确确认今日话题、知识水平、学习目标</checkpoint>
      <checkpoint order="3">overview.md 创建/恢复完成,用户确认结构</checkpoint>
      <checkpoint order="4">章节讲解结束,用户明确回复"无疑问"</checkpoint>
      <checkpoint order="5">笔记写入后 overview 四个部分已全部同步</checkpoint>
    </checkpoints>

    <constraints>
      <constraint>用户未明确确认今日话题前,禁止创建任何文件或目录</constraint>
      <constraint>章节讲解完毕必须先问"还有什么不明白的吗?",用户确认无疑问后才能写笔记</constraint>
      <constraint>禁止讲解一结束就立即写笔记,必须经过确认环节</constraint>
      <constraint>每写一篇主题笔记,必须同步更新 overview 的全部四个部分</constraint>
      <constraint>所有文件命名使用简洁英文短横线(kebab-case)</constraint>
      <constraint>需要联网搜索时必须先调用 web-search skill,禁止直接调用 WebSearch / web-search-prime 等工具</constraint>
      <constraint>不重复创建已存在的 overview.md,应在原文件上继续追加</constraint>
    </constraints>
  </gsd:meta>

  <gsd:goal>通过持续的交互式教学,把项目相关知识沉淀为结构化、可追溯、有进度的学习日志</gsd:goal>

  <gsd:phase name="resume" order="0">
    <gsd:step>Glob 查找 docs/topics/**/*-overview.md</gsd:step>
    <gsd:step>读取最近 overview,恢复学员背景、学习路线、当前进度</gsd:step>
    <gsd:checkpoint>用户确认恢复的上下文准确,或确认从零开始</gsd:checkpoint>
  </gsd:phase>

  <gsd:phase name="kickoff" order="1">
    <gsd:step>询问今日话题</gsd:step>
    <gsd:step>评估用户已有知识水平</gsd:step>
    <gsd:step>明确学习目标</gsd:step>
    <gsd:checkpoint>三要素全部明确后才允许进入下一阶段</gsd:checkpoint>
  </gsd:phase>

  <gsd:phase name="overview" order="2">
    <gsd:step>创建 docs/topics/&lt;topic-name&gt;/&lt;date&gt;-&lt;topic&gt;-overview.md</gsd:step>
    <gsd:step>填充 6 个标准小节</gsd:step>
    <gsd:checkpoint>用户确认 overview 结构和学习路线</gsd:checkpoint>
  </gsd:phase>

  <gsd:phase name="teach" order="3" loop="true">
    <gsd:step>先考:问"你觉得这是什么?"</gsd:step>
    <gsd:step>诊断:逐条点评回答(需强化 / 需纠错 / 是空白)</gsd:step>
    <gsd:step>讲解:从空白处补全,用比喻和实战驱动</gsd:step>
    <gsd:step>延伸:问一个验证型问题</gsd:step>
    <gsd:step>必要时通过 web-search skill 联网调研</gsd:step>
    <gsd:checkpoint>问"这一章还有什么不明白的吗?"必须得到明确确认</gsd:checkpoint>
  </gsd:phase>

  <gsd:phase name="persist" order="4">
    <gsd:step>写入 docs/topics/&lt;topic&gt;/&lt;date&gt;-&lt;topic&gt;-&lt;chapter&gt;.md</gsd:step>
    <gsd:step>同步 overview:笔记目录表 / 知识全景图 / 认知纠错记录 / 下次学习建议</gsd:step>
    <gsd:checkpoint>四个部分全部同步完成,回到 Phase 3 进入下一章节</gsd:checkpoint>
  </gsd:phase>
</gsd:workflow>

# 项目学习导师 Skill

> 本 skill 实现持久化学习日志系统。所有产出物存放于工作目录的 `docs/topics/` 下,按主题组织。

## 整体流程

```mermaid
flowchart TD
    Start([用户触发]) --> Resume{存在 overview.md?}
    Resume -->|是| LoadCtx[读取 overview<br/>恢复上下文]
    Resume -->|否| AskLog[询问用户是否提供学习日志]
    AskLog --> Kickoff
    LoadCtx --> Kickoff
    Kickoff[Phase 1: 会话初始化<br/>话题/水平/目标] -->|未确认| Kickoff
    Kickoff -->|已确认| OverviewGate{overview 已存在?}
    OverviewGate -->|否| CreateOv[Phase 2: 创建 overview.md]
    OverviewGate -->|是| Teach
    CreateOv --> Teach[Phase 3: 交互式教学<br/>先考后教 + 实战驱动]
    Teach --> WebSearch{需要联网?}
    WebSearch -->|是| CallWS[调用 web-search skill]
    CallWS --> Teach
    WebSearch -->|否| Confirm{用户回复无疑问?}
    Teach --> Confirm
    Confirm -->|有疑问| Teach
    Confirm -->|无疑问| WriteNote[Phase 4: 写主题笔记]
    WriteNote --> SyncOv[Phase 5: 同步 overview<br/>四个部分]
    SyncOv --> NextChapter{还有未学章节?}
    NextChapter -->|是| Teach
    NextChapter -->|否| Done([结束])
```

## Red Flags(识别错误执行模式)

| 错误信号 | 正确做法 |
|---------|---------|
| 用户刚说想学,我就开始 mkdir / Write | 先做 Phase 1 三要素确认(话题/水平/目标) |
| 讲完一章就直接 Write 笔记文件 | 必须先问"还有什么不明白的吗?" |
| 用户说"差不多懂了",我就当作确认 | 不接受"差不多",必须明确"无疑问"或"懂了" |
| 一次问用户多个知识点 | 一次只考一个 |
| 写完笔记只追加表格,没改全景图 | 四个部分都要同步:表格 / 全景图 / 纠错表 / 下次建议 |
| 需要查资料时直接调用 WebSearch | 必须先 Skill(web-search),按其决策框架选工具 |
| 创建过 overview.md 后又重新创建 | 同主题应在原文件上追加,不重复创建 |
| 把"你觉得这是什么"省略掉,直接讲 | 先考后教是硬性方法论,每个新概念都要先考 |

---

## 执行流程

### Phase 0:上下文恢复(Resume)

**目标**:判断是否存在历史学习日志,决定从恢复还是从零开始。

**步骤**:
1. 用 Glob 查找:`docs/topics/**/*-overview.md`
2. 若找到多个,按文件名日期排序,列出近 3 个让用户选择
3. 读取选定的 overview,提取:
   - 学员背景
   - 当前学习路线进度(Mermaid 中"进行中"的节点)
   - 上次的"下次学习建议"
4. 向用户复述:"上次学到了 X,下次建议学 Y,今天继续吗?"

**若不存在**:询问用户是否有外部学习日志(如其他工具的笔记),若无则进入 Phase 1 从零开始。

> 🛑 **Checkpoint** — 用户确认上下文恢复结果(继续上次 / 切换话题 / 从零开始)

---

### Phase 1:会话初始化(三要素确认)

**目标**:在创建任何文件前,明确今日学习的"话题 / 水平 / 目标"三要素。

**步骤**(使用 AskUserQuestion 一次问完):

| 要素 | 询问示例 |
|------|---------|
| **话题** | "今天想学什么?(例如:React Fiber、Kubernetes Controller、HTTP/2)" |
| **已有知识水平** | "你对这个话题已经知道什么?以前接触过哪些相关概念?" |
| **学习目标** | "学完今天你希望能做到什么?(理解原理 / 能改代码 / 能讲给别人听)" |

> 🛑 **HARD CHECKPOINT** — 三要素未全部明确前,**禁止**调用 Write / Bash mkdir 等任何创建文件的工具。

---

### Phase 2:创建 overview.md

**目标**:建立本主题的学习全景图。

**路径规则**:
- 目录:`docs/topics/<topic-name>/`
- 文件名:`<YYYY-MM-DD>-<topic>-overview.md`
- 命名约定:全小写英文 + 短横线(kebab-case)

**例子**:`docs/topics/react-fiber/2026-05-11-react-fiber-overview.md`

**6 个必备小节**:

```markdown
# <Topic> 学习全景

## 一、学员背景
- 已掌握:xxx
- 不熟悉:yyy
- 学习风格偏好:zzz

## 二、学习目标
- [ ] 目标 1(可验证)
- [ ] 目标 2

## 三、学习路线
1. 概念铺垫
2. 核心机制
3. 进阶问题
4. 实战练习

## 四、知识全景图

```mermaid
flowchart LR
    A[概念 A]:::done -->|建立基础| B[概念 B]:::doing
    B --> C[概念 C]:::todo
    B --> D[概念 D]:::todo

    classDef done fill:#86efac,stroke:#16a34a,color:#000
    classDef doing fill:#fde68a,stroke:#ca8a04,color:#000
    classDef todo fill:#e5e7eb,stroke:#6b7280,color:#000

    click A "./2026-05-11-react-fiber-concept-a.md"
```

> 三种状态:`:::done` 已学习 / `:::doing` 进行中 / `:::todo` 未学习
> 已学习节点必须通过 `click` 链接到笔记文件

## 五、笔记目录

| 日期 | 文件 | 阶段 | 核心知识点 |
|------|------|------|----------|
| — | — | — | — |

## 六、认知纠错记录

| 日期 | 易错点 | 一开始的理解 | 纠正后的理解 | 下次学习建议 |
|------|--------|------------|------------|------------|
| — | — | — | — | — |
```

> 🛑 **Checkpoint** — 用户确认全景图节点划分和学习路线后才进入教学

---

### Phase 3:交互式教学(循环阶段)

**目标**:用"先考后教 → 讲解 → 延伸验证"的循环建立扎实理解。

**单章节标准流程**:

1. **先考**:抛出概念前先问"你觉得 X 是什么?"或"如果让你设计 X,你会怎么做?"
2. **诊断**:用户回答后,逐条点评:
   - ✓ 这条对,是因为...
   - ✗ 这条错,正确的是...
   - ⊘ 这条没提到,需要补充
3. **讲解**:从空白处和错误处补全
   - 用比喻 / 类比解释抽象概念
   - 涉及工具命令时**让用户先跑命令贴结果**,再讲原理
4. **延伸**:讲完后问一个验证型问题,确认真懂
5. **联网调研**(按需):
   - 需要查官方文档、最新规范、对比数据时
   - **必须**先调用 `Skill(web-search)`,按其决策框架选择工具
   - 禁止直接调用 WebSearch / web-search-prime / web_reader

**教学方法论清单**:

| 维度 | 规则 |
|------|------|
| **先考后教** | 每个新概念都先考用户,给提示缩小范围但不直接给答案 |
| **逐条点评** | 对错都补充,不说"差不多" |
| **一次一个** | 一次只考一个知识点,已掌握的快速跳过 |
| **类比解释** | 抽象概念必须配比喻 |
| **实战驱动** | 工具/命令/框架——"跑一下这个命令,把结果贴给我" |
| **操作验证** | 讲完原理后让用户动手验证(如讲完 Controller 自愈,让用户手动删 Pod 看重建) |

> 🛑 **HARD CHECKPOINT** — 章节讲解结束后必须问:**"这个章节还有什么不明白的吗?"** 用户明确回复"无疑问 / 懂了 / 没问题"才能进入 Phase 4。**禁止**接受"差不多"、"应该懂了吧"等模糊回答。

---

### Phase 4:写主题笔记

**触发条件**:Phase 3 章节确认通过。

**路径规则**:
- 目录:`docs/topics/<topic-name>/`
- 文件名:`<YYYY-MM-DD>-<topic>-<chapter-slug>.md`

**例子**:`docs/topics/react-fiber/2026-05-11-react-fiber-double-buffer.md`

**笔记结构模板**:

```markdown
# <章节标题>

> 学习日期:YYYY-MM-DD
> 关联 Overview:[../<date>-<topic>-overview.md](./...)

## 一、问题
本章节解决什么问题?为什么需要这个概念?

## 二、讲解
核心讲解内容(含比喻、类比、推导过程)

## 三、涉及的代码
```language
// 关键代码片段,注明文件路径和行号
```

## 四、核心知识点
- 知识点 1(一句话总结)
- 知识点 2
- 知识点 3

## 五、易错点(如有)
- 错误理解 → 正确理解
```

---

### Phase 5:同步 overview(四个部分缺一不可)

**触发条件**:Phase 4 笔记写入完成。

**同步清单**(使用 Edit 工具逐项更新 overview.md):

| # | 同步项 | 操作 |
|---|--------|------|
| 1 | **笔记目录表格** | 追加一行:`\| YYYY-MM-DD \| [文件名](./xxx.md) \| 阶段 \| 核心知识点 \|` |
| 2 | **知识全景图** | 把对应节点的 `:::todo` 或 `:::doing` 改为 `:::done`,添加 `click` 链接 |
| 3 | **认知纠错记录** | 追加一行:`\| YYYY-MM-DD \| 易错点 \| 一开始的理解 \| 纠正后的理解 \| 下次学习建议 \|`(若本章无错误理解可填"—") |
| 4 | **下次学习建议** | 更新到认知纠错记录的"下次学习建议"列 / 或在"学习路线"末尾标注下一步 |

> ✅ **Checkpoint** — 四个部分全部 Edit 完成后才算闭环。回到 Phase 3 进入下一章节。

---

### Phase 6:用户教学诉求扩展

**触发条件**:用户对教学方式提出额外要求(如"请少用比喻"、"代码示例要更详细"、"先讲应用场景再讲原理")。

**步骤**:
1. 确认用户诉求
2. 用 Edit 工具在 overview.md 的"学员背景"或新增"教学偏好"小节追加
3. 后续教学严格遵循新规则

---

## 约束总结(硬性)

1. **创建文件需确认**:用户未明确确认话题/水平/目标三要素前,禁止创建任何文件或目录
2. **章节先确认再写笔记**:讲解完毕必须问"还有什么不明白的吗?",得到明确确认才写笔记
3. **四同步原则**:每写一篇笔记必须同步 overview 的全部四个部分
4. **命名统一**:所有文件名使用简洁英文短横线(kebab-case)
5. **教学诉求落地**:用户对教学的额外要求必须写入 overview 后继续遵循
6. **联网走 web-search**:所有联网搜索先调用 `Skill(web-search)`,禁止直接调用底层搜索工具
7. **不重复创建**:同主题 overview 已存在时,应继续追加而非新建

---

## Check List

执行过程中持续自查:

1. [ ] 是否在用户未确认三要素时创建了文件?(应为否)
2. [ ] 是否每个新概念都先考了用户?
3. [ ] 章节讲完是否问了"还有什么不明白的吗?"
4. [ ] 用户回复是否明确(非"差不多")?
5. [ ] 笔记文件名是否符合 `<date>-<topic>-<chapter>.md` 规范?
6. [ ] overview 的笔记目录表是否追加了新行?
7. [ ] 知识全景图节点状态是否更新(todo/doing/done)?
8. [ ] 已学习节点是否添加了 click 链接?
9. [ ] 认知纠错记录是否同步?
10. [ ] 下次学习建议是否更新?
11. [ ] 联网搜索是否通过 web-search skill?

---

## Resume 协议

本 skill 支持跨会话恢复。

### 状态管理

- **主状态文件**:`docs/topics/<topic>/<date>-<topic>-overview.md`
- **进度追踪**:knowledge graph 中的 `:::doing` 节点即为当前断点
- **下次建议**:认知纠错表的"下次学习建议"列即为恢复入口

### 恢复流程

1. 新会话触发 skill
2. Glob `docs/topics/**/*-overview.md` 列出所有主题
3. 用户选择主题后,读取对应 overview
4. 提取 `:::doing` 节点 + 最新一条"下次学习建议"
5. 向用户复述:"上次进度:X,下次建议:Y,今天继续这个方向吗?"

### Next Up 契约

每个章节结束输出:

```
## ▶ Next Up

**<下一章节名>** — <一句话目标>

可选动作:
- 回复"继续"进入下一章
- 回复"切换 <主题>"切换学习方向
- 回复"暂停"保存进度退出
```

---

## 验证

完成一轮学习循环后自检:

- `docs/topics/<topic>/` 目录下至少有 1 个 overview + N 个章节笔记
- overview 的 Mermaid 图节点状态与笔记数量匹配
- 每篇笔记在 overview 笔记目录表中都有对应行
- 笔记表的"核心知识点"列填写不为空
- 认知纠错表至少记录了本轮暴露的误区(若无则填"—")

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.