vibe-upskill
NewExtract coding knowledge from agent-assisted development sessions and convert them into interview-ready scenario Q&A cards and structured knowledge base documents. Use when the user wants to learn from their vibe coding history, prepare for technical interviews, build a personal knowledge base from agent workflows, review what an agent did during coding/debugging/deployment, or transform agent conversations into personal skills. Triggers: "vibe coding", "agent record", "knowledge extraction", "interview prep", "scenario questions", "what did the agent do", "learn from agent", "coding knowledge base", "review session", "debugging review", "deployment review", "复盘", "面试准备", "知识沉淀", "避坑清单".
Summary
Vibe Upskill transforms your agent-assisted development conversations into interview-ready scenario Q&A cards and structured knowledge base documents.
- It helps you internalize key decisions, debugging strategies, and architecture choices from vibe coding sessions, ensuring you can independently demonstrate that knowledge in technical interviews or future projects.
Overview
Vibe Upskill — 从 Agent 对话中提炼真正的开发能力
目标
将用户与 AI Agent 的完整开发对话(需求分析 → 架构设计 → 编码实现 → 排错调试 → 部署上线)转化为个人可内化的知识,解决 Vibe Coding 时代"离开 Agent 就不会写代码"的核心痛点。
具体目标:
- 复盘:从对话中提炼关键决策、排错思路、架构选型等有价值信息
- 出题:生成 10 类面试场景题,帮助用户在面试中能独立回答
- 沉淀:将知识结构化存储,形成持续增长的专属题库与避坑清单
触发条件
当用户出现以下意图时激活本 Skill:
- •想复盘一次与 Agent 的开发对话
- •想从开发经历中生成面试题
- •想整理避坑清单或知识库
- •提到"vibe coding 复盘"、"面试准备"、"知识沉淀"、"agent 做了什么"等关键词
- •直接粘贴了一段与 Agent 的对话记录并请求分析
- •提供了与 Agent 的某次对话的名称(如"昨天的排错对话"),希望基于那次的对话进行复盘
用户画像与冷启动
首次使用:自评画像
在第一次启动本 Skill 时,系统会引导用户建立个人画像,用于调整题目难度和复习节奏。
自评内容(3 项必填):
| 维度 | 选项 | 用途 |
|---|---|---|
| 经验等级 | 初级(<2年)/ 中级(2-5年)/ 高级(5年+) | 调整面试题难度分布 |
| 主要技术栈 | 自由填写(如 Python/Django/React) | 生成与用户相关的场景题 |
| 学习目标 | 面试准备 / 技术能力提升 / 项目复盘沉淀 | 确定输出侧重 |
难度自适应的具体规则:
| 经验等级 | 基础 | 进阶 | 高级 | 说明 |
|---|---|---|---|---|
| 初级 | 50% | 35% | 15% | 以建立信心为主,高级题用于拓宽视野 |
| 中级 | 20% | 50% | 30% | 进阶为主,基础用于查漏补缺,高级用于拔高 |
| 高级 | 10% | 30% | 60% | 聚焦高难度题,基础题仅做快速自检 |
冷启动:没有历史对话怎么办?
如果用户尚无 Agent 开发对话记录,不硬凑知识点。Skill 会提供以下最小启动路径:
- 开启记录习惯:下次用 Agent 开发时,在对话开头输入
#记录模式,提醒自己有意识地保存关键决策点 - 关注高价值时刻:重点关注 Agent 的"为什么选择 X 而不是 Y"、"排查了哪些步骤"、"架构抉择的权衡"等信号
- 设定首次复盘时间:建议在 3-5 天内完成第一次有意义的 Agent 开发对话后,回到本 Skill 进行复盘
- 备选:手动构造:如果你有纯手工完成的开发任务,也可以直接描述给 Skill,手动提供项目背景、关键决策、遇到的问题
原则:宁缺毋滥。一条从真实项目中提炼的知识点,胜过十条臆造的假问题。
核心原则
不是复制 Agent 的行为,而是理解背后的"为什么"。
- •追问每个决策的理由,而不只是记录做了什么
- •将具体操作泛化为可迁移的方法论
- •用场景题的形式组织知识,模拟真实面试环境
- •强制用户用自己的话复述,确保真正内化而非"看懂了"
完整工作流
第零步:确定输入源与复盘范围
首先与用户确认两件事:
输入源(支持四种模式,可组合):
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 对话记录模式 | 用户粘贴 Agent 对话历史(聊天导出、截图、复制文本),或直接提供对话名称(如"昨天的 Docker 排错对话")由 Agent 在历史中检索 | 最常用,信息最丰富 |
| 项目分析模式 | 用户提供项目目录,分析 git log、代码结构、配置文件等 | 对话记录不可用时 |
| 组合模式 | 同时处理对话记录 + 项目文件,交叉验证 | 最完整,推荐重要复盘时使用 |
实时捕获模式 [需外部hook支持] | 在 Agent 会话进行中或刚结束时触发,实时捕获推理过程 | 信息保真度最高,但需要 hook/插件基础设施 |
实时捕获模式说明:该模式依赖外部钩子机制(如 Claude Code 的 hooks 系统、VS Code 扩展的事件监听等)来在 Agent 推理过程中自动记录关键决策点。本 Skill 本身不实现这些钩子——它负责的是"收到捕获数据后如何处理"。如果你使用的 Agent 平台不支持 hooks,推荐的替代方案是热复盘:在 Agent 会话结束后立即(2 小时内)使用"对话记录模式"触发复盘,此时对话仍在新近记忆中,信息保真度接近实时捕获。
对话名称引用:在"对话记录模式"下,用户无需手动复制粘贴整个对话——只需提供对话名称(如"昨天跟 Claude 排 Docker 的那个对话"、"上周三的架构设计讨论"),Agent 会自动在会话历史或对话列表中检索匹配的对话。用户需要在请求中给出足够定位到那次对话的关键词。如果检索到多个匹配项,Agent 会列出候选项请用户确认。
复盘范围(必须选择,避免上下文过长导致质量下降):
按开发阶段分段复盘,每次只处理一个阶段:
- •需求分析阶段
- •架构设计阶段
- •编码实现阶段
- •排错调试阶段
- •部署上线阶段
- •全链路复盘(仅在对话较短时使用)
防御机制 — 范围限制:如果用户提供的对话超过 50 轮交互,必须主动建议分段处理。每段独立生成输出,避免信息过载导致提炼质量下降。
模式一:拦截记录 — 从对话中提取关键信息
目标:从原始对话中筛选出有价值的"知识信号",过滤掉无意义的试错和重复操作。
提取维度(五个方向,逐一扫描):
| 维度 | 提取什么 | 信号特征 |
|---|---|---|
| 架构决策 | 技术选型、项目结构、设计模式、权衡取舍 | "我们选择 X 因为..."、"对比了 A 和 B" |
| 代码实现 | 关键模式、API 设计、状态管理、数据建模 | Agent 写的核心代码片段、重构过程 |
| 排错过程 | 错误类型、诊断路径、修复策略、预防手段 | 报错信息、Agent 的排查步骤、"原来是..." |
| 部署运维 | 环境配置、CI/CD、容器化、监控 | Docker 命令、部署脚本、配置修改 |
| 方法论 | Agent 如何拆解问题、调研方案、迭代优化 | 任务分解过程、搜索策略、方案对比 |
对每个知识点,记录以下结构:
【上下文】项目是什么?当前处于什么阶段?
【问题/决策】需要解决什么问题?做什么决策?
【Agent 的做法】Agent 具体做了什么?分几步?
【底层原理】为什么这个做法有效?背后的技术原理是什么?
【替代方案】还能怎么做?为什么选了当前方案?
【可迁移教训】换一个项目,这个经验还适用吗?适用条件是什么?过滤规则(丢弃以下内容):
- •纯重复操作(Agent 试了 5 次同样的方法)→ 只保留最终成功的那次
- •无意义的寒暄和确认("好的"、"明白了")
- •Agent 的纯机械操作(格式化代码、重命名变量等无决策含量的操作)
- •用户未参与理解的"黑箱"操作 → 标记为
[待深挖]
用户确认环节:
对于每个提取的知识点,如果 Agent 的决策理由是推断出来的(而非对话中明确说明的),必须标注 [待确认] 并向用户提问:
"我注意到 Agent 选择了 Redis 做缓存。对话中没有明确说明原因,我推断是因为需要高频读取且数据结构简单。[待确认] 这个推断对吗?你当时是怎么考虑的?"
模式二:面试题生成 — 将知识转化为面试场景题
目标:基于模式一提取的知识点,生成 10 类面试题,每类至少 1-3 道。
十类面试题:
| 编号 | 类型 | 说明 | 示例 |
|---|---|---|---|
| 1 | 场景设计题 | 给定业务场景,要求设计技术方案 | "你的项目需要支持实时协作编辑,如何设计冲突解决机制?" |
| 2 | Bug 排查题 | 给定错误现象,要求分析根因并给出排错路径 | "线上服务返回 502,但容器日志显示正常,你从哪几个方向排查?" |
| 3 | 深挖原理题 | 追问技术选型的底层原因和设计思想 | "为什么选 PostgreSQL 而不是 MongoDB?它的 MVCC 机制是怎么工作的?" |
| 4 | 代码审查题 | 给出一段代码,要求发现问题并提出优化 | "Agent 写的这段并发代码有竞态条件,你能指出来并修复吗?" |
| 5 | 项目表达题 | 要求清晰表达项目的背景、难点和成果 | "请用 3 分钟介绍你的项目,说清楚架构亮点和你解决的最难的问题" |
| 6 | 系统设计题 | 在现有项目基础上做规模扩展设计 | "如果用户量从 100 涨到 10 万,你的数据库架构需要怎么改?" |
| 7 | 运维排障题 | 模拟线上故障场景,考察排查能力 | "凌晨 3 点收到告警,服务 OOM 了,你的排查步骤是什么?" |
| 8 | 方案对比题 | 对比两种技术方案的优劣和适用场景 | "JWT vs Session,你在项目中选了哪个?为什么?什么情况下该选另一个?" |
| 9 | 复盘反思题 | 引导回顾整个项目,提炼改进方向 | "如果重新做这个项目,你会改变哪三个决定?为什么?" |
| 10 | 测试质量题 | 针对核心功能设计测试用例 | "你的用户认证模块,请设计 5 个关键测试用例,覆盖正常流程和边界情况" |
每道题的输出格式:
### [类型] 题目名称
**难度**:基础 / 进阶 / 高级
**标签**:#架构 #调试 #部署 ...
**来源**:基于 [项目名] 的 [阶段] 阶段提取
#### 场景描述
(用 2-3 句话描述具体场景,让问题有代入感)
#### 问题
(明确的面试问题)
#### 参考思路
(不是标准答案,而是"应该怎么思考这个问题"的步骤)
1. 首先分析...
2. 然后考虑...
3. 最后...
#### 参考答案要点
(关键知识点,面试时应该提到的核心内容)
#### 反事实推理
(如果条件变化,答案会怎样?)
- 如果把 X 换成 Y,方案需要怎么调整?
- 如果规模扩大 100 倍,瓶颈会出现在哪里?
#### 深挖追问
(面试官可能的追问,帮助用户准备更深层的回答)
- 你提到用 X,那 X 的底层原理是什么?
- 这个方案有什么缺点?你怎么缓解的?反事实推理 — 强制要求:
每道题必须包含"反事实推理"部分。这是区分"背答案"和"真理解"的关键。通过改变约束条件(规模、技术栈、时间、团队规模等),考察用户是否真正理解了方案的本质。
用户复述环节 — 强制要求:
每道题生成后,必须要求用户:
"请你现在用自己的话,不看参考答案,口述一遍回答思路。如果卡住了,标记卡住的位置,这说明那个点你还没有真正掌握。"
掌握度自评(三级制):用户复述后需给出自评分数:
| 评分 | 含义 | 下次复习间隔 |
|---|---|---|
| 0 — 完全卡住 | 无法回忆核心思路,需要重新学习 | 当天内复习 |
| 1 — 部分回忆 | 能说对大致方向,但关键细节遗漏或混淆 | 1 天后复习 |
| 2 — 流畅复述 | 能用自己的话完整讲清思路和原理 | 3 天后复习 |
卡住位置诊断:当用户标记"卡住了"时,要求进一步标注卡住的性质:
- •
[概念不清]:不知道这个概念是什么,需要从定义开始补 - •
[逻辑链断裂]:知道各个概念,但说不清它们之间的因果关系 - •
[细节遗忘]:理解整体思路,但忘了具体 API/配置/参数名
诊断结果用于后续针对性复习——"概念不清"生成前置知识学习建议,"细节遗忘"只做快速回顾,"逻辑链断裂"生成该逻辑链的专项练习。
渐进式提醒机制:
| 连续跳过数 | 行为 |
|---|---|
| 第 1-2 次 | 正常标记 [未复述],继续下一题 |
| 第 3-5 次 | 主动提醒:"你已经跳过 3 道题了,要不要回头挑一道最简单的试试?只需要 2 分钟。" |
| 第 6-9 次 | 加强提醒:"连续跳过 6 道题——这些题是基于你的项目生成的,不练的话和你的项目经验就脱节了。建议至少复述 1 道再继续。" |
| 达到 10 次 | 硬性暂停:"本会话已跳过 10 道题。剩下的题目将保存到知识库中标记为 [未复述],建议你现在选一道复述,或结束本次复盘。" |
如果用户拒绝复述或表示"先跳过",将该题标记为 [未复述],但不记录为已完成。
防御机制 — 复述强制:没有经过用户复述的知识点,在最终知识库中标记为"未内化",在复习提醒中优先出现。超过 10 道未复述题目后,必须复述或结束当前复盘会话。
模式三:知识蒸馏 — 沉淀为持久化知识库
目标:将复盘结果结构化存储,形成可持续积累的个人知识资产。
输出文件结构:
knowledge/
├── interview-qa.md # 面试题库(按类型和难度组织)
├── pitfall-checklist.md # 避坑清单(按领域分类)
├── architecture-notes.md # 架构决策笔记
├── debugging-playbook.md # 排错手册
├── review-schedule.md # 复习调度表(间隔复习引擎)
├── knowledge-index.md # 知识库索引(自动维护)
└── archive/ # 已归档的过时条目面试题库(interview-qa.md)格式:
# 面试题库
> 最后更新:{日期}
> 总题数:{N} 道
> 已复述掌握:{M} 道
> 待复习:{K} 道
## 场景设计题
### Q-{编号}: {题目名}
- **难度**:{难度}
- **标签**:{标签}
- **来源**:{项目} - {阶段}
- **题目**:{场景描述 + 问题}
- **思路**:{参考思路}
- **答案要点**:{要点}
- **反事实**:{反事实推理}
- **状态**:已掌握 / 未复述 / 待复习
(其余类型同上格式)避坑清单(pitfall-checklist.md)格式:
# 避坑清单
> 最后更新:{日期}
> 总条目:{N} 条
## 编码阶段
- [坑-{编号}] {问题描述} → {原因} → {解决方法} → {预防措施}
## 部署阶段
- [坑-{编号}] {问题描述} → {原因} → {解决方法} → {预防措施}
## 架构阶段
- [坑-{编号}] {问题描述} → {原因} → {解决方法} → {预防措施}增量更新策略:
如果用户选择增量模式(默认),在追加新条目之前:
- 检查是否有重复或高度相似的条目
- 如果有,合并并丰富已有条目,而不是创建新条目
- 更新索引文件中的统计数字
- 标注条目的来源会话日期,方便追溯
复习调度引擎(间隔复习系统)
基于简化 SM-2 算法,为每条面试题和知识条目自动计算下次复习时间,确保知识从"短时记忆"转化为"长时记忆"。
算法规则:
| 复述评分 | 间隔变化 | 说明 |
|---|---|---|
| 0 — 完全卡住 | 重置为 1 天 | 需要重新建立记忆,间隔从头开始 |
| 1 — 部分回忆 | 间隔 × 0.5(不低于 1 天) | 记忆不牢固,缩短复习间隔 |
| 2 — 流畅复述 | 间隔 × 2(上限 120 天) | 记忆稳固,延长复习间隔 |
间隔序列:1天 → 3天 → 7天 → 14天 → 30天 → 60天 → 120天
复习调度表(review-schedule.md)格式:
# 复习调度表
> 最后更新:{日期}
> 当前待复习:{N} 项
> 本周已完成复习:{M} 项
## 🔴 今日到期({n} 项)
| 编号 | 题目/条目 | 类型 | 上次评分 | 当前间隔 | 来源项目 |
|------|----------|------|----------|----------|----------|
| Q-003 | Docker 容器启动排查 | Bug排查 | 1 | 3天 | Flask应用容器化 |
## 🟡 本周内到期({n} 项)
| 编号 | 题目/条目 | 类型 | 上次评分 | 到期日期 |
|------|----------|------|----------|----------|
| Q-007 | PostgreSQL vs MongoDB 选型 | 方案对比 | 0 | 2026-06-25 |
## 🟢 已掌握(间隔 ≥60天)({n} 项)
| 编号 | 题目/条目 | 当前间隔 |
|------|----------|----------|
| Q-001 | Redis 缓存策略 | 120天 |复习提醒机制:
- •每次启动 Skill 时,自动检查
review-schedule.md中是否有今日到期项 - •今日到期项 ≤ 3 道:逐道完成复述 + 评分
- •今日到期项 > 3 道:优先复习评分最低的 3 道,其余顺延到次日
- •每日复习上限默认 5 道(可配置),超过则自动顺延
复习时的复述流程(与模式二的复述环节一致):
- 展示题目(不展示参考答案)
- 用户口述回答
- 展示参考答案,用户对比自评(0/1/2)
- 系统自动更新间隔和下次复习日期
- 如果评分 ≤ 1,追问卡住位置诊断
知识衰减与归档机制
知识条目有生命周期。随着技术栈升级和经验增长,部分条目会过时。必须定期清理,避免知识库变成"过期信息的垃圾场"。
条目元数据(每条知识条目必须记录):
- **创建日期**:2026-06-24
- **技术栈版本**:Python 3.11 / React 18 / Docker 24
- **归档状态**:活跃 / 已过时 / 已替代 / 仍有效
- **最后审查日期**:未审查 / 2026-09-24审查触发条件:
| 条件 | 行为 |
|---|---|
| 条目创建超过 90 天 | 提醒用户审查是否仍有效 |
| 条目创建超过 180 天 | 加强提醒,建议强制审查 |
| 条目创建超过 365 天 | 自动标记为 [待年审],需用户在下次会话中逐条确认 |
| 用户主动请求 | 立即启动指定项目/时间段条目的审查 |
归档标记:
| 标记 | 含义 | 后续处理 |
|---|---|---|
[活跃] | 仍在学习/复习中 | 正常参与复习调度 |
[已过时] | 技术已过时,不再适用 | 移入 archive/,不参与复习 |
[已替代] | 被更好的方案取代 | 移入 archive/,保留作为对比参考 |
[仍有效] | 超过 90 天但依然正确 | 更新审查日期,继续活跃 |
归档文件结构:
knowledge/archive/
├── archived-qa.md # 已过时的面试题
├── archived-pitfalls.md # 已过时的避坑条目(技术已不存在等)
└── archive-log.md # 归档记录(时间、原因、操作人)季度审查流程:
每季度首次使用 Skill 时触发:
- 列出所有超过 90 天未审查的活跃条目
- 逐条询问:
[仍有效]/[已过时]/[已替代]/[稍后审查] - 将标记为过时/已替代的条目移入
archive/ - 更新
knowledge-index.md中的统计数字
防御机制汇总
本 Skill 内置以下防御机制,确保输出质量:
| 机制 | 触发条件 | 行为 |
|---|---|---|
| 用户确认 | AI 推断的决策理由 | 标注 [待确认],反问用户确认 |
| 范围限制 | 对话超过 50 轮 | 建议分段复盘,每次只处理一个阶段 |
| 复述强制 | 每道题生成后 | 要求用户口述回答,自评掌握度(0/1/2),未复述标记为"未内化" |
| 渐进式提醒 | 连续跳过 ≥3 道复述题 | 主动降速提醒,超过 10 道硬性暂停 |
| 信号过滤 | 提取知识点时 | 丢弃重复操作、无意义对话、纯机械操作 |
| 深度标注 | 知识点深度不足时 | 标注 [待深挖],提醒用户进一步学习 |
| 去重合并 | 增量更新知识库时 | 检测相似条目,合并而非重复添加 |
| 过期审查 | 知识条目超过 90 天 | 提醒用户审查有效性,标记为过时/替代/仍有效,过时条目移入 archive/ |
| 冷启动引导 | 用户首次使用且无对话记录 | 提供最小启动步骤,不硬凑知识点 |
输出指令
执行本 Skill 时,所有输出内容必须使用中文,包括:
- •与用户的交互对话
- •生成的面试题
- •知识库文档内容
- •避坑清单
- •所有注释和说明
唯一使用英文的部分是文件头(frontmatter)中的 name 和 description 字段。
边界情况处理
输入过短:如果用户只提供了简短描述(少于 5 轮对话),主动追问以补全上下文。至少需要了解:项目是什么、做了什么、遇到了什么问题。
输入过长:优先提取最有价值的知识点。如果覆盖多个技术领域,按领域拆分为独立的输出文件。主动询问用户最关注哪些维度。
无明显学习点:如果 Agent 只是做了简单直接的工作(如 CRUD 模板生成),诚实告知用户"本次会话学习点有限",建议用户选择更复杂的会话进行复盘。不要硬凑知识点。
多技术栈混合:按技术栈拆分为独立的知识条目,每个条目聚焦单一技术点。在索引中标注跨技术栈的关联。
用户是初学者:如果提取的知识点超出初学者理解范围,在输出中增加"前置知识"说明,帮助用户建立学习路径。
附加资源
- •输出格式模板详见 templates.md
- •具体使用示例详见 examples.md
Install & Usage
mkdir -p .claude/skillsmkdir -p .claude/skills && curl -o .claude/skills/vibe-upskill.md https://raw.githubusercontent.com/bb-cccc/vibe-upskill/main/SKILL.md/vibe-upskillUse Cases
Usage Examples
/vibe-upskill review my last debugging session with the agent on the payment service timeout issue
/vibe-upskill generate interview questions from today's deployment conversation with the agent
/vibe-upskill build a knowledge base entry from the agent's explanation of why we chose PostgreSQL over MongoDB for the analytics module
Security Audits
Frequently Asked Questions
What is vibe-upskill?
Vibe Upskill transforms your agent-assisted development conversations into interview-ready scenario Q&A cards and structured knowledge base documents. It helps you internalize key decisions, debugging strategies, and architecture choices from vibe coding sessions, ensuring you can independently demonstrate that knowledge in technical interviews or future projects.
How to install vibe-upskill?
To install vibe-upskill: create the skills directory (mkdir -p .claude/skills), then run: mkdir -p .claude/skills && curl -o .claude/skills/vibe-upskill.md https://raw.githubusercontent.com/bb-cccc/vibe-upskill/main/SKILL.md. Finally, /vibe-upskill in Claude Code.
What is vibe-upskill best for?
vibe-upskill is a skill categorized under Documentation. It is designed for: code-review, deployment, documentation, agent. Created by bb-cccc.
What can I use vibe-upskill for?
vibe-upskill is useful for: Review a recent debugging session with an AI agent and extract the root cause analysis and fix steps into a reusable knowledge card.; Generate a set of 10 scenario-based interview questions from a full development cycle (requirements to deployment) you completed with an agent.; Build a personal 'pitfall checklist' from multiple agent conversations to avoid repeating common mistakes.; Transform a complex architecture decision made during an agent session into a structured document for your knowledge base.; Prepare for a technical interview by converting your agent-assisted project into self-contained Q&A that tests your understanding of trade-offs and rationale.; Create a learning plan from scratch by manually describing a past project when no agent conversation logs exist..