安装
claude skill add --url github.com/openclaw/skills/tree/main/skills/balancegsr/skill-creator-learning文档
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 | 用户对话使用的语言 | 生成物使用相同语言 |
生成逻辑
-
根据
mode选择对应的骨架模板:- 轻量模式 → 读取
references/templates/skill_lite.md - 完整模式 → 读取
references/templates/skill_full.md
- 轻量模式 → 读取
-
用收集到的变量替换模板中的占位符(
{{topic}}、{{goal}}等) -
处理可选变量的条件注入:
learning_style_override:如用户提供了偏好,在模板的{{learning_style_override}}位置插入说明,如"\n- 注意:本项目用户偏好先看整体再钻细节(top-down),调整讲解策略"verification_override:类似处理- 如未提供,清除占位符(不留空行)
-
准备 references/ 文件:
- 两种模式都需要:读取
references/template_review_guide.md→ 生成review_guide.md - 仅完整模式额外需要:读取
references/template_framework_guide.md→ 生成framework_guide.md
- 两种模式都需要:读取
-
如果对话语言不是中文,将生成物全文翻译为用户使用的语言,保持结构和格式不变
预览展示
将生成的 SKILL.md 完整内容展示给用户,然后列出 references/ 文件清单:
"此外还会生成以下配套文件:
- references/review_guide.md — 复盘执行指南 [完整模式额外显示:]
- references/framework_guide.md — 认知框架生成指南
你可以提出修改意见,或者确认后我直接生成。"
修改处理
| 修改类型 | 判断标准 | 处理方式 |
|---|---|---|
| 结构性修改 | 影响模式逻辑或文件管理(如"不要复盘""加个打卡机制") | 调整骨架,重新生成受影响部分,再次完整展示 |
| 内容微调 | 不影响结构(如"目标描述改一下""加一条项目信息") | 定点修改,展示差异点("已更新 XX,其他不变。确认?") |
迭代引导:
- 首次:"你可以提出修改意见,或者确认后我直接生成。"
- 后续:"已调整。还有需要改的吗?没有的话我开始生成。"
- 不设轮数上限,用户想改就改
Phase 3: 交付(Deliver)
用户确认预览后,询问交付方式:
"你希望我怎么交付?
- 直接创建项目文件夹 — 在当前目录的上级创建
learn_[主题]/文件夹,skill 安装在里面,只在该文件夹的对话中生效- 打包为 ZIP — 生成 zip 文件,你可以自行解压到任意位置或分享给别人"
路径1:直接创建
执行步骤:
1. 在应用根目录(当前 workspace 的上级目录)下创建项目文件夹 learn_[topic_slug]/
2. 在项目文件夹内创建 .skill/ 目录
3. 将 SKILL.md 写入 .skill/SKILL.md
4. 创建 .skill/references/ 目录,写入 review_guide.md(+ framework_guide.md 如完整模式)
5. 通知用户:
"学习项目已创建,路径:
learn_[topic_slug]/这个 skill 安装在该文件夹下,只在这个文件夹的对话中生效——学习项目和其他工作互不干扰。 新起一个对话,指向这个文件夹就可以开始了。"
路径2:ZIP 打包
执行步骤:
1. 在 /tmp/ 下创建临时目录 learn_[topic_slug]/
2. 创建完整目录结构(同路径1的 .skill/ 结构)
3. 执行 zip 打包:cd /tmp && zip -r learn_[topic_slug].zip learn_[topic_slug]/
4. 将 zip 文件移动到用户工作目录
5. 清理临时目录
6. 通知用户:
"已打包为
learn_[topic_slug].zip。解压到你想要的位置后,在该文件夹下的对话中 skill 就会自动生效。"
附录:生成物质量检查清单
生成前最后过一遍,确保生成物质量:
- frontmatter 的 name 字段不超过 32 字符
- frontmatter 的 description 包含触发关键词
- 项目信息区的四个变量都已正确填充
- 启动协议中的文件读取逻辑与文件管理规范一致
- 学习模式的五步闭环完整(输入→学习→确认→验收→沉淀)
- 所有文件命名规则使用了正确的 topic_slug
- 没有任何删除文件的指令
- 所有文件路径使用相对路径
- 如完整模式:读取优先级三层都定义清晰
- references/ 文件与 SKILL.md 中的引用一致