# 第 5 章 · 写网页（附）：批量做几百篇内容，从拆解对手到分批上线

> GEO Playbook · 通用版 v1.0 · Canlah AI · CC BY 4.0 · 网页版：https://canlah.ai/zh/playbook/at-scale/
> 这是给 AI 助手读的 Markdown 版，内容与网页版相同。图写成代码块（wireframe / mermaid / bars / steps / split）；「→」链接指向网页版对应小节，同名 .md 是它的 Markdown 版。

## 5.D1 七步总图与对客户的口径

**这一节要你做的**：看清一次做出几百篇页的七步先后，知道这一章和前面写页各节怎么分工，并拿到一句对客户能说到哪一步的口径。

```steps 图：七步是一条单向链，前一步的产出是后一步的输入；跳一步，错会被复制进几百篇
第 0 步 | 选学习对象 | 实测 30+ 个商业查询，找靠站内形式赢的那家
第 1 步 | 拆架构 | 按原型逐行拆，验证轮推翻，落成规范 + lint
第 2 步 | 实测校正 | 用被引数据改细则，冲突时听实测
第 3 步 | 选题成清单 | 五条挖词线并行，聚成一页一主查询
第 4 步 | 三道流水线 | 写稿、本地化、对抗审查，每道过 lint
第 5 步 | 溯源审计 | 数据报告类逐个数字追来源
第 6 步 | 分批上线复测 | 每周 30–50 篇，第 14 / 30 / 45 天判
```

第 6 步之后接一个每月闭环：每月补一批新词，写完由人审过再按批次发，见 5.D10。

**和前面各节怎么分工。** 页型怎么选、每一侧能写什么、每一页的通则，仍以 [→ 通用版 5.1 页型总图：46 种、六个家族、三档证据、三侧开放](https://canlah.ai/zh/playbook/write-pages/#g5-5-1-页型总图-46-种-六个家族-三档证据-三侧开放) 到 [→ 通用版 5.10 页型共用件：数字六项检查、无公开价、计价单位、日期与 schema](https://canlah.ai/zh/playbook/write-pages/#g5-5-10-页型共用件-数字六项检查-无公开价-计价单位-日期与-schema) 为准。这一章只管一件事：要一次做几十到几百页时，怎么让每一页都照同一套规则写、不走样。首批承接页照 [→ 通用版 5.4 三十天写页顺序与三道机械闸](https://canlah.ai/zh/playbook/write-pages/#g5-5-4-三十天写页顺序与三道机械闸) 一页一页过闸；这一章用在那之后、要把长尾铺满的时候，不替代 5.4 的排位闸。

**对客户能说到哪一步。** 这套方法跑通的是「生产」这一半：一次自有博客复刻用它做完了全部页面，页页过闸。「效果」那一半——上线后的名次和 AI 引用——还没有复测数据。所以对客户只说「按这套方法生产，按第 14 / 30 / 45 天的复测判去留」，不说「这套方法已经证明能拿到引用」。

> **举例**（GEO 服务商自有博客）按这七步做完 323 篇 × en / zh / zh-tw（293 篇新文章 + 30 篇改写），全部过架构闸门。

## 5.D2 选对学习对象：找靠站内形式赢的那一家

**这一节要你做的**：用实测排名、域名年龄、外链三项筛出一家「赢法可复制」的竞品，写下它赢在哪一层词、输在哪一层、赢的页型你那一侧能不能做。做完你手上有一个学习对象和一句「只复制它的哪一部分」。

```mermaid 图：域名年轻、外链近零却拿到第一，说明它靠站内形式赢——只有这种值得学，而且只学它赢的那一层
flowchart LR
  q1{"实测进前十了吗"} -->|没有| no1["不学"]
  q1 -->|进了| q2{"域名年轻且外链近零吗"}
  q2 -->|否| no2["靠域名外链赢，学不来"]:::warn
  q2 -->|是| yes["靠站内形式赢，可复制"]:::hl
  yes --> scope["写下赢在哪层、输在哪层"]
  scope --> q3{"它赢的页型对你开放吗"}
  q3 -->|不开放| swap["学骨架，页型按侧换"]
  q3 -->|开放| go["进下一步：拆架构"]
```

**三项怎么查。** 排名用 Serper 这类 SERP API 实测 30 个以上商业查询，按目标市场设 `gl`，看谁在前十；域名年龄查 whois；外链看第三方提及、目录收录、榜单收录。判据不是「谁内容好」，而是「谁在你的查询上赢了，而且赢法可复制」。

**为什么「年轻 + 外链近零 + 第一」才值得学。** 域名年龄和外链是你短期内抄不来的两样。把这两样排除之后它还能拿第一，能解释名次的就只剩站内形式——架构、title、首句、表格——而这些能逐行拆下来。反过来，靠 20 年域名和外链赢的老牌对手，学了它的写法也拿不到它的名次，别学。

**看清它输在哪。** 学习对象不一定每层词都赢。如果它只赢堆了多个修饰词的超长尾、头部词没进前十，你复制的就是「长尾矩阵打法」，不是「它能打头部词」。这句决定选题（5.D5）往哪一层铺。

**它赢的页型先查开放。** 学习对象拿到名次的页型，先到 5.1 的开放列查你那一侧。不开放的，只学它的骨架和句子位置，页型按 [→ 通用版 0.3 哪些页型对你有限制、改做哪一型](https://canlah.ai/zh/playbook/start/#g0-0-3-哪些页型对你有限制-改做哪一型) 换成同一意图下你能做的那一型。

> **举例**（GEO 服务商）学习对象域名 6 个月、外链 ≈ 0，拿到 5 个 #1，Google AI Overview 逐字照搬它的首句。但它只赢了堆 3 个以上修饰词的超长尾（best + 行业 + 地域 + 年份），头部词一个没进 top 10；拿到名次的全部是榜单页，恰是强监管侧最不能用的一种。证据见附录 A.4。

**硬规则：学习对象不点名。** 学习对象只用来学形式，它的名字不进任何文章、榜单和对比页，也不做「我们 vs 某公司」这类页；和工具品类比、和做法比可以。这条要写进 lint 硬拦：一张禁用名单，外加禁止 `<本方>-vs-*` 这类 slug。

## 5.D3 拆架构：拆到能直接拿去写

**这一节要你做的**：把学习对象的全部文章按原型逐行拆成规则，再派验证轮对照原文推翻一遍。做完你手上有两份文件——一份写作规范、一份 lint 闸门，缺一不可。

```mermaid 图：拆出来的每条规则都要过验证轮，站住的才进规范；规范里能机检的进 lint，机检不了的交给审查
flowchart LR
  src["全文：先找 llms-full.txt"] --> arch["纵向：按原型逐行拆"]
  src --> cross["横向：跨全部文章拆"]
  arch --> v{"验证轮对照原文"}
  cross --> v
  v -->|推翻| drop["某一批的习惯，不入规范"]:::warn
  v -->|站住| spec["写作规范"]
  spec -->|能机检的| lint["lint 闸门"]:::hl
  spec -->|机检不了的| rev["对抗审查逐篇查"]
```

**先找 `llms-full.txt`。** 为了 AI 引用而写的竞品，往往把全文 Markdown 暴露在这个文件里，一次拿到全部文章，不用逐页爬。

**每一路拆什么：**

| 谁拆 | 输出 |
|---|---|
| 纵向：按原型分组，每组派一个 agent 逐行读完 | title 公式、H2 骨架、开头句、段落节奏、表格用法、FAQ、Method 块、自我提及位置、逐字 boilerplate |
| 横向：另派 agent 跨全部文章看 | title 与 slug 体系、重复出现的固定块、中英本地化差异、技术层（schema / llms / hreflang / 发布节奏） |
| 验证轮：3 个 agent | 对照原文，专门推翻前两路拆出的规则 |

**验证轮为什么不能省。** 拆的人看到的是一批文章的习惯，而竞品的写法可能随批次变。不验证，就会把「某一批的习惯」写成「全局铁律」，再经流水线复制进几百篇。

> **举例**（GEO 服务商）验证轮纠正了 9 条，其中 Oxford 逗号、缩写、摘要长度、粗体用法，在学习对象的不同批次里写法本来就不同。

**两份文件各管什么。** 规范给人和 agent 照着写，内容是「原型 × title 公式 × 正文骨架 × 共享块 × 文风规则」。lint 给机器卡：规范里凡是能机检的，都写成检查项，不过 lint 不算完成。几百篇的规模下没有人能逐篇核对格式，所以能交给机器的一条都不留给人。

**lint 比 title 要按词根，不按子串。** agencies 和 agency、tracking 和 track 算同一个词。按子串比，写手为了躲开重复会把 title 改得很别扭（例如「Agency and Service Providers」）。

## 5.D4 用实测校正：竞品定骨架，实测定细则

**这一节要你做的**：拿被引实测把规范里的细则逐条过一遍，冲突处按实测改，并给其中两条加上限定。做完你的规范里每条细则都分得清「这是竞品的习惯」还是「这是实测看到的」。

```split 图：七条实测结论各自改掉规范里的一条细则；骨架跟竞品，细则冲突时听实测
实测看到的 || 规范因此改成
被抄的几乎都是段首句 || 每个 H2 首句能独立当答案，带数字
约 73% 被抄事实在前 30% || lint 查前 30% 至少 8 个数字（经验值）
表格连列头一起被抄 || 表头带判断：Best for、Winner 等
ChatGPT 找源头，AI Mode 找二手 || 每页两句：本方确定价 + 市场区间（仅不受管侧）
比价页、vs 页被引最多，竞品没有 || 新增比价、对比两个原型
被引页 62–9,000 词 || 字数只作提示，只有榜单类保留下限
摘要数字和表格对不上时 AI 用表格 || 摘要数字必须等于表格
```

**为什么冲突时听实测。** 竞品的写法只说明「它恰好这么写」，不说明「AI 最爱引这样写」。它能拿名次，是整套形式一起起作用；单拿出其中一条细则，未必是被引的原因。校正用的是多个行业、两条 AI 腿的被引拆页，证据见附录 A.3。

**限定一：「每页两句」只对不受管侧成立。** 两条腿找的页不同，所以一页要写两种句子（见 [→ 通用版 5.6 两条腿，两种句子](https://canlah.ai/zh/playbook/write-pages/#g5-5-6-两条腿-两种句子)）；但「市场区间」那一句在受监管侧能不能写、换成什么，按 [→ 通用版 5.2 三侧速查（一）：先判身份；价格、促销与赠送、结果数字](https://canlah.ai/zh/playbook/write-pages/#g5-5-2-三侧速查-一-先判身份-价格-促销与赠送-结果数字) 的价格一格和 [→ 通用版 5.3 三侧速查（二）：证言与评价、比较、榜单、头衔、外链、FAQ 与图注](https://canlah.ai/zh/playbook/write-pages/#g5-5-3-三侧速查-二-证言与评价-比较-榜单-头衔-外链-FAQ-与图注) 的比较一格查你那一列，再看你的行业版。表头里「Winner」「市场区间」这类带判断的列头，受监管侧同样先查 5.3。

**限定二：「前 30% 至少 8 个数字」是经验值。** 它的依据是那条约 73%：能定位的 75 条抄句里，约 55 条落在正文前 30%。分母是 526 条引用里能定位的 75 条，不是全部 526 条；位置是目测估算，只当强趋势用。「8」是 lint 的门槛，不是从这组数算出来的。对客户不写成「前 30% 放够 8 个数字就会被引」。

**其余几条不另立一套。** 段首句、表格列头、字数按页型定，本书在 [→ 通用版 5.7 所有页型都成立的七条](https://canlah.ai/zh/playbook/write-pages/#g5-5-7-所有页型都成立的七条) 和 [→ 通用版 5.8 结论块、密度闸、出处闸](https://canlah.ai/zh/playbook/write-pages/#g5-5-8-结论块-密度闸-出处闸) 已有通则，规范直接引用。新增的比价、对比两个原型，写法照价格类页型和 [→ 通用版 5.15 对比页（pt04）](https://canlah.ai/zh/playbook/page-types-core/#g6-5-15-对比页-pt04) 的施工图；对比页你那一侧开不开放，同样先查 5.1。

## 5.D5 选题：把全部长短尾词变成一页一主查询的清单

**这一节要你做的**：五条挖词线并行挖词，聚类成「一页一主查询」，再过三道补漏。做完你手上有一份文章清单：每行一个主查询、一组近义 secondary、一个原型。

```mermaid 图：五条挖词线互相看不见、各挖各的，汇总聚类后还要过三道补漏才成清单
flowchart LR
  s1["SERP 扩展与自动补全"] --> pool["词池"]
  s2["竞品 sitemap 反推"] --> pool
  s3["自家 GSC 已有曝光"] --> pool
  s4["堆叠矩阵 + 竞争度抽测"] --> pool
  s5["竞品名、how-to、定义题"] --> pool
  pool -->|聚类| cl["一页一主查询"]
  cl --> fix["审查 agent 补缺、并重、修标题"]
  fix --> human["人工逐条对竞品 title"]:::hl
  human --> vs["比价词、vs 词单独再扫"]
  vs --> list["文章清单"]
```

**五条线各怎么挖：**

| 线 | 怎么挖 | 怎么滤 |
|---|---|---|
| SERP 扩展 | 种子词 × Serper 的 relatedSearches + PAA；Google 自动补全（种子 + a–z + 市场名 / best / vs / cost / tools） | — |
| 竞品 slug | 抓竞品和工具厂商的 sitemap，从每个博客 slug 反推它在打的词 | — |
| 自家 GSC | 已有曝光的查询，最真实的需求 | — |
| 堆叠矩阵 | [best/top] × 品类 × 行业 × 市场 × 年份 × 可选引擎 | 只留真人会打的组合；抽 60+ 个测竞争度（green / amber / red） |
| 名称与定义题 | `{品牌} review / alternatives / pricing / vs`、how-to、定义题 | 用自动补全滤掉没人搜的 |

**聚类的两条硬规矩。** 近义词进 secondary；同一意图只准一页。这和 [→ 通用版 5.5 页面单位：一个意图簇一页](https://canlah.ai/zh/playbook/write-pages/#g5-5-5-页面单位-一个意图簇一页) 是同一条规则，规模化时更要守，否则几百篇里会自己和自己抢词。

**为什么人工对 title 这一步不能省。** 聚类和去重都是 agent 做的，误删不会报错。最后由人拿竞品的 title 列表逐条问「我们有没有对应页」，是发现漏页的最后一道。

> **举例**（GEO 服务商）1,476 个词最后成了 293 篇新文章 + 30 篇改写。去重时曾误删一篇与学习对象 1:1 对应的文章；人工对 title 这一步一共补回 9 篇。

**比价词、vs 词为什么要单扫。** 聚类 agent 倾向把它们归成「观点文」，实际应该是比价页或对比页。原型归错，后面三道流水线会按错的骨架写满一整页。

**清单里每一行的原型，开写前按 5.1 的开放列过一遍你那一侧。** 堆叠矩阵里 best / top 开头的组合对应榜单页，vs 词对应对比页，这两型在受监管侧都有限制。

## 5.D6 生产流水线：每篇三道 agent 加机检闸门

**这一节要你做的**：给每篇文章配一条「写稿 → 本地化 → 对抗审查」的流水线，每道后面挂 lint，审查用最强的模型。做完你手上有一条能一次跑几十篇、中断后能续跑的生产线。

```mermaid 图：每篇独立走完三道，每道后面都有 lint 卡住；实质问题几乎全靠第三道抓，所以它不能降级
flowchart LR
  card["选题卡"] --> en["写 EN"]
  en --> g1{"EN lint 全过"}
  g1 -->|不过| en
  g1 -->|过| loc["本地化 zh + zh-tw"]
  loc --> g2{"三语 lint 全过"}
  g2 -->|不过| loc
  g2 -->|过| rev["对抗审查，当场改"]:::hl
  rev --> g3{"lint 仍全过"}
  g3 -->|不过| rev
  g3 -->|过| nxt["进溯源与上线批次"]
  rev -->|若降级| miss["实质问题没人抓"]:::warn
```

**三道各读什么、用什么模型：**

| 道 | 做什么 | 模型 | 闸门 |
|---|---|---|---|
| 写 EN | 先读规范、同原型模板、**同原型的自家范本文章**（每个原型指定一篇已上线的）、实测报告，再查公开资料写 | Sonnet | lint 的 EN 部分全过 |
| 本地化 | 写 zh + zh-tw，改写不直译，章节和数字一一对应 | Sonnet | lint 全过（三语） |
| 对抗审查 | 查 lint 查不到的 11 条，当场改 | **Opus，不能降** | lint 仍全过 |

**写稿为什么不读竞品原文。** 一是流水线要能在云端跑，不能依赖本机上的竞品存档；二是读了竞品原文，它的句子会渗进稿子。学习对象的形式已经落进规范和 lint，写稿只需要看自家同原型的范本。

审查那 11 条包括：首句主语与限定、自身局限、竞品措辞、绝对日期、表格说明、FAQ、结尾让读者核实、段首句即答案、摘要 = 表格。

**为什么审查不能降级。** 规范里机检不了的规则全压在这一道；lint 只能查格式，查不出事实和逻辑。流水线里几乎所有实质问题都是审查抓到的。

> **举例**（GEO 服务商）审查抓到的问题：新闻稿首句把一个奖项写成本公司获得，实际获奖的是另一个主体，与页面自己的表格矛盾；摘要数字和表格对不上；价格没写币种；引用了没有来源的数字；把竞品写成「不支持某功能」，应写「公开页面未找到」。

最后一类错直接踩到撒谎红线：没查到不等于不存在。审查按 [→ 通用版 5.31 交稿：每页五步、撒谎红线与自检](https://canlah.ai/zh/playbook/page-types-checklist/#g8-5-31-交稿-每页五步-撒谎红线与自检) 的口径改。

**受监管侧，审查这一道还要多做一件事。** 先判侧别，再按 5.2–5.3 你那一列逐项扫禁词与必备字段。碰到 [→ 通用版 0.4 合规句的三档标签与停笔规则](https://canlah.ai/zh/playbook/start/#g0-0-4-合规句的三档标签与停笔规则) 里的三类停笔情况，停笔交客户方合规负责人签字；合规句的标签照手册原样带过去，不许让 agent 自己补、自己升级。**签字只解决三类停笔情况，不把条文明文禁止的东西变成可发布。**

**怎么跑。**
- 每篇独立走完三步、互不等待：用流水线，不设批次屏障，不让快的等慢的。
- 每批 45 篇，2–4 条并行。
- 支持按阶段跳过（如 `stages: ['zh','review']`）：中断后只补缺的步骤，不重做已过闸的。

## 5.D7 踩过的六个坑：开跑前就装上预防

**这一节要你做的**：开跑前对照六个坑各装一项预防。做完你的流水线配置里多了模型分工、分段写入、GSC 对照、slug 冻结、溯源、分批六个开关。

```split 图：六个坑各有一个开跑前就能装上的预防，出事之后再补都更贵
坑 || 开跑前装上
全程用最强模型并行，撞周额度 || 写稿、本地化用 Sonnet，约省三分之二调用
中文本地化约 5% 被内容过滤拦截 || 改成分段写入，拦下的补写
新页和已有排名页打同一个词 || 上线前对照 GSC，新页不抢老页在排的词
改写已被索引的旧页 || slug 不动，已有曝光的词不许丢
agent 当场实测的原始结果没落盘 || 上线前逐个数字溯源（5.D8）
几百篇同模板页一次发 || 分批上线，每页名单、市场、证据都不同
```

**省额度只能从前两道省。** 实质问题靠审查抓（5.D6），所以降档只降写稿和本地化，审查保留最强模型。

**改写旧页，曝光词留在哪。** GSC 里有曝光的词必须留在 title、首句、H2 或 FAQ 其中之一。改旧页的其余约束见 5.5。

**为什么落盘会漏。** agent 写数据报告时会当场实测（爬取、调 API），但原始结果只留在对话记录里。发出去的数字要能复现，所以这类稿必须过 5.D8。

**为什么要「每页都不同」。** 几百篇同一模板的页，规模化内容的风险就在页页相似。分批节奏见 5.D9。

## 5.D8 溯源审计：数据报告类逐个数字追来源

**这一节要你做的**：给每篇数据报告和新闻稿配两个 agent——一个逐个数字追来源，一个默认怀疑地抽样复核——最后给整篇下「直接发 / 改完再发 / 扣下」三种结论之一。做完你手上多了一道发布前必过的步骤，agent 当场实测却没落盘的数字不会直接见光。

```mermaid 图：每个数字先归到六类来源之一，再由另一个 agent 默认怀疑地抽 5 条以上重测；两道都过完，才给整篇下结论
flowchart LR
  doc["数据报告、新闻稿"] --> audit["审计：每个数字标来源"]
  audit --> tag{"六类来源之一"}
  tag -->|当场实测| raw["原始结果没落盘"]:::warn
  tag -->|查无来源| none["找到可核来源或删"]:::warn
  tag -->|其余四类| kept["记下来源位置"]
  raw --> chk["复核：抽 5 条以上重测"]:::hl
  none --> chk
  kept --> chk
  chk --> v{"整篇结论"}
  v -->|站得住| ok["直接发"]
  v -->|要改| fix["改完再发"]
  v -->|改不了| hold["扣下"]
```

**六类来源。** 审计 agent 从写作记录里，把页面上每个数字归到其中一类：第三方引用、agent 当场实测、自有证据库、官网页面、计算得出、无来源。

**为什么单独立一步。** 对抗审查能抓到个别没来源的数字（5.D6），但它逐篇查写法，不逐个数字追来源；而 agent 当场实测的原始结果只留在对话记录里（5.D7 第五个坑）。数据报告和新闻稿数字多、来源杂，所以这一类必做。

**复核为什么默认怀疑。** 复核 agent 不信审计 agent 的标注，抽 5 条以上，重新测量或重新打开来源，自己看一遍。

**无来源的数字怎么处理。** 照 [→ 通用版 5.31 交稿：每页五步、撒谎红线与自检](https://canlah.ai/zh/playbook/page-types-checklist/#g8-5-31-交稿-每页五步-撒谎红线与自检) 的撒谎红线：找得到可核的来源就补上，找不到就删，不留一条没核过的数字，也不许给它安一个没打开看过的来源。

## 5.D9 分批上线：从发布当天到第 45 天判去留

**这一节要你做的**：定好每批发多少、先发哪几型，发布当天做完两件事，再在第 14、30、45 天三个节点复测判去留。做完你手上有一张从发布到判定的时间表，几百篇不会一次放出，也不会放出去就没人管。

```steps 图：一批页从发布到判去留只有五个动作点，第 45 天仍不在前 30 就止损
每周 | 分批发 | 30–50 篇，先发榜单页、比价页、对比页
D0 | 发布当天 | GSC URL 检查 + IndexNow
D14 | 第一次复测 | Serper 看前 3 页排名 + AI 是否引用
D30 | 第二次复测 | 同一把尺子再测一次
D45 | 判去留 | 仍不在前 30：合并或下线
```

**先发哪几型，先按你那一侧过一遍。** 比价页、对比页是实测里被引最多的商业页型（5.D4），榜单页对应堆叠矩阵里 best / top 开头的那批词（5.D5）。这三型在受监管侧都有限制：先按 5.1 的开放列查你那一侧，不开放的，首批换成同一意图下你能做的那一型。

**发布当天那两件为什么不能省。** 它们不是复测，只是确保页面进得了索引。没做，后面复测看到的是「没收录」，却会被读成「没被引」。

**两次复测用同一把尺子。** 第 14 天和第 30 天用同一个工具、同一组查询、同样看前 3 页和 AI Mode / AIO 是否引用；中途换了，两次的数就不可比（[→ 通用版 7.5 量具纪律：换尺子就不可比](https://canlah.ai/zh/playbook/measure/#g11-7-5-量具纪律-换尺子就不可比)）。这把尺子量的是新页的自然排名和有没有被 AI 引用，和 [→ 通用版 7.1 复测的产出与量具](https://canlah.ai/zh/playbook/measure/#g11-7-1-复测的产出与量具) 里的月度量具不是同一把，两边的数不合并读、不互相比。

**合并往哪合。** 第 45 天仍不在前 30 的页，合并进同一意图簇里的那一页，规矩照 [→ 通用版 5.5 页面单位：一个意图簇一页](https://canlah.ai/zh/playbook/write-pages/#g5-5-5-页面单位-一个意图簇一页)；没有可并的，下线。

**同步上线时的两条保护。**
- 人在线上直接改过的已上线文章，下一次同步不覆盖：同步前和上一批记录的内容版本比对，对不上就保留人改的那一版。
- 指向还没上线文章的链接先拿掉，目标上线后自动补回；每篇至少保留 2 条相关阅读。

**判效果不只看排名。** 成效按「AI 答案里有没有引用我们、有没有线索进来」判断。这两样要等复测节点到了才有数据，这一章写到「生产」这一半为止（见 5.D1）。

## 5.D10 每月补新词：新词进来，人审过才发

**这一节要你做的**：把「找新词 → 写 → 上线」做成每月自动跑一次的闭环，但在「上线」前面留一道人审。做完你手上有一个每月 1 日自动开 PR 的任务，新词不会越积越多，也不会没人看就发出去。

```steps 图：每月一轮，机器找词和写稿，人只管审；审过的才进每周上线批次
每月 1 日 | 增量找词 | 相关搜索 + 常见问题 + 自动补全，按词根去重
同一天 | 挑 5–6 篇 | 剔除已覆盖的词，一页一主查询
接着 | 同一条流水线 | 写稿、本地化、对抗审查，三语过 lint
开 PR | 等人审 | 不自动合并
审过后 | 按批次发 | 交给每周上线任务
```

**为什么不自动合并。** 找词和写稿都能交给机器，但「这个词值不值得做、这一页该不该上」要人看；几百篇一旦错一次，错会被复制到整批。每月的量压在 5–6 篇，人审得过来。

**增量找词的成本。** 一轮大约二十几次搜索接口调用：相关搜索、「大家还在问」和自动补全各跑一遍，按词根去重，再剔除已经有页覆盖的词。