Install
openclaw skills install @lyqqqq66666/vibe-coding-learningGenerate structured learning notes from AI coding sessions. Invoke when user completes a coding task with AI and asks to summarize learning, explain code, extract knowledge points, review previous notes, or check learning progress. Also trigger on Chinese phrases: "总结今天学的", "帮我整理学习笔记", "帮我复习", "这段代码讲一下", "我学了多少了", "学习进度怎么样", "准备面试", "模拟面试", "帮我讲一下这段代码", "今天学了什么", "帮我记一下", "这段代码我不太懂"
openclaw skills install @lyqqqq66666/vibe-coding-learning"You can outsource your thinking, but not your understanding." — Andrej Karpathy
把 AI 生成的代码变回你真正理解的知识。详见
references/vibe-coding-origin.md。
Transform AI coding sessions into structured learning notes. Help CS students actually learn from vibe coding instead of just generating code.
反例:"帮我在这个函数里加个 try-catch"(用户还在写代码,不是在总结学习)
反例:"review 一下我的 PR"(纯代码审查,不涉及学习总结)
反例:"今天天气怎么样"(与编程学习无关)
反例:"帮我把变量名改成驼峰命名"(纯格式化,无学习价值)
反例:只改了一行颜色值,无需生成学习笔记
Skill 启动后先判断执行模式,而非无差别全量执行。
根据用户意图和上下文充分度自动选择:
| 判断维度 | Auto 直出 | Collaborative 协作 |
|---|---|---|
| 用户表达 | 明确具体("总结今天 FastAPI 的登录代码") | 模糊宽泛("帮我整理学习笔记") |
| 上下文 | 代码变更清晰,学习目标自明 | 多项目混杂,不确定聚焦哪个 |
| 行为 | 静默执行全流程,直接输出结果 | 关键节点确认,最多 3 个问题后执行 |
| 用户体验 | 快,一次性输出 | 节奏可控,可中途纠偏 |
详细路由规则见 references/mode-routing.md(包括意图标签定义、模式选择矩阵、最小提问规则)。
快速参考:
| 意图标签 | 触发示例 | 默认模式 |
|---|---|---|
quick_summary | "总结今天学的" | Mode 1 Auto |
guided_learning | "这段代码讲一下" | Mode 1 Collaborative |
review_recall | "复习昨天的" | Mode 2 Auto |
progress_check | "我学了多少了" | Mode 3 Auto |
interview_prep | "帮我准备面试" | Mode 4 Collaborative |
prompt_review | "我的提示词怎么样" | Mode 5 Collaborative |
inbox_triage | "有什么没整理的笔记吗" | Mode 6 Collaborative |
connection_review | "今天学的和之前有什么关联" | Mode 7 Auto |
weekly_synthesis | "周总结"、"生成本周学习报告" | Mode 8 Auto |
health_check | "检查学习健康度"、"我有没有忘记复习的" | Mode 9 Auto |
ambiguous | "学习笔记" | Collaborative,先澄清意图 |
协作模式下有提问需求时,遵守以下纪律(详见 references/mode-routing.md):
| Field | Type | Required | Description |
|---|---|---|---|
coding_context | string | Yes | What the user built with AI in this session |
changed_files | list | Auto-detected | Files created or modified (scan project if not provided) |
preferred_format | string | No | md (default) or html |
output_dir | string | No | Directory to save notes (default: learning-notes/) |
| Artifact | Format | Description |
|---|---|---|
| Daily learning note | Markdown/HTML | Structured note with knowledge points, code explanation, pitfalls |
| Knowledge point cards | Markdown | Reusable cards for each extracted concept |
| Calendar entry | Markdown | Entry appended to monthly learning calendar |
| Progress update | Markdown | Updated progress overview |
执行前 — 确定执行深度
读取 config.yaml 中的 learning.depth 字段,确定本次执行深度:
| 深度 | 取值 | 执行范围 | 适用场景 | 预计 token |
|---|---|---|---|---|
| 轻量 | light | Phase 1-2(仅知识点+卡片) | 短会话、简单代码、快速记录 | ~2K |
| 标准 | standard | Phase 1-4(含笔记+陷阱,不含资源搜索) | 日常学习(默认) | ~5K |
| 深度 | deep | 全量 Phase 1-5 | 复杂项目、面试准备、复盘 | ~10K |
自动判断逻辑(当 depth 未设置或设为 auto 时):
python3 scripts/analyze-session.py --quick 分析本次会话复杂度light / standard / deep 建议,按建议执行深度覆盖:用户可在对话中直接说"轻量模式"、"详细一点"来临时覆盖配置。
进度输出(仅 standard/deep 模式): "正在分析你的代码结构..."
Step 1 — Collect Context
coding_context, use it as the primary description[自检:文件覆盖度不足,仅读了 X/Y 个文件]Step 2 — Identify Technical Domain and Stack
进度输出(仅 standard/deep 模式): "已识别技术领域,正在提炼知识点..."
Step 3 — Extract Knowledge Points [所有深度均执行]
Step 4 — Write Code Explanation [standard/deep 执行]
进度输出(仅 deep 模式): "知识点已提取,正在整理常见陷阱..."
Step 5 — Compile Pitfalls [standard/deep 执行]
Step 6 — Recommend Learning Resources [仅 deep 执行]
(基于通用知识推荐,非实时搜索结果) and skip URL links — never fabricate search results进度输出(仅 deep 模式): "正在更新学习日历和目录结构..."
Step 7 — Update Learning Calendar and Progress [standard/deep 执行]
learning-notes/calendar/YYYY-MM.md exists. If not, create it.| YYYY-MM-DD | [domain] | [keywords] | [link to note] |
learning-notes/progress.md exists. If not, create it.Step 8 — Save to Three-Layer Structure [standard/deep 执行]
Save outputs to the appropriate locations in the three-layer directory structure.
每个笔记文件必须包含 YAML frontmatter(M1 Step 2 已识别 domain/stack,保存时自动设 status: processed):
---
title: "[笔记标题]"
date: YYYY-MM-DD
domain: [backend/frontend/...]
stack: [fastapi/react/...]
status: processed # 自动设置,无需用户确认
last_review_date: null
review_count: 0
mastery_level: "🔴 exposed" # 初次创建默认 exposed;四级体系:🔴 exposed / 🟡 understood / 🟢 mastered / 🟢🟢 teachable
tags: [tag1, tag2]
---
topics/ — Save the daily learning note
topics/[project-name]/topics/[project-name]/YYYY-MM-DD-[title].mdtopics/fastapi-login-register/2026-06-11-fastapi-login-register.mddomains/ — Update the domain and stack indexes (MANDATORY — do NOT skip)
backend) and stack (e.g., fastapi)domains/[domain]/_index.md with knowledge checklistdomains/[domain]/[stack]/_index.md with stack-specific notescards/ — Save extracted knowledge point cards
auth, css, js, python)cards/[category]/cards/[category]/[kebab-case-name].mdcards/auth/jwt.md, cards/css/flexbox.mdstatus: processed进度输出: "正在生成学习笔记,马上就好..."
Step 9 — Generate Output Files
templates/daily-learning-note.mdpreferred_format is html, generate an HTML version using the html-report skillStep 10 — 费曼自评 [仅 standard/deep 模式,当 config.yaml 的 feynman_enabled: true 时]
形成"提取 → 整理 → 自评 → 调整"闭环。详见
references/feynman-assessment.md。
🔴 exposed🟢🟢 teachabledeep 模式两步流 [仅 deep 模式执行]
## Session Log — YYYY-MM-DD
- 会话时长:~X 分钟
- 变更文件:[文件列表]
- 关键操作:[操作摘要]
- 初步感知:[用户直觉理解]
light/standard 直接一步到位,不生成 session log
When user asks to review or recall previous learning:
learning-notes/progress.md to get the full learning overviewtopics/When user asks about overall progress:
learning-notes/progress.mdlearning-notes/domains/ for domain-level statusteachablemastered 的知识点understoodexposed可教学+已掌握 / (全部四级) × 100%IMPORTANT: Only trigger this mode when user explicitly mentions interview/job preparation. Do NOT include interview content in daily learning notes by default.
When user asks for interview preparation:
learning-notes/progress.md and learning-notes/domains/ to understand what the user has learnedlearning-notes/cards/ and recent topic notes for content that matches the user's target roleInterview question generation rules:
Target role mapping (use when user specifies a target role):
| Target Role | Priority Domains | Interview Focus |
|---|---|---|
| 后端开发(实习) | backend, database, security | API design, auth, database optimization |
| 前端开发(实习) | frontend, css, js | Component design, responsive, performance |
| 全栈开发(实习) | backend, frontend, devops | Integration, data flow, deployment |
| AI 应用(实习) | ai-ml, python | RAG, prompt engineering, LLM integration |
| 测试开发(实习) | testing, devops | Test design, CI integration, automation |
IMPORTANT: 当用户说"分析一下我的对话记录"、"我的提示词写得怎么样"、"怎么问才能得到更好的回答"、"prompt 优化"时触发。可独立触发,也可在 Mode 1-4 执行后作为延伸功能触发。
Step 1 — 读取对话历史
learning-notes/ 或网页端导入的对话数据中读取最近 N 次对话(默认 N=10,用户可指定)Step 2 — 分析提示词模式
Step 3 — 生成优化建议
Step 4 — 输出学习洞察(可选,用户主动询问时触发)
## 提示词优化分析报告
### 📊 你的提示词风格
| 维度 | 评分 | 说明 |
|------|------|------|
| 具体程度 | X/10 | ... |
| 上下文完整性 | X/10 | ... |
| 任务分解 | X/10 | ... |
### 💡 针对本次对话的优化建议
**原提示词**:
> "..."
**优化后**:
> "..."
**为什么更好**:
- ...
### 📚 参考资料
- [Anthropic Prompt Library](https://...)
- [OpenAI Prompt Engineering Guide](https://...)
当 Skill 在网页端环境中运行时,Mode 5 的输出可额外包含:
cards/prompt-optimization/ 下的可复用卡片)IMPORTANT: 当用户说"有什么没整理的笔记吗"、"整理一下 inbox"、"批处理今天的会话"时触发。
Step 1 — 扫描待处理笔记
learning-notes/ 目录,找出:
temp_ 或 session_ 的未整理笔记inbox/ 子目录下的所有笔记Step 2 — 批处理分类
Step 3 — 关联检测
references/connection-review.md)Step 4 — 晋升检查
详见 references/inbox-triage.md。
IMPORTANT: 当用户说"今天学的和之前有什么关联"、"帮我建立知识关联"时触发。也可在 Mode 1 写入新笔记后自动触发。
Step 1 — 关键词重叠检测
tags 和标题关键词Step 2 — 时间邻近检测
Step 3 — 生成关联建议
Step 4 — 写入双向链接
[[双向链接]]详见 references/connection-review.md。
IMPORTANT: 当用户说"周总结"、"生成本周学习报告"、"这周学了什么"时触发。替代 Mode 3 的浅层统计,生成深度报告。
Step 1 — 收集本周数据
learning-notes/calendar/YYYY-MM.mdStep 2 — 构建知识图谱
Step 3 — 掌握度评估
Step 4 — 知识盲区检测
Step 5 — 下周学习计划
详见 references/weekly-synthesis.md。
IMPORTANT: 当用户说"检查学习健康度"、"我有没有忘记复习的"、"知识诊断"时触发。也可配置为每周自动运行。
Step 1 — 遗忘检测
last_review_dateconfig.yaml 中设置的天数(默认 30 天)未复习的主题 → 提醒Step 2 — 关联建议
Step 3 — 学习盲区检测
Step 4 — 学习疲劳检测
Step 5 — 笔记质量检查
详见 references/health-check.md。
在 config.yaml 中:
health:
auto_run: true
auto_run_day: monday
notification_method: chat
> 详见 [[cards/category/primary-card-name]] 引用,不再重述state.py:15)必须在写入前通过 Read 工具实时验证,确保行号准确。不要靠记忆猜测行号——用户点击 IDE 跳转如果对不上,会很失望Follow the template structure defined in templates/daily-learning-note.md.
The learning notes use a three-layer architecture for scalability:
learning-notes/
├── README.md # Overview dashboard & usage guide
├── progress.md # Progress tracking across all domains
├── calendar/
│ └── YYYY-MM.md # Monthly learning calendar
│
├── topics/ # Layer 1: Project/session-based notes
│ └── [project-name]/ # One folder per coding project/session
│ └── YYYY-MM-DD-[title].md
│
├── domains/ # Layer 2: Domain & stack indexes
│ └── [domain]/ # e.g., backend, frontend, devops, ai-ml
│ ├── _index.md # Domain-level knowledge checklist
│ └── [stack]/ # e.g., fastapi, react, docker
│ └── _index.md # Stack-specific notes & progress
│
└── cards/ # Layer 3: Reusable knowledge cards
└── [category]/ # e.g., auth, css, js, python, database
└── [card-name].md # Self-contained, cross-topic reusable
| Layer | Purpose | When to Create | Example |
|---|---|---|---|
| topics/ | Raw session notes tied to a specific project | Every new coding session | topics/fastapi-login-register/ |
| domains/ | Curated indexes organized by tech domain/stack | When a new domain or stack is encountered | domains/backend/fastapi/ |
| cards/ | Atomic, reusable knowledge nuggets | When extracting a reusable concept | cards/auth/jwt.md |
This structure ensures:
domains/[domain]/[stack]/ foldercards/ can be referenced by any future projectWhen saving knowledge point cards, use these standard categories (create new ones as needed):
| Category | For |
|---|---|
auth/ | Authentication, authorization, JWT, OAuth, bcrypt, session management |
css/ | CSS properties, layout, animation, responsive design |
js/ | JavaScript language features, DOM, events, async |
ts/ | TypeScript types, generics, decorators |
python/ | Python language, FastAPI, Django, SQLAlchemy |
database/ | SQL, ORM, indexing, transactions |
devops/ | Docker, K8s, CI/CD, Terraform |
ai-ml/ | LLM, RAG, LangChain, PyTorch |
security/ | OWASP, XSS, CSRF, encryption |
testing/ | Unit test, integration test, E2E |
每次产出后,根据内容类型建议一步行动(详见 references/output-routing.md)。
快速参考:
| 输出内容 | 建议下一步 |
|---|---|
| 每日学习笔记 | "需要我把核心知识点生成卡片保存吗?" |
| 知识卡片 | "想用这几个知识点做一次模拟面试自测吗?" |
| 进度报告 | "看到你在 [domain] 上已有积累,需要我针对弱项推荐学习路径吗?" |
| 代码详解 | "要不要自己不看代码复述一遍逻辑?我可以帮你检查" |
| 连续 3 天同领域 | "这个领域已经连续 3 天了,要换一个拓展一下吗?" |
| 长时间未复习 | "上一次复习 [topic] 是 [N] 天前,需要温习一下吗?" |
注意:分流建议只输出一次,用户忽略则不重复。不支持的分流路径直接跳过。
每次 Mode 执行完毕后,AI 应自行检查以下项目。如有未达标项,在输出末尾标注
[自检:X/Y 通过]并说明未通过项。
learning-notes/progress.md(如已存在)cards/(如用户确认)state.py:15)是否通过 Read 工具实时验证,而非靠记忆猜测可能原因:
coding_context 未提供,AI 没有足够上下文修复:
用户:帮我总结今天学的
AI:我看到你修改了多个文件,能告诉我你主要做了什么功能吗?
可能原因:同一知识点在多个 session 中被重复提取。
修复:写入 cards/ 前,先搜索是否已存在同类卡片(按标题关键词匹配)。
progress.md 数据不准确可能原因:手动编辑 progress.md 时格式出错,或 Skill 写入时覆盖了他内容。
修复:运行 python3 scripts/validate-structure.py 检查目录结构一致性。
现象:输出中教程推荐部分为空或只有文字说明。
修复:Skill 已在 Step 6 中内置了 fallback(标注"基于通用知识推荐,非实时搜索结果"),不会捏造链接。如 WebSearch 持续失败,检查网络或使用 find-skills 安装替代搜索 Skill。
可能原因:对话历史读取不完整(只读了最近几条)。
修复:在触发 Mode 5 时明确指定范围,如"分析我最近 10 次与 AI 的对话"。
可能原因:笔记已手动移动,或文件名不符合检测规则。
修复:检查 learning-notes/ 目录下是否还有 temp_ 或 session_ 前缀的文件;如无,说明已整理完毕。
可能原因:关键词提取不完整,或时间窗口设置过宽/过窄。
修复:手动指定关联检测范围,如"帮我检查 fastapi-login.md 与 jwt-auth.md 的关联"。
可能原因:本周学习笔记过少,或笔记内容质量低(仅代码片段,无知识点提炼)。
修复:确保 Mode 1 执行时完整提取知识点;如笔记质量低,先重新执行 Mode 1。
可能原因:last_review_date 未正确更新,或 config.yaml 中 review_reminder_days 设置不合理。
修复:手动更新笔记的 last_review_date 字段;或在 config.yaml 中调整提醒天数。