本技能用于以“分块写入 + 校验”的方式生成较长文本或 Markdown 文件(约超过 15KB 或约 100 行/回合),而不是一次调用生成整份文件。适用对象包括转录稿清理、报告、文档、内容迁移等;凡一次性整份生成可能触发网关超时(例如慢速模型下源站超过 120 秒导致的 Cloudflare HTTP 524)、静默截断,或响应中断导致文件未写入的场景,都适合使用本技能。当文件需要忠实于某个结构化来源(原始到清理、草稿到终稿)并需自动校验时,同样适用。
主要规则包括:绝不要一次性写完整文件,总是先用 write_file 写入第一个块,随后逐块追加;单块约 100 回合 / 最大 10-15KB,过长则拆分;追加使用带引号的 heredoc(定界符必须写作 'EOF',否则 $、反引号和反斜杠会被解释并破坏内容);每次追加后用 wc -c 检查累计大小;heredoc 相当于一次 patch,但无需重新读取文件。撰写完成后,必须在磁盘和结构层面核验,不能只依赖工具报告的状态:文件存在且大小合理(ls -la、wc -c);若格式为“姓名 [MM:SS]: 文本”(如 tl;dv 类转录),可用 scripts/verify_turns.py <raw> <clean> 校验;文件末行/末时间戳需与来源一致。
文档还列出了常见陷阱:合并续写片段到父回合时,容易在中间时间戳位置误写入后一个回合的内容,造成重复,校验器可检测回合间重复文本;有意合并并不等于丢失,删除口头禅、合并续写会减少回合数,校验器会区分“原始中缺失时间戳”(需检查是否为有意合并)与“比原始多出回合”(真实错误);如果同一说话者的两个回合中间被另一说话者(哪怕只是“好的。”“是。”这类可删插话)打断,清理稿仍必须保留为分开的回合;原始中重复的时间戳(同一 [MM:SS] 出现在多个回合、说话者重叠)是合法的,比较时应始终使用去重后的唯一时间戳(sort -u),而非原始出现次数;heredoc 不带引号会因 $ 和反引号破坏内容;单块过大有 524 或截断风险,应提前拆分;遇到 524 后先检查磁盘再重试;macOS 的 BSD grep 在 -E 下不支持 \S、\d、\w(POSIX ERE),如 grep -cE '^\S+ ' 会静默返回 0 个匹配而不报错,计数与校验应使用纯 ERE(如 '[[0-9]{2}:[0-9]{2}]' 或 [[:space:]] 代替 \s);不要用 split() + join() 重组想保留的标签或标题,这会删除真实标签并留下孤立片段,重新编号或转换重复项应使用带计数器的 re.sub 作用于全文,并在每次写入后校验结构计数(s.count('<tag') == s.count('</tag>') == n_expected);对同一路径第二次使用 write_file 写“第二部分”会整体覆盖,导致第一部分消失(即使报告 verified: true),拆分文档时应第一部分用 write_file、其余全部用带引号 heredoc,每次写入后用 grep -n '^## ' 检查章节;在已有写入者的文件上连续执行 write_file + 追加或多次重写时,每次转换前都应读取磁盘真实状态并在写入后核对计数;内容含反引号时,嵌入的 python3 -c 或未加引号的 heredoc 会破坏 shell,可先写入 .py 文件再用 python3 /tmp/<script>.py 执行;patch 的 replace 模式会删除 old_string 中未在 new_string 重现的上下文行,因此 old_string 只应包含要替换的文本,并在每次 patch 后查看返回的 diff 是否出现意外删除;需要渲染的 Markdown 中,所有列表前必须有空行,否则 Python-Markdown 等转换器会把列表项当作上一段文本,复选框 - [ ] 不渲染,整块内容被压成一行;连续的 键: 值 元数据行会被合并成不可读的段落,若要渲染为 HTML/PDF,应写成两列表格;图表应通过源文件和 DOM 核验,而不是靠视觉模型描述(视觉模型可能臆造缺陷),真实依据是解析图表源码中的 subgraph 标签、声明与引用的 id、重复 id,以及渲染后 DOM 中 .node、.edgePath、.cluster 的数量和控制台错误,视觉只用于判断“是否可读/是否有裁切”。
脚本方面:scripts/verify_turns.py 校验“姓名 [MM:SS]: 文本”格式的清理稿与原始稿,检查各说话者回合数(原始 vs 清理)、原始中在清理稿缺失的时间戳、时间戳的时间顺序、末时间戳是否一致、回合间是否有重复内容;退出码 0 表示通过(含需人工复核的提示),1 表示有错误;用法为 python3 scripts/verify_turns.py <raw> [<clean>](只给原始时自动推导 clean/<base>_clean.md)。对于成对文档(PRD + 路线图、计划 + 任务),另有 scripts/verify_prd_roadmap.py 校验任务卡片与依赖表是否一一对应、DAG 无环、PRD 所有需求是否被覆盖、mermaid 节点完整性,并在文档开头章节错误(头部被覆盖)时给出提示;用法为 python3 scripts/verify_prd_roadmap.py [PRD.md] [ROADMAP.md],失败时退出码 1。覆盖度按 ID 检查而非目测:PRD 中每个需求(**F1.、**F2. 等)都必须以 ID 出现在某个任务卡片或表格行中,缺少任务即范围缺口;对应关系需双向校验(有卡片无表格行、有表格行无卡片都是错误),且 ID 必须唯一(重新编号容易产生 T2.10a 与 T2.1 之类的重复)。校验器不判断覆盖是否正确:需求可能由名称不同的任务覆盖,或只是把 ID 引用加入文本而任务实际不存在,通过校验不等于问题已解决,仍需确认任务确实实现了需求。该技能是可用于任意长文件生成的通用技术,转录处理流程(clean-transcriptions-auto)会以具体尺寸应用这些规则。
限制与未提供信息:原文未说明许可、安装方式、依赖版本、对特定模型或平台的适配,也未给出性能指标或收费信息,这些均暂未提供。