---
name: study-workbench
description: 学习工作台模板生成技能。基于已验证的引擎模板，一句话生成学生每日学习工作台（按开学日进度排课、每日知识点+讲解+练习、每日积累、每日任务、单元复习、考试倒计时），默认内置八年级上册语数英（人教版·英语2024）。支持换年级/学科/教材版本——提供 content-pack JSON 即可裂变出任意学习台。单文件 HTML、手机电脑通用、localStorage 存储、可部署。触发词：学习台、学生台、做个学习台、每日学习、按进度排课、备考台、课程表、xx年级、xx科、人教版。
agent_created: true
display_name: "学习工作台模板"
---

# 学习工作台模板（Study Workbench）

## 概述

为学生（默认初中语数英）生成「每日学习工作台」单文件 HTML：以开学日为起点按进度排课，每天列出各科**知识点 + 讲解 + 练习题**，并含**每日积累、每日任务、单元复习、考试倒计时**。手机电脑都能用，数据存浏览器本地不丢，可一键部署分享。

本技能把已验证成熟的学习台（v3，八年级上册语数英人教版·英语2024）抽象为「**引擎 + 内容包**」两层：

- **引擎**（`assets/study-workbench-engine.html`）：排课/渲染/积累/任务/复习/倒计时/导出/localStorage/UI 全部逻辑，**零外部依赖**（系统字体、无 CDN、可选 `bookUrl`）。
- **内容包**（`references/sample-pack-8up-cme.json`）：课程数据（年级/学科/教材），**可替换**。

默认生成 = 直接复制引擎（其顶部已内置八上语数英内容包）；换年级/学科/教材 = 写一份新 content-pack JSON，替换引擎顶部的 `const CONTENT_PACK` 即可裂变出全新学习台。

> 来源：本技能由 `study-daily` 项目（泽羚科技·冉兄）沉淀而来，是该学习台产品化的第一步（v1 单文件 → v2 发布 → v3 课程自学对齐 → 本技能模板化）。

---

## 触发场景与触发词

- 「做个学习台」「生成学生台」「每日学习工作台」「按进度排课」「备考台（学习）」「课程表」
- 「八年级/七年级/高一 + 语数英/某科 + 人教版/北师大版」
- 「以现在这个学习台为基础做个模板」「裂变出其他年级的学习台」
- 触发词：`学习台`、`学生台`、`每日学习`、`课程表`、`按进度排课`、`备考`、`xx年级`、`xx科`、`人教版`

未命中但用户想要「任意场景工作台」（记账/减脂/待办等非学习）→ 用 `workbench-builder` 技能，本技能**只做学习场景**。

---

## 核心设计：引擎 + 内容包分离

- 引擎顶部 `const CONTENT_PACK = {...}` 是**全部课程数据**；引擎其余代码只读取它来渲染，不写死任何课程/年级内容。
- 换内容 = 替换 `CONTENT_PACK`：默认内置八上语数英人教版（英语 2024 教材）；新包 = 新 JSON。
- 排课逻辑：以 `startDate`（开学日）为起点，在 `maxDay()` 个上学日内把各单元 lesson 均匀铺开，每天按 `subjects_order` 生成各科任务。内容包只需给**全量课程**，无需自己排到具体日期。

---

## 使用流程

### Phase 1 · 默认生成（最常见）

1. 复制 `assets/study-workbench-engine.html` 到用户目标路径（如 `学习台.html`）。
2. **连同 `assets/` 目录一起保留**（图标 `subj-*.png`、头图 `hero-banner.jpg` 为相对路径引用；部署时一并带上）。
3. `present_files` 呈现 HTML，告知用户：浏览器打开即用，数据存本地。
4. 提醒：定期到「我的」导出备份；开学日 / 四场考试日期在「我的」改（已预填建议值，以学校实际为准）。

### Phase 2 · 换年级 / 学科 / 教材（模板裂变）

1. 用户给目标（如「七年级数学人教版」「高一物理」）。
2. 按 `references/content-pack-schema.md` 写新 content-pack JSON（可让 AI 辅助生成课程数据，务必符合 schema 字段、合法 JSON）。
3. 注入（二选一）：
   - **脚本**：`node references/inject_pack.js <引擎模板> <新内容包.json> <输出.html>`
   - **手动**：用 Edit 把引擎顶部 `const CONTENT_PACK = {...};` 整段替换为新包 JSON，保留其后四行重导出（`const SUBJECTS = CONTENT_PACK.subjects;` 等）不变。
4. 同步更新 `<title>` 与品牌名（如「七年级学习台」）。
5. **校验**（必做）：`node <workbench-builder>/references/verify_static.js <输出.html>` 应 17/17；`node --check` 提取脚本语法；桩 DOM 跑六页渲染冒烟。
6. 呈现产物（HTML + assets 目录）。

### Phase 3 · 部署（按需）

用户要手机用 / 分享 → 把 HTML + `assets/` 一起部署（参考 `workbench-builder` 部署流程），拿到链接后教「手机浏览器打开 → 分享 → 加到主屏幕」。注意 CloudStudio 部署目录路径**不能含空格**。

---

## 八项铁律（已落实；生成 / 改内容仍需保持）

1. **localStorage**：数据存浏览器本地，key 前缀 `wb_stu_`，刷新关闭不丢。
2. **备份必须有**：首屏「导出 JSON / 导出 CSV / 导入恢复」；导入不限条数；清空二次确认；积累 30 条温和提示。
3. **全内联零外链**：系统字体栈，**无 CDN / 框架 / 字体外链**；内容包可选 `bookUrl`（电子课本）除外。
4. **移动适配**：窄屏单列；按钮 ≥44px；输入框 ≥16px；PC 左栏 / 移动底 Tab；适配安全区。
5. **今天要处理置顶**：逾期标红 + 一键完成；昨天未做完自动顺延到今天。
6. **预置示例数据**：首次打开即有内容（含示例任务），不空白。
7. **首版 ≤3-4 模块**：今日 / 课程进度 / 积累 / 复习 / 倒计时 / 我的，聚焦学习主线。
8. **国内习惯**：日期 `YYYY-MM-DD`；配色与表达符合国内学情。

---

## 内容包 Schema

完整字段规范 + 示例见 `references/content-pack-schema.md`。

---

## 资源

- **`assets/study-workbench-engine.html`** — 引擎模板（默认内置八上语数英人教版·英语2024 内容包，开箱即用）
- **`references/sample-pack-8up-cme.json`** — 示例内容包（八上语数英人教版·英语2024，含古诗文积累全文）
- **`references/content-pack-schema.md`** — 内容包字段规范与写法
- **`references/inject_pack.js`** — 内容包注入脚本（裂变新年级/学科一键产出）
- **校验**：复用 `workbench-builder` 技能的 `references/verify_static.js` 对生成产物做 17 项铁律回归

> **自检约定**：每次生成 / 用内容包裂变后，跑 `verify_static.js` 做静态铁律回归 + 语法校验 + 六页渲染冒烟。这是保证「拿到就能用」的生产底线。

---

## 不做清单（明确边界）

- 不做账号体系：靠导出 / 导入迁移数据。
- 不做后端 / 联网：纯前端，数据只在用户浏览器。
- **不把课程内容写死进引擎**：永远走内容包（这是模板化的核心）。
- 智能体化（RAG 知识库 / AI 答疑 / 错题本 / 艾宾浩斯自适应）属 study-daily 后续演进，不在本模板技能范围。
