每天一个体育笔试知识点 · 自动出帖
适用场景
把「讲义库举一反三讲稿」(128 篇)里的知识点,每天出一篇小红书帖子 docx:
- 第 1 页封面:大标题「每天一个体育笔试知识点」+ 【模块】标签 + 一道单选题(题干+ABCD),不给答案
- 第 2 页:今日考点标题 + 答案揭晓 + 考点解析引导句 + 表格 1(表格后紧跟下一段文字,连排不留空白)
- 第 3 页起:考点解析引导句 + 表格 2 自然续排
- 最后一页(新起一页):考法提醒 5 条 + 话题标签 + 固定引流段
内容形式铁律:图表优先。讲稿里现成的对比表/汇总表/分类表(如三/四/五要素说、5 大规律、7 大原则、评价分类),一律整理成表格放进帖子,正文只留简短引导句和结论句,不用大段纯文字罗列。
表格版式铁律:列宽列高必须随内容自适应(脚本已按 WPS 调校效果固化:autofit 自适应、单元格垂直居中、表头重复、单元格上下边距 0 左右 108)。表格和后续文字必须连排,正文不许有强制分页,只有考法提醒页保留分页。
视觉沿用领导指定的体育教师编底版:封面深蓝底图、浅青标题字、页眉「体师备考知识库」、页脚装饰,全部不许改。
关键路径(Pre-flight 必查)
| 路径 | 说明 |
|---|---|
/Users/shawn/Desktop/AI工作区/02-Areas/教师编体育学科培训/笔试/01_备课资料/讲义与笔记/讲义库举一反三讲稿/ |
讲稿源(只读,18 模块、128 篇,不含 _INDEX.md) |
/Users/shawn/Desktop/AI工作区/01-Projects/自媒体内容库-持续项目/体育教师编/模板文件/1 体育笔试每日一练-帖子内容编辑模板.docx |
源模板(只读) |
/Users/shawn/Desktop/AI工作区/01-Projects/自媒体内容库-持续项目/体育教师编/desktop-attachments/1 体育笔试每日一练-帖子内容编辑模板.docx |
脚本写入目标 |
/Users/shawn/Desktop/AI工作区/01-Projects/自媒体内容库-持续项目/体育教师编/scripts/fill_sports_daily_post.py |
填充脚本(项目镜像) |
本 skill 的 scripts/fill_sports_daily_post.py |
填充脚本(自带源,随 skill 分发) |
/Users/shawn/Desktop/AI工作区/01-Projects/自媒体内容库-持续项目/体育教师编/scripts/progress_sports.json |
选题进度 |
/Users/shawn/Desktop/AI工作区/01-Projects/自媒体内容库-持续项目/体育教师编/scripts/_snapshots_sports/ |
快照(回退用) |
项目镜像与 skill 自带脚本逐字节一致,二选一运行皆可。若使用 skill 自带脚本,需先设置
SPORTS_DAILY_WORKSPACE指向真实项目根(体育教师编的父目录,即.../01-Projects/自媒体内容库-持续项目);脚本会据此定位模板、进度与输出目录。未设置时默认取脚本所在目录的父目录,通常只适用于 skill 自带脚本的隔离自测。
Python:优先用当前会话提供的捆绑 Python(已装 python-docx 1.2.0);若运行时缺失,可临时装到 /tmp 环境(python3 -m venv /tmp/tyt_venv && /tmp/tyt_venv/bin/python -m pip install python-docx,需要联网授权),只用临时环境,不许改系统。系统 python3 默认没有 docx,别直接用它。
开始前只读检查关键路径,允许工作副本、快照目录不存在。源模板须有正文 17 段、图片 2 张、封面文本框 2 个;今日考点|{TITLE}、{ANSWER}、{POINT_1} 至 {POINT_4}、{TIP_1} 至 {TIP_5}、{HASHTAGS} 与固定引流段各 1 处;唯一强制分页位于考法提醒标题。任一项不符,报告期望值和路径后 🔴 STOP,不运行脚本。
工作流(6 步)
步骤 1:选题
- 先读
scripts/progress_sports.json。确认它是合法 JSON,done是无重复的相对路径列表,last_done为空或存在于done,且记录的源文件均能找到。任一项不满足,执行下文的 🔴 STOP,不得选题或写文件。 - 领导指定某篇时,按模块、文件名或篇号定位。若命中 0 篇或多篇,列出候选并 🔴 STOP;若唯一命中但路径已在
done,报告已完成路径并 🔴 STOP,不得重复出帖。仅当该路径等于last_done时附上last_date,否则注明历史完成日期未记录。 - 领导没指定时,扫描数字开头的模块目录,先按目录名前导数字升序,再按讲稿文件名前导数字升序、完整文件名升序排列,排除
_INDEX.md,选择第一篇相对路径不在done的讲稿。last_done只用于审计记录,不作为顺延起点。 done是自动选题的唯一完成记录。领导说明进度有漏记时,先补齐记录再选题;不得根据last_done、文件修改时间或猜测补做历史。- 没有未完成讲稿时,报告 128 篇全部完成并 🔴 STOP。
讲稿源始终只读,不得为方便选题而重命名、移动或修改。
步骤 2:从讲稿抽核心知识点
- 通读 frontmatter + 「一、考点前瞻」+ 「二、考点解析」。
- 先定本篇唯一考点,一句话写进
title。领导已指定子考点时直接采用;否则依次优先选择讲稿明确标记为高频/易错/考法提醒、能用 1-2 张表完整呈现的考点,同优先级时取正文中最先出现者。没有任何考点能满足表格规格时,说明原因并 🔴 STOP,不得把无关内容拼成表格。 - 题干、答案、引导句、表格、考法提醒必须全部围绕这同一个考点,不许题干考 A、解析讲 B。
- 核心事实(数字、年份、人名、名称、分类)必须与讲稿一致,禁止编造;讲稿没写的,不补。
- 同一事实在讲稿内出现互相冲突的数字、名称或分类时,引用冲突位置并 🔴 STOP,请领导裁决;不得静默任选一处、擅自纠正或联网补答案。
- 引用讲稿内容时直接写引号,禁止加「讲义原文:」「原文:」「教材:」之类前缀。
步骤 3:出题 + 写内容
按下面 schema 生成 scripts/pending_sports_daily.json:
{
"title": "本篇知识点标题(≤20 字)",
"module": "模块名(如:运动解剖学)",
"question": "单选题题干,≤60 字,紧扣本篇知识点",
"options": ["选项A", "选项B", "选项C", "选项D"],
"answer": "答案:X。一句解析(忠于讲稿)",
"points": ["引导句1(≤120字)", "引导句2(≤120字)", "引导句3(≤120字)", "引导句4(≤120字)"],
"tables": [
{"header": ["列1", "列2", "列3"], "rows": [["单元格", "单元格", "单元格"], ["单元格", "单元格", "单元格"]]},
{"header": ["列1", "列2"], "rows": [["单元格", "单元格"]]}
],
"exam_tips": ["考法提醒1", "考法提醒2", "考法提醒3", "考法提醒4", "考法提醒5"],
"cta": "关注我,每天一个体育笔试知识点,帮你一次上岸",
"hashtags": "#教师编 #体育教师 #体育笔试 #每天一个知识点 #一次上岸"
}
硬性要求:
question≤60 字(超了脚本会拒绝)。points恰好 4 段,每段 ≤120 字,只写引导句/结论句,不写「第一/第二/第三」机械开头;核心知识全部放进表格。tables1-2 张:每张含header(2-5 列)和rows(1-8 行),单元格全部非空。表格内容必须来自讲稿的表格、对比或分类,第一张放第 2 页(点在 points 第 2 段后),第二张放第 3 页(点在 points 第 4 段后)。exam_tips恰好 5 条:优先取讲稿里「🔥 考法提醒/易错/高频」原文要点;讲稿没有「考法提醒」字样的,从考点前瞻+考点解析中的高频/易错标注提炼,不许凭空编。cta必须与固定引流文案一字不差(脚本会校验)。hashtags默认用上面 5 个标签;领导另有要求才改。- 答案放正文开头揭晓(封面只出题,不放答案)。
步骤 4:去 AI 味儿(必跑)
触发 human-writing skill,对 points、exam_tips 及 answer 中固定答案前缀之后的解析句重写。若 human-writing 不可用,🔴 STOP,不得静默降级。硬禁令:
answer必须保留答案:X。固定前缀;这个冒号是唯一例外。其余正文中的冒号、破折号(——)清零,改逗号或句号。- 禁「体现/彰显/凸显/值得注意的是/此外/综上所述」等 AI 腔。
- 禁三段式机械排比;读起来像人话、像老师在讲。
步骤 5:跑脚本 + 验证 + 收尾
cd "/Users/shawn/Desktop/AI工作区/01-Projects/自媒体内容库-持续项目"
python3 体育教师编/scripts/fill_sports_daily_post.py
只有输出同时出现 ✅ 全部通过 和 ✅ pending_sports_daily.json 已删除,才算生成成功。
成功后再更新 scripts/progress_sports.json:把本篇相对路径追加进 done,将同一路径写入 last_done,将上海时区当天日期按 YYYY-MM-DD 写入 last_date。重新读取 JSON,确认三处均命中。脚本失败时不得更新进度;DOCX 已成功但进度写入失败时,只修进度并复核,不得重跑填充脚本。
向领导报告:题目、模块、知识点标题、输出 docx 路径、验证通过项(段数 17 / 图片 2 / 文本框镜像 2 / 分页符 / 占位符零残留 / 引流段未动)。
步骤 6:上传到 ima 知识库(领导要求时执行)
生成 DOCX 后,如需同步到 ima 知识库「A-0 每日一个知识点(笔试)」,按以下流程(调用 ima-skill,凭证在 ~/.config/ima/):
- 生成 md 版:把本期内容整理成 markdown(标题、模块、题目、答案、考点解析表格、考法提醒、话题标签),保存到
体育教师编/每日知识点md/YYYY-MM-DD-标题.md。 - 定位知识库:
search_knowledge_base(query "SHTr")→ 取「SHTr | 体师知识库」的kb_id。 - 定位文件夹:
get_knowledge_list逐级进入「1 笔试(学科知识 教综知识)持续更新...」→「A-0 每日一个知识点(笔试)」,取目标folder_id。 - 创建笔记:notes 模块
import_doc(content_format=1,content 为 md 全文)→ 得note_id。 - 加入知识库:
add_knowledge(media_type=11,note_info.content_id=note_id,knowledge_base_id,folder_id)。 - 校验:
add_knowledge返回code=0即成功;向领导报告笔记标题与所在文件夹。
笔记写入前必须校验 content 为合法 UTF-8;
title用「每天一个体育笔试知识点|{知识点标题}」。
失败恢复
| 触发条件 | 一线处理 | 仍失败时的兜底 |
|---|---|---|
任一关键路径缺失、源模板契约不符或 Python 不能导入 docx |
🔴 STOP,报告缺失路径、实际数量或原始报错,不开始写入 | Python 缺包时仅在获准后使用 /tmp/tyt_venv 安装;模板不符时交由模板维护者恢复,不改脚本绕过 |
progress_sports.json 缺失、损坏或记录自相矛盾 |
🔴 STOP,依据已确认的发布记录修复进度 | 无权威记录时请领导确认;不得新建空进度后继续 |
| 指定讲稿重复、定位不唯一或全库已完成 | 🔴 STOP,报告已完成项或列出候选 | 请领导改选;不得覆盖、重复追加或自行换题 |
| 讲稿事实冲突,或找不到能满足表格规格的单一考点 | 🔴 STOP,引用具体冲突或缺口 | 等领导裁决;不得凭外部知识补齐 |
| JSON 字段、字数或表格校验失败 | 根据原始错误只修 pending_sports_daily.json,再重跑 |
不改脚本阈值,不删字段,不用 ` |
| 提示“表格锚点未唯一命中” | 让 points[1]、points[3] 分别成为正文中的唯一文本;即使只有 1 张表,两处也都要唯一 |
若源模板占位符异常,🔴 STOP 并报告;不得修改源模板 |
| 写入或自动验证失败 | 先确认终端是否打印“已回滚工作副本到快照”;已回滚则不要再手工复制 | 自动回滚失败时复制本次日志明确指出的快照;首次运行无快照时,用只读源模板重置工作副本 |
失败后找不到 pending_sports_daily.json |
🔴 STOP,保留现场并核对完整日志 | 不从半成品 DOCX 反推 JSON,不继续更新进度 |
| DOCX 成功但进度写入失败 | 保留成功 DOCX,只修复并复核进度 JSON | 不重跑填充脚本,避免重复覆盖和制造误导快照 |
[KEEP] 只是终端提示,表示 JSON 未删除;它不会写进 JSON 文件。
🔴 STOP 与反例黑名单
- 不把
last_done当自动续题游标;默认始终补done中全库第一篇缺口。 - 不在进度缺失、重复选题、定位不唯一、源材料冲突或 human-writing 不可用时继续写文件。
- 不修改讲稿源、源模板、品牌底版、固定引流段或脚本校验阈值。
- 不把脚本已完成的自动回滚再覆盖成目录里笼统的“最新快照”。
- 不在脚本成功前更新进度,也不为补写进度而重跑成功的填充脚本。
- 不绕过校验、不静默降级、不用外部常识修补讲稿没有给出的事实。
模板与脚本铁律
- 源模板、底版、讲稿源只读;只允许新增/覆盖
desktop-attachments/工作副本与scripts/下自己的文件。 - 脚本每次跑前自动快照到
_snapshots_sports/(保留最近 10),写入或验证失败时会自动恢复本轮快照。仅当日志显示自动恢复失败时,才按“失败恢复”表手工处理。 - 固定引流段、封面大标题、页眉页脚、封面背景不许改;脚本验证发现改动会失败。
- 脚本验证失败时 JSON 会原样保留,终端打印
[KEEP]提示;按错误修 JSON 重跑,不许绕过校验、不许|| true、不许改脚本阈值。 - 同篇讲稿不许重复出帖;重复会破坏「每天一个」的连续感。
验证清单(每次跑完必查)
□ 段数 = 17
□ 图片 = 2(封面底图 + 文本框)
□ 封面文本框 2 处镜像内容一致
□ 封面 = 大标题 + 【模块】 + 题干 + ABCD,无答案
□ 强制分页仅 1 处(考法提醒页),表格与后续文字连排、第 3 段引导句无分页
□ 占位符零残留
□ 表格数 = JSON.tables 数量(1-2 张),表头与单元格全部命中
□ 每张表 tblLayout=autofit、tblW=auto(列宽列高自适应)
□ points 每段 ≤120 字,核心信息在表格里
□ 固定引流段原样保留
□ 答案、4 段解析、5 条考法提醒、话题标签全部命中
□ 脚本两条成功提示均出现后,progress_sports.json 才更新且回读通过
□ 已完成讲稿未重复,讲稿内部无待裁决事实冲突
□ human-writing 已实际执行,无静默降级
□ (若上传)ima 笔记已创建并加入「A-0 每日一个知识点(笔试)」,add_knowledge 返回 code=0