SuperAPI AI 工具集

course-corporate-edition

办公与效率

查看项目

更新于 10-16 14:59

技能介绍

该技能面向课程打包场景:将现存的多天公开课教学站点,压缩并重新包装成企业内训版本。触发条件通常包括:用户已有完成的公开课站点(如 4 天 × 6 小时),需要为客户做 1 天版本;希望基于现有企业版克隆出另一个客户版本并更换品牌;或希望交付物是一个客户 IT 可自行压缩并托管的单文件夹。

Schema 权威:所有 window.COURSE 字段名来自 shared/domain-primitives.md。文件名约定以英文优先:企业版放在 corporate-editions/{client}{hours}h/ 下,每个版本内部使用 materials/、assets/、index.html、README.md。旧的中文名(企業包班/、教學素材/)已废弃。

两大架构转变

转变一:单文件 SPA(内联 window.COURSE)。公开课为 index.html + course-data.js 两个文件;企业版把 course-data 内联为 index.html 中的 <script>window.COURSE = { ... }</script>。原因是企业客户会自行压缩并托管文件夹,一个文件就少一个活动部件;同时 file:// 双击即可打开,避免单独的 JS 拉取问题。代价是编辑数据需要改动 HTML,但企业版通常发布后不再编辑,因此可接受。

转变二:资源回退链。企业版拥有自己的 assets/ 文件夹,但未覆盖的资源会回退到公开课的 assets/:

corporate-editions/client_6h/ ├── index.html ← 内联 COURSE ├── assets/ ← 企业特有覆盖(logo、定制 hero) └── materials/ ← 精选子集(约 11 个文件,公开课约 30 个) ↓ 回退到 project-root/assets/ ← 公开课完整资源库 project-root/course-package/materials/ ← 公开课完整素材库

实现方式:每个资源引用先尝试企业路径,404 时再尝试公开课路径。打包的 ebook 构建器在 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; }

这样做的原因是:否则每个客户版本都要重复复制 200MB 以上的插图;只覆盖会变化的部分(品牌、hero),其余共享。

文件夹约定

project-root/ ├── (所有公开课文件) ├── corporate-editions/ │ ├── clientA_6h/ ← 通用版(虚构案例,可卖给多个客户) │ │ ├── index.html │ │ ├── README.md ← 交付 / HR 入职说明 │ │ ├── assets/ ← 该版本特有覆盖 │ │ └── materials/ ← 该版本精选素材 │ └── clientB_condensed/ ← 真实客户定制版 │ └── (相同结构) └── assets/ ← 公开课完整资源库(回退目标)

通用版 vs 定制版:通用版使用虚构公司名(如 GreenField Select)作为贯穿案例,可售给多个客户;定制版仅在需要时替换为真实客户数据。

压缩策略(24 小时 → 6 小时)

挑选保留哪些单元是最难的部分,启发式规则如下:

删除通识概念类单元(例如「AI 的歷史」「Prompt 基礎」)——企业受众想看即时 ROI,而非基础。 保留有具体交付物的单元——企业衡量成功的标准是「我们带走了什么」,目标为 7–8 个可带走的成果物。 压缩共享情境——公开课有多个反复出现的品牌;企业版只保留一个(与客户行业最相关的)。 合并相近单元——公开课中两个相关单元常合并为一个(例如「撰寫提示詞」+「建立 Gem」→「Gem 封裝實戰」)。 重排时间:公开课按「天」划分,企业版通常按「上午 / 下午」(如 AM 3 小时 + PM 3 小时,中间 1 小时午餐)。相应调整 window.COURSE.day1.title(如「Day1: 上午」「Day2: 下午」)。

单元选取工作表

规划压缩版时填写类似表格:

企业单元 / 取自 / 时长 / 保留原因 1.1 開場 + 自我盤點 / (新增) / 25 min / 当天锚点 1.2 Gem 概念 + 多平台文案 / 公开课 Day 1 u2-u4 / 95 min / ROI 最高,产出具体 1.3 NotebookLM × Gem 整合 / 公开课 Day 3 u1 / 25 min / 差异化亮点 ...

该表在接线企业版 index.html 时作为事实来源——每个单元都必须能追溯来源。

品牌定制变量

把所有客户相关文本集中到内联 COURSE 顶部的一个区块:

window.COURSE = { meta: { title: '電商團隊 AI 即戰力', audience: '3–30 人企業內訓', client: '景笙顧問', // ← 按客户替换 hours: 6, schedule: '09:00–16:00', classroom: '客戶端(由企業指定,實體 / 線上同步皆可)', }, // ... };

为新客户克隆:复制文件夹,搜索替换客户名,替换 assets/ 中的品牌素材。

单文件夹交付校验

发送给客户前,确认文件夹真正自包含:

// scripts/verify-corp-self-contained.mjs // 遍历文件夹,解析每个 src/href,确保没有路径超出本文件夹 // 除了已记录的公开课回退路径。

如果混入了 ../assets/foo.png 之类的路径,客户 IT 解压后会看到图片破损。

配套验证脚本

示例工作坊附带以下脚本,可适配任何新的企业版:

脚本 / 检查内容 scripts/verify-corp-{name}.mjs / Playwright:加载、多视口截图、侧边栏/scrollspy/进度 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 文件夹——违背回退链的意义。 为迁就企业版而修改公开课站点——保持两者解耦。企业版以只读方式读取公开课资源。 在通用版中硬编码客户真实数据——通用版保留虚构案例;仅在需要时定制。 忘记 file:// 约束——企业客户会双击 index.html。避免 fetch() 本地 JSON,避免需要真实 HTTP 服务器的功能(localStorage 可用)。

交接

该技能结束时:corporate-editions/{client}_{hours}h/ 下会有新文件夹,可直接压缩;内部 README.md 说明启动方式(双击)、HR 说明与课程摘要;验证脚本通过。如果客户还想要打印版 PDF / DOCX 交付物,那是 course-ebook-publishing 的职责,接下来调用它。

关于收费、价格、具体依赖平台与运行环境的更多细节,资料暂未提供。