Install
openclaw skills install @hounextitem/offline-quiz-builder把任意学习资料(讲义、笔记、教材、PDF、Word、Excel、已有题库)转换成一个纯离线的智能复习题库网站,双击即可使用,内置艾宾浩斯遗忘曲线自适应排程、错题本、收藏夹与打卡日历,并可自动创建每日复习提醒任务。当用户想把资料变成刷题网站、做复习题库、生成练习题、搭建离线背题工具、或需要按遗忘曲线安排复习时,应使用本技能。
openclaw skills install @hounextitem/offline-quiz-builder把用户的学习资料变成一个可离线运行的复习题库网站,并配好每日提醒。
产物是纯静态网页(无框架、无后端、无网络请求),双击 index.html 即可使用,
学习数据存在浏览器 localStorage 中。
ease,答得越轻松间隔拉得越长,
答错或卡壳自动缩回来。同一天开始学的两道题,几轮之后复习节奏会完全分开。
这是与「固定 1/3/7/14/30 天」式题库的本质区别。读取用户提供的资料,判断走哪条通道。判断规则与各文件类型的读取方式见
references/material-ingestion.md。
| 情况 | 通道 | 说明 |
|---|---|---|
| 已是符合规范的题库 JSON | A 快速导入 | 直接校验建站,不要重新出题 |
| 已有成品题目,但格式不对(Excel/Word 题库等) | A′ 格式转换 | 只做结构转换,不要重新出题 |
| 讲义/笔记/教材等知识性资料 | B 资料出题 | 阅读提炼后生成题目 |
| 用户没有资料,只想先看效果 | 演示模式 | 用 assets/sample-bank/sample.json 建站 |
判断为 A 或 A′ 时绝不重新出题——用户已有的题目往往来自真题或老师划的重点, 价值高于 AI 现编的内容。
出题前先估算题量和耗时,向用户播报后再开工。超过 150 道题时必须先征询用户意见。
估算方法与播报格式见 references/material-ingestion.md。
严格按 references/question-schema.md 生成。该文档定义了:
meta / subjects 字段含义题量超过 40 道时分片生成,每片单独落盘再合并,避免单次输出过长导致 JSON 截断。
关于出处:.docx / .md / .txt 没有可靠分页信息,source.page 必须为 null,
章节信息放进 locator。绝不编造页码。
<python> <skill-dir>/scripts/build_bank.py <bank.json> <site-dir> --check-only
脚本会逐条校验并打印题目总数、题型/科目/难度分布。有错先修再继续,
常见报错与修法见 references/material-ingestion.md。
建站前必须展示并等待用户确认:
抽样展示是最有效的质量闸门,不要跳过。
把应用模板拷到目标目录,再写入题库数据:
# 1. 拷贝应用壳(不含题库数据)
cp -r <skill-dir>/assets/app-template/. <site-dir>/
# 2. 写入题库(同时生成 questions.json 与内嵌的 assets/js/data.js)
<python> <skill-dir>/scripts/build_bank.py <bank.json> <site-dir>
<site-dir> 默认放在用户工作目录下的 题库/ 或 quiz-site/,路径里尽量不要有空格。
应用壳不要改写。 网页的品牌名、标题、科目图标全部由题库 JSON 的
meta.brandName / meta.title / meta.brandIcon / subjects[].icon 驱动,
改这些字段即可,无需碰 HTML/CSS/JS。这样才能保证每次生成的成品完全一致。
用浏览器打开确认无误:
<python> <skill-dir>/scripts/open_quiz.py <site-dir>
检查首页科目卡片数量与题量是否正确、进入科目能弹出今日复习、能正常作答。
先问用户希望几点被提醒,然后用 automation_update 创建定时任务。
完整的参数模板、rrule 写法、prompt 模板见 references/automation-reminder.md。
这一步有一个必须遵守的硬约束:提醒任务只能通过 scripts/open_quiz.py
以 file:// 打开题库,绝不能用 present_files 或任何本地 HTTP 预览。
原因是 localStorage 按来源隔离,用预览面板打开会让用户看到一个进度全空的题库,
且数据永久分裂。详见该参考文档。
用户明确表示不需要提醒时跳过本步,不要反复劝说。
告知用户:
index.html 即可使用file:// 的 URL 就变了,可能读不到原数据questions.json,改完重新运行 build_bank.py 同步| 路径 | 用途 |
|---|---|
references/question-schema.md | 题库 JSON 规范与出题质量准则。生成题目前必读 |
references/material-ingestion.md | 各类文件的读取方式、规模估算、分片策略、常见校验错误 |
references/automation-reminder.md | 提醒任务的创建参数与 localStorage 同源约束 |
scripts/build_bank.py | 校验题库并生成 questions.json + data.js。支持 --check-only |
scripts/open_quiz.py | 以 file:// 唤起默认浏览器打开题库。提醒任务专用 |
assets/app-template/ | 应用壳,直接整目录拷贝,不要改写 |
assets/sample-bank/sample.json | 10 题演示题库,覆盖 5 种题型,供空跑体验 |
以下是容易做错的地方,逐条规避:
source.page: null。