# Daily Bookcast

> 把用户给出的书名转化为一篇约 6900 至 10600 个中文字符、有故事感、信息密度高、适合直接朗读或 TTS 的长篇中文听书逐字稿。用于用户明确调用“每天听本书”或 $daily-bookcast，或者要求讲一本书、解读一本书、写听书稿、提炼某本书的核心内容并希望听起来生动连贯时。

- Skill: `godgod126/daily-bookcast` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add godgod126/daily-bookcast`
- Raw SKILL.md: https://api.skillmd.com/api/skills/godgod126/daily-bookcast/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: godgod126 (https://skillmd.com/u/godgod126)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/godgod126/daily-bookcast

---


# 每天听本书

把一本书讲成可以让人持续听下去的中文逐字稿。最终回复只交付正文，不展示研究过程、提纲、来源、评分或解释。

## 三块有界成稿，八分钟硬上限

从收到书名到交付最终正文，第 440 秒是正常正文停止点，第 455 秒是正文绝对封口，第 475 秒是 `finish` 启动硬门，墙钟硬上限为 480 秒。正文用三个内容调用完成，第三块同时写完主线和收束；两次中间 `checkpoint` 只报告进度、缺口和风险，不会因迟到几秒永久作废。第 440 秒后不得发起新的完整内容块，第 455 秒后正文文件不得变化；第 475 秒后尚未启动的 `finish` 只能留下失败证据。把速度建立在并行取证、减少往返和取舍次级材料上，不能靠省略事实核验或编造细节提速，也不能把整篇长稿塞进一个不可中断的工具调用。

收到请求后立即记录 UTC `started_at`。读取本 Skill 后的第一项操作，是用一个可用的 Python 3 解释器运行 [runtime_guard.py](scripts/runtime_guard.py)：

`python scripts/runtime_guard.py start <runtime-state.json> --started-at <started_at>`

`start` 成功就视为解释器与脚本预检完成，不再额外运行 `finish --help` 或其他预检命令。Windows 上优先尝试 `py -3`；失败后立即使用 bundled Python，不能等到末尾才寻找解释器。

1. 前 40 秒：确认书籍，在一批并行调用中选择三到五个信息密度最高的合法来源，建立最小充分事实与概念证据表。停止低价值、重复和穷尽式搜索。
2. 第 40 至 50 秒：锁定中心问题、题材轨道、覆盖地图、两到四个主体部分和三个生产块。先决定删什么，并预设约十六到二十四个自然重定位点。
3. 第 50 至 210 秒：写第一块，包含开场和主线起步；正常目标约 1650 至 1750 个非空白字符。落盘后立即运行第一项软进度检查。
4. 第一检查返回后至第 325 秒：写第二块，新增约 2450 至 2600 字，使累计达到约 4100 至 4350 字；随后直接运行第二项软进度检查。
5. 第二检查返回后至第 440 秒：根据机器报告的当前字符数，一次写完第三块、全部剩余主线、必要边界和约 450 至 600 字的完整收束；正常结果约 7000 至 7150 字。第三块落盘后不再运行中间 checkpoint，直接调用一次 `finish`。
6. 第 440 至 455 秒：禁止发起新的完整内容块。只允许已经在运行的第三块返回，或在缺口很小且材料已经核实时做一次受控补足；不得联网、增加新案例、作者履历或书外应用。第 455 秒正文绝对封口。
7. 第 455 至 475 秒：禁止正文变化，立即启动一次原子 `finish`，完成最终计数、格式检查和元数据写入。第 475 秒仍未启动时只能留下失败证据。
8. 第 475 至 480 秒：只允许已经启动的 `finish` 完成；正文仍不合格时如实失败，不能跨过八分钟硬上限继续生成。

需要保存临时稿或交付文件时，正文使用三个主要内容写入调用。第一块明确规划约 1650 至 1750 个非空白字符和约 11 至 13 个自然段；第二块新增约 2450 至 2600 字和约 15 至 18 个自然段；第三块用第二项机器计数计算到 6900 字硬线的缺口，再增加约 100 至 250 字估长余量，一次完成剩余主线、必要边界和完整收束，使八分钟模式通常落在约 7000 至 7150 字，但交付仍不得超过 10600 字。绝不在单个 `apply_patch` 或其他工具参数中生成整篇长稿，也不能把前两块写得明显过短后把压力留给结尾。

前两块落盘后立即运行对应 `checkpoint`。它会完成实际字符计数、时间记录和状态写入，并返回 `on_track`、`warning`、`critical` 或 `hard_stop` 进度状态；迟到或字符不足是软警报，不会永久作废运行。正常路径不要先调用 `measure`，也不要在 checkpoint 前增加其他工具往返。依次运行：

`python scripts/runtime_guard.py checkpoint <runtime-state.json> <draft.txt> --stage 1`

`python scripts/runtime_guard.py checkpoint <runtime-state.json> <draft.txt> --stage 2`

第三块完成后不要运行 `measure` 或新的 checkpoint，直接运行：

`python scripts/runtime_guard.py finish <runtime-state.json> <generation-meta.json> --transcript <draft.txt> --title "书名"`

两个 `checkpoint` 会把实际字符数、已用时间、缺口和安全余量写入状态文件。出现 `critical` 时，不重试小缺口，也不新增检索；立即删除次级案例、作者履历、书外应用和重复总结，把已经核实的中心因果链、题材最小证据载荷、必要边界和结尾合并进剩余块。`measure` 只保留给计时运行之外的人工排障，不进入正常生成路径。`finish` 会拒绝第 455 秒后修改的正文、第 475 秒后才启动的终检，以及任何超过 480 秒的结果。

`start` 已把全部绝对截止时间写进状态文件，两个 checkpoint 和 `finish` 也都会返回已用时间。正常路径不要在研究、提纲、块间或最终提交前例行运行 `runtime_guard.py status`。只有外部工具异常返回、当前阶段确实无法判断时才允许运行一次 `status`，随后立即继续；不得用它制造新的轮询。使用以下原子命令检查正文并记录完成时间，避免检查成功后再产生额外往返：

`python scripts/runtime_guard.py finish <runtime-state.json> <generation-meta.json> --transcript <draft.txt> --title "书名"`

如果工具延迟挤占预算，立即停止新检索，删掉证据不足的精确细节、次级案例、作者履历和书外应用，使用已经核实的材料完成靠近篇幅下限的完整稿件。第 440 秒后不再发起完整内容块，第 455 秒正文绝对封口；不得因为临近时限而输出半篇、占位符、未核实断言、省略结局或跨过 480 秒继续扩写。

## 工作流程

### 一、确认书籍

1. 从请求中提取书名、作者、版本和用户特别关注的方向。
2. 判断是否存在会改变内容的同名书或版本歧义。只有确实无法可靠判断时，提出一个简短澄清问题并停止；其余情况直接继续。
3. 不声称读过没有访问到的原书，不把模型记忆当作事实证据。

### 二、先研究，再写作

1. 阅读 [research-and-fact-checking.md](references/research-and-fact-checking.md)，建立不出现在最终正文中的事实底稿。
2. 使用当前可用的搜索、浏览或资料读取工具核对书名、作者、体裁、核心结构、关键论点或情节、代表案例以及必要的外部评价。研究必须服从八分钟预算，优先高价值来源，不做穷尽检索。只发起一批并行检索，尽量取得三到五个互补来源，不把完整 HTML 或巨大元数据下载到输出目录。单个来源出现 429、Cloudflare、登录墙、空响应或超时后最多更换一次；替代来源仍失败就删去依赖它的细节并继续。
3. 小说要核对人物关系、因果链和结局；非虚构作品要核对中心问题、论证路径、关键案例和作者结论。
4. 为每个准备写入正文的核心概念、关键案例、精确事实和作者结论绑定一条足以支持其具体含义的证据。目录和书目页只能证明作品身份与章节存在，不能证明概念定义、论证机制或推论。
5. 在事实底稿中建立题材最小证据载荷。经验研究型作品至少保留一项具名研究方法及结果、两个原书案例和一个研究边界；哲学或纯理论作品保留具名思想实验、文本论证或对话场景；历史传记保留直接导火索及至少三个来自不同章节的“所知、选择、代价、后果”节点，并为准备入稿的节点建立事实时间边；小说按关键阶段核对人物能力和状态变化。
6. 只为最可能造成一票否决的四到六项内容建立“高风险主张卡”：写清主体与对象、肯定或否定及增减方向、适用人群或技术范围、证据层级、创作或出版或故事年代，以及正文允许使用的确定程度。任何决定主线的“桥接主张”必须占用一张卡：包括从一个科学层级推到另一个层级、从相关推到机制或政策、从人物行为推到正式身份或动机，以及把只针对一个对象的拒答或判断扩展到多个对象。分别记录桥两端和连接本身的证据；两端各自成立不等于中间的“因此、必然、需要、证明、属于”已经成立。小说区分文本明示、角色推测和讲稿解释；科学与政策区分研究结果、作者推论、当前共识和争议。
7. 核心事实无法在研究时限内可靠核实时，降格为证据能够支持的概括，或删掉该事实。禁止用听起来合理的细节填空，也禁止把自己的现代应用写成作者原意。

### 三、选择叙事轨道

1. 必读 [style-core.md](references/style-core.md)。
2. 根据体裁读取 [genre-patterns.md](references/genre-patterns.md) 中对应的小说、思想型非虚构或历史传记轨道。混合型作品选择一个主轨道，再借用另一个轨道的局部方法。
3. 先写一句“这篇稿件要回答什么”，再选择两到四个真正推进答案的主体部分。默认使用三个部分，但不要为了凑数硬拆。
4. 为每一部分确定一个已核验的具体故事、场景、案例、研究现场或人物节点，以及它要解释的观点。让内容沿因果、疑问或冲突前进，不按目录逐章压缩；三个生产块各预放至少一个具体材料，不能把案例全部留到结尾。
5. 对照可靠目录做覆盖审计；小说再按关键阶段回放时间线。明确哪些内容进入主线、哪些合并、哪些省略，避免漏掉独立论证或把相隔事件写成同时发生。
6. 在第 40 秒停止研究，第 50 秒前锁定结构并开始第一块写作。除非发现会触发一票否决的身份或核心事实疑点，不再扩大检索。
7. 为正文预先分配字符：开场约 500 至 650 字，结尾约 450 至 600 字，其余内容分给两到四个主体部分，使八分钟模式总预算达到约 7000 至 7150 字。再按听觉顺序切成三个生产块：第一块约 1650 至 1750 字，第二块新增约 2450 至 2600 字并累计达到约 4100 至 4350 字，第三块一次完成剩余主线、必要边界和收束。生产块只是时间与字符控制单元，不等同于分部标题。

### 四、写成可听的长稿

1. 以“你好，欢迎每天听本书。今天为你解读的是《书名》。”或自然等价句开场，不虚构主播姓名、职业或亲历关系。
2. 在开场的前三到五个自然段里交代这本书为什么值得听、作者或作品的必要背景，以及接下来要解开的核心问题。
3. 用“第一部分”“第二部分”等独立纯文本行分部。每一部分先提出新问题或转折，再用场景、案例、解释和小结推进。
4. 合法范围为 6900 至 10600 个非空白字符；八分钟模式把最终目标设为约 7000 至 7150 字。第二块就要覆盖主线的大部分材料，第三块只承担剩余答案、必要边界和完整收束；不用重复、套话或泛泛感想注水。
5. 使用自然中文口语、正常中文标点和短中长句交替。优先说清“发生了什么、为什么、这意味着什么”，少用名词堆叠。
6. 把数字、概念和抽象理论放进具体语境。第一次出现陌生概念时立刻用一句白话解释，再给例子或类比。
7. 让具体材料承担主体论证，而不是只作开场点缀。经验研究型作品的研究现场、原书案例及其解释原则上占主体约三成五到五成，历史传记的具体人物、事件与选择约占主体一半；连续两段抽象解释后必须回到已核验材料。
8. 写每块前只重读该块涉及的高风险主张卡，逐项保持主体、否定词、比较方向、适用范围、确定程度和时间标签。写到跨层因果或身份归属时，必须同时检查连接本身的证据；若只能证明两端，改成“作者把二者联系起来”“一种解释认为”或“仍有争议”，不能自行补出必然关系。来源只支持角色推测、可能性或有限样本时，正文必须保留归属与“可能、似乎、在这项研究中”等边界词，不能升级成事实、因果或共识。
9. 写历史或传记的每块前，只回放本块计划节点和上一块尾节点；在同一次内容调用内按正文顺序核对相邻节点。节点时间回退时明确标记回叙；“接下来、随后、后来、此后”等前进型时间转场不得连接到更早或顺序未定的节点。第三块落盘前完成一次全稿时间线回放，包括所有跨块时间边；只使用事实底稿，不重新联网，也不新增工具往返。
10. 用真实的问题、反差、未解信息或因果转折聚拢注意力。不要连续使用空洞的“你可能会问”“这很重要”制造假悬念。
11. 结尾回收开场问题，压缩出两到四个真正值得记住的认识，并说明它们为什么与听众有关。不要突然结束，也不要另加行动清单。
12. 大约每两到四个自然段给一次自然的方向提示：回收刚得到的认识，再指出下一步要解释什么。全稿预留约十六到二十四个真正承担方向作用的重定位点，并在局部自然使用“不过”“所以”“接下来”“换句话说”等连接。轮换使用问题、因果、对比、时间定位和场景切换，不机械重复同一个词，也不在完稿后硬塞连接词。
13. 书外应用必须自然标明是“沿着这个机制继续看”得到的延伸，不能用“作者认为”把自己的推论归给作者。
14. 按三个生产块连续成稿。前两块落盘后直接运行软 `checkpoint`，用其返回的实际计数和 `pace` 规划下一块；不要先运行 `measure` 或例行 `status`。第三块依据第二项计数一次写足，落盘后直接运行一次 `finish`。块间只做剩余配额与材料取舍，不回头做整篇风格重写。
15. `checkpoint` 报告 `warning` 或 `critical` 时不重试几十字的小缺口，直接合并剩余计划并按“中心因果链、题材最小证据载荷、必要边界、完整结尾”的顺序保留内容；优先删除次级案例、作者履历、书外应用和重复总结。第 440 秒后不得发起新的完整内容块，第 455 秒后禁止正文变化。

### 五、校对后只交付正文

1. 阅读 [quality-gates.md](references/quality-gates.md)，逐项检查八个质量维度和一票否决项。
2. 每块落盘前完成该块高风险主张卡的语义反查；第三块写入调用内部再扫一遍全部四到六张卡，确认主体、否定、增减方向、范围、确定程度和时间标签没有漂移。再定位主线中的“因此、所以、必然、需要、证明、直接导致、属于、成员”等桥接词，确认桥接关系本身有证据，而不是只核过两端；历史传记同时核对全稿时间线回放和前进型时间转场。证据不足就保留作者归属与争议、明确标记回叙，或删掉连接。这个检查只使用事实底稿，不重新联网，第三块落盘后不得为这项检查增加一次工具往返。
3. 对每个核心概念做证据充分性反查，并确认题材最小证据载荷已经进入正文。来源只支持目录、有限样本、角色推测或某一干预层级时，删减或保留对应边界，不能扩大成概念定义、普遍因果或医学共识。
4. 删除提纲痕迹、引用标记、网址、Markdown、项目符号、脚注、免责声明、创作说明和“下面是稿件”等元话语。
5. 两项软进度检查完成且第三块落盘后，直接用以下原子命令同时完成最终计数、格式检查、计时和元数据写入；第三块后不再单独运行 `measure`、checkpoint 或格式检查：

   `python scripts/runtime_guard.py finish <runtime-state.json> <generation-meta.json> --transcript <draft.txt> --title "书名"`

   使用当前可用的 Python 3 解释器。如果 Windows 上的 `python` 指向 Microsoft Store 占位程序，先通过工作区依赖工具定位 bundled Python，再用其完整路径运行。

6. `finish` 返回格式失败且仍早于第 440 秒时，只允许一次针对 Markdown、网址、占位符、重复段落或其他明确硬错误的最小修正，再次运行同一命令。第 440 至 455 秒只允许处理已知小缺口或明确硬错误；第 455 秒后正文只读，篇幅不足或格式失败都如实留证。
7. 最终回复从问候语直接开始，只输出完整逐字稿。不要在正文前后加任何说明或代码块；只有 `finish` 写出 `passed: true`、`format_check_passed: true` 且总耗时不超过 480 秒时才视为完成。

## 不可退让的边界

- 不大段复制原书、出版社文案、书评或其他听书稿；用原创语言重新组织。
- 不伪造引语、数字、人物经历、情节、奖项或作者观点。
- 不绕过付费墙，不寻找或使用盗版全文。
- 不把所有书机械套成同一模板；结构必须服务于这本书的核心问题。
- 不模仿参考语料中的段落错位、占位符、平台广告、虚构主播身份和未经核验的断言。

