Install
openclaw skills install codebase-to-course-cn将任意代码库转换为精美的交互式课程。默认产品版面向产品经理,聚焦业务逻辑、流程和整体架构;开发版面向程序员,聚焦架构图、数据流动画和技术方案。触发词:'将此转换为课程'、'交互式讲解此代码库'、'技术架构课程'、'代码库入门指南'、'从代码库制作教程'、'教授这段代码'。
openclaw skills install codebase-to-course-cn将任意代码库转换为精美的交互式课程。输出是一个目录,包含预构建的 styles.css、main.js、每个模块的 HTML 文件以及组装好的 index.html — 可直接在浏览器中打开,无需任何设置。
支持两个版本:
重要:中国大陆可访问性要求
此技能面向中国大陆用户,必须确保生成的课程在中国大陆网络环境下可以完全离线运行:
当技能首次触发且用户尚未指定代码库时,介绍自己并说明你的功能:
我可以将任意代码库转换为交互式课程,讲解其工作原理。
只需指向一个项目:
- 本地文件夹 — 例如,"将 ./my-project 转换为课程"
- GitHub 链接 — 例如,"从 https://github.com/user/repo 制作课程"
- 当前项目 — 如果你已经在代码库中,只需说"将此转换为课程"
我可以生成两个版本的课程:
- 产品版(默认):面向产品经理,讲清业务逻辑和系统架构
- 开发版:面向程序员,聚焦技术架构和实现细节
询问用户需要哪个版本:
你希望生成哪个版本?
- 产品版 — 面向产品经理,聚焦业务逻辑、用户流程和整体架构(默认)
- 开发版 — 面向专业程序员,聚焦架构图、数据流和技术方案
也可以带上版本继续,例如"将此转换为开发版课程"。
关于测验:
如果用户提供 GitHub 链接,在开始分析之前先克隆仓库(git clone <url> /tmp/<repo-name>)。如果他们说"此代码库"或类似表述,使用当前工作目录。
| 特性 | 产品版(默认) | 开发版 |
|---|---|---|
| 目标受众 | 产品经理、业务人员 | 专业程序员 |
| 教学方式 | 业务流程图、用户旅程、系统架构概览 | 架构图、数据流动画、技术方案 |
| 代码展示 | 不展示代码 | 精选10-15行核心代码 + 设计意图 |
| 测验 | 无 | 默认不需要(用户要求时才添加) |
| 视觉元素 | 流程图、业务架构图、用户旅程图、功能模块图 | 架构图、时序图、数据流图 |
| 语言风格 | 业务语言、产品术语、结构化清晰 | 简洁、信息密度高、技术术语 |
目标学习者是产品经理和业务人员 —— 需要理解系统做什么、业务逻辑怎么流转、各模块如何协作,但不需要知道代码细节。
关键原则:
强制交互元素(每个模块必须包含):
禁止包含:
目标学习者是专业程序员 —— 需要快速理解代码库架构、准备技术分享或代码评审。
核心原则:图表驱动,代码精简。
关键原则:
测验为可选功能: 默认不包含。仅当用户明确要求"增加测验"或"需要测验题"时才添加。
强制交互元素:
内容比例:
在开始前,通过询问或用户明确指令确定课程版本:
生成哪个版本?
- 产品版(默认):业务逻辑课程,适合产品经理,无代码无测验
- 开发版:技术架构课程,适合程序员,默认无测验
如果用户说"开发版"、"技术版"、"架构课程"或类似词语,使用开发版。 如果用户说"产品版"、"给PM看的"、"业务逻辑"或没有指定,使用产品版(默认)。
记录版本选择,后续所有内容创作都遵循对应版本的规则。
产品版分析重点:
开发版分析重点:
自己弄清楚应用做什么,通过阅读 README、主要入口点和核心代码。不要让用户解释产品。
将课程结构化为 4-6 个模块。
产品版模块结构示例:
| 模块 | 目的 |
|---|---|
| 1 | 产品全景(系统做什么、解决什么问题、核心价值) |
| 2 | 功能模块地图(各模块职责与边界) |
| 3 | 核心用户旅程(端到端操作流程) |
| 4 | 数据流转(业务数据如何在系统中流动) |
| 5 | 模块协作(各部分如何配合完成业务) |
| 6 | 系统边界与扩展(外部集成、未来可扩展方向) |
开发版模块结构示例:
| 模块 | 目的 |
|---|---|
| 1 | 架构全景(系统边界、主要组件) |
| 2 | 核心抽象与领域模型 |
| 3 | 数据流与请求生命周期 |
| 4 | 设计模式与实现技巧 |
| 5 | 扩展点与自定义 |
| 6 | 技术债务与演进方向 |
每个模块应包含:
测验要求:
不要提交课程计划供审批 —— 直接构建它。
设计课程计划后,决定使用哪种构建路径:
阅读对应版本的参考文件:
references/content-philosophy.mdreferences/module-brief-template.md + references/content-philosophy-pro.md对于每个模块,将简报写入 course-name/briefs/0N-slug.md,包含:
课程输出是一个目录。
输出结构:
course-name/
styles.css ← 从 references/styles.css 逐字复制
main.js ← 从 references/main.js 逐字复制
_base.html ← 定制的外壳(标题、强调色、导航点)
_footer.html ← 从 references/_footer.html 逐字复制
build.sh ← 从 references/build.sh 逐字复制
briefs/ ← 模块简报(仅限复杂代码库)
modules/
01-slug.html
02-slug.html
...
index.html ← 由 build.sh 组装
步骤 1:设置 — 读取并复制四个基础文件
步骤 2:定制 _base.html — 替换标题、强调色、导航点
步骤 3:编写模块 — 根据版本选择参考文件
选择对应的 content-philosophy 文件:
references/content-philosophy.mdreferences/content-philosophy-pro.md同时阅读:
references/gotchas.md — 常见失败点references/interactive-elements.md — 交互元素实现模式references/design-system.md — 视觉约定对于每个模块,编写 course-name/modules/0N-slug.html,只包含 <section class="module" id="module-N"> 块及其内容。
步骤 4:组装 — 从课程目录运行 build.sh:
cd course-name && bash build.sh
运行 build.sh 后,在浏览器中打开 index.html。引导用户浏览构建的内容,并征求反馈。
视觉设计应该像一个精美的开发者笔记本 —— 温暖、诱人且独特。
两者使用相同的 CSS/JS 基础,但通过内容组织和视觉元素来实现不同的体验。
references/ 目录包含详细规范。只在到达相关阶段时阅读它们。
共享参考文件:
references/design-system.md — CSS 自定义属性、调色板、排版references/interactive-elements.md — 交互元素实现模式references/gotchas.md — 常见失败点references/module-brief-template.md — 模块简报模板版本特定参考文件:
references/content-philosophy.md — 产品版内容规则references/content-philosophy-pro.md — 开发版内容规则本技能的输出内容默认使用中文。除非用户明确要求其他语言,否则: