多科目备考工作台(multi-subject-prep-hub)
一对互补的单文件 HTML 工作台,专为「多科目同时备考」场景设计。核心是解决三件事:多科目并行时的精力分配、防止偏科崩盘、把方法固化成可复用系统。两个台 localStorage 命名空间隔离,互不冲突,可同时用。
触发场景
- 用户要做「多科目备考 / 精力分配 / 防偏科 / 并行复习」的工作台
- 用户说"好几科一起复习,怕偏科 / 不知道时间怎么分"
- 用户想把多科备考流程固化成方法手册 + 背诵卡片 + 周复盘
- 备考、考研、期末多科冲刺、知识博主做内容沉淀
交付物(两个互补工作台)
| 文件 | 模块 | 用途 |
|---|---|---|
assets/multi-subject-manual.html |
方法手册 / 模板库 / 计划&复盘 | 方法参考(精力分配四步法 + 2×2 精力矩阵 + 偏科红黄绿预警)+ 可一键复制的模板 + 任务驱动「今天要处理」+ 按科目连续复盘打卡 |
assets/multi-subject-card.html |
卡片库 / 复习台 / 方法论 | 跨科目背诵卡片,按掌握度做间隔复习;卡片库支持按科目筛选;方法论页内置「多科目交错复习法」 |
两者 localStorage 命名空间隔离(wb_multisubject_ 与 wb_multisubject_card_),互不冲突。
核心方法论(讲给用户听的)
- 精力分配四步法:科目盘点(算提分性价比)→ 精力分配矩阵(时段×难度)→ 偏科预警(设每科投入红线)→ 每周再平衡(溢出精力转移给预警科目)。
- 精力分配矩阵 2×2:高精力+高难度=核心攻坚 / 高精力+低难度=推进积累 / 低精力+高难度=被动输入(听课看视频)/ 低精力+低难度=机械重复(刷题默写)。
- 防偏科预警:每科绿(达标)/黄(临界)/红(预警)三色看板;偏科度=最高分科与最低分科差距,超阈值报警;每周至少触达每科一次。
- 多科目交错复习:每天不单刷一科,交叉 2–3 科,降低疲劳、防偏科;新内容按 1/2/4/7/15 天间隔复习(卡片台自动排程)。
使用方式(agent 执行步骤)
- 识别用户科目数与备考目标,确认用双台还是单台。读对应
assets/*.html作为基线。 - 按需定制:改
<title>与品牌名、主色(CSS--accent及对应--accent-soft)、预置示例的科目/知识点、模块增减。 - 严格保留铁律 1-8(尤其置顶「今天要处理」、导出导入、示例数据、移动适配)。
- 把定制后的文件写回用户工作区,用
present_files展示并打开预览。 - 询问是否部署上线(用户说「手机上用/分享给别人」→ 部署拿链接,教添加到主屏幕)。
铁律(生成/改造时必须全部满足)
- 数据存储:localStorage,刷新关闭不丢;key 前缀
wb_{标识}_;单文件上限约 5MB。 - 备份:首屏有「导出 JSON」「导入恢复」;导入不限条数、覆盖前二次确认;清空示例二次确认;数据≥30 条顶部温和提示导出。
- 全内联零外链:所有 CSS/JS 内联;不引任何外部框架/CDN/字体/图表库;图标用内联 SVG path(严禁 emoji 当图标);图表用内联 SVG 手写;字体用系统字体栈。
- 移动适配:<768px 单列;按钮≥44px;输入框字号≥16px;PC 侧栏/顶部导航 → 移动端底部 Tab;适配
env(safe-area-inset-bottom)。 - 「今天要处理」置顶:页面最上列出逾期/今天/即将到期项;逾期标红 + 一键处理;昨天没完成的自动顺延(用 due 日期自然实现)。
- 预置示例:首次打开 3-5 条示例(含 1 条逾期),附「清空示例」;严禁空白首屏。
- 需求过载控制:每个工作台最多 3-4 模块;用户要 5+ 时先做核心 3 个,后续迭代每次加 1 个。
- 国内习惯:日期 YYYY-MM-DD;货币 ¥(本技能不涉及记账)。
迭代建议
- 合并为一个台:把卡片库并入手册台(注意 localStorage key 统一或双 key 共存)。
- 加「每科周投入时长」统计看板(柱状图,内联 SVG)。
- 加偏科度可视化(最高/最低分科差距折线)。
分发与安装
- 本技能目录可整体打包为 zip 分享:接收方解压到
~/.workbuddy/skills/multi-subject-prep-hub/即可(用户级,全项目可用);或放到项目级<workspace>/.workbuddy/skills/供同项目成员使用。 - 已通过 jsdom 端到端功能测试:预置数据、逾期标红、加任务/复盘/模板/卡片、间隔复习评分、导出、清空示例等 22 项断言全过。
> 安全提醒:部署后链接公网可访问,数据在用户浏览器本地(不在服务器);页面不预填真实隐私数据;密码机制仅防误触,非真加密。