codebase-to-course-cn

将任意代码库转换为精美的交互式课程。默认产品版面向产品经理,聚焦业务逻辑、流程和整体架构;开发版面向程序员,聚焦架构图、数据流动画和技术方案。触发词:'将此转换为课程'、'交互式讲解此代码库'、'技术架构课程'、'代码库入门指南'、'从代码库制作教程'、'教授这段代码'。

Audits

Pass

Install

openclaw skills install codebase-to-course-cn

代码库转课程

将任意代码库转换为精美的交互式课程。输出是一个目录,包含预构建的 styles.cssmain.js、每个模块的 HTML 文件以及组装好的 index.html — 可直接在浏览器中打开,无需任何设置。

支持两个版本:

  • 产品版(默认):面向产品经理,聚焦业务逻辑、用户流程和系统架构,不含代码细节
  • 开发版:面向程序员,包含架构图、数据流动画、技术方案描述

重要:中国大陆可访问性要求

此技能面向中国大陆用户,必须确保生成的课程在中国大陆网络环境下可以完全离线运行

  • 禁止使用 Google Fonts 及任何 Google CDN 资源
  • 禁止使用外部 CDN 加载字体、样式或脚本
  • 禁止依赖任何需要翻墙才能访问的资源
  • 所有字体必须使用系统字体或内嵌字体
  • 所有资源必须本地化,确保零网络依赖

首次运行欢迎语

当技能首次触发且用户尚未指定代码库时,介绍自己并说明你的功能:

我可以将任意代码库转换为交互式课程,讲解其工作原理。

只需指向一个项目:

  • 本地文件夹 — 例如,"将 ./my-project 转换为课程"
  • GitHub 链接 — 例如,"从 https://github.com/user/repo 制作课程"
  • 当前项目 — 如果你已经在代码库中,只需说"将此转换为课程"

我可以生成两个版本的课程:

  • 产品版(默认):面向产品经理,讲清业务逻辑和系统架构
  • 开发版:面向程序员,聚焦技术架构和实现细节

询问用户需要哪个版本:

你希望生成哪个版本?

  1. 产品版 — 面向产品经理,聚焦业务逻辑、用户流程和整体架构(默认)
  2. 开发版 — 面向专业程序员,聚焦架构图、数据流和技术方案

也可以带上版本继续,例如"将此转换为开发版课程"。

关于测验:

  • 产品版 不包含测验
  • 开发版 默认不需要测验,仅当用户明确要求"增加测验"时才添加

如果用户提供 GitHub 链接,在开始分析之前先克隆仓库(git clone <url> /tmp/<repo-name>)。如果他们说"此代码库"或类似表述,使用当前工作目录。


产品版 vs 开发版 对比

特性产品版(默认)开发版
目标受众产品经理、业务人员专业程序员
教学方式业务流程图、用户旅程、系统架构概览架构图、数据流动画、技术方案
代码展示不展示代码精选10-15行核心代码 + 设计意图
测验默认不需要(用户要求时才添加)
视觉元素流程图、业务架构图、用户旅程图、功能模块图架构图、时序图、数据流图
语言风格业务语言、产品术语、结构化清晰简洁、信息密度高、技术术语

产品版详细指南

目标学习者是产品经理和业务人员 —— 需要理解系统做什么、业务逻辑怎么流转、各模块如何协作,但不需要知道代码细节。

关键原则:

  • 不展示任何代码
  • 用业务语言解释系统行为,避免技术实现细节
  • 聚焦"系统做了什么"而非"代码怎么写"
  • 用流程图和架构图可视化业务逻辑
  • 关注用户旅程、数据流转、模块职责
  • 解释清楚各功能模块的输入/输出/边界

强制交互元素(每个模块必须包含):

  • 业务流程图 — 至少一个(展示核心业务逻辑流转)
  • 系统架构概览图 — 整个课程至少2个(模块关系、职责划分)
  • 用户旅程图 — 整个课程至少一个(端到端用户操作路径)
  • 功能模块卡片 — 展示各模块职责、输入输出
  • 数据流转动画 — 整个课程至少一个(业务数据如何在系统中流动)

禁止包含:

  • 代码片段(任何形式)
  • 代码翻译块
  • 测验题
  • 技术实现细节(如算法、数据结构、设计模式名称)
  • 词汇表提示(产品经理不需要学习编程术语)

开发版详细指南

目标学习者是专业程序员 —— 需要快速理解代码库架构、准备技术分享或代码评审。

核心原则:图表驱动,代码精简。

关键原则:

  • 信息密度优先,减少"废话"
  • 直接使用技术术语,无需解释基础概念
  • 图表和动画优先于代码贴片
  • 代码仅作为补充(每片段10-15行)
  • 60%+ 图表/动画,25% 简洁文字,15% 精选代码

测验为可选功能: 默认不包含。仅当用户明确要求"增加测验"或"需要测验题"时才添加。

强制交互元素:

  • 架构图 — 每个课程至少2个(交互式架构图,点击组件显示描述)
  • 数据流动画 — 每个课程至少2个(请求/响应流转)
  • 时序图/状态图 — 每个课程至少1个
  • 代码分析块 — 整个课程2-3个(不是每个模块都需要)

内容比例:

  • 60%+ 图表、动画、交互式可视化
  • 25% 文字描述(技术方案、设计决策)
  • 15% 代码片段(每片段10-15行)

流程

阶段 0:选择版本

在开始前,通过询问或用户明确指令确定课程版本:

生成哪个版本?

  • 产品版(默认):业务逻辑课程,适合产品经理,无代码无测验
  • 开发版:技术架构课程,适合程序员,默认无测验

如果用户说"开发版"、"技术版"、"架构课程"或类似词语,使用开发版。 如果用户说"产品版"、"给PM看的"、"业务逻辑"或没有指定,使用产品版(默认)。

记录版本选择,后续所有内容创作都遵循对应版本的规则。

阶段 1:代码库分析

产品版分析重点:

  • 系统整体做了什么(产品定位、核心价值)
  • 主要功能模块及其职责(用业务语言描述)
  • 核心用户旅程(用户怎么用这个系统)
  • 业务数据流转(数据从哪来、到哪去、经过什么处理)
  • 模块间的协作关系(谁调用谁、谁依赖谁)
  • 系统边界(与外部系统的交互点)
  • 关键业务规则和约束

开发版分析重点:

  • 架构风格(分层?微服务?单体?事件驱动?)
  • 核心抽象(领域模型、关键接口、主要数据结构)
  • 模块边界(职责划分、依赖关系、通信机制)
  • 数据流路径(从请求到响应的完整链路)
  • 设计决策痕迹(从代码和注释推断"为什么")
  • 技术选型理由(为什么用 X 而不是 Y?)
  • 扩展机制(插件系统?钩子?配置?)
  • 测试策略、部署拓扑

自己弄清楚应用做什么,通过阅读 README、主要入口点和核心代码。不要让用户解释产品。

阶段 2:课程设计

将课程结构化为 4-6 个模块

产品版模块结构示例:

模块目的
1产品全景(系统做什么、解决什么问题、核心价值)
2功能模块地图(各模块职责与边界)
3核心用户旅程(端到端操作流程)
4数据流转(业务数据如何在系统中流动)
5模块协作(各部分如何配合完成业务)
6系统边界与扩展(外部集成、未来可扩展方向)

开发版模块结构示例:

模块目的
1架构全景(系统边界、主要组件)
2核心抽象与领域模型
3数据流与请求生命周期
4设计模式与实现技巧
5扩展点与自定义
6技术债务与演进方向

每个模块应包含:

  • 3-6 个屏幕(模块内流动的子节)
  • 产品版:至少一个业务流程图或架构概览图、功能模块卡片
  • 开发版:至少一个架构图或数据流图、至多一个关键代码分析块

测验要求:

  • 产品版:不包含测验
  • 开发版:默认无测验,仅当用户明确要求"增加测验"时才添加

不要提交课程计划供审批 —— 直接构建它。

设计课程计划后,决定使用哪种构建路径:

  • 简单代码库(单一用途 CLI、小型库、清晰入口点、5 个或更少模块)→ 直接进入阶段 3 顺序路径
  • 复杂代码库(全栈应用、多个服务、单体仓库或 6+ 个模块)→ 先进入阶段 2.5,然后阶段 3 并行路径

阶段 2.5:模块简报(仅限复杂代码库)

阅读对应版本的参考文件:

  • 产品版references/content-philosophy.md
  • 开发版references/module-brief-template.md + references/content-philosophy-pro.md

对于每个模块,将简报写入 course-name/briefs/0N-slug.md,包含:

  • 教学目标(学习者应获得什么)
  • 预提取的代码片段
  • 交互元素清单
  • 相关设计决策文档

阶段 3:构建课程

课程输出是一个目录

输出结构:

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.md
  • 开发版:阅读 references/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

阶段 4:审查和打开

运行 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 — 开发版内容规则

输出语言

本技能的输出内容默认使用中文。除非用户明确要求其他语言,否则:

  • 文档和说明使用中文
  • 技术术语保持原文或使用中英对照