每天听本书
把一本书讲成可以让人持续听下去的中文逐字稿。最终回复只交付正文,不展示研究过程、提纲、来源、评分或解释。
三块有界成稿,八分钟硬上限
从收到书名到交付最终正文,第 440 秒是正常正文停止点,第 455 秒是正文绝对封口,第 475 秒是 finish 启动硬门,墙钟硬上限为 480 秒。正文用三个内容调用完成,第三块同时写完主线和收束;两次中间 checkpoint 只报告进度、缺口和风险,不会因迟到几秒永久作废。第 440 秒后不得发起新的完整内容块,第 455 秒后正文文件不得变化;第 475 秒后尚未启动的 finish 只能留下失败证据。把速度建立在并行取证、减少往返和取舍次级材料上,不能靠省略事实核验或编造细节提速,也不能把整篇长稿塞进一个不可中断的工具调用。
收到请求后立即记录 UTC started_at。读取本 Skill 后的第一项操作,是用一个可用的 Python 3 解释器运行 runtime_guard.py:
python scripts/runtime_guard.py start <runtime-state.json> --started-at <started_at>
start 成功就视为解释器与脚本预检完成,不再额外运行 finish --help 或其他预检命令。Windows 上优先尝试 py -3;失败后立即使用 bundled Python,不能等到末尾才寻找解释器。
- 前 40 秒:确认书籍,在一批并行调用中选择三到五个信息密度最高的合法来源,建立最小充分事实与概念证据表。停止低价值、重复和穷尽式搜索。
- 第 40 至 50 秒:锁定中心问题、题材轨道、覆盖地图、两到四个主体部分和三个生产块。先决定删什么,并预设约十六到二十四个自然重定位点。
- 第 50 至 210 秒:写第一块,包含开场和主线起步;正常目标约 1650 至 1750 个非空白字符。落盘后立即运行第一项软进度检查。
- 第一检查返回后至第 325 秒:写第二块,新增约 2450 至 2600 字,使累计达到约 4100 至 4350 字;随后直接运行第二项软进度检查。
- 第二检查返回后至第 440 秒:根据机器报告的当前字符数,一次写完第三块、全部剩余主线、必要边界和约 450 至 600 字的完整收束;正常结果约 7000 至 7150 字。第三块落盘后不再运行中间 checkpoint,直接调用一次
finish。 - 第 440 至 455 秒:禁止发起新的完整内容块。只允许已经在运行的第三块返回,或在缺口很小且材料已经核实时做一次受控补足;不得联网、增加新案例、作者履历或书外应用。第 455 秒正文绝对封口。
- 第 455 至 475 秒:禁止正文变化,立即启动一次原子
finish,完成最终计数、格式检查和元数据写入。第 475 秒仍未启动时只能留下失败证据。 - 第 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 秒继续扩写。
工作流程
一、确认书籍
- 从请求中提取书名、作者、版本和用户特别关注的方向。
- 判断是否存在会改变内容的同名书或版本歧义。只有确实无法可靠判断时,提出一个简短澄清问题并停止;其余情况直接继续。
- 不声称读过没有访问到的原书,不把模型记忆当作事实证据。
二、先研究,再写作
- 阅读 research-and-fact-checking.md,建立不出现在最终正文中的事实底稿。
- 使用当前可用的搜索、浏览或资料读取工具核对书名、作者、体裁、核心结构、关键论点或情节、代表案例以及必要的外部评价。研究必须服从八分钟预算,优先高价值来源,不做穷尽检索。只发起一批并行检索,尽量取得三到五个互补来源,不把完整 HTML 或巨大元数据下载到输出目录。单个来源出现 429、Cloudflare、登录墙、空响应或超时后最多更换一次;替代来源仍失败就删去依赖它的细节并继续。
- 小说要核对人物关系、因果链和结局;非虚构作品要核对中心问题、论证路径、关键案例和作者结论。
- 为每个准备写入正文的核心概念、关键案例、精确事实和作者结论绑定一条足以支持其具体含义的证据。目录和书目页只能证明作品身份与章节存在,不能证明概念定义、论证机制或推论。
- 在事实底稿中建立题材最小证据载荷。经验研究型作品至少保留一项具名研究方法及结果、两个原书案例和一个研究边界;哲学或纯理论作品保留具名思想实验、文本论证或对话场景;历史传记保留直接导火索及至少三个来自不同章节的“所知、选择、代价、后果”节点,并为准备入稿的节点建立事实时间边;小说按关键阶段核对人物能力和状态变化。
- 只为最可能造成一票否决的四到六项内容建立“高风险主张卡”:写清主体与对象、肯定或否定及增减方向、适用人群或技术范围、证据层级、创作或出版或故事年代,以及正文允许使用的确定程度。任何决定主线的“桥接主张”必须占用一张卡:包括从一个科学层级推到另一个层级、从相关推到机制或政策、从人物行为推到正式身份或动机,以及把只针对一个对象的拒答或判断扩展到多个对象。分别记录桥两端和连接本身的证据;两端各自成立不等于中间的“因此、必然、需要、证明、属于”已经成立。小说区分文本明示、角色推测和讲稿解释;科学与政策区分研究结果、作者推论、当前共识和争议。
- 核心事实无法在研究时限内可靠核实时,降格为证据能够支持的概括,或删掉该事实。禁止用听起来合理的细节填空,也禁止把自己的现代应用写成作者原意。
三、选择叙事轨道
- 必读 style-core.md。
- 根据体裁读取 genre-patterns.md 中对应的小说、思想型非虚构或历史传记轨道。混合型作品选择一个主轨道,再借用另一个轨道的局部方法。
- 先写一句“这篇稿件要回答什么”,再选择两到四个真正推进答案的主体部分。默认使用三个部分,但不要为了凑数硬拆。
- 为每一部分确定一个已核验的具体故事、场景、案例、研究现场或人物节点,以及它要解释的观点。让内容沿因果、疑问或冲突前进,不按目录逐章压缩;三个生产块各预放至少一个具体材料,不能把案例全部留到结尾。
- 对照可靠目录做覆盖审计;小说再按关键阶段回放时间线。明确哪些内容进入主线、哪些合并、哪些省略,避免漏掉独立论证或把相隔事件写成同时发生。
- 在第 40 秒停止研究,第 50 秒前锁定结构并开始第一块写作。除非发现会触发一票否决的身份或核心事实疑点,不再扩大检索。
- 为正文预先分配字符:开场约 500 至 650 字,结尾约 450 至 600 字,其余内容分给两到四个主体部分,使八分钟模式总预算达到约 7000 至 7150 字。再按听觉顺序切成三个生产块:第一块约 1650 至 1750 字,第二块新增约 2450 至 2600 字并累计达到约 4100 至 4350 字,第三块一次完成剩余主线、必要边界和收束。生产块只是时间与字符控制单元,不等同于分部标题。
四、写成可听的长稿
- 以“你好,欢迎每天听本书。今天为你解读的是《书名》。”或自然等价句开场,不虚构主播姓名、职业或亲历关系。
- 在开场的前三到五个自然段里交代这本书为什么值得听、作者或作品的必要背景,以及接下来要解开的核心问题。
- 用“第一部分”“第二部分”等独立纯文本行分部。每一部分先提出新问题或转折,再用场景、案例、解释和小结推进。
- 合法范围为 6900 至 10600 个非空白字符;八分钟模式把最终目标设为约 7000 至 7150 字。第二块就要覆盖主线的大部分材料,第三块只承担剩余答案、必要边界和完整收束;不用重复、套话或泛泛感想注水。
- 使用自然中文口语、正常中文标点和短中长句交替。优先说清“发生了什么、为什么、这意味着什么”,少用名词堆叠。
- 把数字、概念和抽象理论放进具体语境。第一次出现陌生概念时立刻用一句白话解释,再给例子或类比。
- 让具体材料承担主体论证,而不是只作开场点缀。经验研究型作品的研究现场、原书案例及其解释原则上占主体约三成五到五成,历史传记的具体人物、事件与选择约占主体一半;连续两段抽象解释后必须回到已核验材料。
- 写每块前只重读该块涉及的高风险主张卡,逐项保持主体、否定词、比较方向、适用范围、确定程度和时间标签。写到跨层因果或身份归属时,必须同时检查连接本身的证据;若只能证明两端,改成“作者把二者联系起来”“一种解释认为”或“仍有争议”,不能自行补出必然关系。来源只支持角色推测、可能性或有限样本时,正文必须保留归属与“可能、似乎、在这项研究中”等边界词,不能升级成事实、因果或共识。
- 写历史或传记的每块前,只回放本块计划节点和上一块尾节点;在同一次内容调用内按正文顺序核对相邻节点。节点时间回退时明确标记回叙;“接下来、随后、后来、此后”等前进型时间转场不得连接到更早或顺序未定的节点。第三块落盘前完成一次全稿时间线回放,包括所有跨块时间边;只使用事实底稿,不重新联网,也不新增工具往返。
- 用真实的问题、反差、未解信息或因果转折聚拢注意力。不要连续使用空洞的“你可能会问”“这很重要”制造假悬念。
- 结尾回收开场问题,压缩出两到四个真正值得记住的认识,并说明它们为什么与听众有关。不要突然结束,也不要另加行动清单。
- 大约每两到四个自然段给一次自然的方向提示:回收刚得到的认识,再指出下一步要解释什么。全稿预留约十六到二十四个真正承担方向作用的重定位点,并在局部自然使用“不过”“所以”“接下来”“换句话说”等连接。轮换使用问题、因果、对比、时间定位和场景切换,不机械重复同一个词,也不在完稿后硬塞连接词。
- 书外应用必须自然标明是“沿着这个机制继续看”得到的延伸,不能用“作者认为”把自己的推论归给作者。
- 按三个生产块连续成稿。前两块落盘后直接运行软
checkpoint,用其返回的实际计数和pace规划下一块;不要先运行measure或例行status。第三块依据第二项计数一次写足,落盘后直接运行一次finish。块间只做剩余配额与材料取舍,不回头做整篇风格重写。 checkpoint报告warning或critical时不重试几十字的小缺口,直接合并剩余计划并按“中心因果链、题材最小证据载荷、必要边界、完整结尾”的顺序保留内容;优先删除次级案例、作者履历、书外应用和重复总结。第 440 秒后不得发起新的完整内容块,第 455 秒后禁止正文变化。
五、校对后只交付正文
阅读 quality-gates.md,逐项检查八个质量维度和一票否决项。
每块落盘前完成该块高风险主张卡的语义反查;第三块写入调用内部再扫一遍全部四到六张卡,确认主体、否定、增减方向、范围、确定程度和时间标签没有漂移。再定位主线中的“因此、所以、必然、需要、证明、直接导致、属于、成员”等桥接词,确认桥接关系本身有证据,而不是只核过两端;历史传记同时核对全稿时间线回放和前进型时间转场。证据不足就保留作者归属与争议、明确标记回叙,或删掉连接。这个检查只使用事实底稿,不重新联网,第三块落盘后不得为这项检查增加一次工具往返。
对每个核心概念做证据充分性反查,并确认题材最小证据载荷已经进入正文。来源只支持目录、有限样本、角色推测或某一干预层级时,删减或保留对应边界,不能扩大成概念定义、普遍因果或医学共识。
删除提纲痕迹、引用标记、网址、Markdown、项目符号、脚注、免责声明、创作说明和“下面是稿件”等元话语。
两项软进度检查完成且第三块落盘后,直接用以下原子命令同时完成最终计数、格式检查、计时和元数据写入;第三块后不再单独运行
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,再用其完整路径运行。finish返回格式失败且仍早于第 440 秒时,只允许一次针对 Markdown、网址、占位符、重复段落或其他明确硬错误的最小修正,再次运行同一命令。第 440 至 455 秒只允许处理已知小缺口或明确硬错误;第 455 秒后正文只读,篇幅不足或格式失败都如实留证。最终回复从问候语直接开始,只输出完整逐字稿。不要在正文前后加任何说明或代码块;只有
finish写出passed: true、format_check_passed: true且总耗时不超过 480 秒时才视为完成。
不可退让的边界
- 不大段复制原书、出版社文案、书评或其他听书稿;用原创语言重新组织。
- 不伪造引语、数字、人物经历、情节、奖项或作者观点。
- 不绕过付费墙,不寻找或使用盗版全文。
- 不把所有书机械套成同一模板;结构必须服务于这本书的核心问题。
- 不模仿参考语料中的段落错位、占位符、平台广告、虚构主播身份和未经核验的断言。