| 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)
**目标**:独立完成完整项目
- [ ] 完整项目实战
---
## 进度追踪
| 阶段 | 状态 | 完成日期 |
|------|------|---------|
| 阶段一:入门基础 | 🔄 进行中 | - |
| 阶段二:核心功能 | ⏳ 未开始 | - |
| 阶段三:进阶专题 | ⏳ 未开始 | - |
| 阶段四:综合实战 | ⏳ 未开始 | - |
---
## 每日学习记录
### 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`
---
## 注意事项
- **不一次生成全部 Day**:只生成路线图 + 前 3 天的详细计划,后续每天生成当日任务
- **尊重用户节奏**:用户说「今天跳过」「这个先不学」立即调整计划顺序
- **笔记区留空**:文档中供用户手动填写的区域不要预填占位符,保持干净
- **文件存放**:统一在 `docs/learning-plan/` 目录下,不放进 `docs/interview/`
- **历史档案唯一机制**:所有学习进度存档统一写入 `docs/interview/.history/{用户名}.json`,不得新增其他存档格式(如额外 md/txt/csv 进度文件)
- **进度状态 emoji**:⏳ 未开始 / 🔄 进行中 / ✅ 已完成 / ⏸️ 暂停
- **中文回复**:所有说明使用中文,技术词汇保留英文原名