下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-ln4nqpas--exam-paper-generator.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-ln4nqpas/exam-paper-generator。把出卷需求(年级、学科、教材版本、考试范围、满分、时长、题型结构、难度配比)变成一份可印发的完整试卷,覆盖双向细目表(知识点 × 能力层级 × 难度)、题干与选项命制、分值核算、题号连续性校验、超纲检查、参考答案与评分标准、难度与知识点分布统计,题目标注知识点、能力层级、难度与三档来源(原创/改编/援引),自动核算原创率并生成可归档的原创声明,按同一份结构表生成可扫描的配套答题卡(考号填涂表、客观题填涂区、主观题作答框、七段页码识别码),最终输出 Word(.docx)与 PDF(A4,含卷头、装订线、大题分区、答题空位、答案页)。
支持从工作区已放的题库 Excel、往年真题 docx/pdf 中选题组卷。触发关键词:出卷、出试卷、命题、组卷、试卷生成、期中考卷、期末考卷、单元测试卷、模拟卷、月考卷、双向细目表、命题细目表、知识点分布、难度配比、参考答案、评分标准、打印试卷、Word 试卷、PDF 试卷。
阅读全文 (展开查看完整说明)
概述
试卷生成
把一句"帮我出一份八年级物理期中卷",变成一份能直接印、能直接考、评分时不用再猜的试卷。
这个技能保证四件事:按课标和考试范围出题(不超纲、不考未学)、有双向细目表(知识点、能力层级、难度、分值全部可查)、有参考答案与评分标准(按步给分,不是只给结果)、版面能直接印(卷头、大题、答题空间、页码齐全)。
什么时候用
- 要出一份新课标下的阶段考试卷(单元测、月考、期中、期末、模拟)
- 要按知识点和难度配比组卷,需要双向细目表交教研组备案
- 手上有题库或往年真题,想从中选题拼一张新卷
- 已有旧卷,要改版(换题、改分值、调难度、加答题卡)
不适合:批改已考完的卷子、做成绩分析报告(那是学情分析类技能)、只想要某一道题而不需要整卷。
第一步:把出卷参数问清楚
一次问全,不要挤牙膏。缺项按下面的默认值推定,并在回复里写明"以下为推定值"。
| 参数 | 说明 | 缺省推定 |
|---|---|---|
| 年级学科 | 八年级物理、高二数学 | 必问 |
| 教材版本 | 人教版、北师大版、苏教版、外研版 | 按当地主流版推定 |
| 考试范围 | 章节名或页码范围 | 必问 |
| 满分 / 时长 | 100 分 / 80 分钟 | 100 分,时长按学段给 |
| 题型结构 | 选择、填空、实验/探究、计算、作图、简答 | 按学段学科常规结构 |
| 难度配比 | 容易 : 中等 : 较难 | 7 : 2 : 1(期中期末常用),单元测用 8 : 1.5 : 0.5 |
| 是否需要 | 双向细目表、参考答案、答题卡 | 默认全给 |
| 输出格式 | Word / PDF / 两者 | 默认两者 |
时长参考:小学单元测 40 分钟、初中 60~90 分钟、高中 90~120 分钟、语数英高考科 120~150 分钟。
第二步:扫工作区,建题源清单
试卷的题目优先从用户自己放的题库和往年真题里来,不要凭空编造与本校风格不符的题。
- 列工作区里的候选文件:
*.xlsx(题库表)、*.docx/*.pdf(往年真题)、*.md - 读题库表时先认出列结构:题干、选项、答案、知识点、难度、分值、来源年份
- 往年真题只取题目,不抄答案格式,答案要重新核对
- 输出一张"题源清单":文件 → 可用题数 → 覆盖题型 → 覆盖章节
题源不够时,明确说清缺口(例如"第三章实验题只有 1 道,需另补 2 道"),再决定自编补题;自编题必须在细目表里标 来源=原创,从题库或真题改写的标 改编,教材原实验标 援引 并写清出处,方便教研组复核、也便于后面出原创声明。
第三步:先出双向细目表,等确认
这一步必须停下等用户点头。 细目表是整卷的骨架,改细目表比重写题便宜得多。
细目表至少包含:
- 分值总表:各题型题数 × 每题分值 = 小计,合计 = 满分
- 知识点 × 能力层级矩阵:行是章节/知识点,列是 了解 / 理解 / 掌握 / 应用,格里填题号(分值)
- 难度分布:容易 / 中等 / 较难 的分值与占比,与约定配比对账
- 题型 × 认知要求对照:选择题不宜全考记忆,计算题不应只考套公式
- 来源列:每题标 原创 / 改编 / 援引 —— 这一步决定了后面能不能出原创声明
规范写法、能力层级对照、各学科题型分值模板见 references/blueprint-spec.md;来源分档与查重口径见 references/originality.md。
确认话术示例:
细目表如上:选择题 10 题 30 分、填空题 6 题 18 分、实验题 3 题 24 分、计算题 3 题 28 分,合计 100 分;难度 7:2:1;第三章"物态变化"占 34 分(占比最高)。确认后我出初稿。
第四步:出初稿,再确认
细目表过了再写题。初稿用 Markdown 直接贴在对话里,不急着生成文件——改字比重排 Word 快。
初稿要带的信息:
- 每题的题号、分值、知识点、能力层级、难度(跟在题干后的小字标注)
- 选择题四个选项必须同长同构,错误选项要有明确干扰逻辑(概念混淆、单位错、方向错、以偏概全)
- 填空题的空位数与分值匹配(每空 1~2 分,不出现"一空 5 分")
- 实验题要写清器材、步骤、数据表、结论,问法分层(操作 → 现象 → 结论 → 误差)
- 计算题必须给已知条件、求解目标,评分标准按步给分(公式、代入、结果、单位各占分)
- 全卷文字量估计:初中 3500~5000 字,高中 5000~7000 字,超了删情境
命题质量红线见 references/question-writing.md。
第五步:定稿,转结构化数据,生成 Word、PDF 与原创声明
初稿确认后,把整卷写成一份 JSON(结构表),再交给脚本渲染。不要让模型直接手写 .docx 的 XML。
- 按
references/blueprint-spec.md里的 JSON 结构写paper.json(可先复制assets/example-physics8-midterm.json改) - 运行:
python scripts/build_paper.py paper.json --outdir output --format docx,html,pdf脚本会做这些事:
| 动作 | 说明 |
|---|---|
| 分值核算 | 各题型小计、全卷合计必须等于 meta.total_score,不等直接报错退出 |
| 题号校验 | 题号连续、不重不漏;大题序号一/二/三自动生成 |
| 细目表生成 | 从每题的 knowledge / level / difficulty / source 自动汇总成矩阵、难度占比与来源构成 |
| 来源校验 | source 只认 原创 / 改编 / 援引;标援引却没写 source_ref 直接报错 |
| 原创度检查 | 原创分值占比 < 50% 或援引 > 25% 时打印告警(阈值可用 --min-original / --max-quote 调) |
| 版面渲染 | A4、卷头、装订线、大题分区、答题空位、页脚页码 |
| 答案页 | 参考答案 + 评分标准单独成页,可只导出学生卷(--no-answer) |
| 原创声明 | 自动生成 原创声明.md,含来源分布、逐题清单与可直接引用的声明正文 |
| 答题卡 | 按同一结构表生成 A4 答题卡:四角定位三角、10 列考生号涂卡表、客观题 45mm 组宽填涂区、主观题独立作答框、页脚页码与七段页码识别码 |
| 格式输出 | .docx(纯标准库生成,不依赖 python-docx)、.html、.pdf(调 Edge 无头打印) |
输出物默认放在 output/:试卷.docx、试卷.pdf、双向细目表.html、原创声明.md、答题卡.html、答题卡.pdf、paper.json。
配套答题卡
试卷和答题卡必须同源:题号、选项数、分值、小问个数都从同一份 JSON 推导,改一处两者一起变。答题卡默认生成,--no-card 关闭。
卡面固定包含:四角直角三角定位点(5×5mm)、页眉识别标记串、考生信息栏、注意事项框、填涂说明框、10 列考生号涂卡表(号码格是 [0] 文本,第 r 行整行都是数字 r)、客观题填涂区(每组固定 45mm 宽,选项是 [A] 文本)、非选择题分隔条、主观题独立作答框(框与框共用一条线)、页脚「第 X 页(共 Y 页)」,总页数 ≥ 3 时右上角自动加七段页码识别码。
主观题框行数按题型自动给:填空 2 行、实验 max(6, 小问数×2)、计算 ceil(分值÷1.5)、其他 max(4, ceil(分值÷2)),再按小问数补足,夹在 2~10 行之间。不要手改卡面,觉得行数不够就改 JSON 重跑。
完整尺寸表、印刷设置、与 answer-sheet-layout 技能的分工见 references/answer-card.md。纸型当前只支持 A4 纵向单栏;要 A3 双栏卡或作文格,用 answer-sheet-layout。
版面和输出规范
卷头字段、大题标题格式、答题空位高度、分栏、页码、答案页排法的完整规则见 references/paper-layout.md。要点:
- A4 纵向,页边距上 20mm / 下 20mm / 左 22mm(留装订)/ 右 18mm
- 卷头:标题(学年+学期+科目)→ 考试信息行(满分/时长/命题人)→ 考生信息栏(姓名/班级/考号/座位号)→ 注意事项
- 每道题后不留答案,选择题选项横排两列或四列,选项间用制表位对齐
- 主观题下方留答题空间:填空 2 行、简答 4~6 行、计算 8~10 行、作文格另计
- 答案页独立起页,标题写"参考答案与评分标准",与试卷同页眉
原创与查重
试卷的可信度靠来源可查,不靠一句"原创"。每道题必须落进三档之一:
| 来源 | 判定标准 | 写法 |
|---|---|---|
| 原创 | 题干情境、数据、选项、设问均为自行设计,未沿用任何既有题目的表述 | "source": "原创" |
| 改编 | 沿用常见题型骨架(如"过桥求时间""剔除错误数据求平均"),但情境、数据、选项全部重写 | "source": "改编" |
| 援引 | 课程标准规定的必做实验或教材原实验,只能改设问角度与数据 | "source": "援引" + "source_ref": "出处" |
判定原则:
- 教材规定实验不能算原创。水沸腾、测平均速度、钢尺音调这类实验,器材和步骤是课标写死的,只能算援引,改得再花也只是"援引 + 改写设问"。
- 骨架常见就算改编。即使文字完全重写,只要题目模型是"过桥求时间""回声测距""两段路程求平均速度"这种烂熟的模型,标改编更稳妥。
- 别把改编包装成原创。教研组一眼能看出"望天门山"是现成题,标错一次,整份细目表的可信度就没了。
默认红线:原创分值占比 ≥ 50%,援引 ≤ 25%(--min-original / --max-quote 可调)。低于门槛时脚本会打印告警,此时应补自编题或核减援引题,不要改标注糊过去。
交付前查重四步:
- 打开
双向细目表.html第六节「逐题来源清单」,只看标改编和援引的题 - 用组卷网站或题库按题干关键词逐条检索,确认没有整题重复
- 原创题取题干中连续 12 字以上的片段做网络检索,确认没有雷同表述
- 把
原创声明.md连同试卷一起归档;平台要求提供来源说明时直接引用其中的声明正文
原创声明.md 里的声明正文是自动拼的,包含题量、三档来源的题数与分值占比、援引出处,可以直接贴到交付说明或上架页。数字全部来自结构表标注,改卷不改标注会导致声明失真——所以标注要在第三步定,不要到最后补。
红线
- 不超纲:题干涉及的概念、公式、单位必须在考试范围和已学章节内;超纲即废题。
- 分值必须对得上:小计与总分不符、漏标分值的卷子不许交付。
- 答案必须唯一且可判:选择题只有一个正确项;开放性试题要写清评分等级(如"观点明确 2 分、结合材料 2 分、语言通顺 1 分")。
- 不编造无依据的课标编号:课标条目写不准就写章节名,不要硬编"课标 2.3.1"。
- 不把旧题原样搬:往年真题要改数据、换情境,避免学生背答案。
- 来源不许虚标:改编不能标原创,教材实验不能算原创;援引必须写出处。
- 原创率不达标不交付:原创分值 < 50% 时先补题,不要改标注凑数。
- 答案与题干不矛盾:生成后逐题对一遍,尤其是计算题的单位和有效数字。
使用方式
| 场景 | 做法 |
|---|---|
| 一句需求出整卷 | 直接按第一到第五步走,中途两次确认 |
| 已有 JSON 只改版式 | 跳过 1~4 步,直接跑 build_paper.py |
| 只要细目表 | 走到第三步停下,把矩阵表贴给用户 |
| 只要答案页 | build_paper.py paper.json --answer-only |
| 只要原创声明 | 直接读 output/原创声明.md |
| 只要答题卡 | --no-card 反过来用:--no-answer 只出学生卷+答题卡;已有 JSON 直接重跑即可 |
| 改某几道题 | 改 JSON 里对应 item,重跑脚本,不要手改 docx |