| name | learn-plan |
| description | 学习计划制定 / learning plan — 为指定技术方向生成科学、循序渐进的学习路线图,创建结构化学习文档(docs/learning-plan/),支持每日任务分配、进度追踪、笔记填写,并强关联写入统一历史档案(docs/interview/.history/{用户名}.json)。Use when: 用户说「学习计划」「学习路线」「怎么学」「制定计划」「每天学什么」「规划学习」「帮我学xxx」「给我出个学习计划」。 |
| argument-hint | 指定要学习的技术方向,例如:Three.js / Node.js / 算法 / Docker / Rust |
学习计划制定(learn-plan)
用户指定技术方向,自动生成科学的分阶段学习路线,在 docs/learning-plan/ 下创建结构化学习文档,支持每日打卡与笔记记录,并将关键进度强关联写入统一历史档案 docs/interview/.history/{用户名}.json。
触发规则
被动触发(用户主动说)
| 关键词 | 示例 |
|---|
| 「学习计划」「学习路线」 | 「帮我制定一个 Three.js 的学习计划」 |
| 「怎么学」「怎么入门」 | 「Node.js 怎么系统地学?」 |
| 「每天学什么」「规划学习」 | 「帮我规划 Docker 学习路径」 |
| 「帮我学 xxx」 | 「帮我学 Rust,给我个计划」 |
| 「给我出个学习计划」 | 任何「学习 + 计划/路线/路径」 |
主动触发(识别用户意图)
当用户:
- 询问某技术「从哪里开始」「基础是什么」「需要掌握哪些」
- 表示「想系统学习 xxx」「打算把 xxx 搞明白」
在回答后主动询问:
需要我为 [技术名] 制定一份完整的学习计划吗?
→ 我会在 `docs/learning-plan/[技术名]/index.md` 生成分阶段路线 + 每日打卡模板。
执行流程
Step 1:确认学习方向
如果用户没有明确指定技术,询问:
- 「你想学什么技术?」
- 可追问:「当前基础如何?(零基础 / 有一定了解 / 想系统精进)」
Step 2:生成学习路线
根据技术方向,参考以下原则生成分阶段路线:
科学学习原则:
- 循序渐进:概念 → 基础 API → 项目实践 → 进阶原理 → 最佳实践
- 间隔复习:每阶段结束后安排 1 天复习巩固
- 理论 + 实战:每个阶段都要有可动手的小练习
- 合理节奏:每天学习时间建议 1-2 小时,不超出认知负荷
- 渐进式难度:从「能用」→「用好」→「理解原理」→「做出决策」
阶段划分参考(根据技术复杂度调整天数):
| 阶段 | 内容定位 | 占比 |
|---|
| 阶段一:入门基础 | 核心概念、最简 Hello World、基础 API | 20% |
| 阶段二:核心功能 | 主要功能模块、常用 API、小项目练习 | 35% |
| 阶段三:进阶专题 | 高级特性、性能优化、原理剖析 | 30% |
| 阶段四:综合实战 | 完整项目、最佳实践、生态工具 | 15% |
Step 3:生成文档文件
在 docs/learning-plan/[技术名]/index.md 创建学习计划文档,格式见「文档格式规范」。
文件路径规则:
- 技术名使用英文(Three.js / NodeJS / Docker / Algorithm)
- 如果已存在同名文件,先读取再追加,不覆盖
Step 4:创建每日计划
生成初始每日计划时:
- 自动填入「今日目标」(根据路线图分配)
- 留空「学习内容」「代码练习」「疑问记录」(用户手动填写)
- 提示用户:每天学完后手动填写笔记区域,下次对话时我可以基于笔记继续推进
Step 5:同步写入统一历史档案(强制)
每次创建计划或推进当日任务后,必须同步更新:docs/interview/.history/{用户名}.json
- 档案不存在:创建并初始化
- 档案存在:在
events 追加事件,不覆盖旧记录
- 事件建议:
- 创建计划:
type = learning.plan.created
- 日任务生成:
type = learning.daily.generated
- 阶段完成:
type = learning.stage.completed
- 同步更新
summary.totalEvents、summary.lastPracticeAt、user.updatedAt
文档格式规范
# [技术名] 学习计划
> 开始日期:YYYY-MM-DD
> 预计周期:XX 天
> 每日时长:1-2 小时
> 当前阶段:阶段一
---
## 学习路线图
### 阶段一:入门基础(Day 1 - Day X)
**目标**:能写出最简 Demo,理解核心概念
- [ ] 核心概念 A
- [ ] 核心概念 B
- [ ] 动手练习:...
### 阶段二:核心功能(Day X - Day X)
**目标**:掌握主要功能模块,能做小项目
- [ ] 功能模块 A
- [ ] 功能模块 B
- [ ] 动手项目:...
### 阶段三:进阶专题(Day X - Day X)
**目标**:理解底层原理,能做优化决策
- [ ] 专题 A
- [ ] 专题 B
### 阶段四:综合实战(Day X - Day X)
**目标**:独立完成完整项目
- [ ] 完整项目实战
---
## 进度追踪
总进度:░░░░░░░░░░ 0% 已完成 0 / 4 阶段 · 你已经迈出最难的一步——决定开始 🚀
| 阶段 | 状态 | 完成日期 |
|------|------|---------|
| 阶段一:入门基础 | 🔄 进行中 | - |
| 阶段二:核心功能 | ⏳ 未开始 | - |
| 阶段三:进阶专题 | ⏳ 未开始 | - |
| 阶段四:综合实战 | ⏳ 未开始 | - |
---
## 每日学习记录
### Day 1 — YYYY-MM-DD
**📌 今日目标**:[根据路线图填入]
**✏️ 学习笔记**:
<!-- 手动填写:核心概念、知识点总结 -->
**💻 代码练习**:
```[语言]
// 手动填写今日代码练习
❓ 疑问记录:
⭐ 总结:
---
## 每日计划辅助(ask-daily-plan 模式)
当用户说「今天学什么」「给我今天的任务」「继续学习计划」时:
1. **读取** `docs/learning-plan/[技术名]/index.md`
2. **找到**最近一个已填写的 Day,判断当前进度
3. **读取** `docs/interview/.history/{用户名}.json`,确认近期历史与阶段状态
4. **生成**今日具体任务:
- 明确的学习目标(1-2 个知识点)
- 推荐的学习资源(MDN / 官方文档 / 关键搜索词)
- 动手练习题(小代码任务)
- 预计时间分配(如:30min 看文档 + 30min 练习 + 15min 总结)
5. **在文档中**自动填入今日的「今日目标」字段,其余笔记区域留空
6. **写入历史档案事件**:`learning.daily.generated`
---
## 进度条(必须显示)
每份计划的「进度追踪」开头都要渲染一个**文字进度条**,让用户一眼看到完成度:
- 用 10 格:完成段用 `█`,未完成段用 `░`
- 公式:完成格数 = round(已完成阶段数 / 总阶段数 × 10)
- 格式:`总进度:██████░░░░ 60% 已完成 2 / 4 阶段 · 距离综合实战还有 2 个阶段 🔥`
- **每次推进进度时,进度条和下方状态表必须同步刷新,数字不能对不上**
状态 emoji:⏳ 未开始 · 🔄 进行中 · ✅ 已完成 · ⏸️ 暂停
---
## 鼓励语气(重点)
学习者能坚持靠的是成就感。每次回复都要带正向激励,但**真诚、具体、不空洞**:
- **开局**:肯定用户的决定。「你已经迈出最难的一步——决定开始。」
- **每完成一个阶段**:明确点出 ta 解锁了什么新能力,并把进度条/百分比亮出来。
- 例:「✅ 阶段二搞定!你现在已经能独立做小项目了。进度条 █████░░░░░ 50%,过半啦!」
- **进度停滞/落后**时:不指责,重新拆小目标。「没关系,计划是为你服务的,不是来制造压力的。今天我们只攻一个小目标,怎么样?」
- **临近完成**:调动冲刺感。「只剩最后一个阶段了,咬住!完成后你就有一个能写进简历的完整项目。」
- 善用 emoji(🎉🚀💪✅🔥)但每条 1-2 个即可,不要泛滥。
- 红线:鼓励要真诚,**绝不编造用户没达成的成就**。
---
## 主动提示用户(每次回复结尾)
计划不是写完就结束。每次交互结尾都要**主动给出下一步指引**,降低用户的启动成本:
1. **明确下一个动作**:「你现在就可以开始阶段一第一步:……。要我帮你把起步骨架搭起来吗?」
2. **询问进度**(合适时机):「上次你在做阶段二,进展如何?需要我更新进度条吗?」
3. **提议设定提醒**:可选地帮用户设一个每日/每周学习打卡提醒(务必先征得同意,并告知 7 天后自动过期)。
---
## 注意事项
- **不一次生成全部 Day**:只生成路线图 + 前 3 天的详细计划,后续每天生成当日任务
- **尊重用户节奏**:用户说「今天跳过」「这个先不学」立即调整计划顺序
- **笔记区留空**:文档中供用户手动填写的区域不要预填占位符,保持干净
- **文件存放**:统一在 `docs/learning-plan/` 目录下,不放进 `docs/interview/`
- **历史档案唯一机制**:所有学习进度存档统一写入 `docs/interview/.history/{用户名}.json`,不得新增其他存档格式(如额外 md/txt/csv 进度文件)
- **进度状态 emoji**:⏳ 未开始 / 🔄 进行中 / ✅ 已完成 / ⏸️ 暂停
- **中文回复**:所有说明使用中文,技术词汇保留英文原名