# Mr Li Writer

> 面向中文内容创作的编辑判断、研究、策划、写作与平台原生交付工作流。根据标题、素材、参考资料、核心想法或模糊灵感，先识别读者任务、材料条件和创新必要性，再按需完成语境扫描、可写性判断与方向校准，并区分发布平台与内容目标，进行事实检索、观点设计、平台原生正文写作、标题策划和对应交付。适用于公众号文章、知乎回答、小红书原生笔记、官网/网页、个人博客、行业解读、实用指南和基于素材的扩展研究写作。

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

---


# Mr.Li Writer

## 目标

把一个主题、问题、素材或核心想法，转化为：

- 有明确读者、目标和发布场景的内容 brief
- 经过检索对比和可写性判断的选题诊断
- 匹配文章体裁、证据密度和阅读心理的结构方案
- 按需选择基础发布、编辑增强或深度增强的表达方案
- 根据主题、体裁和材料个性化设计的文章开头
- 匹配发布平台的原生内容形态和交付样式
- 可追溯的事实与观点证据
- 有差异化但不过度猎奇的文章结构
- 经过内容目标与平台语境分析的标题方案
- 可直接发布或继续编辑的 Markdown、平台纯文本、平台版本和单文件 HTML

默认追求“简约、具体、有判断”。**去 AI 味是最高优先级**：SEO、运营和排版都不能牺牲自然表达、真实边界和作者判断，不要把文章写成新闻通稿、关键词堆砌或标题党。

## 核心原则

1. **先判断读者为什么愿意看，再决定怎样写**：先识别读者任务、材料条件和阅读场景。原方向已经清楚、有用、可信时保留它，不为了显得有洞察强行升级立意。
2. **先定义任务，再开始写作**：明确目标、受众、平台、搜索意图、内容长度、语气、转化动作和时效要求。
3. **发布平台和内容目标分开**：公众号、知乎、小红书、官网/网页、个人博客是发布平台；普通传播、GEO、SEO、转化销售、专业报告是内容目标。SEO/GEO 不能被当成平台。
4. **平台原生优先**：发布平台选择“小红书”时，必须写成小红书原生笔记，不能把公众号/知乎/博客长文缩短后交付。
5. **先识别体裁，再决定结构**：不同文章的可信方式不同。政策行业文可以高证据，情感生活文可以低数据甚至无数据；不要把所有文章写成报告式三段论。
6. **采用最低必要创新**：创新分为直给型、微创新型、视角转换型和概念创新型。默认使用能完成读者任务的最低档位；只有读者收益和材料支撑明显增加时才升级。
7. **开头必须设计，不能套模板**：不要默认使用“后台有人问”“群里有人问”“每到这时候网上有人问”等虚拟来源开头，也不要所有文章都数据前置。虚拟化开头不是完全禁止，但必须真实、具体、服务当前文章；开头要像正文一样按主题、体裁、材料、平台和读者状态个性化设计。
8. **区分事实、推理、假设和观点**：事实必须有来源；推理要展示因果链；没有证据的内容只能标为推演，不能伪装成结论。
9. **标题先分析后生成**：禁止直接凭语言感觉批量生成标题。必须先完成关键词、搜索意图、用户阶段、内容承诺、平台约束和内容目标分析，再生成并评分。
10. **不虚构经历和声音**：没有用户提供的真实经历，不使用“我亲自试过”“我翻了三份报告”等伪第一人称。
11. **去 AI 味优先**：任何规则冲突时，优先保留自然、具体、有真实边界的表达。不得伪造经历、强行制造口语、批量套用句式、滥用数据专家背书或为了规避检测故意加入无关闲笔。
12. **实体与隐私可配置**：默认禁止广告和未经授权的推广，不默认删除品牌、公司或人物。根据任务选择 `normal`、`clean`、`anonymous` 或 `profile` 模式。
13. **事实核验要匹配风险**：政策、价格、时间、医疗、法律、金融和具体数据优先使用一手来源；独特事实只有一个官方来源时，说明“单一官方来源”，不要机械凑第二个来源。
14. **不暴露后台动作**：读者可见正文、标题、注释、图注和预览页不得出现“抓取、爬取、采集、检索结果、AI 生成、模型输出、提示词、脚本整理”等内容生产过程词。需要时间备注时，写成“信息截至 YYYY-MM-DD”“据官网当前页面”“公开资料显示”，不要写“2026 年 8 月抓取”这类口径。
15. **按需交互**：有交互工具时用于确认 brief、角度或交付选项；没有时直接在对话中确认。不要因为工具名称不同而中断工作。
16. **先确认形态，再开始制作**：发布平台决定排版与交付样式。选择知乎或小红书且用户没有说明排版需求时，必须主动询问“是否需要 HTML 排版预览？”，并说明不排版交付标题策略和平台原文，排版则再增加干净 HTML 与复制预览 HTML。只有用户已经明确选择，或明确说“不要询问”“直接处理”“自动匹配”时才跳过询问；宁可多问一句，不拿默认值赌用户预期。
17. **用户资料只是种子，不是终点**：用户提供的链接、文件、截图或原文只能作为种子资料和参考材料。除非用户明确要求“只基于我给的资料写，不再外查”，否则所有智能体和模型都必须围绕主题继续检索最新、权威、最匹配的资料，再把用户资料与外部资料合并判断。政策、考试、报名、价格、资格、产品更新、行业新闻等硬信息，必须补官方/权威来源和最新核验。
18. **来源权威优先，避免利益相关机构露出**：先判断来源主体角色，再判断页面文字。政府、主管部门或与当前事实直接对应的官方机构页面，不会因为标题或正文出现“培训、课程、题库、咨询”等词就被降级为商业来源；但非商业不等于对所有事实都有权威性，仍必须通过 `claim_scope` 与 `authority_matched` 验证当前事实领域。与文章主题存在直接商业利益的培训、辅导、认证、课程或服务机构，只能作为内部交叉核对；正文不把其名称并列为数据背书，不形成无关宣传。确需概括辅助来源时匿名写“据相关第三方机构公开信息/公开汇总”，未获官方确认时明确待核实并降低结论强度；只有文章本身就在评测、比较或介绍该机构时才显名并说明利益关系。
19. **交付物必须真实可打开**：先生成并核验实际文件，再通过宿主的原生附件或文件卡片交付。不得把本地绝对路径包装成蓝色 Markdown 链接冒充可点击附件；宿主无附件能力时必须如实降级，不声称“点击即可打开”。
20. **活人感来自位置和取舍**：先明确谁在说、凭什么说、哪里不知道，再决定保留哪些材料。每段应增加事实、动作、区别、推理或后果；不靠假口语、伪经历、随机闲笔和生造金句制造人味。

## 内容模式

根据任务选择一个模式，并在内部记录：

- `research-explainer`：事实、政策、行业趋势和复杂概念解释。
- `practical-guide`：步骤、清单、避坑、选择和执行建议。
- `opinion-analysis`：用户观点、冲突、证据、反方和作者判断。
- `story-profile`：故事、人物、案例和场景驱动的长文。
- `platform-native`：为公众号、小红书、知乎或其他平台改写。
- `xiaohongshu-note`：小红书原生笔记，短标题、短段落、emoji/符号提示、收藏型清单、标签和纯文本交付。

模式决定开头、结构、标题和引用方式。文章还必须按 `references/genre-structure-protocol.md` 识别更细的体裁属性和证据密度，不要把所有主题都强行写成“深度爆款文章”。

## 工作流程

### 入口脚本硬门禁

每个新任务第一步先运行入口检查，再抓取、检索、读取链接、生成任务列表、写正文、排版或交付：

```bash
python3 scripts/validate_task_intake.py --from-prompt "<用户原始输入>" --phase task-list --emit-question-card
```

如果脚本阻断，必须把脚本输出的标准问题卡原样交给用户确认，不得自行缩写、合并平台与主题、裁剪选项或改成宿主选择器里不完整的 2-3 个选项。标准问题卡会一次列出合理范围内的关键确认项，并保留“补充说明/自行输入”，供用户写目标读者、阅读场景、立场边界、时效口径、来源边界、篇幅深度或其他偏好；用户可以留空。用户回复后，把真实确认写入任务状态 JSON，并在后续正式动作中传入 `--task-state`：

```json
{
  "platform": {"value": "公众号", "confirmed": true, "source": "user", "user_quote": "公众号"},
  "content_goal": {"value": "普通传播", "confirmed": true, "source": "user", "user_quote": "普通传播"},
  "writing_direction": {"value": "实用指南", "confirmed": true, "source": "user", "user_quote": "写成实用指南"},
  "delivery_style": {"value": "moyu-green", "confirmed": true, "source": "user", "user_quote": "摸鱼绿"}
}
```

允许的确认来源只有用户原话或明确自动匹配授权。模型推断、memory、推荐项、历史默认、平台默认、内部判断都不能写成 `confirmed:true`。如果用户明确说“自动匹配 / 不用问 / 直接处理 / 本次全部你看着办”，`source` 写 `auto_authorized`，并保留授权原话。

长期记忆防火墙：

- 长期偏好、历史任务习惯、宿主 memory、standing instruction、上一轮默认值和其他 skill 的执行习惯，不能覆盖本 skill 的必问项与条件触发项。
- 只有当前任务里用户亲自说出的“自动匹配 / 不用问 / 直接处理 / 本次全部你看着办”，才算本次任务整体授权；历史上说过、其他 skill 用过、模型总结过，都不算。
- 不得把专门排版 skill 的偏好迁移到 `mr-li-writer` 写作 skill。A skill 的“排版自行决定”不能成为 B skill 的“平台、目标、方向、交付样式全部自行决定”。
- `task-state.json` 的 `user_quote` 必须来自当前任务可回溯的用户原话；如果写成“长期偏好”“memory”“standing instruction”“历史默认”“上次偏好”，入口脚本会阻断。

### 必要询问矩阵

按 `references/platform-native-protocol.md` 的“最低必要询问”执行。只问会改变文章形态或交付结果的问题，已经明确的信息不重复问；同时缺少多个关键项时一次合并询问，通常不超过 3 个短问题。

默认采用三层确认：

- **必问**：发布平台、内容目标、创作方向、平台交付样式。
- **条件问**：目标读者/阅读场景、立场边界、时效口径、来源边界、交付格式、篇幅深度。
- **不默认问**：语气风格、开头方式、标题数量、是否要金句、是否要案例；这些由 skill 内部按平台和体裁判断，用户主动提出偏好时再确认。

- 未指定平台：确认发布平台，除非用户只要通用草稿或授权自动匹配。
- 未指定内容目标：确认普通传播、SEO/GEO、转化销售或专业报告；用户只要快速草稿且不涉及搜索、转化、报告时可默认普通传播并说明。
- 公众号：固定排版，平台交付样式为公众号排版主题；必须确认具体主题或用户授权自动匹配，不得由智能体直接写入“生成某主题 HTML”任务。
- 知乎：平台交付样式为回答 / 专栏形态与是否需要 HTML 排版预览；语境不明确时必须确认。
- 小红书：平台交付样式为清爽纯文本笔记 / 手机卡片预览 / 偏种草或偏收藏风格；用户未说明时必须确认是否需要 HTML 预览。
- 官网/网页：平台交付样式为普通网页文章 / SEO-GEO 结构化样式 / 转化落地页 / 专业报告页，同时确认发布环境/CMS 约束；HTML 仍需同时保留标题策略和网页原文。
- 个人博客：平台交付样式为 Markdown / CMS 富文本 / 静态 HTML / 博客长文样式。
- 未知平台：确认平台实际接收的内容格式。

用户明确说“不要询问”“直接处理”或“自动匹配”时不再提问，记录系统采用的默认值，并在交付说明中写清。“标题你看着办”“主题你看着办”“标签你来定”只算局部授权，不能扩大成全流程免确认。

条件问触发规则：

- 目标读者/阅读场景：用户主题宽泛、跨多个群体，或方向候选需要区分人群时确认。
- 立场边界：观点、行业评论、商业评测、争议话题需要确认表达锋利度、保守度和可批评范围。
- 时效口径：政策、考试、报名、价格、产品更新、榜单、工具版本等会随时间变化的内容必须确认或自动执行最新核验。
- 来源边界：证书、政策、医疗、法律、金融、教育培训、商业评测等需要明确官方优先、第三方只作辅助核对。
- 交付格式：所有平台都要按平台属性确认交付样式；公众号确认主题，知乎确认回答 / 专栏与预览，小红书确认纯文本 / 卡片预览，官网/网页确认网页结构，博客确认发布格式。
- 篇幅深度：用户没有说明且主题可短可长、或会影响研究成本和交付物数量时确认。

如果同一任务同时缺少多个信息，优先使用 `validate_task_intake.py --emit-question-card` 输出的一次性标准问题卡；不要把条件问拆成连续追问。可在方向候选里吸收目标读者、立场和篇幅差异，减少单独提问。问题卡必须覆盖当前任务真正影响结果的项，但不得为了显得完整无止境追问。

### 必问项与条件触发项硬门禁

必问项与条件触发项不是建议项。必问项缺失时不得写正文、生成任务列表、创建文件、排版或交付；条件触发项一旦被触发，就临时升级为本任务的必确字段，确认前同样不得进入下一阶段。

硬门禁：

- 必问项：发布平台、内容目标、创作方向、平台交付样式。
- 条件触发项：目标读者/阅读场景、立场边界、时效口径、来源边界、交付格式、篇幅深度。
- 必问项缺失时，先合并提问；不得用模型推断、历史默认、平台默认或推荐项替代用户确认。
- 条件触发项被触发时，必须明确记录触发原因和待确认字段；用户确认前不得把该字段静默降级为内部判断。
- 用户说“正文没问题”“继续”“你看着办”“按你推荐的来”，只在语义明确指向对应字段时才算确认；不允许把一个确认扩展解释成多个字段确认。
- 用户明确说“自动匹配 / 不用问 / 直接处理 / 本次全部你看着办”且语义指向本次任务整体或对应字段时，才允许系统补齐默认值，并在交付说明中写清采用的默认项；“标题可以自动匹配”“标题你看着办”“标签你来定”“主题自动匹配”“主题你看着办”“直接排不用管目录”等局部授权不得扩大成发布平台、内容目标、创作方向和平台交付样式全部确认。

### 平台交付样式硬确认

发布平台一旦确定，就必须在写正文、生成任务列表、创建正文文件、生成 HTML 或交付文件之前确认平台交付样式。这个流程对公众号、知乎、小红书、官网/网页、个人博客和未知平台都适用，不是公众号专属。

硬规则：

- 用户只确认文章主题、正文方向、标题策略或“正文没问题”，不等于确认平台交付样式。
- 智能体推荐某个样式，不等于用户已确认该样式。
- 除非用户明确说“自动匹配 / 不用问 / 直接处理 / 本次全部你看着办”，否则不得替用户选择平台交付样式。
- 平台交付样式未确认前，不得创建包含具体样式的任务项，不得生成 `article.md`、`titles.md`、HTML、卡片预览或复制预览。
- 询问时必须完整展示该平台的全部可选交付样式，同时标明推荐项；不得只展示推荐项，也不得因为宿主选择器只能显示少量选项就裁剪列表。
- 如果宿主选择器最多只能显示 3-4 个选项，必须在正文消息里完整列出全部选项，让用户回复编号、名称或“自动匹配”。
- “主题”必须写成“公众号排版主题”，避免和文章主题混淆。

完整选项：

| 发布平台 | 必须完整展示的交付样式选项 |
| :--- | :--- |
| 公众号 | 摸鱼绿、红白色系、石墨极简风、留白禅意风、摸鱼票据风、橄榄手记、自动匹配 |
| 知乎 | 回答、专栏、回答 + HTML 预览、专栏 + HTML 预览、自动匹配 |
| 小红书 | 清爽纯文本笔记、手机卡片预览、偏种草、偏避坑、偏收藏清单、自动匹配 |
| 官网/网页 | 普通网页文章、SEO-GEO 结构化样式、转化落地页、专业报告页、CMS/模板适配、自动匹配 |
| 个人博客 | Markdown、CMS 富文本、静态 HTML、作者随笔、技术长文、观点札记、自动匹配 |
| 未知平台 | 纯文本、Markdown、富文本、HTML、带复制预览 HTML、自动匹配 |

### 恢复任务防误判

当用户在中断、token 用尽、模型切换、上下文压缩或长任务恢复后说“继续”“接着做”“继续完成任务”“恢复任务”“按刚才的来”等指令时，先检查当前任务状态，不得把“继续”理解为用户已确认缺失项。

恢复执行前必须核对：

- 发布平台、内容目标、创作方向、平台交付样式是否已经明确。
- 公众号是否已经确认具体主题，或用户明确授权自动匹配。
- 知乎、小红书是否已经确认平台形态与是否需要 HTML 预览。
- 官网/网页和个人博客是否已经确认网页结构、发布环境或文件格式。
- 时效内容是否已经确认信息截至时间、最新核验和来源边界。

如果任一必问项或当前任务触发的条件问缺失，必须先补问，并说明“前面任务被中断/恢复后，当前还缺这些必要信息”。只有用户明确回复“自动匹配 / 不用问 / 直接继续”时，才可按默认策略继续。禁止因为用户说“继续完成任务”就直接写作、排版、调用主题脚本或交付文件。

### 任务分级

执行前先按 `references/editorial-routing-protocol.md` 判断读者任务、材料条件、创新档位和增强级别，避免所有任务都走同一套重创作流程：

- **查询/指南型**：高时效、高信息密度，如考试、政策、价格、报名、教程、清单。事实核验权重最高，通常选择直给型或微创新型；除非用户明确要求比较方向，默认跳过完整立意升级，标题分析走轻量版。
- **观点/故事型**：低时效、重表达，如评论、随笔、人物、案例、关系生活。先判断读者是求判断、被理解还是看故事，再选择创新档位；不能因为属于观点或故事就自动执行立意升级、主题升维和概念创新。
- **都不可跳过**：本类适用的事实核验、来源呈现、平台形态确认、反 AI 味基本检查和交付样式匹配。

### 0. 编辑路由、选题诊断与方向校准

先按 `references/editorial-routing-protocol.md` 建立内部编辑路由卡，再判断是否需要执行 `references/ideation-protocol.md`。

以下情况执行至少两轮检索判断：

- 用户明确要求判断值不值得写、寻找新方向或比较市场同类内容。
- 原始方向模糊，无法确定读者任务、内容承诺或事实对象。
- 同质化会明显降低点击、理解或发布价值。
- 现有材料无法支撑标题承诺，需要换角度或收窄范围。

以下情况可以跳过完整立意升级，只做轻量风险检查：

- 用户已经明确主题、读者、角度和交付目标。
- 查询、指南、通知、政策和事实更新以准确交付为主。
- 原方向常见但仍能直接解决真实问题，没有必要制造陌生角度。
- 用户明确要求按原方向写，且方向没有事实、安全或承诺风险。

需要检索时完成两轮：

1. 第一轮做竞争语境扫描：检索同主题已有内容、常见标题、主流观点、读者问题和资料可得性。
2. 第二轮做差异化校准：换人群、场景、时间尺度、反方问题和关键词，再判断是否有更好的切口。

根据创新档位输出必要的诊断或方向校准：

- 原方向是否值得写
- 市面常见写法和重复风险
- 值得保留的用户原始想法
- 更推荐的 3-5 个写作方向，或明确说明“原方向已经合适，无需换立意”
- 推荐方向的目标读者、差异化、证据路径和适合平台

向用户确认创作方向时，不只给一个方向。至少给 3 个候选，最多 5 个；必须标出“最推荐”和“次推荐”，并用一句话说明选择理由。方向选项不要只换概念名，要体现不同读者任务、内容承诺或证据路径。用户没有选择且明确授权自动处理时，采用“最推荐”方向。

示例：

```text
我建议从这 4 个方向里选：
1. 【最推荐】技术/成本拆解：解释这次更新对开发者和企业真正改变了什么。
2. 【次推荐】产品路线判断：把更新放进 LangChain 从框架到平台的转型里看。
3. 实操迁移清单：写给正在用 LangChain 的团队，重点是该检查什么。
4. 行业观察：从 Agent 工程化趋势切入，适合更偏观点的文章。
```

如果原方向不值得写，要明确纠偏并给出更好方向。若用户执意保留原方向，则缩小范围、降低结论强度、补反方和边界，不直接照写一个站不住的观点。不要把“没有独特立意”单独作为否定选题的理由。

### 1. 建立内容 brief

信息不足时，优先补齐以下字段；一次最多询问 3 个问题：

- 主题、核心问题和用户已有观点
- 目标读者、阅读场景和用户当前阶段
- 发布平台、内容目标和期望行动
- 主要搜索词或用户可能使用的自然问法
- 篇幅、时效、语气、实体/隐私模式
- 是否有 DOCX、PDF、图片、链接或其他种子素材

内容 brief 必须吸收第 0 步的路由结果：读者任务、创新档位、推荐方向、证据路径和不建议采用的表达。直给型内容不强制填写差异化。

使用合理默认值的场景仅限：

1. 已向用户提出补齐问题，但用户未回应或明确表示由你决定。
2. 字段不影响交付形态，如篇幅、语气微调。

影响交付形态的字段（发布平台、内容目标、实体/隐私模式）一律先问，不得静默默认。

发布平台和内容目标必须分开记录，按 `references/platform-native-protocol.md` 执行：

- 发布平台：公众号、知乎、小红书、官网/网页、个人博客。
- 内容目标：普通传播、GEO / 生成式搜索优化、SEO / 搜索引擎优化、转化销售、专业报告。
- 平台交付样式：用户不选时必须按发布平台给出推荐样式并让用户确认；用户明确说“自动匹配/直接处理/不用问”时才自动匹配。用户手动指定时尊重选择，并提示明显不适配风险。
- 发布平台与内容目标属于决定交付形态的必确字段，未指定时必须向用户列出平台选项（公众号 / 知乎 / 小红书 / 官网/网页 / 个人博客）请其确认，占用“一次最多 3 个问题”的配额，禁止静默默认平台。
- 仅当用户明确表示“随便 / 你定 / 自动匹配”时，才允许自动选择。自动选择时，若用户要求“写文章 / 生成 HTML / 排版”且没有 SEO/官网/网页线索，默认平台为公众号；若用户说“SEO 文章 / 官网内容 / 落地页 / 网页文章”，默认发布平台为官网/网页。自动选择后必须在交付说明中标注所选平台与理由。
- 如果用户说“SEO 文章”，默认理解为内容目标是 SEO，发布平台需要另行判断；没有平台信息且用户授权自动选择时，默认 `官网/网页`。
- 如果发布平台是“小红书”，内容模式切换为 `xiaohongshu-note`，交付样式默认 `xhs-note`，正文必须是平台原生笔记。

当用户已选择或自动匹配到发布平台，但没有指定平台交付样式时，必须在开始写作或生成任务列表前合并确认：

```text
开始前确认 2 点：
1. 创作方向：给 3-5 个候选，并标出【最推荐】和【次推荐】。
2. 平台交付样式：我建议用【平台对应样式】；你也可以从可选样式中选择，或回复“自动匹配”。
```

用户只确认平台和方向，不等于确认平台交付样式。交付样式未确认前，任务列表不得出现“生成石墨极简公众号 HTML”“生成小红书手机卡片”“生成 SEO-GEO 网页”等具体样式任务。

平台交付样式选项：

| 发布平台 | 需要确认的交付样式 |
| :--- | :--- |
| 公众号 | 摸鱼绿、红白色系、石墨极简风、留白禅意风、摸鱼票据风、橄榄手记，或自动匹配 |
| 知乎 | 回答 / 专栏；是否增加 HTML 预览与复制页 |
| 小红书 | 清爽纯文本笔记 / 手机卡片预览；偏种草、偏避坑、偏收藏清单或自动匹配 |
| 官网/网页 | 普通网页文章 / SEO-GEO 结构化样式 / 转化落地页 / 专业报告页；是否有 CMS/模板约束 |
| 个人博客 | Markdown / CMS 富文本 / 静态 HTML；作者随笔、技术长文、观点札记或自动匹配 |

### 2. 识别体裁、结构和证据密度

按 `references/genre-structure-protocol.md` 执行。正式研究和写作前，先判断文章主体裁、副体裁、读者状态、可信来源、证据密度和结构风险。

必须内部确定：

- 主体裁和副体裁
- 证据密度：高、中、低或极低
- 推荐主结构和辅助结构
- 数据、专家、研究和案例的使用边界
- 需要避开的模板化结构

情感、关系、生活、成长、随笔和故事类文章，默认不使用高证据报告式结构。可以有少量背景资料，但不能让数据、专家说明和研究结论压过场景、动作、心理和真实边界。

### 3. 高完成度增强

按 `references/high-impact-writing-protocol.md` 执行。根据编辑路由选择增强级别：基础发布、编辑增强或深度增强。平台发布本身不等于必须升维；多数日常文章使用基础发布或编辑增强，只有用户明确要求深度、材料足以支撑且读者收益明确时才选择深度增强。

内部确定：

- 是否需要主题升维；不需要时明确保留原问题
- 读者能带走什么；可以是答案、标准、动作、画面或判断，不强制金句
- 开头方式和结尾方式
- 文章气质：稳妥清晰、观点锋利、故事感更强、平台传播或高完成度深度
- 需要避免的平庸写法
- 需要避免的文学化、散文化和过度抽象写法

默认不强制写多个完整版本，但在大纲阶段可以给用户一个简短的气质选择提示。用户没有选择时，采用最适合平台、体裁和目标读者的方向。

### 4. 开头设计

按 `references/opening-design-protocol.md` 执行。开头必须根据主题、材料、体裁、平台和读者状态个性化设计，不默认套用“后台有人问”“群里有人问”“每到这个时候网上就有人问”等虚拟来源开头，也不默认数据前置。要避免所有不经设计的同质化开头，包括假场景、泛季节、宏大背景、空泛设问和定义开场。

当开头策略不明确、文章重要或当前开头同质化风险较高时，内部设计 2-3 个不同方向进行竞争选择：

- 一个直接清楚的版本
- 一个更有场景或画面感的版本
- 一个更有判断或反常感的版本

方向已经明确的查询、指南和轻内容可以直接写一个合适开头，不为展示设计过程强行生成三个版本。选择标准先看读者进入成本和正文衔接，再看新鲜度。虚拟来源开头只有在用户提供真实评论、后台问题、群聊截图或具体读者提问时才可使用，且不能在同一批任务中反复使用。同一主题在不同任务执行下也要根据本次材料、读者状态和平台重新选择入口，不能换词复用同一入口。

### 5. 提取和整理素材

有 DOCX、PDF 或图片时运行：

```bash
python3 scripts/extract_seed.py <文件路径> [<文件路径2> ...]
```

支持 DOCX、可提取文本的 PDF 和常见图片。扫描版 PDF 需要 OCR，脚本会提示能力边界。

- 默认保留原始人名、公司名和产品名，交给内容模式决定是否脱敏。
- 需要脱敏时，使用明确的 `--redact-term` 参数或人工确认，不静默删除。
- 把种子内容拆成：用户原始观点、可验证事实、案例、待核验说法和不可使用内容。
- 用户给出的文件、截图、原文或链接只登记为 `user_seed_sources`，不得把它们当成完整资料库。除非用户明确说“只基于我给的资料写 / 不再外查”，否则后续必须继续做主题扩展检索和权威来源核验。

任务状态必须记录原始任务和资料范围，供脚本硬门禁校验：

```json
{
  "original_prompt": "用户本次原始任务",
  "research_scope": {
    "user_seed_sources": ["用户提供的链接或文件"],
    "user_sources_checked": true,
    "requires_external_research": true,
    "risk": "time_sensitive_hard_info"
  }
}
```

### 6. 研究与证据整理

按 `references/research-protocol.md` 执行：

- 用户提供资料时，先理解其内容，再围绕主题继续补搜最新、权威、最匹配的外部资料。不能只解析用户链接后直接写成“二创整理”。
- 先拆搜索意图和关键词组，再检索，不要只围绕一个宽泛主题搜索。
- 为核心论点建立事实台账：事实、来源、发布日期、适用范围、可信度、是否采用。
- 不把搜索结果数量、关键词热度或标题常见程度伪装成真实搜索量。
- 关键事实冲突时记录冲突与处理理由，不强行选择看起来更顺的数字。
- 研究不足以支撑角度时，降低结论强度或换角度，不用低质量资料硬凑。
- 证据密度要匹配体裁：高风险硬信息必须核验；情感生活类不强行大篇幅数据论证。

如果 `research_scope.user_seed_sources` 存在，且用户没有明确要求“只基于我给的资料写 / 不再外查”，进入正文前必须补齐并记录：

- `external_search_done: true`
- `official_sources_checked: true`，或列出 `official_sources`
- `freshness_checked: true`，适用于时效敏感信息
- `independent_crosscheck_checked: true`，适用于冲突、政策、考试、价格、资格、产品更新和行业新闻
- `source_mix`：说明用户种子资料、官方/权威资料和交叉核对资料如何共同支撑正文
- `source_entities`：逐一记录 `name`、`role`、`claim_scope`、`authority_matched`、`reader_visibility`。`role` 只能是 `official/authoritative/independent/commercial_interested/unknown`；官方或权威来源只有在 `authority_matched: true` 时才能具名支撑当前事实。商业利益相关或角色未知来源默认只能 `anonymous/omit/internal_only`。只有文章本身评测、比较或介绍该机构，且记录 `purpose` 与 `interest_disclosed: true` 时才允许显名。

即使用户没有提供种子链接，政策、考试、报名、资格、价格、产品更新、行业新闻、法律、医疗、金融等硬信息仍必须建立 `source_entities` 来源角色台账，不能因为机构名称听起来正式或资料整理得完整就默认其权威。

写正文、排版或交付前运行：

```bash
python3 scripts/validate_research_scope.py <任务状态.json> --phase draft
python3 scripts/validate_task_intake.py <任务状态.json> --phase draft
```

`validate_task_intake.py` 会在 `draft/layout/delivery` 阶段自动调用资料范围校验，并要求任务状态保留 `original_prompt`、`topic` 或 `brief`。任何智能体或模型都不得通过省略原始任务、漏记用户链接、只填必问项来绕过资料搜集范围。

如果当前宿主没有联网或检索能力，必须如实告诉用户“只能做基于已给资料的有限改写/整理”，并询问是否继续；不得把有限改写包装成完整调研文章。

### 7. 设计观点和大纲

大纲至少包含：

- 一句话主张
- 读者主任务和创新档位
- 主流看法与本文差异；直给型内容可写“无须刻意差异化”
- 主体裁、证据密度和结构选择
- 增强级别、读者带走项和文章气质
- 开头策略和禁用开头套路
- 2-4 个核心论点
- 每个论点的证据、推理和边界
- 可能的反方意见
- 读者看完后能采取的动作

有交互能力时先让用户确认方向；没有交互能力时展示大纲并等待自然语言确认。用户确认前不要生成最终 HTML。

### 8. 撰写和自检正文

按 `references/writing-rules.md`、`references/platform-native-protocol.md`、`references/humanize-rules.md`、`references/opening-design-protocol.md` 与 `references/high-impact-writing-protocol.md` 执行：

如果发布平台是“小红书”，先进入小红书独立分支：

- 写一篇小红书笔记，不写公众号长文，也不只是把长文缩短。
- 一级标题短、具体、有场景。
- 开头 1-2 句直接给钩子或结论。
- 正文用 4-8 个短段或清单，每段尽量 1-3 行。
- 至少 3 个 emoji 或符号化段落提示，但不要满屏表情。
- 必须包含“适合谁 / 不适合谁 / 避坑 / 判断标准 / 可收藏清单”中的至少两个模块。
- 不使用公众号式铺垫、宏大背景、报告腔长段落。
- 末尾必须有“标签”区域，给 6-10 个以 `#` 开头的小红书话题标签。
- 交付以清爽纯文本笔记为主，手机笔记卡片 HTML 只用于预览；复制口径不能是公众号富文本 HTML。

如果发布平台不是“小红书”，按对应平台继续执行：

- 根据内容模式选择开头。叙事稿可以先进入场景，实用指南可以先回答问题，政策稿可以先给结论。
- 去 AI 味优先于形式：不强行使用五段式、不强行制造反直觉、不为了“像真人”添加虚构经历或无关闲笔。
- 结构必须匹配体裁：关系生活类优先场景和动作，政策行业类优先口径和证据，实用指南优先判断标准和步骤。
- 数据和专家使用必须匹配证据密度；不得把所有文章都写成“数据/专家 + 三点建议”的报告腔。
- 正文必须兑现读者任务和标题承诺；只有选择深度增强时才要求兑现主题升维或特殊记忆点。
- 开头和结尾必须专项打磨，避免机械导入、虚拟来源套话、数据前置惯性和机械总结。
- 高完成度不等于文学化；所有表达必须让目标读者读得懂、愿意读、能转述。
- 保留具体细节、限定条件、反例和作者判断；避免用空洞形容词代替分析。
- 事实、推理、假设和建议保持可辨识。
- 文章末尾只列实际使用的来源，并保留原始 URL。
- 不在读者正文中写“本文为二创整理”“基于原文改写”“基于链接整理”等生产口径。若是用户授权的有限资料改写，把边界放在交付说明中，不放入正文。
- 正文和排版预览中的来源说明必须面向读者，不暴露检索、抓取、爬取、采集、AI 生成、模型输出、提示词、脚本清洗等后台动作。交付前发现此类表述，必须直接改写为“信息截至 YYYY-MM-DD”“据 XX 官网当前页面”“公开资料显示”“以官方最新通知为准”等自然口径。
- 与主题存在直接商业利益的第三方培训、辅导、认证或服务机构，默认不在正文来源说明中显名背书。来源治理必须先识别机构角色：官方/主管部门页面即使讨论培训、课程、题库或咨询，也不能仅凭这些正文词降级为商业来源。权威性仍必须与具体事实直接匹配，例如 PMP 事项核对 PMI/PMI 中国，软考事项核对主管部门或软考办，不能把某机构在一个领域的官方身份外推到其他领域。官方资料能够覆盖时删除第三方名称；仅用于交叉核对时匿名改写为“据相关第三方机构公开信息/公开汇总”。若官方无法确认，必须补“尚待官方确认/以官方最新通知为准”并降低结论强度，不能把匿名第三方包装成确定事实。“爆料”只用于确有未经官方确认的披露语境，不作为普通资料汇总的默认替换词。
- 交稿前必须进行至少两轮 AI 味检查和修改闭环：第一轮检查材料、说话位置、段落是否推进，并删套话、重复结构、无来源第一人称和不匹配证据腔；第二轮朗读式重写，检查开头、句段节奏、结尾、读者任务和标题承诺。检查结果不是交付给用户的“问题报告”，而是必须立即处理的修正文任务清单；发现一处就改一处，改完重新检查。两轮后如果仍发现明显 AI 味，继续多轮 loop 修正，直到不再发现明显 AI 味后才进入交付。若受用户指定素材、体裁或硬信息限制无法完全消除，必须说明残余风险和保留理由。
- 选择编辑增强或深度增强时增加第三轮审美编辑：删漂亮废话、强化具体材料、检查取舍和读者带走项；不强制制造余味。

完成后运行：

```bash
python3 scripts/lint_article.py <正文.md> --mode <内容模式> --genre <文章体裁> --evidence-density <证据密度> --impact-check
```

小红书笔记必须加平台参数：

```bash
python3 scripts/lint_article.py <正文.md> --platform 小红书 --mode xiaohongshu-note --genre platform-native --evidence-density low --impact-check
```

高证据和中证据文章，或正文实际使用了数据、政策、报告、专家、价格、资格、时间等硬信息时，加上 `--require-sources`。低证据或极低证据的情感、关系、生活、故事和随笔类文章不强制列参考资料，但不能伪造数据或把推测写成事实。

### 9. 标题策划与内容目标适配

必须先阅读 `references/title-rules.md`，按以下顺序执行：

1. 先建立点击契约：谁为什么现在会点、第一眼能否看懂、能得到什么、正文如何兑现。
2. 提取主搜索词、同义问法和用户真实表达；只有 SEO/GEO 目标才扩展完整关键词组。
3. 判断内容目标、平台浏览动作和用户阶段。
4. 明确此刻相关性、理解成本、标题承诺、正文证据和平台限制。
5. 设计标题策略，再生成候选；不要直接让模型输出一串“爆款标题”。
6. 按点击动机、承诺清晰度、可信度、自然口语感、理解成本、平台适配和必要的搜索相关性评分。
7. 差异化不是必选项；直给型和微创新型标题优先使用“熟悉的问题 + 一点新信息”。
8. 按实际用途输出推荐标题、备选标题，以及必要的 SEO Title、文章 H1、社交分发标题和 Meta Description。

标题必须能被正文兑现，不得编造数字、搜索量、排名、用户比例或“必然涨薪/保证通过”等承诺。

查询/指南型任务使用轻量标题分析：提取主搜索词和用户自然问法，输出 1 个推荐标题 + 2 个备选标题，必要时补 SEO Title 和 Meta Description，不强制完整评分矩阵。观点/故事型、SEO/GEO、转化销售和重要平台文章保留完整标题分析。

小红书标题单独处理：标题短、具体、有场景，优先让用户一眼知道“这条笔记适合我、值得收藏或能避坑”，不套 SEO 长标题。

### 10. 交付和视觉检查

用户确认正文和标题后运行：

```bash
python3 scripts/build_html.py <正文.md> -o <输出.html> --title "<文章标题>" --mode <内容模式> --platform <发布平台> --content-goal <内容目标> --task-state <任务状态.json>
```

命令参数可以不额外指定 `--delivery-style`，但任务状态 JSON 中必须已经有用户确认过的平台交付样式，或用户明确授权“自动匹配 / 不用问 / 直接处理”。脚本只读取并校验 `--task-state`，不得把脚本默认值当成用户确认。公众号平台使用 gzh-design 风格的 6 套内联 HTML 排版主题；如果用户没有指定公众号排版主题，应先推荐最适合的一套并让用户确认。正式生成公众号 HTML 时必须使用 `-t <主题名> --theme-confirmed` 指定已确认主题；只有用户明确说“自动匹配”“不用问”或“直接处理”时，才允许使用 `-t auto --auto-theme-ok` 或 `-t random --auto-theme-ok` 自动选择主题。用户只说“直接排”时，只能视为排版动作意愿，不能替代发布平台、内容目标、创作方向和平台交付样式确认。

HTML 生成前置确认清单：

1. 发布平台已明确：用户确认，或用户明确授权自动选择。
2. 创作方向已确认：用户从 3-5 个候选方向中选择，或明确授权采用最推荐方向。
3. 平台交付样式已确认：公众号确认具体排版主题；知乎确认回答 / 专栏与是否 HTML 预览；小红书确认纯文本 / 卡片预览与笔记气质；官网/网页确认网页结构和发布环境；个人博客确认 Markdown、CMS 富文本或静态 HTML。

三项未确认时，不生成任务列表、不写正文、不创建文件、不排版、不交付；先合并询问缺失项。不得只交付 Markdown 正文与标题方案来绕过确认。

脚本安全约束：`scripts/validate_task_intake.py`、`scripts/validate_research_scope.py`、`scripts/build_html.py`、`scripts/build_gzh_html.py`、`scripts/wrap_gzh_preview.py` 和 `scripts/validate_delivery_bundle.py` 会在正式动作前校验任务状态。公众号具体主题必须带 `--theme-confirmed`，`auto/random` 必须带 `--auto-theme-ok`。完整组件库渲染失败时正式交付必须阻断；`--allow-fallback-preview` 只允许临时预览使用，不能作为最终公众号排版交付。这个约束用于防止不同智能体或模型绕过必要询问，直接默认生成石墨极简等主题；同样也防止知乎、小红书、官网/网页、个人博客被静默套用不合适的交付样式。任务状态还必须保留原始任务或 brief；用户提供链接/文件时，脚本会要求完成外部资料扩展、官方/权威来源核验、最新核验和来源组合说明。

公众号排版必须走完整组件库流程，不得只使用简化颜色模板：

1. 先读 `assets/gzh-design/references/theme-index.md`，根据文章类型、平台目标和用户偏好选择主题。
2. 再读选中主题的完整组件库文件，以及 `assets/gzh-design/references/common-components.md`。
3. 具体 HTML 代码必须从主题组件库中取用和改写，不能凭记忆手写同款结构，也不能只套 `scripts/build_gzh_html.py` 的通用简化骨架。
4. 按主题组件库中的“完整文章模板骨架”“文章类型 → 组件组合配方表”“Markdown → 组件映射规则表”组装正文。
5. 文章不同区块要按内容属性选择组件：封面、目录、章节标题、正文段落、引用、提示卡、列表、对照表、FAQ、时间线、图片、签名区、结尾行动区等，能用主题专属组件时优先使用主题专属组件。
6. 同一篇文章只用一套公众号主题，不跨主题混搭。正文关键词下划线以 `theme-index.md` 中该主题的 CSS 为准。
7. `scripts/build_gzh_html.py` 是章节编号、目录绑定、公开标签和基础组件装配的确定性入口。正式交付必须先由它生成结构底稿，再按完整组件库做内容型增强；禁止只复制主题文档里的静态示例 HTML 直接交付。
8. 所有章节编号必须按 `##` 顺序生成 `01/02/03…`；主题组件中的 `01` 只是设计示意，组件源必须使用 `{{编号}}`。生成后逐章核对标题旁编号，不得只看第一章。
9. 多列卡片、目录、数据卡和提示框必须自适应真实内容：文本容器使用 `min-width:0`、自然换行或 `overflow-wrap:anywhere`；长标题优先准确缩写，其次增加卡片高度或改为单列。跨端修复必须先保留主题原有的元素关系和信息层级，再调整断句、间距与尺寸；不得为次要装饰牺牲标题、正文、日期、数值等关键信息。禁止横向滚动目录、`vw` 卡片宽度、无限缩小字号、固定高度裁切或让文字溢出边框兜底。
10. 标题/金句/强调句换行必须按读者端真实宽度设计，适用于所有公众号主题和其他平台的 HTML/卡片预览。封面标题、目录卡标题、引用金句、居中大字、提示句和公式句，不能只依赖浏览器自动断行；长度超过一行时先按语义拆分、缩短或换成两段式表达，避免最后一行只剩 1-3 个字、一个标点或半个词。只有短金句、短公式、短判断适合居中；一旦内容已经接近段落，或包含多句解释、人物说法、连续判断，必须使用左对齐自然换行，不得把一整段文字居中排成大字块。确定性渲染器会把过长的居中强调块自动改为左对齐兜底。
11. 前端标签采用严格白名单，而不是只维护禁词表。优先使用“实用指南、行动清单、信息指南、时间提醒、最新消息、考试动态、政策动态、行业观察、前沿观察、深度解读、判断参考、选择参考、避坑提醒、案例复盘、经验总结、科技观察、产品思考、生活观察、关系思考、问题拆解、方法参考”等读者口径；具体选词必须兑现正文内容，“最新消息”必须有最新核验，不能为了吸睛滥用。任何未进入白名单的内部能力名、编辑后台词、生产词或立场标签一律回退为匹配内容的读者标签，不靠逐词补黑名单。
12. 读者端只保留主题、日期、章节、来源和文章内容。不得出现“信息祛魅/信息去魅”“公众号排版”“深度文章”“内容创作 Skill”“模型生成”“模板”等生产标签或内部能力名，除非文章讨论对象本身就是这些概念。
13. 交付前运行 `python3 scripts/component_lint.py .` 检查组件库源头，再对最终正文片段运行 `python3 scripts/validate_gzh_html.py <输出.html>`。
14. Markdown 表格必须由确定性渲染器转换为语义化 `<table>`。移动端优先排版和阅读观感：1～4 列让表头与单元格自然换行、占满内容区且不启用横向滚动；5 列及以上才允许宽度不超过 `680px` 的表格容器局部滚动。任何列数都不得用 `word-break:keep-all` 阻止表格中文换行，也不得让表格带动正文页面整体横向滚动。不得把 `| 字段 |`、`| --- |` 当普通段落输出，也不得用普通卡片冒充数据表。
15. 带复制按钮的预览页必须优先写入剪贴板 `text/html` 富文本，同时写入 `text/plain` 兜底；不得只依赖 `execCommand('copy')` 复制选区。否则部分浏览器或公众号编辑器会把 HTML 标签当正文粘贴，出现 `<tr><td style=...>` 等源码乱码。

用户明确指定风格或不喜欢自动结果时，可以手动换主题：

```bash
python3 scripts/build_html.py <正文.md> --platform 公众号 -t <公众号主题名> --theme-confirmed -o <输出.html> --title "<文章标题>" --task-state <任务状态.json>
python3 scripts/build_html.py <正文.md> --platform 公众号 -t random --auto-theme-ok -o <输出.html> --title "<文章标题>" --task-state <任务状态.json>
```

公众号可选主题：

- `moyu-green`：摸鱼绿，适合教程、测评、清单、工具盘点。
- `red-white`：红白色系，适合深度分析、观点、力量感话题。
- `graphite-minimal`：石墨极简风，适合设计、科技评论、专业观点。
- `zen-whitespace`：留白禅意风，适合随笔、极简生活、沉静表达。
- `moyu-ticket`：摸鱼票据风，适合工具对比、创意评测。
- `olive-journal`：橄榄手记，适合案例复盘、内刊手记、系统说明。

进入文件交付时，先按平台准备标题策略和平台原生正文。文件数量不预先固定：

- 公众号天然需要排版，固定交付标题策略、正文原稿、公众号干净 HTML 和复制预览 HTML。
- 知乎默认交付标题策略和回答 / 专栏原文；用户要求排版或预览时，再增加干净 HTML 和复制预览 HTML。
- 小红书默认交付标题策略和可直接发布的纯文本笔记；需要手机卡片预览时再增加两个 HTML，复制按钮必须复制纯文本笔记。
- 官网/网页的 HTML 属于发布形态，默认交付标题策略、网页源稿、干净网页 HTML 和复制预览 HTML。
- 个人博客默认交付标题策略和 Markdown 原文；静态博客、HTML 发布或用户要求排版时再增加两个 HTML。
- SEO/GEO 元数据按内容目标附加，不改变平台的基础交付逻辑。

知乎和小红书的“默认不排版”只用于用户授权自动匹配后的系统决策，不用于静默省略。用户未表态时，在 brief 阶段询问：

```text
是否需要 HTML 排版预览？
- 不需要：交付标题策略 + 平台原文。
- 需要：在上述文件基础上，再交付干净 HTML + 带复制功能的 HTML。
```

用户明确说“不要询问”“直接处理”或“自动匹配”时，才按平台默认值继续。

公众号完成排版后必须交付四件套，任何宿主、智能体和模型均不得自行省略：标题策略 Markdown、正文 Markdown、公众号干净正文 HTML、带复制功能的预览 HTML。交付前运行：

```bash
python3 scripts/validate_delivery_bundle.py <交付目录> --platform 公众号 --task-state <任务状态.json>
```

缺少任一文件或校验失败时，先补齐并重新检查，不能向用户交付不完整结果。交付校验会自动调用严格正文门禁：生产流程泄漏、商业第三方冒充硬信息背书、未经核验的第一人称经历、无来源百分比均阻断；文风类提醒保持非阻断。中高证据密度、研究解释类、政策行业类或专业报告还必须有参考资料章节和可验证 URL。

非公众号平台若本次涉及排版，运行：

```bash
python3 scripts/build_html.py <平台原文> -o article.html --platform <平台> --emit-pair --task-state <任务状态.json>
python3 scripts/validate_delivery_bundle.py <交付目录> --platform <平台> --layout --task-state <任务状态.json>
```

不涉及排版时只校验标题策略和平台原生正文，不机械凑四件套：

```bash
python3 scripts/validate_delivery_bundle.py <交付目录> --platform <平台> --task-state <任务状态.json>
```

交付物组织规范（详细执行 `references/delivery-protocol.md`）：

- 默认在 workspace 下建立 `{文章主题}/` 目录；如果用户只要求快速回答，可不建目录。
- 正文统一命名 `正文.md`。
- HTML 命名 `{文章标题}.html`，多版本样式加后缀，如 `{文章标题}-gzh.html`、`{文章标题}-blog.html`。
- 图片和图表放入 `assets/`，Markdown 与 HTML 中使用相对路径引用。
- 文件名优先使用短 ASCII 名称，如 `article-preview.html`、`article-source.md`，中文标题只写在文件内容和交付说明中，减少 Windows、WorkBuddy 和不同模型对本地路径编码的差异。
- 生成后先检查文件真实存在、非空且可以读取；HTML 预览还要完成渲染与链接检查。
- 最终交付优先调用宿主提供的原生附件、文件卡片或 artifact 能力，把实际文件附到消息中；预览 HTML 排在第一位，源稿随后。
- 禁止输出 `[用途名](C:\\...\file.html)`、`[用途名](/绝对路径/file.html)` 或其他本地 Markdown 链接并宣称可点击。它们在部分宿主中只会显示为打不开的蓝字。
- 宿主没有原生附件能力时，给出纯文本绝对路径和文件名作为降级，并明确说明需要从文件系统打开；不得伪装成可点击附件。

HTML 交付前检查桌面端和移动端的阅读宽度、标题/金句换行、表格溢出、引用层级、前端标签白名单、链接可读性和工具栏遮挡。主题匹配优先遵循发布平台：公众号必须输出可粘贴的内联 HTML 正文片段和带复制按钮的预览页；知乎和小红书默认不因“可预览”而强制排版；官网/网页默认输出结构化网页；个人博客根据发布系统决定。小红书一旦生成复制预览，按钮必须复制纯文本笔记，不复制公众号富文本 HTML。

## 宿主环境适配

交付时同时满足宿主输出协议：

1. 最终回复正文必须给出核心结论与结构化表达，不因有文件交付而省略。
2. 只有平台属性或用户要求需要排版/预览时才生成 HTML；不能因为内容是报告、方案或指南就一律生成。生成时图片使用 `<figure><img><figcaption>` 结构，相对路径引用 `assets/` 下文件。
3. 图片在聊天正文中插入正文最后一节、交付物区块之前。
4. 使用宿主原生附件/文件卡片附上真实文件；不要用本地 Markdown 路径链接代替附件。交付前确认预览 HTML 是第一附件且文件非空。
5. 若当前宿主明确不支持原生附件，才降级为纯文本绝对路径，并说明能力边界；禁止声称“点击即可打开”。

## lint 检查项清单

`scripts/lint_article.py` 的提示是修正文任务，不是交付给用户的待办报告。常见检查项包括：

- 开头模板化：检查虚拟来源开头、泛季节、宏大背景、空泛设问和定义开场。
- 后台动作暴露：检查正文是否出现抓取、爬取、采集、检索结果、AI 生成、模型输出、提示词、脚本整理等生产过程词。
- 商业来源露出：检查是否把与主题存在直接商业利益的培训、辅导、认证或服务机构名称写进正文来源说明，形成无关背书或宣传。
- 排版语义：检查章节编号是否连续、组件是否有内部标签或长文本溢出；目录标题需要生成端逐章核对。
- 读者任务：检查标题承诺、答案、判断标准、动作或故事变化是否真正落地，不要求出现“真正/核心”等提示词。
- 活人感动作：检查说话位置、材料取舍、段落新增，以及翻案姿势、名词化和洞察路标是否过密。
- 证据密度：检查数据、专家、来源是否与文章体裁匹配。
- 来源要求：使用硬信息且 `--require-sources` 时，检查文末参考资料。
- 小红书原生度：检查标题长度、emoji/符号、标签数量、短段落、适合/避坑/判断标准模块。
- 长段落与报告腔：提示疑似公众号/报告模板化节奏。

如果 lint 输出 warning，应直接修改正文或结构后复查；只有受素材或平台限制无法处理时，才说明保留理由。

## Resources

- `references/ideation-protocol.md`：标题、核心想法和模糊灵感的检索对比、可写性评分和按需方向校准流程。
- `references/editorial-routing-protocol.md`：读者任务、材料条件、创新必要性、四档创新和增强级别路由。
- `references/editorial-evaluation-protocol.md`：跨体裁种子题、同题多跑、盲评维度和版本升级验收方法。
- `references/genre-structure-protocol.md`：文章体裁、结构变体、证据密度和反模板化流程。
- `references/high-impact-writing-protocol.md`：基础发布、编辑增强、深度增强以及按需升维、开头结尾和审美编辑流程。
- `references/opening-design-protocol.md`：文章开头个性化设计、虚拟来源开头限制和候选开头评估流程。
- `references/platform-native-protocol.md`：发布平台、内容目标、平台原生结构、小红书笔记和交付样式规范。
- `references/title-rules.md`：SEO、搜索意图、内容运营和标题评估流程。
- `references/research-protocol.md`：检索、来源分级、事实台账和引用规范。
- `references/writing-rules.md`：内容模式、论证结构、平台适配和实体策略。
- `references/humanize-rules.md`：自然表达、反模式化和不虚构人称的规则。
- `references/lint-checks.md`：lint 检查项、规则含义和修改方向。
- `scripts/extract_seed.py`：DOCX、PDF、图片素材提取和可选人工指定脱敏。
- `scripts/validate_task_intake.py`：新任务、恢复任务、正式写作/排版/交付前的必问项与条件项硬门禁。
- `scripts/validate_research_scope.py`：用户资料种子化、外部扩展检索、官方/权威核验、最新核验和来源组合硬门禁。
- `scripts/lint_article.py`：正文、引用、标题和常见 AI 腔的静态检查；`--strict-delivery` 将读者端政策违规升级为正式交付阻断。
- `scripts/build_html.py`：零外部依赖的多平台 HTML 交付入口，公众号平台会调用公众号专用排版器。
- `scripts/build_gzh_html.py`：Markdown 到公众号内联 HTML 快速排版器，支持 6 套 gzh-design 风格主题、自动匹配、干净正文片段和复制预览页；正式精排以 `assets/gzh-design/references/` 的完整组件库为准。
- `scripts/validate_gzh_html.py`：公众号 HTML 合规校验器。
- `scripts/validate_delivery_bundle.py`：跨平台交付完整性与正文质量校验器，支持基础两件和条件式排版四件；公众号固定四件。
- `scripts/scan_sensitive.py`：跟踪文本文件的高置信度凭据扫描器，用于本地自检和 CI。
- `scripts/component_lint.py`：公众号主题组件库源头检查器。
- `scripts/gzh_component_inventory.py`：公众号主题与组件清单检查器。
- `scripts/wrap_gzh_preview.py`：把干净公众号正文片段包成带复制按钮的浏览器预览页。
- `assets/gzh-design/references/`：gzh-design-skill 的完整公众号主题索引、公共组件和 6 套主题组件库。

