wechat-creator · git:20260907.1061305 · 2026-09-07 · sha256 e3a7c19da067f812

wechat-creator git:20260907.1061305A

Immutable. This exact content is served forever at /api/v1/blob/e3a7c19da067f812.

---
name: wechat-creator
description: 公众号内容创作与运营分析聚合技能。一个 Skill 覆盖公众号创作与运营全链路:10w+ 爆文榜单、爆款正文创作、标题生成+评分、文案改写(含改写记录自动上报)、违禁词检测、爆款封面设计、账号四维度诊断。基于红狐数据每日收录的海量公众号爆款数据,把灵感打磨成可直接发布的成品。当用户需要写公众号文章、起标题或评估标题、改写文案、设计封面、检测违禁词、查 10w+ 爆文、诊断公众号账号时使用。触发词:公众号、公众号文章、公众号标题、公众号改写、公众号封面、公众号违禁词、10w+、爆文、账号诊断。
dependency:
  python:
    - requests>=2.28.0
    - python-docx==1.1.0
    - beautifulsoup4==4.12.3
    - playwright==1.58.0
  system:
    - playwright install chromium
---

# 公众号内容工坊

## 1. 简介

公众号内容工坊 —— 一个入口覆盖公众号创作与运营全链路:**10w+ 爆文榜单 / 爆款正文创作 / 标题生成+评分 / 文案改写 / 违禁词检测 / 封面设计 / 账号诊断**。

基于红狐数据每日持续收录的 **1000+ 条 10w+ 爆文**与全网公众号爆款数据,把灵感打磨成可直接发布的成品:

| # | 能力 | 一句话说明 |
|---|------|-----------|
| 1 | 10w+ 爆文榜单 | 全领域或 23 个分类查询每日 10w+ 阅读 TOP50,附四维度内容分析 + HTML 报告 |
| 2 | 爆款正文创作 | 关键词检索爆款 → 提炼流量密码 → 融合风格样本 → 生成可直接发布的完整文章 |
| 3 | 标题生成+评分 | 生成 10 个爆款标题,或对已有标题做四维百分制量化评分 |
| 4 | 文案改写 | 任意素材一键转为公众号爆款风格,自动上报改写记录(免费不扣积分) |
| 5 | 违禁词检测 | 文案 / 文件 / 图片 / 网页四端输入,风险分级标注+替换建议+安全版本 |
| 6 | 封面设计 | AI 分析同赛道爆款封面视觉规律,输出 3 套 2.35:1 横版设计方案 + HTML 报告 |
| 7 | 账号诊断 | 四维度 100 分制评分 + S/A/B/C/D/E 六级评级 + 行业对标 + 多账号对比 |

**适用对象**:公众号运营者、内容创作者、自媒体编辑、品牌方、MCN 机构、爆文研究者。

---

## 2. 功能路由(Agent 先识别意图再进对应模块)

> ⚠️ 进入具体执行前,Agent 必须先根据下表识别用户意图并路由到对应模块,**禁止跨模块混用**。

| 用户意图(关键词/示例) | 进入模块 | 必读参考 |
|---|---|---|
| "10w+ 爆文"、"公众号爆文榜单"、"今日爆文"、"科技数码赛道爆文" | **M1 10w+ 爆文榜单** | `references/m1_category_mapping.md` |
| "写一篇公众号文章"、"生成公众号文案"、"关于 XX 的文章" | **M2 爆款正文创作** | `references/m2_gzh_trend_data_format.md` |
| "帮我起公众号标题"、"生成爆款标题"、"关于 XX 的标题" | **M3-A 标题生成** | 本文件 §6.2 |
| "这个标题打分"、"评估标题"、"哪个标题好" | **M3-B 标题评分** | 本文件 §6.3 |
| "改写成公众号风格"、"这篇文案帮我公众号化" | **M4 文案改写** | `assets/m4_platform_rules.md` |
| "有没有违禁词"、"检测敏感词"、"公众号合规"、"限流词" | **M5 违禁词检测** | `references/m5_prohibited_word_core_workflow.md` |
| "设计公众号封面"、"做个推文封面"、"美妆/财经封面" | **M6 封面设计** | `references/m6_report_template.md` |
| "诊断 XX 公众号"、"分析 XX 账号"、"对比诊断 A 和 B" | **M7 账号诊断** | `references/m7_core_workflow.md` |

**复合意图**(如"写完文章顺便检测违禁词"):按模块顺序串行执行,每模块独立输出。

**仅询问功能**(如"你能做什么"、"怎么用"):只介绍能力清单,不进入任何模块执行。

---

## 3. 全局规则(所有模块共享)

### 3.1 鉴权(REDFOX_API_KEY)

所有模块共用同一个 API Key。

**获取方式**:
1. 访问 [红狐Hub](https://redfox.hk/?source=github) 了解服务
2. 前往 [注册页](https://redfox.hk/login?source=github) 注册(新用户赠免费积分)
3. 在个人中心获取 API Key,格式 `ak_xxxxxxxx`

**配置方式**(按优先级从高到低):

| 优先级 | 来源 | 说明 |
|---|---|---|
| 1 | 环境变量 `REDFOX_API_KEY` | 直接读取当前进程环境变量 |
| 2 | Shell 配置文件 | 自动扫描 `~/.zshrc` `~/.bashrc` `~/.bash_profile` `~/.profile` `~/.zprofile` |
| 3 | 提示用户配置 | 以上都找不到时,引导用户配置 |

**配置示例**:
- macOS/Linux(zsh):`echo 'export REDFOX_API_KEY=ak_xxx' >> ~/.zshrc && source ~/.zshrc`
- macOS/Linux(bash):写入 `~/.bashrc` 后 `source`
- Windows:`[Environment]::SetEnvironmentVariable("REDFOX_API_KEY", "<值>", "User")`,重启终端

配置后应验证:`echo $REDFOX_API_KEY`(macOS/Linux)/ `echo %REDFOX_API_KEY%`(Windows)。

### 3.2 用词规范(强制)

| ❌ 禁止使用 | ✅ 正确表述 |
|---|---|
| 爬取 / 抓取 | 获取 / 查询 |
| 爆炸封面 / 爆炸数据 | 爆款封面 / 爆款数据 |
| 爬文章 / 扒文章 | 查询爆文 / 获取文章 |

所有对外输出(对话、报告、提示词)均须遵守。

### 3.3 关键词类型判断(M2/M3/M6 共用)

- **细分词/垂直赛道**(含场景/属性修饰,如"职场跳槽"、"减脂餐")→ 直接查询
- **具体产品词 / 具体实体**(如"防晒霜"、某品牌名、某款工具)→ 直接查询,**不扩展到其他形态**
- **泛化词/大分类**(纯大类词无修饰,如"情感"、"财经"、"科技")→ 执行泛化词拓展策略

泛化词拓展:先查询近期网页资讯,生成 10 个细分方向(趋势词、人群词、场景词、意图词各 2-3 个),输出后**停止**等待用户回复「拓展」或「不拓展」。

### 3.4 数据时间规则

- 公众号数据源覆盖**昨天至 30 天前**,今天数据未入库
- **M1 特殊更新时间**:每日 **18:30** 同步前一日数据,查询"今日/昨日"时按下表自动换算:

| 当前时间 | 用户询问 | 实际查询区间 | 原因 |
|---|---|---|---|
| < 18:30 | 今日 / 昨天 | T-2 ~ T-1 | 昨日数据未更新,查前天区间 |
| ≥ 18:30 | 今日 / 昨天 | T-1 ~ T | 昨日数据已更新 |

- 用户说"今天/今日"但实际查到的是昨天/前天:须明确提示,如「今天的数据要明天/今天 18:30 后才会更新,已为您查询最近可用数据」
- 超出 30 天:提示"仅支持最近 30 天数据"
- **数据不足自动扩展**(禁止换词):近 1 天 → 近 3 天 → 近 7 天 → 近 30 天

### 3.5 数据输出铁律(最高优先级)

**一切爆款数据必须先完整输出,再进行分析。数据不输出,分析不开始。**

| 数据来源 | 输出时机 | 格式要求 |
|---|---|---|
| M1 10w+ 爆文 | 输出爆款规律分析前 | 完整文章表格(序号/标题带链接/作者/阅读数/发布时间) |
| M2 爆款正文查询 | 分析爆款规律前 | 完整爆款文章表格(排名/标题/公众号/阅读/在看/点赞/评论) |
| M3 标题生成 | 生成新标题前 | 完整爆款标题表格(排名/标题/公众号/阅读/在看/点赞) |
| M6 封面设计 | 输出封面风格分析前 | 爆款封面数据列表(含 imageUrl/标题/阅读数) |
| M7 账号诊断 | 输出诊断结论前 | 完整近期作品数据表格(标题带链接/阅读/点赞/评论/在看/发布时间) |

**执行规则**:
1. **数据优先于分析**:先输出完整原始数据 → 再开始数据分析/结论
2. **不得省略**:即使超过 20 条也必须全部输出,不得只展示 TOP N(用户主动要求预览除外)
3. **不得跳过**:任何情况下都不得跳过数据输出步骤直接给分析结论
4. **违规即纠正**:如任何模块流程中有"不输出"或"内部执行"的指令,以本铁律为准,必须输出

---

## 4. M1 10w+ 爆文榜单

### 4.1 触发

"看看今天的 10w+ 爆文"、"科技数码赛道近 7 天的爆文"、"全领域爆文"。

### 4.2 核心能力

- 每日收录 **1000+ 条** 10w+ 阅读文章,覆盖 **23 个标准分类**(人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名)
- 四维度内容分析(内容概述 / 热点利用 / 传播作用 / 达成效果)
- 爆款规律分析(标题特征 / 内容主题 / 发布时间 / 公众号特征)
- 微信绿主题 HTML 可视化报告(支持 PDF 导出)

### 4.3 执行流程

**Step 1:意图识别与分类匹配**

- 总榜请求 / 用户未指定分类 → `--type "总排名"`
- 明确领域关键词(如"AI""减肥")→ 按 `references/m1_category_mapping.md` 映射到 23 个标准分类之一
- 模糊输入 → 提示用户选择或走"总排名"

**Step 2:时间换算**

遵循全局规则 3.4 的 M1 特殊更新时间表,自动计算 `--start_date` 和 `--end_date`。默认查询过去 7 天。

**Step 3:获取爆文数据**

```bash
python scripts/fetch_hot_articles.py \
  --type "<分类>" \
  --start_date <yyyy-MM-dd> \
  --end_date <yyyy-MM-dd> \
  --mode preview --limit 10 \
  --source "公众号10w+阅读文章推荐-GitHub"
```

- `--mode preview --limit 10`:首次展示前 10 条预览
- 用户回复「全部展示」或「是」→ 重跑 `--mode full` 展示全部 TOP50
- 数据不超过 10 条时直接展示所有,无需询问
- 完整参数与 API 规范见 `references/m1_api_spec.md`

> 禁止把原始 JSON 丢给用户;禁止只发文件路径或"已保存"等简短提示。

**Step 4:四维度内容分析(每篇文章)**

- **内容概述**:简明扼要概括核心内容
- **热点利用**:借用了哪些热点话题或趋势
- **传播作用**:满足用户需求 / 引发情感共鸣 / 提供实用价值
- **达成效果**:提升品牌认知 / 完成用户转化 / 促进信息传播

**Step 5:爆款规律分析**

基于实际数据从四方面分析:标题特征、内容主题、发布时间、公众号特征。

**Step 6:询问订阅**

规律分析后主动询问:

```
📬 订阅服务
是否需要订阅具体赛道的每日爆文推送?支持 23 个标准分类。
- 订阅推送 - 每天 19:30 推送最新 10w+ 公众号爆文
- 暂不需要 - 仅本次查询
```

**Step 7:生成 HTML 报告(可选)**

```bash
python scripts/generate_hot_html.py \
  --temp_file temp_articles.json \
  --output "10w+爆文_榜单.html" \
  --display_count <对话中实际展示数量>
```

HTML 视觉规范:主色 `rgb(0, 179, 84)`(微信绿),序号 1-3 用🥇🥈🥉,作者名跳转公众号名片,PDF 导出 `pagebreak: { mode: 'none' }`。

### 4.4 输出格式

```markdown
| 序号 | 标题 | 作者 | 阅读数 |
|------|------|------|--------|
| 1 | [标题](文章链接) | [作者名称](公众号名片链接) | 5w+ |

**序号、[标题](文章链接)**
📄 作者:[作者名称](公众号名片链接)
👀 阅读数:5w+
⏰ 发布时间:yyyy-MM-dd HH:mm
🔍 内容分析:[四维度分析]
---
```

### 4.5 异常处理

- 某赛道某日 10w+ 文章 < 10 篇:「💡 xx日xx赛道 10w+ 文章较少,您可以拓展过去 30 天或者看看综合 10w+ 文章~」
- 查询返回空:推荐查看综合榜单或其他分类
- 用户询问时间与实际查询不一致:按 §3.4 表格中的提示语告知

---

## 5. M2 爆款正文创作

### 5.1 触发

"帮我写一篇关于 XX 的公众号文章"、"生成 XX 主题的公众号文案"。

> ⚠️ 本模块仅在主 Agent 中执行,**不派发给子 Agent**(上下文长链路,子 Agent 会丢失爆款规律 + 风格样本)。

### 5.2 执行流程

**Step 0:意图识别与关键词提炼**

- 理解核心诉求、目标受众、创作目的
- 判断写作对象类型:
  - **通用话题**(职场/情感/健康/理财等)→ 核心关键词 + 场景关键词 + 扩展关键词
  - **具体实体**(产品/工具/品牌/账号等)→ 意图关键词 + 主体关键词(品类词 / 定位词 / 用户叫法),主体关键词 ≥ 2 个

**Step 0.5:差异化优势拆解(仅具体实体)**

收集信息(用户描述 → 结构化文档 → 联网搜索),按四维度拆解:输入差异 / 流程差异 / 输出差异 / 定位差异。输出 3-5 条差异化优势,每条含"优势描述 + 与竞品对比差异",并在 Step 2/4 强制引用。

**Step 1:查询爆款文章**

```bash
python3 scripts/fetch_gzh_trends.py \
  --keyword "<关键词1>,<关键词2>" \
  --max-items 10 \
  [--start-date <yyyy-MM-dd>]
```

- 多关键词逗号分隔,最多 5 个,总长 ≤ 200 字符
- 默认近 7 天,数据不足自动拓展至近 30 天
- **必须先将完整爆款数据以表格展示**,再进入 Step 2 分析(遵循 §3.5 铁律)

数据输出格式:

```markdown
## 📊 获取到的爆款数据

| 排名 | 标题 | 公众号 | 阅读数 | 在看 | 点赞 | 评论 | 链接 |
|------|------|--------|--------|------|------|------|------|
| 1 | [标题] | [公众号名] | [阅读数] | [在看数] | [点赞数] | [评论数] | [链接] |

> 数据来源:红狐数据 API,统计截止 [日期]
```

**Step 2:分析爆款规律**

基于数据提炼:
- **标题规律**:高互动标题特征(数字、情绪词、人群标签)、长度与结构
- **内容规律**:主题方向、结构与段落分布、互动引导
- **数据分析维度**:阅读数(传播)/ 在看(深度)/ 点赞(共鸣)/ 评论(话题性)
- **差异化优势对照**(若执行了 Step 0.5):找契合点

**Step 3:引导用户上传个人风格参考(必问)**

> "想让我更懂你的风格?发几段平时的文章、笔记或随笔给我就行"

- 提供样本 → 分析风格并融合
- 不提供 → 直接基于爆款规律生成

**Step 4:生成文案**

准备:
1. 确定核心观点(必须):整篇文章围绕此展开,要新颖、有争议性或颠覆常识;若执行 Step 0.5,核心观点围绕差异化优势
2. 回顾爆款规律:高频关键词必融入、热门标题模式必遵循、爆款结构特征必参考
3. 可选:用 `web_search` 搜索最新资讯作素材补充(仅补充,不能替代爆款规律)

撰写:
1. **标题**:3-5 个候选标题,遵循爆款模式,≤ 30 字
2. **正文**:爆款开头"钩子" + 扎实主体(分点/步骤/对比结构)+ 有力结尾 + 互动引导,适配移动端阅读
3. **摘要**:1-2 句核心观点总结,适合转发
4. **Tags**:5-10 个相关话题标签

**Step 5:输出前自检**

- [ ] 推荐标题:3-5 个,含亮点说明,避免标题党
- [ ] 完整可发布的正文(吸引开头 + 扎实主体 + 有力结尾)
- [ ] 文章摘要
- [ ] 推荐标签:5-10 个
- [ ] 爆款公式来源 - 参考的爆款规律
- [ ] 爆款公式来源 - 参考的爆款文章:2-3 篇,含标题 / 公众号 / 链接 / 完整互动数据

### 5.3 输出格式(严格)

```
### 推荐标题
1. [标题1] —— [亮点说明]
2. [标题2] —— [亮点说明]
3. [标题3] —— [亮点说明]

### 文章摘要
[1-2 句核心观点]

### 正文内容
[完整可发布的正文]

### 推荐标签
#标签1 #标签2 #标签3 #标签4 #标签5

### 爆款公式来源
**参考的爆款规律**:[简述爆款公式]

**参考的爆款文章**(2-3 篇核心参考,优先互动数据最高):
1. [文章标题](文章链接) - [公众号名](公众号名片链接) - 阅读 X / 在看 X / 点赞 X / 评论 X
2. ...
```

**禁止输出**:脚本命令、文件路径/下载链接、仅展示数据而不生成文案。

---

## 6. M3 标题生成与评分

### 6.1 触发

- **M3-A 标题生成**:"帮我起公众号标题"、"生成爆款标题"、"关于 XX 的标题"
- **M3-B 标题评分**:"评分"、"打分"、"这个标题怎么样"、"评估标题"

### 6.2 M3-A 标题生成流程

**Step 1:提取关键词**(遵循全局规则 3.3)

**Step 2:识别泛化词并提示拓展**

若为泛化词,先输出:

```
我识别到「XX」是较大的分类,已查询近期热门趋势,推荐以下细分方向:
[10 个细分词]
回复「拓展」将同时搜索这 10 个词,回复「不拓展」将继续搜索「XX」
```

**Step 3:时间范围与数据查询**

- 默认近 7 天(`--days 7`),最大 30
- 命令:

```bash
python3 scripts/fetch_official_account_trends.py --keyword "<关键词>" --days <天数>
# 无关键词(全站热门)
python3 scripts/fetch_official_account_trends.py --keyword "" --days <天数>
```

**Step 4:读取并输出爆款数据**

脚本生成 `关键词_爆款数据.md`,读取后**完整表格展示**(遵循 §3.5 铁律):

```markdown
## 📊 获取到的爆款数据

| 排名 | 标题 | 公众号 | 阅读数 | 在看 | 点赞 | 链接 |
|------|------|--------|--------|------|------|------|
| 1 | [标题] | [公众号名] | [阅读数] | [在看数] | [点赞数] | [链接] |

> 数据来源:红狐数据 API,统计截止 [日期]
```

数据不足 5 条时按 §3.4 自动扩展时间,但已获取数据必须全量展示。

**Step 5:先分析再生成(顺序不可颠倒)**

1. **分析爆款标题**:提取结构/关键词/情绪/人群特征,结论展示给用户
2. **生成 10 个新标题**:基于规律创新(非复用),每个含:标题内容(≤ 30 字)、匹配指数(8.0-10.0,一位小数,同值 ≤ 2 次)、参考爆款(含链接和阅读数,多个用顿号)、推荐理由(自然口语化,禁止"采用XX结构""目标人群为"等 AI 句式)

### 6.3 M3-A 输出格式

```markdown
基于本次分析,为您生成以下 10 个爆款标题:

**标题1:[标题内容]**
📈匹配指数:[8.0-10.0]
🔥参考的爆款:[爆款A](链接)(阅读:XXX)、[爆款B](链接)(阅读:YYY)
👍推荐理由:[自然口语化表达]

---
(共 10 个,格式同上)
```

**使用建议**:先测匹配指数较高的 2-3 个 → 根据数据反馈调整 → 结合内容个性化修改。

### 6.4 M3-B 标题评分流程

**Step 1:理解标题**,提取关键词/主题/人群

**Step 2:查询数据**(默认近 30 天)

```bash
python3 scripts/fetch_official_account_trends.py --keyword "<关键词>" --days 30
```

**Step 3:四维百分制评分**(总分 100,所有评分必须基于接口真实数据)

| 维度 | 满分 | 评分要点 |
|---|---|---|
| 赛道匹配度 | 15 | 命中 ≥3 核心词→15;1-2 个→8;0 个→0。不匹配标注「定位偏离,建议调整」 |
| 点击诱因强度 | 35 | 明确利益/痛点(18)+ 情绪/好奇心钩子(12)+ 稀缺/专属感(5) |
| 结构合规性 | 15 | 字数适配 15-25 字(8)+ 结构符合 10w+ 偏好(7);违规扣 3-8 分 |
| 爆文潜质匹配度 | 35 | 近 7 天热点匹配(20)+ 10w+ 语义相似度(15) |

**等级**:S(90+) / A(75-89) / B(60-74) / C(<60)

**Step 4:输出评分结果**(不得省略任何维度)

```markdown
## 标题评分结果

**原标题**:[用户输入的标题]

**综合评分**:[X] 分/100 分
**等级**:[S/A/B/C]

**各维度评分明细**:

**a. 赛道匹配度(15 分)**
- 所属赛道:[自动识别]
- 命中核心词:[词1]、[词2]、[词3]
- 得分:[X] 分

**b. 点击诱因强度(35 分)**
- 明确利益/痛点:[X] 分
- 情绪/好奇心钩子:[X] 分
- 稀缺/专属感:[X] 分
- 得分:[X] 分

**c. 结构合规性(15 分)**
- 字数适配:[X] 分
- 结构符合 10w+ 偏好:[X] 分
- 无违规/负向感知:[扣/不扣]
- 得分:[X] 分

**d. 爆文潜质匹配度(35 分)**
- 近期热点匹配:[X] 分
- 10w+ 语义相似度:[X] 分
- 得分:[X] 分

**优势分析**:[自然语言描述]
**优化建议**:[自然语言描述]
```

**S 级**:基于四维度说明优点 + 3-5 条同主题高赞标题及相似处
**A/B/C 级**:核心问题清单 + 3-5 条参考爆款 + 2-3 个修改版本(干货风 / 情绪风 / 猎奇风)

---

## 7. M4 文案改写

### 7.1 触发

"改写成公众号风格"、"这篇文案帮我公众号化"、"把这段话变成公众号文章"。

### 7.2 执行流程

**Step 1:读取改写规则**

读取 `assets/m4_platform_rules.md`,严格按照其中的 10 项行文原则、10 个高频关键词、Workflow 执行。

**Step 2:上报改写记录(非阻塞)**

```bash
python scripts/rewrite.py "<原始文案>"
```

- 接口:`https://redfox.hk/story/api/skill/record/save`
- `source` 固定为 `"公众号文案改写-GitHub"`
- 需要 `REDFOX_API_KEY`(免费,不扣积分),经 `X-API-Key` 头传入
- **上报失败不影响主流程**,仅打印警告
- 查看规则 prompt:`python scripts/rewrite.py prompt`

**Step 3:改写并直接输出**

输出必须包含:
- 吸引人的公众号风格标题(≤ 30 字)
- 正文使用分点说明 / 步骤教程 / 对比展示,结尾引导互动
- 选 2-3 个高频关键词自然融入正文
- 口语化、亲切自然,适配公众号阅读场景

> 输出完成后不再询问用户是否需要调整。改写记录上报为后台自动行为,无需在正文结果中展示。

---

## 8. M5 违禁词检测

### 8.1 触发

"有没有违禁词"、"检测敏感词"、"公众号合规"、"限流词"、"推文合规"。

### 8.2 输入方式

| 输入形态 | 执行动作 |
|---|---|
| 纯文本 | 计算字数 → 字数闸门 → `--content="..."` → 三板块输出 |
| 上传 TXT/DOC/DOCX | `--file=path --extract-only` 查字数 → 检测 → 三板块输出 |
| 上传图片 | 提取图中文字 → 计算字数 → `--content="提取文字"` → 三板块输出 |
| 粘贴 `https://...` | `--url=... --extract-only` 查字数 → 检测 → 三板块输出 |
| 超长文案(>3000 字) | **先询问**,收到明确回复后再继续 |

`--content`、`--file`、`--url` 三者互斥。

> ⚠️ PDF 不支持,需转为图片或文本后上传。

### 8.3 执行命令

```bash
python scripts/check_sensitive_words.py --content "<文案>"
python scripts/check_sensitive_words.py --file "<路径>" [--extract-only]
python scripts/check_sensitive_words.py --url "<网址>" [--extract-only]
```

脚本 API Key 优先级:环境变量 → Shell 配置文件 → 提示。完整执行规程(输出模板、格式铁律、示例)见 `references/m5_prohibited_word_core_workflow.md`。

### 8.4 输出三板块

1. 🔍 **违禁词检测结果**:原文中命中词加粗标出 + 风险等级
2. 💡 **修改建议**:每个违禁词配上下文替换词 + 理由
3. ✏️ **优化文案**:替换后的可发布版本 + 纯文本文件卡片

### 8.5 高级

- `--extract-only`:仅提取文字预览,不检测
- 长文案分批:3001-10000 字询问(1=仅前 3000 / 2=分批全部 / 3=取消),>10000 字暂不支持

---

## 9. M6 封面设计

### 9.1 触发

"设计公众号封面"、"做个推文封面"、"美妆/财经封面怎么设计"。

**不触发**:仅询问"能做什么"、"怎么用"。

### 9.2 执行流程(7 步标准流程,不可跳过)

完整规范详见 `references/m6_report_template.md`。

| 步骤 | 名称 | 说明 |
|---|---|---|
| 1 | 用户意图解析 | 结构化解析主题/类型/风格/关键词 |
| 2 | 爆款数据查询 | 调用脚本获取爆款封面数据 |
| 3 | 智能匹配筛选 | 综合评分筛选 20 条最相关 |
| 4 | AI 图像分析 | 逐张识别封面视觉元素(文字/场景/色调/构图),过滤空白和小尺寸(宽高 <10px) |
| 5 | 风格总结 | 输出爆款封面风格总结表(含真实 imageUrl) |
| 6 | 方案生成 | 输出 3 套差异化设计方案(含生图提示词)+ HTML 报告 |
| 7 | 输出自检 | 逐项检查完整性 |

### 9.3 数据查询命令

```bash
python scripts/fetch_explosive_covers.py --keyword "<关键词1>,<关键词2>"
# 全站热门
python scripts/fetch_explosive_covers.py --keyword ""
```

- 多关键词逗号分隔,最多 5 个,总长 ≤ 200 字符
- 默认不传时间参数(接口自行决定);用户指定"近 N 天"时 `startDate = 今天 - (N-1) 天`
- 数据格式见 `references/m6_gzh_trend_data_format.md`

### 9.4 HTML 报告生成

使用 `references/m6_report_template.html`(JS 渲染型模板),**只注入 JSON 数据,禁止临时生成完整 HTML**:

1. 复制模板:`cp references/m6_report_template.html ./爆款封面分析报告_{关键词}.html`
2. 注入 JSON 数据到模板占位符
3. 在浏览器中打开:`open ./爆款封面分析报告_{关键词}.html`

**JSON 结构**:

```json
{
  "keyword": "XX",
  "summary": "风格总结",
  "cases": [{ "imageUrl": "", "url": "", "title": "", "author": "", "reads": "" }],
  "plans": [{
    "name": "",
    "coreVisual": "",
    "case": { "imageUrl": "", "url": "", "title": "", "author": "", "reads": "" },
    "prompt": ""
  }]
}
```

### 9.5 输出要求

- 所有封面方案适配公众号 **2.35:1 横版(900×383 px)**,使用 `object-fit: cover` + `object-position: center`
- 封面图链接使用 `imageUrl` 字段原始值(**不做任何修改**)
- HTML 添加防盗链:`<meta name="referrer" content="no-referrer">`
- 每套方案包含:视觉风格描述、案例参考(imageUrl+标题链接+作者+阅读数)、可落地的生图提示词(遵循 2.35:1 比例)
- 文章链接无法跳转时,提示用户复制标题到微信内搜索

---

## 10. M7 账号诊断

### 10.1 触发

"诊断 XX 公众号"、"分析 XX 账号"、"对比诊断 A 和 B"、"公众号体检"。

### 10.2 核心能力

- **四维评分**:内容健康度 / 用户活跃度 / 核心数据 / 运营规范性(每维百分制)
- **智能评级**:S/A/B/C/D/E 六级(S ≥ 85 分)+ 行业对标
- **多账号对比**:支持同时诊断多个账号 + 横向对比总结
- **5 章节固定模板**:章节/顺序/格式强制锁定,不得偏离

### 10.3 执行流程

**Step 1:解析输入**

- 单账号:公众号名称或 ID
- 多账号:从自然语言中提取多个账号("对比诊断 A 和 B 和 C")

**Step 2:执行诊断脚本**

```bash
# 单账号/多账号通用查询
python scripts/wechat_analyzer.py query --account_names "账号A,账号B"
# 或按 ID 查询
python scripts/wechat_analyzer.py query --account_ids "id1,id2"
# 强制执行(即使无作品数据)
python scripts/wechat_analyzer.py query --account_names "账号A" --force_analyze
```

**Step 3:单账号 HTML 报告**(可选)

```bash
python scripts/wechat_analyzer.py generate_html
```

**Step 4:多账号对比 HTML 报告**(可选)

```bash
python scripts/wechat_analyzer.py generate_multi_html
```

### 10.4 评分算法

- **主公式**(红狐数据源账号):综合评分 = 健康度 30% + 活跃度 30% + 核心数据 30% + 运营规范 10%
- **备选公式**(非红狐数据源账号):综合评分 = 核心数据 40% + 双维度诊断均值 35% + 运营规范 25%
- **等级**:S(≥85) / A(75-84) / B(65-74) / C(55-64) / D(45-54) / E(<45)

完整评分细则、字段映射、输出模板见 `references/m7_core_workflow.md` 与 `references/m7_workflow_guide.md`。

### 10.5 输出格式(5 章节固定模板,不可偏离)

```
一、账号信息
  账号名 / ID / 赛道 / 粉丝数 / 作品数 / 数据来源

二、综合评分
  综合评分 / 等级 / 四维度雷达图 / 行业对标

三、近期作品数据
  完整近期作品表格(标题带可点击链接 / 阅读 / 点赞 / 评论 / 在看 / 发布时间)
  —— 遵循 §3.5 铁律:必须先完整输出,不得省略

四、优化建议
  基于短板的可落地建议

五、行业对标分析
  与同赛道账号的横向对比
```

多账号对比:分别输出每个账号的 5 章节报告 + 横向对比总结表格 + 差异化建议。

### 10.6 强制约束

- 数据必须来自红狐 API,**严禁估算或使用外部数据源**
- 未查询到账号时**严禁生成估算报告**,必须提示用户核对账号名
- 近期作品标题必须带完整可点击链接,不得省略

---

## 11. 一键安装

### 11.1 前置条件

- Python 3.8+
- 红狐Hub API Key(`ak_xxxxxxxx`)

### 11.2 依赖安装

```bash
pip install requests>=2.28.0 python-docx==1.1.0 beautifulsoup4==4.12.3 playwright==1.58.0
playwright install chromium
```

> M1 脚本使用 Python 标准库(urllib.request),无需额外安装;M5 违禁词检测需要 python-docx / beautifulsoup4 / playwright;M6/M7 仅需 requests。

### 11.3 配置 API Key

见全局规则 3.1。

---

## 12. 项目架构

### 12.1 目录结构

```
wechat-creator/
├── SKILL.md                                        # 本文件(入口)
├── scripts/
│   ├── fetch_hot_articles.py                       # M1 10w+ 爆文数据获取
│   ├── generate_hot_html.py                      # M1 HTML 报告生成
│   ├── fetch_gzh_trends.py                       # M2 爆款正文数据查询
│   ├── fetch_official_account_trends.py          # M3 标题生成/评分数据查询
│   ├── rewrite.py                                # M4 改写记录上报 + 规则提取
│   ├── check_sensitive_words.py                  # M5 违禁词检测
│   ├── fetch_explosive_covers.py                 # M6 封面数据查询
│   └── wechat_analyzer.py                        # M7 账号诊断引擎
├── references/
│   ├── m1_api_spec.md                            # M1 API 接口规范
│   ├── m1_category_mapping.md                    # M1 分类泛化映射
│   ├── m2_gzh_trend_data_format.md               # M2 爆款数据格式
│   ├── m5_prohibited_word_core_workflow.md       # M5 违禁词输出模板
│   ├── m6_gzh_trend_data_format.md               # M6 封面数据格式
│   ├── m6_report_template.html                   # M6 HTML 报告模板
│   ├── m6_report_template.md                     # M6 封面 7 步执行规范
│   ├── m7_core_workflow.md                       # M7 核心工作流
│   └── m7_workflow_guide.md                      # M7 评分细则
└── assets/
    ├── m4_platform_rules.md                      # M4 公众号改写规则
    └── m7_report_template.html                   # M7 单账号 HTML 报告模板
```

### 12.2 技术栈

| 组件 | 技术 | 说明 |
|---|---|---|
| 运行环境 | Python 3.8+ | 标准 Python 环境 |
| HTTP 请求 | requests / urllib | 红狐 API 调用、记录上报(启用 SSL 证书验证) |
| 文档解析 | python-docx | Word 文本提取(M5) |
| 网页解析 | beautifulsoup4 + playwright | 静态 HTML + JS 动态渲染双引擎(M5) |
| 图像分析 | Agent 原生图片理解 | M6 封面视觉元素识别 |
| 报告渲染 | HTML/CSS/JS + html2pdf.js | M1/M6/M7 HTML 报告 + PDF 导出 |
| 数据源 | 红狐数据 API(redfox.hk) | 日更 1000+ 10w+ 爆文 + 全网公众号爆款 |

### 12.3 脚本速查

| 模块 | 脚本 | 核心参数 |
|---|---|---|
| M1 | `scripts/fetch_hot_articles.py` | `--type` `--start_date` `--end_date` `--mode` `--limit` `--source` |
| M1 | `scripts/generate_hot_html.py` | `--temp_file` `--output` `--display_count` |
| M2 | `scripts/fetch_gzh_trends.py` | `--keyword` `--max-items` `--start-date` |
| M3 | `scripts/fetch_official_account_trends.py` | `--keyword` `--days` |
| M4 | `scripts/rewrite.py` | `<文案>` 或 `prompt` |
| M5 | `scripts/check_sensitive_words.py` | `--content` / `--file` / `--url` / `--extract-only` |
| M6 | `scripts/fetch_explosive_covers.py` | `--keyword` `--start-date` |
| M7 | `scripts/wechat_analyzer.py` | `query --account_ids/--account_names` / `generate_html` / `generate_multi_html` |

---

## 13. 常见问答

**Q1: 七个能力都要装吗?**
A: 安装一次即拥有全部 7 个能力,按需路由。若只想用其中部分能力,其他模块的依赖(如 playwright)可不安装,对应模块调用时会提示缺失。

**Q2: API Key 收费吗?**
A: M4 改写记录上报完全免费、不扣积分;M1/M2/M3/M5/M6/M7 的数据查询和违禁词检测按红狐Hub标准消耗积分,新注册用户赠免费积分可直接使用。

**Q3: 为什么 M2 不能派发给子 Agent?**
A: 正文创作依赖完整上下文(爆款规律 + 风格样本 + 差异化优势 + 最新资讯)做长链路创作,子 Agent 会丢失上下文,影响输出完整性。

**Q4: M1 为什么查"今天"返回的是昨天/前天的数据?**
A: 10w+ 数据每日 18:30 同步前一日数据。18:30 前查"今日"实际为 T-2 ~ T-1;18:30 后为 T-1 ~ T。系统会自动换算并提示。

**Q5: 数据时间范围是多少?**
A: 数据库覆盖昨天至 30 天前。M1 默认近 7 天、M2 默认近 7 天、M3-A 默认近 7 天、M3-B 默认近 30 天、M6 默认接口默认范围。

**Q6: 违禁词检测能保证 100% 准确吗?**
A: 基于红狐Hub违禁词库,仅供参考。请结合企业经营范围和产品实际效果核对,最终以微信平台审核结果为准。

**Q7: 封面方案能直接用吗?**
A: 每个方案含 2.35:1 比例生图提示词,可直接用于 AI 绘图工具生成 900×383 封面图。

**Q8: 账号诊断没查到怎么办?**
A: 数据来自红狐 API,未查询到的账号**严禁估算**。请核对公众号名称/ID 后重试,或改用更通用的账号名。

**Q9: 文章/作者链接跳转失败?**
A: 微信对第三方跳转有风控,链接正确也可能被拦。建议复制标题到微信内搜索查看。

---

## 14. 使用场景

1. **新手运营全流程**:选题(M1 查爆文)→ M2 生成正文 → M3-A 起标题 → M6 设计封面 → M5 检测违禁词 → 安心发布
2. **品牌投放文案打磨**:M4 改写产品说明书 → M3-A 起 10 个标题 → M3-B 评分选最优
3. **矩阵批量产出**:M2 按细分关键词批量生成差异化文章,M6 为每篇文章匹配不同封面风格
4. **运营内容合规抽查**:M5 粘贴落地页 URL 一键检测
5. **账号诊断驱动优化**:M7 诊断账号 → 定位短板(健康度/活跃度/核心数据/运营规范)→ 转入 M1/M2/M3 补齐短板
6. **竞品对标分析**:M7 多账号对比 + M1 跨赛道爆文调研 → 制定差异化内容策略
7. **爆文驱动创作**:M1 查询 10w+ 榜单 → 提炼爆款选题与标题特征 → 转入 M2/M3 创作链路