西南政法大学 · 期末临时抱佛脚(复习冲刺工作台)
一、项目定位
面向大学生的考前突击复习工具。多科目、多考试并行管理;导入 PDF / PPT / Word 或粘贴文本 → 自动提取结构化考点 → 生成背诵卡 → 每天按遗忘曲线闭环复习(刷卡 + 三种智能抽背 + 做真题)。交付形态为手机端网页工作台(竖屏单手、手势操作、离线缓存)。
二、如何运行
方式 A(推荐,支持离线 SW):
cd review-sprint
python3 -m http.server 8080
# 手机/电脑浏览器打开 http://<本机IP>:8080
方式 B(最简,直接预览):
- 用支持 localStorage 的浏览器打开 index.html 即可使用(Service Worker 仅在 http 下生效,数据本身始终本地保存)。
文件清单:
- index.html — 单页结构、底部导航、四视图 + 顶部科目切换条
- styles.css — 移动端奶油清新主题、卡片手势/动画、选择题/考试列表样式
- app.js — 全部逻辑(数据层 / 提取 / 排程 / 多科目多考试 / 三种抽背 / 模考 / 听背 / 图谱 / 统计)
- sample-data.js — 内置《研究方法重点》示例(72 张卡,归属示例科目"研究方法")
- sw.js — 离线应用壳缓存(v4,弱网/离线可打开)
三、功能模块 → 实现对照
| 需求模块 | 实现情况 |
|---|---|
| 模块1 文档导入与考点提取 | ✅ PDF(pdf.js) / Word·PPT(JSZip 解包) / 文本粘贴;启发式提取标题/定义/公式/列表;按章节分类;多文档卡片并入同一库;自动补全 term/blank(用于反背/选择题) |
| 模块2 背诵技巧卡 | ✅ 正反面翻转卡;左右滑动(记住/再背);关键词遮挡;速记口诀/联想(可生成建议并编辑);卡片可编辑/删除 |
| 模块3 智能抽背 | ✅ 三种抽背方式:①正背(定义/公式 = 看题背答;考点 = 填空式 cloze 挖空关键词,真正考察记忆无剧透)②反背(看答案/描述回忆概念/术语)③选择题(四选一,从同知识域其他卡片抽取逻辑干扰项);按章节/范围/方式筛选;答错自动入错题本 |
| 模块4 历年考题 | ✅ 录入真题、按考点关联、模拟考试(随机组卷/计时/交卷出分/逐题解析);错题联动考点卡 |
| 模块5 每日闭环调度 | ✅ 艾宾浩斯间隔排程;多考试安排(多科目多场,范围内最近一场倒计时显示在 dashboard)→考前3天冲刺模式(只推高频+错题+薄弱);今日清单+完成度环形进度 |
| 模块6 错题本与掌握度 | ✅ 抽背/真题错题自动归档;每卡掌握度评分;薄弱优先复现;错题重做/清零;统计过滤随当前科目 |
| 模块7 语音听背 | ✅ Web Speech 文本转语音,可顺序朗读今日待复习卡 |
| 模块8 考点关联图谱 | ✅ Canvas 力导向图,按共享关键词/同章节连线,点击节点跳转卡片;随当前科目过滤 |
| 多科目(v2) | ✅ 顶部科目切换条:全部 / 各科目 chips / +新建科目;全局过滤今日待复习/资料/抽背/错题/图谱/统计/听背/考试;新导入资料归入当前科目 |
| 多考试(v2) | ✅ 考试管理弹层:支持多科目多场考试(名称 + 关联科目 + 日期),列表展示科目/日期/倒计时/删除;dashboard 考试卡片自动显示范围内最近一场 |
四、开发优先级落地
- 第一期(必做):文档导入提取 → 背诵卡(含遮挡)→ 抽背 → 遗忘曲线调度 → 错题本/掌握度 → 手机端工作台 —— 已全部实现
- 第二期(增强):历年真题+模拟考试 ✅ / 语音听背 ✅ / 速记口诀生成 ✅ / 多文档合并 ✅
- 第三期(进阶):考点关联图谱 ✅ / 冲刺模式 ✅ / 数据统计面板 ✅
- v2 迭代(本次):多科目切换 + 多考试安排 + 三种智能抽背方式
五、验收标准 / 用户反馈闭环
- ✅ 导入 PDF/资料后自动提取结构化考点并生成卡片(启发式分割 + 可编辑修正)
- ✅ 每日工作台显示「今日待复习」清单;复习过的卡按遗忘曲线再次出现
- ✅ 抽背/真题答错自动入错题本,并在后续复习中优先出现
- ✅ 手机端卡片翻转(点击)、左右滑动打分流畅
- ✅ 刷卡→抽背→做题→记录 在同一工作台内闭环
- ✅ 多科目同时存在,可随时切换,资料/抽背/错题/图谱/考试按当前科目过滤
- ✅ 多场考试(多科目)可分别设置,倒计时与冲刺自动按"范围内最近一场"显示
- ✅ 抽背有逻辑:①填空式 cloze 真正考察记忆 ②反背逼回忆概念 ③选择题干扰项来自同知识域
- ✅ 完整管理能力:科目编辑/标记已完成(可恢复)/级联删除;资料醒目删除;章节树卡片快捷删除
六、移动端与离线要求
- 竖屏单手:max-width 520px 居中,底部固定 Tab,安全区适配
- 手势:翻转(点击/触摸)、滑动打分(touch 事件,区分点击与滑动)
- 离线:localStorage 持久化 + Service Worker 缓存应用壳 v5;弱网可打开
- 加载快:无打包步骤,单 HTML + CSS + JS
七、数据备份
设置页(图谱 Tab)提供「导出备份 / 恢复备份」JSON;恢复时自动 normalize 所有卡片。
八、触发条件(何时使用 / 调用本 skill)
当用户表达以下任一意图时,应主动调用本 skill(它是 product-skill,最终交付一个可直接运行的移动端网页工作台):
- 「做个复习 / 刷题 / 备考 / 背单词 / 突击工具」「考前复习助手」「帮我搞个复习工作台」
- 「抽背卡 / 考点卡 / 记忆卡片 / 艾宾浩斯复习」「自动从 PDF 提取考点」
- 「多科目复习管理」「给每门课设考试倒计时 / 冲刺计划」
- 「错题本 / 掌握度统计 / 关联图谱」「语音听背」
- 任何面向学生备考、知识点记忆、主动回忆训练的需求。
关键词命中:复习、备考、刷题、抽背、背诵、考点、记忆卡、错题本、艾宾浩斯、考试倒计时、知识点图谱。
九、AI 引导用户操作流程(部署后一步步带)
用户部署 / 打开本工作台后,按下面顺序引导,不要一次性甩链接就走——先讲清它是什么、再带他走完首次上手:
第 0 步:说明交付物
> 这是一个手机端复习工作台网页,数据存在你浏览器本地(离线可用),无需登录。点开链接即可用;建议完全关掉重开或强刷一次(Cmd/Ctrl+Shift+R)确保拿到最新版。
第 1 步:首次打开会自动弹「新手引导」
应用内置 6 步引导浮层(欢迎 → ①示例/建科目 → ②导入资料 → ③智能抽背 → ④设考试 → ⑤错题/图谱),首次打开自动弹出;右下角常驻「?」按钮可随时重看。引导里每个步骤都有「去操作 →」按钮,点一下直接跳到对应功能并关闭浮层。
第 2 步:让他先一键加载示例(零门槛体验)
> 资料库里有「⚡一键加载示例」,《研究方法》72 张考点卡,自动建好「研究方法」科目并切过去——你一进来就能看到科目切换条和多考试卡片在干活。
第 3 步:按真实场景走通主链路
带他依次做一遍(对应引导浮层的 ①②③④⑤):
1. 建科目:顶部「+科目」→ 输名字(如「高等数学」)→ 自动配图标/颜色 → 之后导入的资料都归这门课;可随时切换、编辑、标记已完成、级联删除。
2. 导入资料:「资料」选 PDF/PPT/Word 或粘贴文本 → 自动按章节提取考点卡。
3. 抽背:「刷题 → 抽背」三选一(正背挖空 / 反背回忆 / 选择题),答错自动进错题本。
4. 设考试:右上角 📅 → 给每门课设日期,多门多场都行;考前自动倒计时,考前 3 天进冲刺模式。
5. 复盘:错题本重做 + 图谱看关联 + 统计看掌握度。
第 4 步:说明管理与备份
- 删除:资料行 / 卡片 / 考试 / 科目(级联删资料+卡片+考试+清理真题外键,删前弹窗告知数量)。
- 软归档:「已完成」= 效果同删除但数据可恢复(恢复按钮随时复活)。
- 备份:图谱页「导出 / 恢复备份」JSON。
第 5 步:交付链接 + 部署方式
- 让 WorkBuddy 帮你部署(最简单,推荐):直接对本助手说"帮我部署这个复习工作台",AI 会调用 CloudStudio 把本 skill 目录发布成公网 HTTPS 网页并给你链接(详见「十、在 WorkBuddy 中部署本 skill」)。
- 自己部署(两种):
- 最简:在本 skill 目录下
python3 -m http.server 8080,手机同局域网访问http://<电脑IP>:8080。 - 云部署:用 WorkBuddy 的 CloudStudio 部署,得到公网 HTTPS 链接,离线缓存(Service Worker)生效。
- 注意:更新代码后 SW 版本号要 +1(现 v6)强制刷新缓存,否则老用户会拿到旧 CSS/JS。
十、在 WorkBuddy 中部署本 skill(AI 执行步骤)
本 skill 的根目录(含 index.html / styles.css / app.js / sw.js / sample-data.js)即当前 SKILL.md 所在文件夹。当用户表达"打开 / 部署 / 运行这个复习工作台"或类似意图时,按以下执行:
- 确定本 skill 目录路径:即 SKILL.md 所在目录(WorkBuddy 通常把已安装 skill 放在
~/.workbuddy/skills/<id>/或项目内.workbuddy/skills/下,index.html在其根)。若不确定,先列目录确认根下有index.html。 - 部署为可访问的网页(二选一):
- 首选:调用cloudstudio_deploy,参数directory填本 skill 根目录、entry填index.html。完成后返回公网 HTTPS 链接,Service Worker 离线缓存随之生效。
- 本地临时:在该目录运行python3 -m http.server 8080,返回http://localhost:8080。 - 把链接交给用户:用
present_files或直接给出 URL,提示手机浏览器打开即用;首次拿到最新版建议强刷一次(Cmd/Ctrl+Shift+R)。 - 更新后重新部署:若改了代码,先把
sw.js的CACHE版本号 +1 强制刷新缓存,再重新cloudstudio_deploy(覆盖更新)。
> ⚠️ 不要依赖任何写死的链接——每个安装本 skill 的人都要部署自己那份,链接由上述步骤现场生成;也不要把本机已部署的链接当作"通用链接"发给别人。
十一、已知限制(诚实说明)
- 考点提取为启发式(按标题/定义/公式/列表规则切分),非大模型语义理解;旧版"识记:碎片"式卡片已被 normalize 就地改写为"请简述:topic"并在加载时补齐 term/blank。
- PDF/Office 解析依赖 CDN(pdf.js / JSZip),完全离线时这两个库不可用,此时请用「粘贴文本」入口。
- 语音听背依赖浏览器
speechSynthesis;移动端体验最佳。 - 图谱节点上限 40(取当前科目最近卡片)。
- 反背 / 选择题模式依赖于卡片具备
term字段;老卡片在加载时自动 normalize(补 term/blank)。 - 应用内置新手引导浮层,首次打开自动出现,右下角「?」可随时重看;不想再弹可在关闭时由
DB.onboarded标记(已自动处理)。