今日头条文章改写(重复率 < 40%)
Overview
本技能处理「用户给出今日头条文章链接 → 读取原文 → 深度改写 → 验证重复率低于 40% → 交付改写稿」的完整流程。改写以"重新行文"为核心手段,而非同义词替换;重复率用自带的 n-gram 覆盖率脚本做客观验证。
Workflow
Step 1: 获取原文
- 用 WebFetch 抓取用户提供的链接,prompt 要求提取:标题、作者/来源、正文全文、关键数据与引语。
- 链接形态处理:
-www.toutiao.com/article/xxx、www.toutiao.com/wap/xxx:直接抓取。
- 分享短链(如m.toutiao.com/xxx、t.(v.)toutiao.com/xxx):先跟随重定向拿到正式文章地址再抓取。
- 若 WebFetch 返回内容为空或仅有脚本渲染的壳(头条部分文章需 JS 渲染),改用 Bash 执行curl -sL -A "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15" <url>抓取,再从 HTML 中提取正文(正文通常在articleContent或<article>节点中)。 - 若正文仍无法获取,向用户说明并请其粘贴正文,不要凭猜测编造原文。
- 将原文全文保存到临时文件,如
{cwd}/.workbuddy/tmp/toutiao_original.txt(目录不存在则先创建),供后续查重使用。
Step 2: 深度改写
- 阅读
references/rewrite-techniques.md(改写技巧库与红线)。 - 按「信息点清单 → 脱离原文重新行文 → 事实核对」三步执行:
- 先用自己的话列出每段的信息点(5W1H、数据、引语)。
- 合上原文,仅凭信息点清单重新写全文——这是把重复率压到 40% 以下的最有效手段。
- 改写完成后逐项核对:数据、人名、时间、地点必须与原文一致,不得虚构、不得歪曲原意。 - 标题必须重写:换角度但保留信息点,禁止照抄原标题。
- 检查文章是否段落划分清晰,每个段落之间间隔一个换行。
- 改写稿保存到
{cwd}/.workbuddy/tmp/toutiao_rewritten.txt(供查重),最终交付时按 Step 4 输出。
Step 3: 验证重复率
- 运行查重脚本:
python "<skill-dir>/scripts/similarity_check.py" "{cwd}/.workbuddy/tmp/toutiao_original.txt" "{cwd}/.workbuddy/tmp/toutiao_rewritten.txt" --threshold 40
<skill-dir> 为本技能目录。脚本基于 10 字符 n-gram 覆盖率计算重复率,返回码 0 表示通过(<40%),1 表示未通过。
- 未通过时,根据脚本报出的
longest_common_run_chars与连续重复情况,定位高重复段落,回到 Step 2 重写该部分,再次运行验证,直到通过(最多迭代 3 轮;3 轮后仍未达标则如实告知用户当前重复率与剩余高重复片段)。 - 同时人工检查:改写稿不得有编造的事实、不得有原文没有的结论。
Step 4: 交付
- 默认直接在回复中输出:改写后标题 + 正文全文,并附一行查重结果(如「重复率 23.5%,已通过 40% 阈值」)。
- 用户要求保存文件时,另存为 Markdown 到用户指定路径;未指定则存到
{cwd}/toutiao_改写_{标题关键词}.md。 - 正文较长(>1500 字)时,默认同时保存文件并在回复中给出全文。
注意事项
- 只处理用户主动提供的链接内容;不要抓取多条链接批量改写,除非用户明确要求。
- 改写稿默认使用简体中文,保持与原文相同的体裁(新闻、评论、科普等)。
- 原文若涉及敏感领域内容,仅做中性转述,不添加原文没有的立场与断言。
- 改写是换表达不是换事实:任何数据、引语、因果关系都必须可溯源到原文。