Skip to content
Agent Memory
Skill

/quiz-repractice

重练「存为题库」保存过的题——从当前知识库的题库目录选题,把存档里的题原样重发成题卡重新作答,判分与解析复用现有链路,答对的题可以从题库移除。不生成新题。Triggers on: 重练, 错题, 题库, 再做一遍, 重做错题, 重练错题, quiz bank, redo.

From plugin
molio
44712 skills

Claude Code

$ npx -y skills add zhuzhaoyun/Molio --skill quiz-repractice --agent claude-code

SKILL.md

quiz-repractice.SKILL.md
name: quiz-repractice
description: 重练「存为题库」保存过的题——从当前知识库的题库目录选题,把存档里的题原样重发成题卡重新作答,判分与解析复用现有链路,答对的题可以从题库移除。不生成新题。Triggers on: 重练, 错题, 题库, 再做一遍, 重做错题, 重练错题, quiz bank, redo.
version: 1.0.0

quiz-repractice: 重练题库存题

从**当前知识库** `题库/` 目录里「存为题库」保存的档案中选题,**原样重发** quiz 围栏重新作答。题目必须与存档逐字一致——本 skill **不生成、不改写、不换题**。

触发

用户说「重练 / 错题 / 题库 / 再做一遍 / 重做错题 / 重练错题」,或点名 `/quiz-repractice` 时使用。

与 `quiz-generate` 分工:用户要**现场出题**(从库内容生成新题)→ 用 `quiz-generate`;用户要**重练存过的题**(原样重发,不生成新题)→ 用本 skill。

**题源就是 `题库/` 目录**:本流程不走 wiki 检索、不读 wiki 索引——存题档案本身就是全部材料。

流程(必须按顺序)

1. 选题

1. 列出当前库 `题库/` 目录下的 `.md` 文件。目录不存在或为空 → 明确告诉用户「这个库还没有题库存题」,结束 2. 多份存档时按用户意图选:点名标题或日期(「昨天的」「上周的」)→ 取对应文件;没点名 → 列出候选(日期 + 标题 + 存题数)让用户挑,不要擅自全练 3. 一次重练**一份**存档(一张题卡);用户要多份时逐份进行 4. 同一份存档内:用户点名题号 → 只发被点名的题;没点名 → 整组全发 5. 题序一律按存档文件的**原序**(`## 第 N 题` 升序);点名子集时保持相对原序 6. 只看当前库自己的 `题库/` 目录;挂载库(`external/`)里的题库不主动取

2. 重建围栏

逐题从 `## 第 N 题` 分节重建题目 JSON。

**保真纪律**:

  • 题干、选项文本、答案、解析**逐字照抄**存档原文——不润色、不改写、不增删字
  • 题干 = 分节内选项/答案块之前的全部正文(含图片行),按原文保留换行
  • 存档里「你的答案 / 批改」两块是上次作答的记录,重建时忽略
  • 配图路径**剥掉**存档加的 `../` 前缀:存档为防裂图写了 `../wiki/images/x.png`,围栏里必须写回库根相对路径 `wiki/images/x.png`
  • 题目 `id` 用 frontmatter `quiz_question_ids` 里对应位的原 id(frontmatter 清单与正文分节按序一一对应);**对不上**时按分节序回退,并在引导句里向用户说明,不要静默猜

**type 判定**(存档不记题型,按下表推断):

| 存档特征 | type | 围栏写法 | |---|---|---| | 题干含 `____` 且无选项列表 | fill | `answer` = ` / ` 拆开的写法数组;无 `options` | | `**答案**:` 后是编号评分点列表 | subject | `answer` = 评分点数组逐条照抄;无 `options` | | 选项恰为 A. 正确 / B. 错误 两项 | judge | **省略 `options`**(协议自动补默认两项) | | 其余,答案行只有 1 个 key | single | `answer` = `[该key]` | | 其余,答案行有 ≥2 个 key | multiple | `answer` = 顿号拆开的 key 数组 |

**其余字段**:

  • 单/多选 `answer`:答案行按顿号(、)拆成 key 数组(`**答案**:B、D` → `["B","D"]`)
  • 选项:从 `- A. 文本` 列表行重建 `{ "key": "A", "text": "文本" }`
  • 出处:`出处:[[path]]、[[path]]` → `sources` 数组,path 照抄 wikilink 内的路径
  • `version` 固定 `1`;`title` 写 `重练 · <frontmatter 里的 quiz_title>`
  • 合法 JSON:双引号、无注释、无尾逗号、字符串内换行写 `\n`

**指纹边界**:题目指纹由答题界面按围栏内容**现算**(canonical 后取 SHA-256),**含 sources.quote、不含 title 与引导语**。存档正文只保 `[[path]]` 不保 quote——**sources 原带 quote 的题,重建围栏的现算指纹必然不同于存档 frontmatter 的 `quiz_fingerprint`**,跨会话的「重做覆盖最新作答」去重(按 指纹+题目 id 取最新)对这类题不成立;同一会话内的徽标与判分不受影响。sources 原本没有 quote 的存档(整卷档同理)按原序重发可精确复现指纹。quote 不可恢复是**存档侧损失,不是重建错误**——「逐字照抄」仍是最高纪律,不要为了补 quote 编造原文。

3. 输出

只输出**一个**引导句 + **一个** `quiz` 围栏。引导句说明在重练哪份存档(日期 + 标题)。围栏外不得出现答案、解析或题目清单。

例(重建后的围栏形态):

{
  "version": 1,
  "title": "重练 · 二次函数 · 5 题",
  "questions": [
    {
      "id": "q2",
      "type": "single",
      "stem": "抛物线 y=x²-6x+c 与 x 轴交点个数的判断依据是哪个量?",
      "options": [
        { "key": "A", "text": "判别式符号" },
        { "key": "B", "text": "开口方向" }
      ],
      "answer": ["A"],
      "explanation": "解析照抄存档。",
      "sources": [{ "path": "wiki/concepts/二次函数.md" }]
    },
    {
      "id": "q3",
      "type": "judge",
      "stem": "c 越大,抛物线 y=x²-6x+c 的顶点越高。",
      "answer": ["A"],
      "explanation": "解析照抄存档。",
      "sources": [{ "path": "wiki/concepts/二次函数.md" }]
    }
  ]
}

解答题批改

(本节与 `quiz-generate` 的「批改协议」逐字同步维护——改任一处必须同步另一处,题卡回填依赖格式完全一致。)

收到含 `【大题作答·第N题】` 标记行的消息时按以下协议批改——这是确定性触发,不靠模型自觉判断:

1. 逐评分点判定:命中 / 部分命中 / 未中,并指出作答里对应的依据 2. 出错的步骤要说明错在哪、正确的思路是什么 3. 给分:X/Y(Y = 评分点总数;X = 命中数 × 1 + 部分命中数 × 0.5,未中记 0 分,因此 X 可以带 .5) 4. 讲错因时能引出处就引出处(消息里列出的文档路径) 5. 作答含糊、多种理解都说得通时明说拿不准,不要硬判

消息末尾的「题目指纹:……」行是系统关联信息,批改时忽略。批改标准就是消息里列出的评分点,不要自己另立标准或加码。

**批改回复格式**(答题界面按它把结果回填进题卡,必须遵守):

【批改·第N题】得分 X/Y
1. 命中|<一句话依据>
2. 部分|<一句话依据,指出缺了什么>
3. 未中|<一句话依据>
  • 题号 N 镜像作答标记里的题号
  • 判定枚举冻结三词:命中 / 部分 / 未中(判断时的「部分命中」在逐点行里写「部分」)
  • **X 必须等于逐点行的加权总和**——答题界面把 X/Y 画成得分徽标、把逐点行画成明细,两者对不上会被读成批改出错
  • 依据一句话、自足成句,任何学科一视同仁
  • 标记行与逐点行之后,照常按上面第 2–5 条写错因与讲解

4. 移除

客观题的判分发生在答题界面,判分结果**不会进入对话**——除非用户亲口告知,你并不知道哪道答对了;解答题的得分是你自己批出来的(X=Y 即满分)。移除询问只在两种情况触发:

  • 解答题批改满分(X=Y)→ 在批改回复里一并问
  • 用户告知某些题答对了(「都对」「第 2 题对了」)→ 列出这些题,问「第 X 题答对了,要不要从题库移除?」

**只有答对的题才问**,答错的题留在题库里;用户没报结果就不问,也不要凭空宣称「你答对了」。

用户确认移除后:

1. 编辑**对应那份**题库文件:删掉该题的 `## 第 N 题` 分节(含其下的选项/答案/解析/出处) 2. 同步 frontmatter:`quiz_question_ids` 去掉对应 id、`quiz_saved_questions` 减 1(`quiz_total_questions` 和 `sources` 是存档时点的历史事实,保持原样) 3. 文件里的题被移空 → **删除整个文件** 4. 只允许动 `题库/` 目录内的文件,其他文件一律不碰 5. 用户没确认、或题没答对 → 文件一个字都不动

自检

输出前逐题检查:

  • [ ] 题面与存档逐字一致(题干/选项/答案/解析零改动)
  • [ ] 配图路径已剥 `../` 前缀
  • [ ] type 与存档特征匹配(fill 有 `____`、subject 无 options、judge 省略 options)
  • [ ] 题目 id 来自 frontmatter `quiz_question_ids`
  • [ ] 围栏外没有围栏内题目的答案或解析
  • [ ] JSON 能被 `JSON.parse` 解析
Read more
@zhuzhaoyun
Ships withmolio

Give AI your personal knowledge base. Local-first, and every byte stays yours.

Stars on GitHub

Momentum

stars in total
447
Star history of zhuzhaoyun/Molio on GitHub, a chart by star-history.com

Other skills on molio.

molio-kb

molio-kb

Query the user's local Molio knowledge base — browse files, full-text search, read documents, and run AI Q&A grounded in the…

@zhuzhaoyun@zhuzhaoyunInstall Skill
docling

docling

PRIMARY skill for converting .pdf, .docx, .pptx, .xlsx, .doc, .ppt, .xls, images, and audio/video files (.mp3, .wav, .m4a, .mp4,…

@zhuzhaoyun@zhuzhaoyunInstall Skill
quiz-generate

quiz-generate

从当前知识库内容生成带出处的题目(单选/多选/判断/填空/解答),在聊天中直接作答、判分、看解析并跳回原文。适用于任何领域的学习与练习——备考、课程学习、职业成长、兴趣研究均可,不绑定学科、考试或考纲。Triggers on: 出题, 考考我, 练习,…

@zhuzhaoyun@zhuzhaoyunInstall Skill
remotion

remotion

Molio's builtin skill for MAKING a video from any source — wiki notes, articles, scripts, product info, or a brief — and…

@zhuzhaoyun@zhuzhaoyunInstall Skill
rule-sandbox

rule-sandbox

从当前知识库内容生成可交互的阈值演示——用户拖动参数越过边界,判定与解释实时翻转。适用于任何领域的边界规则(负载与警戒线、时效与期限、资格与条件、温压与安全区间),不绑定学科或考试。Triggers on: 演示, 可视化, 解释给我看, 拖动, 沙盘,…

@zhuzhaoyun@zhuzhaoyunInstall Skill
wechat-article-extractor

wechat-article-extract…

提取微信公众号文章(mp.weixin.qq.com)内容为 Markdown。遇到 mp.weixin.qq.com 链接时使用此 skill,禁止使用 WebFetch。

@zhuzhaoyun@zhuzhaoyunInstall Skill

More skills from other plugins.

agent-cost-report

agent-cost-report

Believable agent cost report for any period, default the last 7 full days PT, not counting today. Measured tokens from Claude…

@thedotmack@thedotmackInstall Skill
bot-handoff

bot-handoff

Keep a durable record of work passed between Bots in the shared Hindsight memory bank. Use when handing work to another Bot, when…

@vectorize-io@vectorize-ioInstall Skill
mempalace

mempalace

Install, configure, and operate MemPalace, including a private local palace, a shared-brain hub, or a client joining an existing…

mempalace13d60k
@mempalace@mempalaceInstall Skill
mempalace

mempalace

Install, configure, and operate MemPalace, including a private local palace, a shared-brain hub, or a client joining an existing…

mempalace13d60k
@milla-jovovich@milla-jovovichInstall Skill

Questions about quiz-repractice.

Which coding agents can use quiz-repractice?
quiz-repractice installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.