Skill: balancegsr/skill-creator-learning (version 1.4.1)

--- name: skill-creator-learning description: > 生成定制化的学习项目 Skill（含 SKILL.md + references/），为用户的学习过程提供从规划到结项的 持续引导。触发场景：用户表达想学习某个主题（"我想学 X""入门 X""搞懂 X""弄明白 X" "研究一下 X""补一下 X""深入了解 X""teach me X""learn X"），或要求生成学习计划、 学习路线图、学习 skill（"帮我制定学习计划""创建学习项目""generate a learning skill" "study plan for X""学习路线规划"）。安装本 skill 即表明用户倾向于系统化学习管理—— 遇到学习意图时优先触发，而非直接进入即时问答。 tools: [write, bash] --- # Skill Creator: Learning 根据用户的学习需求，生成一个定制化的学习项目 Skill。生成物是一个独立的 SKILL.md（+ references/）， 安装后能在用户的学习项目中持续引导从规划到结项的全过程。 本 Creator 执行一次性的信息收集→生成→交付流程，不是一个持续运行的助手。 --- ## Phase 1: 信息收集（Intake） 目标：用 2-3 轮自然对话收集生成所需的关键信息。像一个有经验的学习顾问在了解需求，不像在填表。 ### 第一轮：主题 + 目标 被触发后，先用一句话说明自己做什么，然后问最核心的两个变量： > "我可以帮你生成一个学习项目 skill——它会在你整个学习过程中引导规划、学习、复盘和总结。 > 先告诉我：你想学什么？学完之后希望能做到什么？" 这两个信息通常是用户触发 Creator 时脑子里最清晰的，开口门槛最低。 ### 第二轮：基础 + 时间 + 条件追问 先对用户第一轮回答做简短回应（表示理解，让对话有来有回），然后补收： > "[对目标的回应]。再告诉我两件事：你目前在这个领域的基础怎么样？大概打算花多长时间——一两周集中突破，还是几个月系统学？" 条件追问（仅在信息不充分时触发）： | 情况 | 追问方式 | | ---------------------------- | ------------------------------------------------ | | 目标不可操作（如"了解 X"） | "学完之后你希望能用它做什么具体的事？" | | 基础完全空白 | "是完全从零开始，还是接触过相关内容但没系统学？" | | 时间范围未提及 | "大概打算花多长时间？" | | 第一轮已自发带出了基础或时间 | 只补缺失的，不重复问 | | 所有必答信息已充分 | 直接进入汇总确认 | **可选变量**——不主动问，从对话中捕获： - 验收方式偏好（如用户说"我喜欢动手练不喜欢纯看"）→ 覆盖默认的启发式匹配 - 学习风格偏好（如用户说"我更喜欢先看整体再钻细节"）→ 覆盖默认的 bottom-up 策略 - 如用户未提及，使用默认值即可 ### 第三轮：汇总确认 结构化展示收集到的信息 + 模式推荐： ``` 我理解到的信息： - 学习主题：[主题] - 现有基础：[基础描述] - 学习目标：[目标，确保是可操作表述] - 时间范围：[时间] - 推荐模式：[轻量/完整] └ 轻量模式默认快速推进，遇到复杂节点自动加深；完整模式默认深入系统，明确简单的环节自动精简。 有需要修正的吗？确认后我生成 skill 预览。 ``` 模式推荐规则： - 2 周以内 → 推荐轻量模式（项目周期短，完整复盘和知识框架的 ROI 低） - 1-3 个月 → 推荐完整模式（足够支撑模块复盘和知识框架） - 3 个月以上或"不确定" → 推荐完整模式 - 用户可覆盖推荐，尊重选择 **信息充分性门槛**——进入汇总确认前检查： - ✅ 主题明确（能用来做文件命名和领域判断） - ✅ 目标可操作（能回答"学完后能做什么"） - ✅ 基础有大致定位（零基础 / 有接触 / 有经验） - ✅ 时间范围有量级 不满足时的兜底：用合理假设填充，在汇总中**显式标注**哪些是假设让用户确认。例如： > "你没提到时间安排，我先按 1-2 个月、完整模式来规划。如果是短期突破，告诉我我会调整。" --- ## Phase 2: 生成与预览（Generate & Preview） 用户确认汇总后，进入生成流程。 ### 变量准备 从收集到的信息中提取生成所需的变量： | 变量 | 来源 | 处理方式 | | ------------------------- | ------------------ | ------------------------------------------------------------ | | `topic` | 用户提供的学习主题 | 直接使用 | | `topic_slug` | 从 topic 派生 | 转为适合文件命名和 name 字段的格式（小写、下划线、无空格，如 "distributed_systems"） | | `goal` | 用户提供的学习目标 | 确保是可操作表述 | | `background` | 用户提供的现有基础 | 直接使用 | | `timeframe` | 用户提供的时间范围 | 直接使用 | | `mode` | 用户确认的模式 | "轻量" 或 "完整" | | `learning_style_override` | 可选，用户偏好 | 如未提供，留空（模板使用默认 bottom-up） | | `verification_override` | 可选，用户偏好 | 如未提供，留空（模板使用默认启发式匹配） | | `lang` | 用户对话使用的语言 | 生成物使用相同语言 | | `project_dir` | 从 topic_slug 派生 | `learn_` + topic_slug + `/`（如 `learn_distributed_systems/`），项目文件的存放目录 | | `generated_by` | Creator 版本标识 | 固定值 `skill_creator_learning v1.4.0` | ### 生成逻辑 1. 根据 `mode` 选择对应的骨架模板： - 轻量模式 → 读取 `references/templates/skill/lite.md` - 完整模式 → 读取 `references/templates/skill/full.md` 2. 用收集到的变量替换模板中的占位符（`{{topic}}`、`{{goal}}` 等） 3. 处理可选变量的条件注入： - `learning_style_override`：如用户提供了偏好，在模板的 `{{learning_style_override}}` 位置插入说明，如"\n- 注意：本项目用户偏好先看整体再钻细节（top-down），调整讲解策略" - `verification_override`：类似处理 - 如未提供，清除占位符（不留空行） 4. 准备 references/ 文件： - 两种模式都需要：读取 `references/templates/guides/review_guide.md` → 生成 `review_guide.md` - 两种模式都需要：读取 `references/templates/guides/framework_guide.md` → 生成 `framework_guide.md`（完整模式默认使用；轻量模式在自适应升级时使用） 5. 如果对话语言不是中文，将生成物全文翻译为用户使用的语言，保持结构和格式不变 ### 预览展示 将生成的 SKILL.md 完整内容展示给用户，然后列出 references/ 文件清单： > "此外还会生成以下配套文件： > - references/review_guide.md — 复盘执行指南 > - references/framework_guide.md — 认知框架生成指南 > > 你可以提出修改意见，或者确认后我直接生成。" ### 修改处理 | 修改类型 | 判断标准 | 处理方式 | | ---------- | ---------------------------------------------------- | ----------------------------------------------------- | | 结构性修改 | 影响模式逻辑或文件管理（如"不要复盘""加个打卡机制"） | 调整骨架，重新生成受影响部分，再次完整展示 | | 内容微调 | 不影响结构（如"目标描述改一下""加一条项目信息"） | 定点修改，展示差异点（"已更新 XX，其他不变。确认？"） | 迭代引导： - 首次："你可以提出修改意见，或者确认后我直接生成。" - 后续："已调整。还有需要改的吗？没有的话我开始生成。" - 不设轮数上限，用户想改就改 ### 占位符对照表 生成时逐项检查，确保每个占位符都已处理： | 占位符 | 来源 | 处理方式 | |---|---|---| | `{{topic}}` | 用户输入的学习主题 | 直接替换 | | `{{topic_slug}}` | 从 topic 派生（小写、下划线、无空格） | 直接替换 | | `{{goal}}` | 用户输入的学习目标（可操作表述） | 直接替换 | | `{{background}}` | 用户输入的现有基础 | 直接替换 | | `{{timeframe}}` | 用户输入的时间范围 | 直接替换 | | `{{learning_style_override}}` | 可选，用户提到的学习风格偏好 | 有值→插入说明文本；无值→清除占位符（不留空行） | | `{{verification_override}}` | 可选，用户提到的验收方式偏好 | 有值→插入说明文本；无值→清除占位符（不留空行） | | `{{project_dir}}` | 从 topic_slug 派生 | `learn_` + topic_slug + `/`（如 `learn_distributed_systems/`），直接替换 | | `{{generated_by}}` | Creator 版本标识 | 固定值 `skill_creator_learning v1.4.0`，直接替换 | > **⚠️ 用户确认生成后，必须进入 Phase 3 执行交付流程。不要直接写文件——Phase 3 包含安装路径探测、交付方式询问等必要步骤。** --- ## Phase 3: 交付（Deliver） 用户确认预览后，询问交付方式： > "你希望我怎么交付？ > 1. **直接安装到当前工作空间** — skill 和项目文件夹都创建在当前工作空间内，立即可用 > 2. **打包为 ZIP** — 生成 zip 文件，你可以自行解压到任意位置或分享给别人" ### 安装路径探测 无论哪种交付方式，都需要先确定 skill 的安装目录前缀。按以下优先级探测： 1. **检查当前 workspace 下的已有 skill 路径**：扫描项目根目录中是否存在 `.claude/skills/`、`.agents/skills/`、`.agent/skills/`、`_agents/skills/`、`_agent/skills/`、`.workbuddy/skills/`、`skills/` 等目录。找到任意一个则沿用该前缀 2. **检查用户根目录（`~/`）下的全局 skill 路径**：扫描是否存在 `~/.claude/skills/`、`~/.openclaw/skills/`、`~/.agents/skills/`、`~/.gemini/antigravity/skills/` 等目录。能找到则说明用户在用对应平台，项目级路径使用对应前缀 3. **兜底默认值**：以上都未找到，使用 `.agents/skills/` 作为默认前缀（Agent Skills 开放标准，兼容性最广） 探测到的前缀记为 `{skill_prefix}`。最终 skill 安装路径为：`{skill_prefix}/learn_{{topic_slug}}/SKILL.md` ### 路径1：直接安装到当前工作空间 **执行以下步骤（必须按顺序完成）：** 1. 在当前工作空间内，按探测到的 `{skill_prefix}` 创建 skill 目录：`{skill_prefix}/learn_{{topic_slug}}/` 2. 将生成的 SKILL.md 写入该目录 3. 在该目录下创建 `references/` 子目录，写入 review_guide.md 和 framework_guide.md 4. 在当前工作空间根目录下创建项目文件目录 `learn_{{topic_slug}}/`（用于存放学习过程中产生的所有项目文件：学习计划、笔记、总结等） 5. 注意：生成的文件包含大量 Markdown 特殊字符（反引号、方括号、花括号），请使用文件写入工具直接创建文件，避免通过 Shell heredoc（`cat <<EOF`）或重定向写入 6. 通知用户： > "学习项目已安装到当前工作空间： > - skill 位于 `{skill_prefix}/learn_{{topic_slug}}/` > - 项目文件将保存在 `learn_{{topic_slug}}/` 目录下 > > 直接开始对话就可以使用了——说「开始学习」或「继续学习」即可。" ### 路径2：ZIP 打包 **执行以下步骤（必须按顺序完成）：** 1. 在 /tmp/ 下创建临时目录 `learn_{{topic_slug}}_package/` 2. 在临时目录内按探测到的 `{skill_prefix}` 创建 skill 目录结构：`{skill_prefix}/learn_{{topic_slug}}/SKILL.md` + `{skill_prefix}/learn_{{topic_slug}}/references/` 3. 在临时目录内创建项目文件目录：`learn_{{topic_slug}}/`（空目录，首次使用时 skill 会自动初始化） 4. 写入所有文件（同路径1步骤2-3）。同样使用文件写入工具，避免 Shell heredoc 5. 执行 zip 打包：`cd /tmp && zip -r learn_{{topic_slug}}.zip learn_{{topic_slug}}_package/` 6. 将 zip 文件移动到用户工作目录 7. 清理临时目录 8. 通知用户： > "已打包为 `learn_{{topic_slug}}.zip`。 > 解压到你的工作空间根目录后，skill 会自动生效，项目文件将保存在 `learn_{{topic_slug}}/` 目录下。" --- ## 附录：生成物质量检查清单 生成前最后过一遍，确保生成物质量： **内容质量** - [ ] frontmatter 的 name 字段不超过 32 字符 - [ ] frontmatter 的 description 包含触发关键词和主题名称 - [ ] frontmatter 的 generated_by 字段已填充版本标识 - [ ] 项目信息区的所有变量（含项目文件目录）都已正确填充 - [ ] 所有占位符已处理（替换或清除），无残留的 `{{...}}` - [ ] 启动协议中的文件读取逻辑与文件管理规范一致 - [ ] 启动协议中包含项目文件目录的定位和创建逻辑 - [ ] 学习模式的五步闭环完整（输入→学习→确认→验收→沉淀） - [ ] 所有文件命名规则使用了正确的 topic_slug - [ ] 没有任何删除文件的指令 - [ ] 所有项目文件路径相对于项目文件目录 - [ ] 如完整模式：读取优先级三层都定义清晰 - [ ] references/ 文件与 SKILL.md 中的引用一致 **交付验证** - [ ] 交付前已询问用户选择交付方式（直接安装 / ZIP） - [ ] 已执行安装路径探测，确认 `{skill_prefix}` 值 - [ ] skill 目录结构正确：`{skill_prefix}/learn_[topic_slug]/SKILL.md` + `references/` - [ ] 项目文件目录已创建：`learn_[topic_slug]/` - [ ] 所有文件已成功写入（非空、内容完整）

path: references/strategies/README.md
content: # 知识类型策略（预留扩展点）

此目录用于存放按知识类型定制的学习策略文件。

v1.0 使用通用策略（已内嵌在 SKILL.md 模板中的启发式规则），不按知识类型分支。

未来迭代中，可根据实际学习项目的反馈添加策略文件，例如：
- `technical.md` — 技术类知识的学习策略（侧重实践验证、代码练习）
- `conceptual.md` — 概念/理论类知识的学习策略（侧重深度理解、类比思维）
- `procedural.md` — 流程/方法类知识的学习策略（侧重步骤拆解、场景模拟）

策略文件与骨架模板（templates/）正交：骨架决定项目整体结构，策略注入学习模式内部的具体引导方式。


path: references/templates/skill/lite.md
content: ---
name: learn_{{topic_slug}}
description: >
  {{topic}}学习项目引导。当用户想要学习{{topic}}、继续学习、复盘、结项，
  或者说"继续""接下来""开始学习"等任何暗示学习活动的话时，都应触发此 skill。
tools: [write, bash, web_search]
generated_by: {{generated_by}}
---

# {{topic}} 学习项目引导

## 项目信息

- 学习主题：{{topic}}
- 学习目标：{{goal}}
- 现有基础：{{background}}
- 时间范围：{{timeframe}}
- 项目文件目录：{{project_dir}}
- 项目模式：轻量模式（默认快速推进，遇到复杂节点自动加深）

## 启动协议

每次新对话开始时，依次执行：

1. 读取本 skill 的项目信息区，获取项目上下文
2. 确认项目文件目录（项目信息区中的 `{{project_dir}}`）存在。如不存在则创建。**以下所有文件路径均相对于此项目文件目录。**
3. 读取 learning_plan.md（如存在），确认当前进度
4. 加载项目文件目录下所有已有的笔记和总结文件（默认全量加载；如果文件量增长到上下文窗口紧张，自动启用分层加载——优先加载当前模块文件和已有的模块总结，历史模块的单篇笔记按需加载）
5. 向用户声明当前状态，格式示例：
   "当前进度：模块 2 [模块名]，第 3 个学习点。上次完成了 [简要回顾]。"
6. 根据进度判断当前模式：
   - 尚未生成学习计划 → 规划模式
   - 有未完成的学习点 → 学习模式
   - 刚完成一个模块的最后一个学习点，且该模块含 3+ 学习点 → 复盘模式
   - 所有模块已完成 → 结项模式
   - 用户明确指定模式（如"模块2复盘"）→ 遵从用户指定

如果项目文件目录下没有 learning_plan.md，说明这是首次对话，直接进入规划模式。

## 模式分支

### 规划模式

触发条件：项目刚启动，尚无 learning_plan.md。

**步骤1：目标定义**

与用户确认学习目标。引导用户用可操作的语言表述——"能用 X 做 Y"优于"了解 X"。结合项目信息区中的目标和基础，做一次差距分析：用户现在在哪，要到哪里去，中间缺什么。

输出一句话目标 + 基础定位，与用户确认。

**步骤2：路径拆解**

将目标拆解为 2-4 个模块（参考值，按实际需要调整；如果主题复杂度要求更多模块，可扩展到 6-8 个）。每个模块拆解为 2-5 个学习点。每个学习点明确：

- 要学什么（核心概念/技能）
- 推荐资料（优先级：官方文档/原始论文 > 高质量教程 > 泛泛介绍）
- 预估时长

与用户讨论确认计划后，保存为 learning_plan.md。通知用户："学习计划已生成并保存。"

learning_plan.md 中为每个学习点留一个进度标记位（`[ ]` 未完成 / `[x]` 已完成），后续学习中自动更新。

**步骤3：初始化项目文件目录**

规划完成后，执行目录初始化：
- 为每个模块创建对应的文件夹（如 `module_1_基础概念/`、`module_2_核心机制/`）
- 创建 file_structure.md，写入目录结构说明（见"文件管理规范 > 目录结构"）
- 通知用户："项目文件目录已初始化，可以开始学习了。"

---

### 学习模式

触发条件：learning_plan.md 已生成，有未完成的学习点。

对当前学习点执行五步闭环：

**输入**
- 讲解该学习点的核心概念，明确本次学习目标
- 采用 bottom-up 策略：先讲底层原理和机制，再到上层表现和应用{{learning_style_override}}

**学习**
- 与用户深度讨论，鼓励用户提问和质疑
- 每讲解完一个子概念后确认理解程度——不要等整个学习点讲完才问，这样能及时发现盲区
- 涉及外部资料时附来源链接；时效性强的内容（技术版本、工具参数、最新进展）使用 web search 验证
- 推测性内容明确标注为推测

**确认**
- 识别用户的理解盲区，针对性补充
- 如发现理解偏差，先纠正再继续

**验收**
- 通过以下方式检验真实掌握程度（根据内容性质选择最合适的方式）：
  - 偏动手操作的内容 → 实战练习
  - 偏概念理解的内容 → 案例分析
  - 偏实际应用的内容 → 场景模拟{{verification_override}}
- 验收未通过时，定位薄弱点，补充讲解后重新验收
- 用户觉得某次验收不必要时可以跳过，尊重用户判断

**沉淀**
- 验收通过后，生成该学习点的结构化笔记（格式见下方"笔记格式规范"）
- 保存到对应模块文件夹：`module_N_[模块名]/notes_[关键词].md`
- 通知用户："笔记已保存到 module_N_[模块名]/notes_[关键词].md"

**学习点完成后**
- 更新 learning_plan.md 中该学习点的进度标记为 `[x]`
- 检查当前模块是否全部完成：
  - 否 → 如对话已较长（超过 10 轮深度讨论），建议用户开新对话继续下一个学习点
  - 是，且模块含 3+ 学习点 → 通知用户模块完成，建议开新对话进行模块复盘
  - 是，且模块含 1-2 个学习点 → 默认跳过复盘，该模块的笔记即为完整记录。但如果模块内容密集或发现关键盲区，仍建议复盘
  - 是，模块虽含 3+ 学习点但内容简单直接 → 可简化为要点式总结，不做完整复盘流程

---

### 复盘模式

触发条件：刚完成一个含 3+ 学习点的模块，或用户主动要求复盘某模块。默认在 3+ 学习点的模块触发；如果模块内容密集或发现关键盲区，即使学习点较少也建议复盘。

复盘在新对话中进行。执行步骤：

1. 读取该模块文件夹内的所有笔记（`module_N_[模块名]/notes_*.md`）
2. **知识整合**：梳理模块内概念之间的关系，帮助用户建立结构化理解
3. **缺口识别**：检查笔记中标注的"认知盲区"，判断哪些已在后续学习中覆盖、哪些仍需补强
4. **验证测试**：通过 1-2 个综合性问题或跨学习点的应用场景，检验整合理解程度
5. **策略反思**：如发现学习过程中的系统性问题（如某类内容的验收方式不合适），记录并调整后续策略
6. 生成模块整合总结，保存到模块文件夹：`module_N_[模块名]/summary.md`
7. 通知用户："模块 N 复盘完成，总结已保存。"

复盘完成后，如有后续模块未开始，建议用户开新对话继续学习。

（详细复盘执行指南见 references/review_guide.md）

---

### 结项模式

触发条件：所有模块已完成（含已触发的复盘）。

1. 简要回顾所有模块的核心收获
2. 列出学习过程中标注的"仍需深化"的点，作为后续自学方向
3. 默认生成简要项目总结。如果学习内容有清晰的结构化知识体系（如架构/系统类知识），升级为认知框架（加载 references/framework_guide.md）
4. 保存为 `summary_{{topic_slug}}.md`
5. 生成项目反馈文件 `project_feedback.md`（格式见"产出物格式规范"），记录项目执行中的方法论反馈，为后续 skill 迭代提供数据
6. 通知用户项目完成

---

## 文件管理规范

### 目录结构

```
{{project_dir}}/
├── learning_plan.md                      # 学习计划 + 进度追踪
├── file_structure.md                     # 目录结构说明
├── module_1_[模块名]/                    # 每个模块一个文件夹
│   ├── notes_[关键词].md                 # 学习点笔记（每个学习点一个）
│   └── summary.md                        # 模块复盘总结（3+学习点的模块才生成）
├── module_2_[模块名]/
│   └── ...
├── summary_{{topic_slug}}.md             # 项目总结（结项时生成）
└── project_feedback.md                  # 项目反馈（结项时生成）
```

### 文件清单

| 文件 | 位置 | 生成时机 |
|---|---|---|
| 学习计划 | {{project_dir}}/learning_plan.md | 规划模式完成时 |
| 目录结构说明 | {{project_dir}}/file_structure.md | 规划模式完成时 |
| 模块文件夹 | {{project_dir}}/module_N_[模块名]/ | 规划模式完成时创建 |
| 学习点笔记 | {{project_dir}}/module_N_[模块名]/notes_[关键词].md | 每个学习点验收通过后 |
| 模块总结 | {{project_dir}}/module_N_[模块名]/summary.md | 模块复盘完成时（3+学习点的模块） |
| 项目总结 | {{project_dir}}/summary_{{topic_slug}}.md | 结项时 |
| 项目反馈 | {{project_dir}}/project_feedback.md | 结项时 |

### 核心规则

- **自动保存**：到达上述触发点时自动保存，完成后通知用户文件名
- **严禁删除**：不在任何情况下删除项目文件目录中的文件。用户的笔记具有长期参考价值。即使生成了模块总结，原始笔记也保留
- **路径前缀**：每次读写文件时，必须使用 `{{project_dir}}/` 作为路径前缀。例如保存学习计划时写入 `{{project_dir}}/learning_plan.md`，而非 `learning_plan.md`。此规则在整个项目生命周期内始终有效，不因对话轮次增加而省略
- **Markdown 格式**：所有文件统一为 Markdown

---

## 笔记格式规范

### 学习点笔记（module_N_[模块名]/notes_[关键词].md）

```
## [学习点名称]

### 核心概念
- （要点列表）

### 关键洞察
- （不是概念复述，是"学到了什么、理解到了什么"）

### 认知盲区
- （还没完全搞懂的部分，标注原因）

### 与其他模块的关联
- （这个知识点如何连接到已学/待学的内容）
```

### 模块整合总结（module_N_[模块名]/summary.md）

```
## 模块 N：[模块名称]

### 核心框架
- （这个模块的知识结构，用自己的话重新组织）

### 关键决策/判断标准
- （学完这个模块后，能做出哪些之前不能做的判断）

### 仍需深化
- （标注需要后续补强的点）
```

### 项目反馈（project_feedback.md）

```
# 项目反馈

## 项目信息
- 主题：[主题]
- 模式：[轻量/完整]
- 持续时间：[起止]

## skill 引导效果
- 哪些引导环节最有价值：[列举]
- 哪些引导环节被跳过或感觉多余：[列举]
- 模式选择是否合适：[合适 / 应该选另一个模式，原因]

## 方法论反馈
- 五步闭环（输入→学习→确认→验收→沉淀）的实际效果：[评价]
- 复盘机制的实际效果：[评价]
- 文件管理是否顺畅：[评价]

## 改进建议
- [具体建议]
```


path: references/templates/skill/full.md
content: ---
name: learn_{{topic_slug}}
description: >
  {{topic}}学习项目引导。当用户想要学习{{topic}}、继续学习、复盘、结项，
  或者说"继续""接下来""开始学习"等任何暗示学习活动的话时，都应触发此 skill。
tools: [write, bash, web_search]
generated_by: {{generated_by}}
---

# {{topic}} 学习项目引导

## 项目信息

- 学习主题：{{topic}}
- 学习目标：{{goal}}
- 现有基础：{{background}}
- 时间范围：{{timeframe}}
- 项目文件目录：{{project_dir}}
- 项目模式：完整模式（默认深入系统，明确简单的环节自动精简）

## 启动协议

每次新对话开始时，依次执行：

1. 读取本 skill 的项目信息区，获取项目上下文
2. 确认项目文件目录（项目信息区中的 `{{project_dir}}`）存在。如不存在则创建。**以下所有文件路径均相对于此项目文件目录。**
3. 读取 learning_plan.md（如存在），确认当前进度
4. 按读取优先级加载上下文文件（见"文件管理规范 > 读取优先级"）
5. 向用户声明当前状态，格式示例：
   "当前进度：模块 3 [模块名]，第 2 个学习点。上次完成了 [简要回顾]。"
6. 根据进度判断当前模式：
   - 尚未生成学习计划 → 规划模式
   - 有未完成的学习点 → 学习模式
   - 刚完成一个模块的最后一个学习点 → 复盘模式
   - 所有模块已完成（含复盘） → 结项模式
   - 用户明确指定模式（如"模块2复盘"） → 遵从用户指定

如果项目文件目录下没有 learning_plan.md，说明这是首次对话，直接进入规划模式。

## 模式分支

### 规划模式

触发条件：项目刚启动，尚无 learning_plan.md。

**步骤1：目标定义**

与用户确认学习目标。引导用户用可操作的语言表述——"能用 X 做 Y"优于"了解 X"。结合项目信息区中的目标和基础，做一次差距分析：用户现在在哪，要到哪里去，中间缺什么。

输出一句话目标 + 基础定位，与用户确认。

**步骤2：路径拆解**

将目标拆解为 4-8 个模块（参考值，按实际需要调整；如果主题聚焦，可精简到 2-4 个）。每个模块拆解为 2-5 个学习点。每个学习点明确：

- 要学什么（核心概念/技能）
- 推荐资料（优先级：官方文档/原始论文 > 高质量教程 > 泛泛介绍）
- 预估时长

与用户讨论确认计划后，保存为 learning_plan.md。通知用户："学习计划已生成并保存。"

learning_plan.md 中为每个学习点留一个进度标记位（`[ ]` 未完成 / `[x]` 已完成），后续学习中自动更新。

**步骤3：初始化项目文件目录**

规划完成后，在项目文件目录下执行目录初始化：
- 为每个模块创建对应的文件夹（如 `module_1_基础概念/`、`module_2_核心机制/`）
- 创建 file_structure.md，写入目录结构说明（见"文件管理规范 > 目录结构"）
- 通知用户："项目文件目录已初始化，可以开始学习了。"

---

### 学习模式

触发条件：learning_plan.md 已生成，有未完成的学习点。

对当前学习点执行五步闭环：

**输入**
- 讲解该学习点的核心概念，明确本次学习目标
- 采用 bottom-up 策略：先讲底层原理和机制，再到上层表现和应用{{learning_style_override}}

**学习**
- 与用户深度讨论，鼓励用户提问和质疑
- 每讲解完一个子概念后确认理解程度——不要等整个学习点讲完才问，这样能及时发现盲区
- 涉及外部资料时附来源链接；时效性强的内容（技术版本、工具参数、最新进展）使用 web search 验证
- 推测性内容明确标注为推测

**确认**
- 识别用户的理解盲区，针对性补充
- 如发现理解偏差，先纠正再继续

**验收**
- 通过以下方式检验真实掌握程度（根据内容性质选择最合适的方式）：
  - 偏动手操作的内容 → 实战练习
  - 偏概念理解的内容 → 案例分析
  - 偏实际应用的内容 → 场景模拟{{verification_override}}
- 验收未通过时，定位薄弱点，补充讲解后重新验收
- 用户觉得某次验收不必要时可以跳过，尊重用户判断

**沉淀**
- 验收通过后，生成该学习点的结构化笔记（格式见下方"笔记格式规范"）
- 保存到对应模块文件夹：`module_N_[模块名]/notes_[关键词].md`
- 通知用户："笔记已保存到 module_N_[模块名]/notes_[关键词].md"

**学习点完成后**
- 更新 learning_plan.md 中该学习点的进度标记为 `[x]`
- 检查当前模块是否全部完成：
  - 否 → 如对话已较长（超过 10 轮深度讨论），建议用户开新对话继续下一个学习点
  - 是 → 默认建议开新对话进行模块复盘。如果模块只有 1-2 个简单学习点且无认知盲区，可简化为要点式总结，跳过完整复盘流程

---

### 复盘模式

触发条件：刚完成一个模块的最后一个学习点，或用户主动要求复盘某模块。

完整模式下，默认每个模块完成后都建议进行复盘——这是系统学习的核心机制：单个学习点的理解是碎片化的，复盘将碎片整合为结构化认知。如果模块内容简单直接（仅 1-2 个学习点且无认知盲区），可精简为要点式总结。

复盘在新对话中进行。执行步骤：

1. 读取该模块文件夹内的所有笔记（`module_N_[模块名]/notes_*.md`）
2. **知识整合**：梳理模块内概念之间的关系，帮助用户建立结构化理解
3. **缺口识别**：检查笔记中标注的"认知盲区"，判断哪些已在后续学习中覆盖、哪些仍需补强
4. **验证测试**：通过 2-3 个综合性问题或跨学习点的应用场景，检验整合理解程度
5. **策略反思**：如发现学习过程中的系统性问题（如某类内容的验收方式不合适），调整后续模块的学习策略，并更新 learning_plan.md 中的相关说明
6. 生成模块整合总结，保存到模块文件夹：`module_N_[模块名]/summary.md`
7. 通知用户："模块 N 复盘完成，总结已保存。"

复盘完成后，如有后续模块未开始，建议用户开新对话继续学习。

（详细复盘执行指南见 references/review_guide.md）

---

### 结项模式

触发条件：所有模块已完成（含复盘）。

1. **整体回顾**：梳理所有模块总结（各 `module_N_[模块名]/summary.md`），构建全局知识架构
2. **认知框架生成**：默认加载 references/framework_guide.md，按指南生成项目认知框架。如果项目较短或学习内容碎片化（不适合结构化框架），可简化为项目总结
   - 框架形式根据知识类型选择：
     - 架构/系统类知识 → 决策树或分层图
     - 流程/方法类知识 → 步骤清单或检查表
     - 概念/理论类知识 → 概念关系图或对比矩阵
3. 保存为 `framework_{{topic_slug}}.md`（或 `summary_{{topic_slug}}.md` 如简化为总结）
4. 生成项目反馈文件 `project_feedback.md`（格式见"产出物格式规范"），记录项目执行中的方法论反馈，为后续 skill 迭代提供数据
5. 通知用户项目完成，建议回顾框架文档确认完整性

（详细框架生成指南见 references/framework_guide.md）

---

## 文件管理规范

### 目录结构

```
{{project_dir}}/
├── learning_plan.md                      # 学习计划 + 进度追踪
├── file_structure.md                     # 目录结构说明
├── module_1_[模块名]/                    # 每个模块一个文件夹
│   ├── notes_[关键词].md                 # 学习点笔记（每个学习点一个）
│   └── summary.md                        # 模块复盘总结
├── module_2_[模块名]/
│   └── ...
├── framework_{{topic_slug}}.md           # 认知框架（结项时生成）
└── project_feedback.md                  # 项目反馈（结项时生成）
```

### 文件清单

| 文件 | 位置 | 生成时机 |
|---|---|---|
| 学习计划 | {{project_dir}}/learning_plan.md | 规划模式完成时 |
| 目录结构说明 | {{project_dir}}/file_structure.md | 规划模式完成时 |
| 模块文件夹 | {{project_dir}}/module_N_[模块名]/ | 规划模式完成时创建 |
| 学习点笔记 | {{project_dir}}/module_N_[模块名]/notes_[关键词].md | 每个学习点验收通过后 |
| 模块总结 | {{project_dir}}/module_N_[模块名]/summary.md | 每个模块复盘完成后 |
| 认知框架 | {{project_dir}}/framework_{{topic_slug}}.md | 结项时 |
| 项目反馈 | {{project_dir}}/project_feedback.md | 结项时 |

### 保存规则

- **自动保存**：到达上述触发点时自动保存，完成后通知用户文件名
- **严禁删除**：不在任何情况下删除项目文件目录中的文件。用户的笔记具有长期参考价值——即使生成了模块总结，原始笔记也保留，因为总结是压缩后的视角，原始笔记中的细节和盲区标注可能在后续深化时有用
- **路径前缀**：每次读写文件时，必须使用 `{{project_dir}}/` 作为路径前缀。例如保存学习计划时写入 `{{project_dir}}/learning_plan.md`，而非 `learning_plan.md`。此规则在整个项目生命周期内始终有效，不因对话轮次增加而省略
- **Markdown 格式**：所有文件统一为 Markdown

### 读取优先级

每次新对话，按以下层级决定加载哪些文件。目的是在上下文窗口有限的情况下，优先加载最有用的信息：

**L1（始终加载）**：learning_plan.md + 当前模块文件夹内的所有文件（笔记或总结）
**L2（按需加载）**：已完成模块的 module_N_[模块名]/summary.md
**L3（不主动加载）**：已有模块总结的模块文件夹内的单篇笔记——用户要求时加载

优先级随项目推进动态调整：
- 模块复盘完成、summary.md 生成后 → 该模块文件夹内的单篇笔记从 L1 降至 L3（summary 已整合其核心内容）
- 结项、framework 生成后 → 各模块 summary 从 L1 降至 L2，framework 进入 L1

"降级"仅指不再主动加载到对话上下文，文件本身不做任何改动。用户随时可以说"帮我重新看一下模块2的笔记"，此时加载 L3 文件。

---

## 笔记格式规范

### 学习点笔记（module_N_[模块名]/notes_[关键词].md）

```
## [学习点名称]

### 核心概念
- （要点列表）

### 关键洞察
- （不是概念复述，是"学到了什么、理解到了什么"）

### 认知盲区
- （还没完全搞懂的部分，标注原因）

### 与其他模块的关联
- （这个知识点如何连接到已学/待学的内容）
```

### 模块整合总结（module_N_[模块名]/summary.md）

```
## 模块 N：[模块名称]

### 核心框架
- （这个模块的知识结构，用自己的话重新组织）

### 关键决策/判断标准
- （学完这个模块后，能做出哪些之前不能做的判断）

### 仍需深化
- （标注需要后续补强的点）
```

### 项目认知框架（framework_{{topic_slug}}.md）

```
## {{topic}} 认知框架

### 核心结构
- （整个知识领域的架构，用自己的语言重建）

### 关键判断标准
- （学完后能做的决策和判断）

### 与其他领域的关联
- （这个知识如何连接到已有的知识体系）
```

### 项目反馈（project_feedback.md）

```
# 项目反馈

## 项目信息
- 主题：[主题]
- 模式：[轻量/完整]
- 持续时间：[起止]

## skill 引导效果
- 哪些引导环节最有价值：[列举]
- 哪些引导环节被跳过或感觉多余：[列举]
- 模式选择是否合适：[合适 / 应该选另一个模式，原因]

## 方法论反馈
- 五步闭环（输入→学习→确认→验收→沉淀）的实际效果：[评价]
- 复盘机制的实际效果：[评价]
- 认知框架生成的实际效果：[评价]
- 文件管理是否顺畅：[评价]

## 改进建议
- [具体建议]
```


path: references/templates/guides/review_guide.md
content: # 模块复盘执行指南

> 本文件在复盘模式触发时加载。提供复盘各步骤的详细执行指导。

## 复盘前准备

1. 确认要复盘的模块编号 N
2. 加载该模块的所有学习点笔记：`notes_module_N_*.md`
3. 加载 learning_plan.md 中该模块的规划信息（学习点列表、目标描述）

## 执行步骤

### 第一步：知识整合

目标：从散落的学习点笔记中提炼出模块级别的知识结构。

- 列出该模块所有学习点的核心概念
- 梳理概念之间的关系：哪些是基础→进阶关系？哪些是并列关系？哪些互为补充？
- 用一段话或一个简要结构图向用户描述这个模块的知识架构
- 与用户讨论：这个结构是否符合你的理解？有没有你觉得关系不对的地方？

### 第二步：缺口识别

目标：找出学习过程中遗留的认知薄弱点。

- 汇总所有笔记中"认知盲区"部分的内容
- 逐条判断：
  - 已在后续学习点中覆盖 → 标记为已解决
  - 仍然存在 → 评估严重程度：影响后续学习？还是可以暂时搁置？
- 检查模块内各学习点的"与其他模块的关联"部分，是否有关联关系在学习过程中未被充分建立
- 与用户讨论发现的缺口，共同决定处理方式：
  - 当场补充讲解（如果缺口较小且影响理解完整性）
  - 记录到"仍需深化"中（如果缺口需要更多时间或后续模块会覆盖）

### 第三步：验证测试

目标：检验用户是否真正整合了模块知识，而不只是记住了各个学习点的内容。

设计 1-3 个验证问题（数量根据模块体量调整）：
- 至少 1 个综合性问题：需要组合多个学习点的知识才能回答
- 如模块涉及实践技能：设计一个跨学习点的应用场景
- 如模块涉及判断能力：设计一个需要权衡取舍的决策问题

验证的目的是发现理解深度的问题，不是考试。如果用户回答暴露了理解偏差，针对性补充后继续，不需要"重新验收"。

### 第四步：策略反思

目标：从本模块的学习过程中提取对后续模块有用的经验。

回顾本模块的学习过程，关注：
- 哪种验收方式效果好？哪种流于形式？
- 学习节奏是否合适？（太快导致消化不良？太慢导致注意力分散？）
- 资料质量如何？有没有特别好或特别差的资料来源？
- bottom-up 策略在这个模块中是否合适？

如发现需要调整后续策略，更新 learning_plan.md 中的相关说明。

### 第五步：生成模块总结

按照笔记格式规范中的"模块整合总结"模板，生成 `summary_module_N.md`。

总结应该是：
- 用用户自己的话（而非照搬笔记）重新组织的知识结构
- 聚焦"学完这个模块后我能做什么"，而非"这个模块讲了什么"
- 明确标注仍需深化的点，方便后续回溯

保存后通知用户。


path: references/templates/guides/framework_guide.md
content: # 认知框架生成指南

> 本文件在结项模式触发时加载（仅完整模式）。指导如何从模块总结中提炼项目级认知框架。

## 什么是认知框架

认知框架不是学习笔记的汇总，而是对整个知识领域的**重新建构**——用学完之后的视角重新组织知识结构，呈现各部分之间的关系和判断标准。

好的认知框架应该能让未来的自己（或他人）快速重建对这个领域的理解，而不需要重新阅读所有笔记。

## 生成步骤

### 第一步：加载素材

读取所有模块总结（`summary_module_N.md`），提取：
- 每个模块的核心框架
- 每个模块的关键决策/判断标准
- 每个模块的"仍需深化"

同时参考 learning_plan.md 中的模块结构，理解原始规划意图。

### 第二步：识别知识类型

根据学习内容的整体特征，判断最适合的框架形式：

| 知识类型特征 | 推荐框架形式 | 适用场景 |
|---|---|---|
| 系统有明确的层级或组件关系 | 分层图 / 架构图 | 技术架构、组织结构、系统设计 |
| 核心是做选择和判断 | 决策树 / 判断流程 | 方案选型、诊断排查、策略选择 |
| 核心是按步骤执行 | 步骤清单 / 检查表 | 操作流程、方法论、工作流 |
| 核心是理解概念关系 | 概念关系图 / 对比矩阵 | 理论体系、概念辨析、分类学 |

如果领域跨多种类型，可以组合使用。与用户确认框架形式后再开始生成。

### 第三步：构建核心结构

这是框架最重要的部分。目标是用用户自己的语言重建知识领域的架构：

- 不是按模块顺序堆叠（那是学习顺序，不是知识结构）
- 而是按知识本身的逻辑关系组织
- 突出模块之间的连接——哪些概念跨越了多个模块？哪些模块是理解另一个模块的前提？

与用户讨论核心结构，确认是否反映了他们的真实理解。

### 第四步：提炼判断标准

从各模块总结的"关键决策/判断标准"中提炼：

- 学完后能做出哪些之前不能做的决策？
- 面对某类问题时，判断的依据和优先级是什么？
- 有哪些常见的误区或陷阱？

这部分的价值在于：知识会遗忘，但判断标准留存下来就能指导实践。

### 第五步：标注关联和边界

- 这个知识领域与用户已有的其他知识/技能如何连接？
- 这个领域的边界在哪？学完之后还有哪些方向可以继续深入？
- 汇总所有模块的"仍需深化"，作为后续学习路线图

### 第六步：保存

按照笔记格式规范中的"项目认知框架"模板，保存为 `framework_[项目主题].md`。

保存后通知用户项目完成，建议花几分钟回顾框架文档，确认是否完整反映了学习成果。


path: README.md
content: # skill-creator-learning

> **MethodCraft** series — 把经过验证的方法论编译为可执行的 AI Skill

根据你的学习需求，生成一个定制化的学习项目 Skill。

生成的 Skill 会在你的整个学习过程中持续引导——从制定学习计划、逐个学习点推进、模块复盘，到最终的知识沉淀。不是一次性的学习建议，而是一个贯穿项目全程的结构化学习助手。

## 核心特性：自带 Memory 系统

生成的 Skill 内置文件级 memory 机制，让 agent 跨对话记住你的学习进度和产出：

- **自动保存**：每个学习点完成后自动生成结构化笔记，模块复盘后自动生成整合总结——你只需专注学习
- **按模块组织**：笔记按模块分文件夹存放，不是一堆平铺的文件，项目再大也保持清晰
- **跨对话恢复**：每次开新对话，Skill 自动读取进度文件，声明"当前进度：模块 3，第 2 个学习点"——不需要你重复交代上下文
- **智能读取优先级**（完整模式）：随项目推进，自动调整哪些文件优先加载到上下文，解决长期项目中文件越来越多的问题
- **严禁删除**：所有"归档"行为都是读取优先级的调整，你的原始笔记始终保留

## 快速开始

安装后，对 agent 说：

- "我想系统学分布式系统"
- "帮我生成一个学习 skill"
- "创建学习项目"
- "I want to learn Rust systematically"

Creator 会用 2-3 轮对话了解你的情况（学什么、目标、基础、时间），然后生成一个定制的 SKILL.md。

## 它会问你什么

| 信息 | 为什么需要 | 示例 |
|---|---|---|
| 学习主题 | 确定领域和方向 | "分布式系统"、"RAG pipeline" |
| 学习目标 | 决定深度和验收标准 | "能独立设计中等复杂度的分布式方案" |
| 现有基础 | 确定起点，避免重复 | "有后端经验，用过 Redis 但没学过理论" |
| 时间范围 | 决定项目结构和粒度 | "3 个月，每周 8-10 小时" |

不会问太多。验收方式偏好、学习风格之类的，如果你在对话中自然提到了会采用，没提到就用合理默认值。

## 两种模式

| | 轻量模式 | 完整模式 |
|---|---|---|
| 适合 | ≤2 周的短期集中项目 | 1 个月以上的系统学习 |
| 模块数 | 2-4 个 | 4-8 个 |
| 复盘 | 按需（3+ 学习点的模块才建议） | 每个模块都建议复盘 |
| 结项 | 简要项目总结 | 完整认知框架文档 |
| 文件管理 | 全量加载（文件少） | 三层优先级动态调整 |

Creator 会根据时间范围推荐模式，你可以覆盖。两种模式在覆盖范围内的引导质量一致——轻量不是"缩水版"，是为短期项目裁剪了后期才需要的机制。

## 生成物长什么样

生成的项目 Skill 安装到当前工作空间中。随着学习推进，项目目录会自动生长为这样：

```
learn_distributed_systems/
├── {skill_prefix}/learn_distributed_systems/
│   ├── SKILL.md                          # 主控逻辑：启动协议 + 四模式引导
│   └── references/
│       ├── review_guide.md               # 复盘执行指南
│       └── framework_guide.md            # 认知框架指南（仅完整模式）
├── learning_plan.md                      # 学习计划 + 进度追踪
├── file_structure.md                     # 目录结构说明
├── module_1_基础理论/                    # 每个模块一个文件夹
│   ├── notes_CAP定理.md
│   ├── notes_一致性模型.md
│   └── summary.md                        # 模块复盘总结
├── module_2_分布式存储/
│   ├── notes_分片策略.md
│   └── ...
└── framework_distributed_systems.md      # 认知框架（结项时生成）
```

安装后，Skill 自动引导你的学习项目走完四个阶段：

1. **规划模式** — 和你一起定义目标、拆解模块、生成学习计划、初始化项目目录
2. **学习模式** — 逐个学习点执行五步闭环（讲解→讨论→确认→验收→笔记）
3. **复盘模式** — 模块完成后整合知识、识别缺口、调整策略
4. **结项模式** — 生成认知框架（完整模式）或项目总结（轻量模式）

## 交付方式

生成完成后你可以选择：

- **直接安装** — 安装到当前工作空间，立即可用
- **ZIP 打包** — 生成 zip 文件，可自行解压到任意位置或分享

## 兼容性

主要为 OpenClaw 设计，同时兼容能操作本地文件系统的 AI Agent 产品（Claude Code、WorkBuddy、CodeBuddy 等）。安装路径自动适配当前平台，所有指令使用描述性语言，不依赖特定平台 API。

## 设计说明

这个 Creator 背后是一套经过实际学习项目验证的方法论（五步闭环、模块复盘、认知框架沉淀）。Creator 做的事情是把方法论"编译"成一个可执行的 Skill——根据你的具体情况选择合适的结构和粒度。

几个关键设计决策：

- **文件即 memory**：通过结构化的文件读写实现跨对话状态保持，不依赖任何平台的记忆机制
- **通知但不打扰**：每次自动保存都会简短通知你，但不需要你做任何操作
- **引导而非强制**：验收可以跳过、复盘可以跳过、模式可以覆盖——Skill 给建议，你做决定

## 版本

- v1.4.0 — 交付模式优化：项目 skill 直接安装到当前工作空间，消除创建独立项目文件夹的步骤
- v1.3.0 — 自适应深度（轻量/完整模式不再是固定行为，而是默认倾向，遇到实际复杂度差异时自动调整）、生成物新增 generated_by 版本标识、结项新增 project_feedback.md 结构化反馈输出
- v1.2.0 — 生成物文件组织升级（按模块分文件夹）、references/ 目录结构统一、生成物自带 file_structure.md
- v1.1.0 — 跨平台路径探测、交付鲁棒性加固
- v1.0.0 — 首次发布


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)