# PE-bishi-jd-daily

> 自动生成体育笔试简答题每日一练小红书帖子 docx。从讲义库举一反三讲稿选题，沿用 PE-bishi-daily 品牌模板与生成条件，首页一道简答题，正文参考答案、答题要点表格和考法提醒，可按要求上传 ima。触发词：体育笔试简答题每日一练、每天一个体育笔试简答题知识点、出一期体育笔试简答题。单选题版本使用 PE-bishi-daily。

- Skill: `rshawn0307-maker/pe-bishi-jd-daily` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add rshawn0307-maker/pe-bishi-jd-daily`
- Raw SKILL.md: https://api.skillmd.com/api/skills/rshawn0307-maker/pe-bishi-jd-daily/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: rshawn0307-maker (https://skillmd.com/u/rshawn0307-maker)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/rshawn0307-maker/pe-bishi-jd-daily

---


# 每天一个体育笔试知识点 · 简答题版

基于 PE-bishi-daily，内容基本元素、讲稿来源、选题规则、生成门槛与品牌版式保持一致；题型改为简答题，解析着重帮助读者答全要点、写清关键词与避免漏答。名称沿用用户指定的 `PE-bishi-jd-daily`。

## 产物与不可变项

- 首页仍为大标题「每天一个体育笔试知识点」+【模块】+ 一道简答题，不含 ABCD、参考答案或答案提示。
- 第 2 页为今日考点标题、参考答案、引导句与表格 1；后续解析与表格 2 自然续排。表格分别紧跟 `points[1]`、`points[3]`，不为凑页数强制分页。
- 最后一页新起一页，保留考法提醒 5 条、话题标签、固定引流段。
- 图表优先。核心信息来自讲稿已有对比、分类、汇总或表格，整理为 1–2 张表，正文只保留简短引导句和结论句。优先用「答题要点｜展开表述」等列帮助组织简答，不拼接无关知识。
- 封面深蓝底图、浅青标题字、页眉「体师备考知识库」、页脚装饰、固定引流段均不改。脚本只在工作副本的两个文本框镜像中删除原选项段，保留标题、模块和题干原样式。源模板仍按单选题版原契约检查，不能编辑源模板来适配。
- 表格列宽列高自适应、单元格垂直居中、重复表头、单元格上下边距 0／左右 108。只有「考法提醒」标题保留强制分页。

## Pre-flight

本机默认项目根为 `/Users/shawn/Desktop/AI工作区/01-Projects/自媒体内容库-持续项目/体育教师编`。下文路径相对该目录；迁移到其他机器时先确认真实路径，不创建替代素材。

| 路径 | 用途 |
| --- | --- |
| `/Users/shawn/Desktop/AI工作区/02-Areas/教师编体育学科培训/笔试/01_备课资料/讲义与笔记/讲义库举一反三讲稿/` | 只读讲稿源，原库 18 模块、128 篇，不含 `_INDEX.md` |
| `模板文件/1 体育笔试每日一练-帖子内容编辑模板.docx` | 只读源模板，与单选题版共用 |
| `desktop-attachments/1 体育笔试简答题每日一练-帖子内容编辑模板.docx` | 简答题版输出工作副本 |
| 本 skill 的 `scripts/fill_sports_jd_daily_post.py` | 自带填充脚本，不依赖原技能目录 |
| `scripts/pending_sports_jd_daily.json` | 本期待填充内容 |
| `scripts/progress_sports_jd.json` | 简答题版独立进度 |
| `scripts/_snapshots_sports_jd/` | 简答题版历史输出快照，保留最近 10 份 |

使用自带脚本时，必须设置 `SPORTS_JD_DAILY_WORKSPACE` 指向**体育教师编目录本身**，不是它的父目录。未设置时脚本默认取自身所在 `scripts/` 的父目录，仅适用于那里已有模板和运行数据的隔离测试。

先只读检查路径，允许输出副本与快照目录不存在。Python 优先使用会话提供的捆绑运行时，先确认 `import docx` 成功。运行时缺包则停止，获准后仅在临时虚拟环境安装 `python-docx`，不改系统环境。

源模板须通过自带脚本 `validate_source_template()` 的只读检查，期望如下，任一不符即报告路径、实际值和期望值并停止。

- 正文顶层段落 17、drawing 2、文本框镜像 2、表格 0。
- 两个镜像均为 7 段，依次是固定大标题、`【{MODULE}】`、`{QUESTION}`、`A．{OPTION_A}` 至 `D．{OPTION_D}`。
- `今日考点｜{TITLE}`、`{ANSWER}`、`{POINT_1}` 至 `{POINT_4}`、`{TIP_1}` 至 `{TIP_5}`、`{HASHTAGS}` 各一处，固定引流段一处。
- 唯一有效 `pageBreakBefore` 位于「考法提醒」，没有 `w:br type=page`。

## 1. 选题

1. 先读独立进度 `scripts/progress_sports_jd.json`。须为合法 JSON 对象，`done` 为无重复的讲稿相对路径列表，`last_done` 为空或在 `done` 中，所有记录的源文件均存在。缺失、损坏或矛盾时停止，不擅自创建空进度后继续；依据用户确认的发布记录修复。首次启用也须确认简答题版历史情况，再初始化 `{"done": [], "last_done": null, "last_date": null}`。
2. 用户指定讲稿时按模块、文件名或篇号定位。0 篇或多篇则列出候选并停止；唯一命中但已在 `done` 也停止。仅当命中 `last_done` 时报告 `last_date`，否则注明历史日期未记录。
3. 未指定时，扫描数字开头的模块目录，按目录名前导数字、讲稿文件名前导数字、完整文件名依次升序，排除 `_INDEX.md`，选择全库第一篇不在 `done` 的讲稿。`last_done` 仅用于审计，不作为续题游标。
4. `done` 是该版本唯一完成记录，用户说明漏记时先补记录再选题，不根据修改时间或猜测补历史。简答题版不读写单选题版 `progress_sports.json`；同篇讲稿可分别用于两种题型，但在简答题版内部不能重复。
5. 无未完成讲稿则报告全库完成及实际扫描数量后停止。讲稿始终只读，不重命名、移动或修改。

## 2. 抽取单一考点

通读 frontmatter、「一、考点前瞻」「二、考点解析」。用户已指定子考点就采用；否则优先选择讲稿明确标记为高频、易错、考法提醒且能由 1–2 张表完整呈现的考点，同优先级取正文最先出现者。所选考点须能由讲稿支持一道范围清楚的简答题，不能满足时报告缺口并停止。

题干、参考答案、引导句、表格、5 条提醒都围绕这个唯一考点。核心事实，包括数字、年份、人名、术语、分类与要点数量，必须与讲稿一致；讲稿没有的不补。内部出现冲突时引用具体位置并停止，请用户裁决，不静默纠正或联网补答案。引用时直接加引号，不加「讲义原文」「教材」等前缀。

## 3. 出简答题与写内容

生成 `scripts/pending_sports_jd_daily.json`，字段如下。示例中的说明文字是字段要求，不能原样填入成稿。

```json
{
  "title": "本篇知识点标题",
  "module": "模块名",
  "question": "一道范围明确的简答题题干",
  "answer": "参考答案：依据讲稿完整作答，可用①②等分点并包含多句。",
  "points": ["引导句1", "引导句2", "引导句3", "结论句4"],
  "tables": [
    {"header": ["答题要点", "展开表述"], "rows": [["讲稿中的要点", "对应解释"]]}
  ],
  "exam_tips": ["考法提醒1", "考法提醒2", "考法提醒3", "考法提醒4", "考法提醒5"],
  "cta": "关注我，每天一个体育笔试知识点，帮你一次上岸",
  "hashtags": "#教师编 #体育教师 #体育笔试 #每天一个知识点 #一次上岸"
}
```

硬性要求与题型差异如下。

- `title` ≤20 字，`question` ≤60 字。采用「简述」「简要说明」等适合材料的问法，明确答什么、答到什么范围；不出单选、判断或带选项题，不把多道独立题塞进首页。
- **没有 `options` 字段**，脚本拒绝带该字段的输入。
- `answer` 必须以 `参考答案：` 开头，之后是完整、可直接学习的作答，允许多句与①②等分点，保持一个段落。不再使用「答案：A」或一句选项辨析，也不只写「见下表」。答案须逐项回应题干，完整覆盖讲稿支持的要点；表格再帮助识记、解释和区分，不用长篇正文重复表格。
- 不凭空编造「本题 X 分」「每点 X 分」、官方评分标准或必考概率。可称「答题要点」「关键词」「易漏点」，不得伪装为官方阅卷标准。
- `points` 恰好 4 段，每段 ≤120 字。只写引导／结论，避免「第一／第二／第三」机械开头；核心知识放表格。
- `tables` 1–2 张，每张 2–5 列、1–8 行数据，所有单元格为非空字符串，行列数一致。来源须为讲稿已有表格、对比或分类。表格 1 插在 `points[1]` 后，表格 2 插在 `points[3]` 后，通过源占位符定位，不依赖引导句文本是否重复。
- `exam_tips` 恰好 5 条，优先提取讲稿「🔥 考法提醒／易错／高频」要点；没有「考法提醒」字样时，从考点前瞻、考点解析的高频／易错标注提炼。改写为本题相关的答全要点、术语准确、展开程度或易漏易混提醒，必须有材料依据，不凑出无来源的经验。
- `cta` 与固定文案一字不差；默认标签保持示例中的 5 个，用户指定才改。封面不揭晓答案。

## 4. 去 AI 味儿与内容复核

必须实际使用可用的 `human-writing` skill，重写 `points`、`exam_tips` 及 `answer` 固定前缀后的内容。找不到该 skill 则停止，不静默降级。

- 保留 `参考答案：` 前缀，该中文冒号是唯一例外。其余可见内容中的中文／ASCII 冒号与破折号（——）清零，改为逗号或句号。
- 禁「体现／彰显／凸显／值得注意的是／此外／综上所述」等 AI 腔、三段式机械排比，读起来像老师在讲。
- 重写后重新对照题干与讲稿，逐项核对答案要点、专业术语、事实数量、表格和提醒是否一致；不得为了口语化省掉答案关键点，也不得把简答题分点本身误删为“机械排比”。

## 5. 运行、验证与进度

在已确认的 Python 环境中执行本 skill 的脚本，例如从 skill 根目录运行：

```bash
SPORTS_JD_DAILY_WORKSPACE="/Users/shawn/Desktop/AI工作区/01-Projects/自媒体内容库-持续项目/体育教师编" \
  python3 scripts/fill_sports_jd_daily_post.py
```

脚本读取 JSON 并预检源模板，复制到输出目录内的临时文件，写封面和正文，自动验证通过后才快照旧输出并原子替换。构建／验证失败时旧输出未动，临时文件清理，JSON 原样保留；不需要把旧输出手工“回滚”一次。快照仅用于恢复本轮提交前的输出，不盲选所谓最新快照。

只有同时出现 `✅ 全部通过` 与 `✅ pending_sports_jd_daily.json 已删除` 才算本轮生成成功。然后把本篇相对路径追加到独立进度 `done`、写入 `last_done`，按上海时区当天日期 `YYYY-MM-DD` 写 `last_date`，回读确认三处一致且无重复。脚本不会自动更新进度。

交付前检查：

- 顶层正文 17 段、drawing 2、文本框镜像 2；两个镜像均仅含大标题、模块和简答题 3 段，无 ABCD、答案或占位符。
- 唯一强制分页在考法提醒页，表格和后续正文连排。
- 表格数量、行列、全部文本与 JSON 一致，列宽／行高自适应，垂直居中，表头重复。
- 参考答案、4 段解析、5 条提醒、标签全部命中，固定引流段未动。
- 源模板未改，品牌图片、页眉页脚保持不变；人工核对完整答案与题目一致、正文不漏关键点。
- 双成功提示后才更新进度并回读，已完成讲稿无重复，讲稿无待裁决冲突，human-writing 已实际执行。

向用户报告题目、模块、知识点、输出 DOCX 路径与验证结果。另有隔离回归测试，维护脚本时可运行：

```bash
SPORTS_JD_TEST_TEMPLATE="/实际路径/1 体育笔试每日一练-帖子内容编辑模板.docx" \
  python3 scripts/test_fill_sports_jd_daily_post.py
```

测试仅将只读源模板复制到临时目录，不读写真实待生成内容、进度和输出。

## 6. 上传 ima（仅用户要求时）

成功生成后，使用 `ima-skill`，凭证沿用 `~/.config/ima/`，不写入本 skill。保留原知识库与文件夹。

1. 将标题、模块、简答题、完整参考答案、解析表格、5 条提醒与标签整理为合法 UTF-8 Markdown，保存到 `每日简答题知识点md/YYYY-MM-DD-标题.md`。
2. `search_knowledge_base` 查询 `SHTr`，定位「SHTr | 体师知识库」的 `kb_id`。
3. `get_knowledge_list` 逐级定位「1 笔试（学科知识 教综知识）持续更新...」→「A-0 每日一个知识点（笔试）」，取得 `folder_id`。
4. notes `import_doc`，`content_format=1`、content 为全文，标题为「每天一个体育笔试知识点｜简答题｜{知识点标题}」，获得 `note_id`。
5. `add_knowledge` 使用 `media_type=11`、`note_info.content_id=note_id` 及目标知识库、文件夹 ID。只有返回 `code=0` 才报告已加入该文件夹。

## 失败恢复

| 情况 | 处理 |
| --- | --- |
| 路径、源模板契约或 Python 不满足 | 报告路径、实际值或原始错误并停止，不改模板或校验阈值绕过 |
| 进度缺失、损坏、矛盾，指定重复／不唯一或全库完成 | 停止，依已确认发布记录修复或由用户另选，不猜测历史 |
| 讲稿冲突、无法围绕单一考点满足表格／简答要求、human-writing 不可用 | 报告证据或缺口并停止，不联网补材料事实 |
| JSON 字段、字数、表格或题型校验失败 | 仅按原始错误修 pending 后重跑，不改脚本阈值、不用绕过命令 |
| 表格源占位符未唯一命中 | 核对源模板契约后停止，交由模板维护者处理；现行脚本不靠引导句唯一性定位 |
| 构建、验证或原子替换失败 | 检查「旧工作副本未改动」或「首次运行失败，未留下半成品工作副本」，保留 JSON 并排查。临时文件清理失败时只处理日志指出的临时文件 |
| DOCX 已提交但 JSON 删除失败（退出码 2） | 保留成功 DOCX，只处理该 pending、核对 DOCX 与待写内容一致后完成收尾，再更新进度，禁止重跑填充 |
| DOCX 成功但进度写入失败 | 只修并回读进度，禁止重跑成功的填充脚本 |
| 失败后 pending 丢失 | 保留现场，核对日志并停止，不从半成品反推 JSON |

源模板、品牌底版与讲稿源只读；仅写自己的简答题工作副本、pending、进度和快照，以及用户要求上传时的 Markdown。不得触碰单选题版输出和状态。`[KEEP]` 是终端提示，不是 JSON 字段。

