关于 course-corporate-edition
该技能指导将现有公开课教学网站改造成可按企业品牌定制的精简版本,并整理为单文件、单文件夹交付物。适用于企业内训和需要自行打包托管的客户,重点是复用公开课素材并避免重复复制资源。
主要功能
- 01内联课程数据的单页应用
- 02企业品牌与素材定制
- 03公开课资源回退机制
- 04课程单元筛选与压缩
- 05交付目录与文件检查
适用场景
- 01将多日公开课浓缩为一天内训
- 02为新客户克隆并更换品牌的课程版本
- 03准备客户可自行打包托管的课程文件夹
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ kevintsai1202/ teaching-site-skills --skill course-corporate-edition安装后在 Claude Code 中输入/course-corporate-edition确认已加载。
详细介绍
企业版课程
架构权威来源:所有
window.COURSE字段名称均来自_shared/domain-primitives.md。文件名约定(英文优先):企业版位于
corporate-editions/{client}_{hours}h/下。各版本文件夹使用materials/、assets/、index.html、README.md。旧版中文名称(企業包班/、教學素材/)已弃用。
此技能将现有公开班教学网站改造成企业版:时长更短、品牌可定制,并以单个文件夹交付。
何时调用
- 用户已有完整的公开班网站(例如 4 天 × 6 小时),需要为客户制作 1 天版本。
- 用户想要克隆现有企业版,为新客户采用不同品牌形象。
- 用户希望交付物是单个文件夹,方便客户的 IT 团队打包并自行托管。
两项架构调整
企业版有意对公开班架构做出两项调整:
调整 1:单文件 SPA(内联 window.COURSE)
公开班:index.html + course-data.js(独立文件)。
企业版:course-data 以 <script>window.COURSE = { ... }</script> 的形式内联在 index.html 中。
原因:企业客户会自行打包并托管文件夹。少一个文件,就少一个需要处理的环节。此外,双击 file:// 即可正常使用(不会遇到单独获取 JS 文件的问题)。
代价:修改数据需要编辑 HTML。可以接受,因为企业版交付后不会再编辑。
调整 2:资源回退链
企业版有自己的 assets/ 文件夹,但对于未覆盖的内容,会回退到公开班的 assets/:
corporate-editions/client_6h/
├── index.html ← inline COURSE
├── assets/ ← corporate-specific overrides (logo, customised hero)
└── materials/ ← curated subset (~11 files vs. public's ~30)
↓ falls back to
project-root/assets/ ← public class's full asset library
project-root/course-package/materials/ ← public class's full material library
实现方式:每个资源引用都会先尝试企业版路径;如果返回 404,则尝试公开班路径。打包的电子书构建器也会在其 compose 层执行相同操作:
const ASSET_ROOTS = [
path.join(CORP_DIR, 'assets'),
path.join(PUBLIC_ROOT, 'assets'),
];
async function findAsset(filename) {
for (const root of ASSET_ROOTS) {
try { await fs.access(path.join(root, filename)); return path.join(root, filename); }
catch { /* try next */ }
}
return null;
}
原因:否则每个客户版本都要重复存储 200 MB 以上的插图。只覆盖有变化的内容(品牌、主视觉),其余内容共享。
文件夹约定
project-root/
├── (all public-class files)
├── corporate-editions/
│ ├── clientA_6h/ ← Generic edition (fictional case, sellable to many clients)
│ │ ├── index.html
│ │ ├── README.md ← shipping / HR onboarding notes
│ │ ├── assets/ ← edition-specific overrides
│ │ └── materials/ ← edition-specific curated materials
│ └── clientB_condensed/ ← Real-client custom edition
│ └── (same shape)
└── assets/ ← public-class full asset library (fallback target)
通用版与定制版:通用版使用虚构公司名称(例如“GreenField Select”)作为贯穿案例,可销售给多个客户。只有在客户提出需求时,定制版才会将案例替换为真实客户数据。
精简策略(24 小时 → 6 小时)
选择保留哪些单元是最困难的部分。经验法则:
- 删去介绍通用概念的单元(例如“AI 的历史”“提示词基础”)——企业受众希望立即看到投资回报,而不是基础知识。
- 保留有具体交付成果的单元——企业衡量成功的标准是“我们最后带走了什么”。目标是产出 7–8 件可带走的成果。
- 精简共用情境——公开班会使用多个贯穿案例的品牌;企业版只使用一个(与客户所在行业最相关的品牌)。
- 合并相似单元——公开班中两个相关单元通常会合并为一个单元(例如“撰写提示词” + “建立 Gem” → “Gem 封装实战”)。
- 重新安排时间:公开班按“天”安排;企业版通常按“上午 / 下午”安排(例如上午 3 小时 + 下午 3 小时,中间午餐 1 小时)。相应调整
window.COURSE.day1.title(如"Day1: 上午"、"Day2: 下午")。
单元选择工作表
规划精简版时,填写类似这样的表格:
| 企业版单元 | 借用自 | 时长 | 保留原因 |
|---|---|---|---|
| 1.1 开场 + 自我盘点 | (新增) | 25 分钟 | 为当天课程定下基调 |
| 1.2 Gem 概念 + 多平台文案 | 公开班第 1 天 u2-u4 | 95 分钟 | 投资回报最高,且有具体产出 |
| 1.3 NotebookLM × Gem 整合 | 公开班第 3 天 u1 | 25 分钟 | 差异化亮点 |
| ... | ... | ... | ... |
这张表会成为配置企业版 index.html 时的依据——每个单元都必须能追溯到来源。
品牌定制变量
将所有客户专属文本集中到内联 COURSE 顶部的一个代码块中:
window.COURSE = {
meta: {
title: '電商團隊 AI 即戰力',
audience: '3–30 人企業內訓',
client: '景笙顧問', // ← swap per client
hours: 6,
schedule: '09:00–16:00',
classroom: '客戶端(由企業指定,實體 / 線上同步皆可)',
},
// ...
};
为新客户克隆时:复制文件夹,搜索并替换客户名称,然后替换 assets/ 中的品牌资源。
单文件夹交付检查
发送给客户前,请确认文件夹确实自包含:
// scripts/verify-corp-self-contained.mjs
// Walk the folder, parse every src/href, ensure no path goes outside this folder
// EXCEPT for the documented public-class fallback paths.
如果混入了一个 ../assets/foo.png,客户的 IT 部门在解压后就会看到图片无法显示。
配套验证脚本
示例工作坊附带了这些脚本——可根据任何新的企业版进行调整:
| 脚本 | 检查内容 |
|---|---|
scripts/verify-corp-{name}.mjs | Playwright:加载页面、在多个视口下截图,并检查侧边栏、滚动监听和进度 |
scripts/verify-corp-{name}-404.mjs | 遍历每个资源,确认没有 404 |
scripts/audit-corp-{name}-content.mjs | 对比内嵌的 COURSE 与源 Markdown,检查内容是否偏离 |
scripts/diagnose-corp-{name}-{topic}.mjs | 针对单个问题进行诊断(DOM 区域、每日内容可见性) |
原则:每个关注点配一个验证脚本,全部放在 scripts/ 下,并使用 corp-{name} 前缀。
反模式
- 复制整个 assets 文件夹——这会违背回退链的设计初衷。
- 修改 public-class 网站来“适配”企业版——保持两者解耦。企业版以只读方式读取 public-class 资源。
- 在通用版中硬编码客户的实际数据——通用版应使用虚构案例;仅按需定制。
- 忽略
file://的限制——企业客户会双击index.html。避免使用fetch()获取本地 JSON,也避免使用需要真实 HTTP 服务的功能(localStorage 可以正常使用)。
交付
此技能完成后:
corporate-editions/{client}_{hours}h/下的新文件夹已准备好,可打包为 zip。- 文件夹内的
README.md说明了启动方式(双击)、HR 说明和课程摘要。 - 验证脚本均通过。
如果客户还需要可打印的 PDF / DOCX 交付物,请交由 course-ebook-publishing 处理——接下来调用该技能。