skill_creator_learning

by balancegsr

>

View Chinese version with editor review

安装

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 策略
  • 如用户未提及,使用默认值即可

第三轮:汇总确认

结构化展示收集到的信息 + 模式推荐:

code
我理解到的信息:
- 学习主题:[主题]
- 现有基础:[基础描述]
- 学习目标:[目标,确保是可操作表述]
- 时间范围:[时间]
- 推荐模式:[轻量/完整]([一句话解释])

有需要修正的吗?确认后我生成 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用户对话使用的语言生成物使用相同语言

生成逻辑

  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/template_review_guide.md → 生成 review_guide.md
    • 仅完整模式额外需要:读取 references/template_framework_guide.md → 生成 framework_guide.md
  5. 如果对话语言不是中文,将生成物全文翻译为用户使用的语言,保持结构和格式不变

预览展示

将生成的 SKILL.md 完整内容展示给用户,然后列出 references/ 文件清单:

"此外还会生成以下配套文件:

  • references/review_guide.md — 复盘执行指南 [完整模式额外显示:]
  • references/framework_guide.md — 认知框架生成指南

你可以提出修改意见,或者确认后我直接生成。"

修改处理

修改类型判断标准处理方式
结构性修改影响模式逻辑或文件管理(如"不要复盘""加个打卡机制")调整骨架,重新生成受影响部分,再次完整展示
内容微调不影响结构(如"目标描述改一下""加一条项目信息")定点修改,展示差异点("已更新 XX,其他不变。确认?")

迭代引导:

  • 首次:"你可以提出修改意见,或者确认后我直接生成。"
  • 后续:"已调整。还有需要改的吗?没有的话我开始生成。"
  • 不设轮数上限,用户想改就改

Phase 3: 交付(Deliver)

用户确认预览后,询问交付方式:

"你希望我怎么交付?

  1. 直接创建项目文件夹 — 在当前目录的上级创建 learn_[主题]/ 文件夹,skill 安装在里面,只在该文件夹的对话中生效
  2. 打包为 ZIP — 生成 zip 文件,你可以自行解压到任意位置或分享给别人"

路径1:直接创建

code
执行步骤:
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 打包

code
执行步骤:
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 中的引用一致