---
name: content-pipeline
description: 内容生产和分发统一管线。素材收集→出稿→排版→封面→朋友圈文案→多平台转换→一键分发。涵盖公众号写作、小红书轮播图、即刻文案、播客音频、品牌视频、Chrome CDP 自动发布。
---

# 内容管线 Content Pipeline

> 本技能默认使用 01fish 品牌色作为示例。你可以在 `references/` 目录下修改为自己的品牌色，或在 `local/SKILL.local.md` 中覆盖路径和个人设定。

一条龙：素材收集 → 写文章 → 排版 → 多平台内容 → 一键分发。

---

## 存储位置

```
[输出目录]/
├── drafts/
│   └── current.json        # 当前素材列表
├── [文章标题].md            # 产出的文章
├── [文章标题]_preview.html  # 排版预览
└── [主题]-小红书版.html     # 小红书轮播图
```

输出目录由用户指定，或在 `local/SKILL.local.md` 中配置默认路径。未指定目录时，多平台产出放 `/tmp/`。

---

## 触发词

### 素材收集（Path A）

| 触发词 | 说明 |
|-------|------|
| `/story` | 查看当前素材状态 |
| "看看素材" | 查看已记录的素材 |
| "出稿" | 生成文章 + 排版 + 封面图 |
| "清空素材" | 清空当前素材 |
| "记一笔：xxx" | 手动添加素材 |
| "素材+1：xxx" | 手动添加素材 |
| "写个朋友圈" | 根据素材/文章生成朋友圈文案 |

### 内容生成（Path B）

| 触发词 | 说明 |
|-------|------|
| `/xiaohongshu` + 微信链接 | 微信文章转小红书轮播图 |
| "转小红书" + 微信链接 | 同上 |
| "做成小红书" + 微信链接 | 同上 |
| "转即刻" + 微信链接 | 生成即刻文案 |
| "转播客" + 微信链接 | 生成播客脚本 + AI 语音 |
| `/podcast` + 链接/文章/书名 | 小宇宙播客全流程（15分钟百家讲坛风格） |
| "做播客" + 链接/文章/书名 | 同上 |
| "录播客" + 链接/文章/书名 | 同上 |
| "讲书播客" + 书名/链接 | 百家讲坛风格讲书播客 |
| `/shiji` + 文章/素材 | 史记罗生门栏目播客（AI侦探×史源追踪） |
| "史记罗生门" + 文章/素材 | 同上 |
| "做史记播客" + 文章/素材 | 同上 |
| "做视频" + 微信链接 | 触发品牌视频管线 |
| "做视频画布" + 网址列表 | 生成录屏画布（全屏网页演示 + 露脸 + 提词器） |
| "录屏画布" + 网址列表 | 同上 |
| "录屏" + 网址列表 | 同上 |
| "多平台分发" + 微信链接 | 一次生成所有平台内容 |
| "转小红书并发布" + 微信链接 | 生成 + 自动触发分发 |

### 文章阅读

| 触发词 | 说明 |
|-------|------|
| `/read-gzh` + 微信链接 | 抓取并总结公众号文章 |
| "帮我读一下这篇公众号" | 同上 |
| "总结一下这篇文章" | 同上 |

### 排版与配图

| 触发词 | 说明 |
|-------|------|
| "排版" | 用 01fish 主题排版 Markdown → 公众号 HTML |
| "做头图" / "封面图" | 生成公众号头图 HTML（浏览器下载 PNG） |
| "做竖版封面" / "竖版头图" | 从公众号封面 → 生成 3:4 竖版封面（1080×1440），适合小红书/视频号 |
| "做配图" / "准备配图" | 生成文章配图 HTML（浏览器下载 PNG） |
| "排版+配图" / "全套排版" | 排版 + 头图 + 配图一起生成 |

### 分发

| 触发词 | 说明 |
|-------|------|
| `/distribute` | 读取 manifest 一键发布 |
| "一键发布" | 全平台发布 |
| "全平台发布" | 同上 |
| "发布到小红书" | 单平台发布 |
| "发布到即刻" | 单平台发布 |

---

## 核心原则：全然诚实

**AI 生成的内容必须诚实标注，不装人类，展现真实的创作过程。**

### 诚实标注规范

当 AI 参与内容创作时，必须在文章中明确标注：

```markdown
**调研 & 撰写**：AI（Claude）
**主导 & 审校**：[用户名]
**创作时间**：[实际用时]（调研 X 分钟 + 写作 Y 分钟）
```

### 禁止的虚假表述

❌ **不要写：**
- "我们花了两周时间调研"（实际几分钟）
- "经过深入访谈"（没有访谈）
- "团队经过讨论"（没有团队）
- "作者：XXX / 编辑：AI 助手"（AI 写了全文）

✅ **应该写：**
- "本文基于 N 篇公开信息源，由 AI 调研分析并撰写"
- "素材收集用时 X 分钟，写作用时 Y 分钟"
- "人类主导 + AI 协作"

### 为什么要诚实

1. **建立信任**：读者值得知道内容如何生成
2. **展现价值**：AI 快速高质量创作本身就是价值，不需要掩饰
3. **符合伦理**：AI 生成内容应该透明化
4. **长期主义**：诚实是长期个人品牌的基石

---

## 两条输入路径

### Path A：日常素材收集 → 出稿

```
边干活边记录 → 说"出稿" → 写文章 → 排版 → 封面图 → 朋友圈文案 → manifest
```

适用场景：日常和 cc 协作时，自动积累素材，攒够了一键出稿。

### Path B：微信链接 → 多平台内容

```
微信链接 → 抓取文章 → 分析结构 → 生成小红书/即刻/播客/视频 → manifest → 分发
```

适用场景：已有公众号文章，一键转为多平台内容并发布。

---

## Path A 流程：素材收集 → 出稿

### 自动记录（默认开启）

cc 在对话中**主动识别有料瞬间**并自动记录，无需手动触发。

**识别信号：**

| 类型 | 识别信号 | 示例 |
|-----|---------|------|
| 踩坑翻车 | 预期≠结果、报错、折腾半天 | "试了三种方案都不行" |
| 意外发现 | "没想到"、"原来可以"、意外有效 | "居然这样就解决了" |
| 迭代打磨 | 改了多版、从复杂到简洁 | "200行改成20行还能跑" |
| 搞笑时刻 | 对话金句、AI抽风、神奇bug | "它认真地给我写了一堆错的" |
| 突破时刻 | 卡了很久终于通 | "困扰一周的bug终于找到了" |
| 方法沉淀 | 可复用的技巧、心得 | "以后遇到这种情况就这么办" |

**自动记录时**：不打断对话，段落结尾标记 `（✓ 素材+1）`

### 手动记录

用户说"记一笔：xxx"或"素材+1：xxx"时记录。

### current.json 格式

```json
{
  "topic": "主题（可选，出稿时自动提取）",
  "materials": [
    {
      "time": "2026-01-30 14:30",
      "content": "素材内容",
      "type": "搞笑时刻",
      "context": "可选的上下文备注",
      "auto": true
    }
  ],
  "created": "2026-01-30"
}
```

### 出稿步骤

1. **读取素材** — 读取 `drafts/current.json`
2. **分析提炼** — 提炼主题和故事线
3. **判断内容类型 → 选择写作框架**：

| 内容类型 | 判断信号 | 使用框架 | 参考文件 |
|---------|---------|---------|---------|
| **说明书类** | 开源项目介绍、工具/产品说明、知识库/数据集发布、平台使用指南、"介绍一下 xxx" | 六段式说明书框架 | `references/manual-framework.md` |
| **教程类** | 教人安装/使用/配置工具、Skill 介绍、技术实战、"怎么做 xxx" | 六段式教程框架 | `references/tutorial-framework.md` |
| **深度长文** | 行业分析、人物故事、趋势判断、观点输出、"为什么 xxx" | 四幕式深度框架 | `references/writing-style.md` |

**说明书类文章框架（3000-6000 字）：**
```
项目定义+核心数据（标题即摘要，开头即高潮）
→ 一、核心成果（数据总览表）
→ 二、功能特性（逐一展开，每个一小节+配图）
→ 三、怎么用（按用户分层：零门槛→进阶→开发者→创作者）
→ 四、价值/洞见（超出工具本身的意义）
→ 五、扩展路线（可选）
→ 写在最后（核心价值+愿景+链接）
```

**教程类文章框架（2000-4000 字）：**
```
先看结果（截图+成品+链接）
→ 一、核心概念是什么（表格+一句话定义）
→ 二、怎么安装/使用（分步骤+代码块+配图标记）
→ 三、实战演示（分阶段+表格展示+人机协作）
→ 四、拿走即用（快速安装命令+使用方式表格）
→ 写在最后（升华+CTA）
```

**深度长文框架（8000-12000 字）：**
```
序言（故事先行，700 字不出论点）
→ 01 铺设背景
→ 02 核心论述
→ 03 转折/案例
→ 04 升华/收束
```

4. **读风格指南** — 写文章前**必须先读** `references/writing-style.md`。这是从鱼头头 9 篇已发布文章中逆向工程出的真实写作模式，不是理论指南。核心要点：极短段落（1-3句）、单句成段做"钉子"、口语化动词、"不是A是B"金句句式、数字制造反差、表格优先于段落。
5. **写文章** — 按对应框架 + 风格指南写文章。写完后用风格指南末尾的"按类型写作清单"自检一遍。
6. **保存** — 保存 Markdown 文件
7. **排版** — 调用排版工具生成 HTML 预览（01fish 主题）
8. **头图 + 配图** — 生成可下载的 HTML 文件（→ 读 `references/cover-template.md`）
   - **竖版封面（可选）**：用户说"做竖版封面"时，从已生成的公众号头图 HTML 转换 → 读 `references/cover-vertical-spec.md`
   - **配图与排版 HTML 的关联**：生成配图后，用 Playwright 截图为 PNG，然后在排版 `_preview.html` 的对应位置插入占位符注释 `<!-- IMAGE:配图-1.png -->`，分发脚本会自动将配图上传到微信 CDN 并替换占位符为 `<img>` 标签。
9. **朋友圈文案** — 生成朋友圈推广文案（→ 读 `references/platform-copy.md`）
10. **manifest** — 生成 manifest.json，供 `/distribute` 使用。

   **WeChat 发布流程（全自动）**：
   1. 写文章（Markdown）
   2. 排版（`md2wechat_formatter.py` 生成 `_preview.html`）
   3. 生成配图 HTML → Playwright 截图为 PNG
   4. 在 `_preview.html` 中插入图片占位符 `<!-- IMAGE:文件名.png -->`
   5. 生成 manifest.json（包含所有路径）
   6. 执行 `/distribute --platforms wechat`（API 自动：上传封面→上传配图→替换占位符→推送草稿箱）

   wechat 部分字段说明：
   - `wechat.html`（**必填**）：排版后的 `_preview.html` 路径（配图位置用 `<!-- IMAGE:文件名.png -->` 标记）
   - `wechat.cover_image`（**必填**）：封面 PNG 路径
   - `wechat.title`（**必填**）：文章标题
   - `wechat.author`：作者名（默认 `01fish`）
   - `wechat.digest`：文章摘要（120 字内）
   - `wechat.images`：配图 PNG 路径列表（按文章中出现的顺序排列，分发脚本会上传并插入到对应占位符位置）
   - `wechat.markdown`（可选）：文章 Markdown 路径（仅作记录，不再用于转换）
11. **询问** — 是否清空当前素材

### 排版命令

```bash
cd "$MD_FORMATTER_DIR"
python3 md2wechat_formatter.py [文章路径] --theme [主题] --font-size [字号]
```

> `$MD_FORMATTER_DIR` 需在 `local/.env` 或环境变量中配置。

推荐主题：`01fish`（01fish 品牌色，默认）、`chinese`（中国风）、`apple`（极简优雅）
推荐字号：`medium`（15px 默认）、`large`（16px 长文推荐）

**01fish 主题说明**：基于 chinese 主题，使用 01fish 品牌色（墨绿 #1A3328 + 鱼红 #C44536 + 宣纸底 #F2EDE3）

---

## Path B 流程：微信链接 → 多平台内容

### 第 1 步：抓取文章

使用 Python 抓取脚本（微信有反爬验证，WebFetch 会被拦）：

```bash
python3 "${SKILL_DIR}/scripts/fetch_wechat_article.py" "<URL>" --json
```

超时 30 秒。失败则提示用户手动复制文章正文。

如果用户只是说"帮我读一下这篇公众号"（`/read-gzh` 触发），执行抓取后直接生成结构化总结，不进入后续内容生成流程。总结格式：

```markdown
# 文章总结
## 基本信息（标题/作者/类型/配图数）
## 核心观点（3条）
## 关键信息
## 金句摘录
## 图片内容（下载并识别配图中的文字）
## 思考/迭代点
```

### 第 2 步：分析文章结构

提取：标题、副标题/金句、核心概念、关键数据、步骤/流程、亮点/特色、方法论/金句、行动召唤。

### 第 3 步：拆分为卡片

8-10 张卡片，遵循小红书阅读节奏（→ 读 `references/xiaohongshu-format.md`）：

| 位置 | 卡片类型 | 内容 |
|------|---------|------|
| 第 1 张 | 封面 | 大标题 + hook + 迷你视觉元素 |
| 第 2 张 | 先看结果 | 成品展示 + 核心数据 |
| 第 3-4 张 | 概念解释 | 核心概念拆解 |
| 第 5-7 张 | 流程/实战 | 步骤、对比、流程图 |
| 第 8 张 | 亮点/特色 | 产品/作品亮点卡片 |
| 第 9 张 | 方法论 | 一句话金句提炼 |
| 第 10 张 | 行动召唤 | 链接 + 社区引导 |

### 第 4 步：生成图片 HTML

输出路径：文章同目录下 `[简短主题]-小红书版.html`，未指定目录放 `/tmp/`。浏览器自动打开预览。

最后一张行动召唤页必须包含：微信号 `[你的微信号]`（强调色大字）、备注关键词、核心链接。

> 在 `local/SKILL.local.md` 中配置你的实际微信号。

**📚 重要：生成前必读范例**

参考 `references/xiaohongshu-examples/观鸟图鉴-范例.html` 的质量标准：

✅ **卡片设计要求**
- 纯信息图设计，无文章截图
- 像素风/游戏化界面展示（适用时）
- 流程图、卡片网格、编号列表等丰富视觉元素
- 品牌色克制使用（墨绿85% + 鱼红5%）

✅ **文案质量要求**
- 真人分享感，有真实场景和个人感受
- 口语化表达："玩疯了"、"上头了"、"然后我就..."
- 298-350字 + 8-12个标签

生成的内容应达到范例的专业水准。

### 第 5 步：生成小红书发布文案

**根据内容类型选择风格：**

- **个人 IP 风格**（真人分享、产品开发、踩坑记录）
  - → 读 `local/SKILL.local.md` 中指定的个人品牌风格文件（如有）
  - 流水账式真实感 + 具体时间细节 + 口语化表达
  - 300-350字，8-12个标签
  - 人设：在 `local/SKILL.local.md` 中自定义

- **01fish风格**（方法论总结、深度分析）
  - → 读 `references/platform-copy.md` 的小红书部分
  - 结构化拆解 + 干货密度高
  - 适合转载公众号文章

### 第 6 步：生成即刻发布文案

→ 读 `references/platform-copy.md` 的即刻部分。

### 第 7 步：生成播客脚本

**根据触发词选择播客模式：**

| 触发词 | 模式 | 时长 | 风格 |
|--------|------|------|------|
| "转播客" | 标准模式 | 5-8 分钟 | AI搭档聊天风 → 读 `references/platform-copy.md` 播客部分 |
| `/podcast` / "做播客" / "录播客" / "讲书播客" | **百家讲坛模式** | **15 分钟** | **讲书人风格** → 读 `references/xiaoyuzhou-podcast.md` |

**百家讲坛模式**是小宇宙播客的主力模式，适合把文章/书籍改编为有故事感、有节奏感的深度音频内容。

### 第 8 步：AI 语音生成

通过 SSH 连接 Ubuntu 机器，使用 IndexTTS2 本地生成（零样本声音克隆）（→ 读 `references/tts-config.md`）。

**百家讲坛模式的 TTS 调整**：15 分钟脚本约 4000 字，分段大小 600 字（更短分段带来更好的语音节奏），预计 6-7 段。

文件命名：`[播客标题].mp3` + `[播客标题]-播客脚本.md`

### 第 8.2 步：生成播客封面（百家讲坛模式）

→ 读 `references/podcast-cover-template.md`

生成 3000×3000 正方形封面 HTML，01fish 墨绿体系，浏览器下载 PNG 后上传小宇宙。

文件命名：`[播客标题]-播客封面.html`

### 第 8.5 步：输出 manifest.json

所有内容生成完毕后，自动输出 manifest.json 到输出目录。格式：

```json
{
  "version": "1.0",
  "created": "<ISO时间戳>",
  "source": "<微信链接>",
  "title": "<文章标题>",
  "outputs": {
    "xiaohongshu": { "html": "...", "copy": { "title": "...", "body": "...", "tags": [...] } },
    "jike": { "copy": { "body": "...", "circles": [...] } },
    "xiaoyuzhou": { "audio": "...", "script": "...", "cover": "...", "copy": { "title": "EP01丨...", "description": "...", "show_notes": "..." } },
    "video_canvas": { "html": "...", "teleprompter_md": "...", "cover_html": "..." }
  }
}
```

如果用户说"转小红书并发布"，生成 manifest 后自动执行 `/distribute`。

### 第 9 步：品牌视频生成（可选）

仅当用户提到"视频"、"抖音"、"视频号"或"品牌视频"时执行：

**A. Remotion 品牌片头片尾**

```bash
cd "$REMOTION_DIR"
npx remotion render src/index.ts Intro --output /tmp/brand-intro.mp4
npx remotion render src/index.ts Outro --output /tmp/brand-outro.mp4
```

> `$REMOTION_DIR` 需在 `local/.env` 或环境变量中配置。

**B. AI 视频 Prompt** — 为 Seedance 2.0 或 Google Veo 生成 4 段视频 prompt

**C. ffmpeg 拼接指令** — 生成拼接命令供用户手动执行

### 第 9B 步：录屏画布生成（可选）

仅当用户说"做视频画布"、"录屏画布"、"录屏"时执行。用户提供**要演示的网址列表 + 简短主题**。

1. **获取输入** — 用户提供：要演示的网址列表 + 简短主题
2. **生成提词器脚本** — 每个网址对应一段口播（80-150 字），含 `[提示]` cue 标记
3. **输出提词器脚本 md** — `[主题]-提词器脚本.md`，用户可直接编辑
4. **组装 HTML** — 读取 `references/video-canvas-template.md` 获取完整 CSS+JS 模板，网址预填 `WEB_URLS` + 提词器脚本填入 `SCRIPTS`
5. **输出文件** — `[主题]-视频画布.html`，保存到用户指定目录或 `/tmp/`
6. **生成封面图** — `[主题]-封面.html`，暗底 + 人像圆框，浏览器下载 PNG
7. **提示用户** — 先检查提词器脚本 md，再在浏览器中打开 HTML 录制。16:9 固定比例，各平台直接上传

### 第 10 步：用户微调

告知用户所有产出物路径，提示可调整，输入 `/distribute` 可一键发布。

**公众号同步提示**：封面 PNG 从浏览器下载后，直接 `/distribute --platforms wechat` 即可同步到草稿箱（API 模式，无需打开 Chrome）。

**一次性产出五样东西，不需要额外要求：**
1. 小红书图片 HTML（含一键下载工具栏）
2. 小红书发布文案（标题 + 正文 + 标签）
3. 即刻发布文案（正文 + 圈子标签）
4. 小宇宙播客（录制脚本 + AI 语音 MP3 + 节目封面）
5. manifest.json（供 `/distribute` 一键发布）

**单独触发 `/podcast` 时，产出三样：**
1. 播客脚本 md（15 分钟百家讲坛风格，3800-4200 字）
2. AI 语音 MP3（IndexTTS2 本地生成）
3. 节目封面 HTML（3000×3000，浏览器下载 PNG）
4. 小宇宙发布文案（标题 + 简介 + 完整文稿）
5. manifest.json

**第 9B 步可选追加（说"视频画布"/"录屏"时）：**
6. 录屏画布 HTML（全屏网页演示 + 摄像头露脸 + 录制 + 提词器 + 美颜，16:9 固定）
7. 提词器脚本 md（按网站分段，可编辑，修改后说"更新提词器"同步到 HTML）
8. 封面图 HTML（暗底 + 人像圆框，浏览器下载 PNG）

---

## 分发流程（/distribute）

读取 manifest.json，通过 Chrome CDP 自动化发布到各平台（→ 读 `references/distribute-platforms.md`）。

### 用法

```bash
# 全平台发布
npx -y bun "${SKILL_DIR}/scripts/distribute/distribute.ts" --manifest /path/to/manifest.json

# 选择平台
npx -y bun "${SKILL_DIR}/scripts/distribute/distribute.ts" --manifest /path/to/manifest.json --platforms xhs,jike

# 预览模式（不提交，只预填内容）
npx -y bun "${SKILL_DIR}/scripts/distribute/distribute.ts" --manifest /path/to/manifest.json --platforms xhs --preview
```

### 平台缩写

| 缩写 | 平台 | 状态 |
|------|------|------|
| `wechat` | 公众号 | 可用 |
| `xhs` | 小红书 | 可用 |
| `jike` | 即刻 | 可用 |
| `xiaoyuzhou` | 小宇宙 | 可用 |
| `douyin` | 抖音 | 实验性 |
| `shipinhao` | 视频号 | 待开发 |

### 执行顺序

公众号 → 小红书 → 即刻 → 小宇宙 → 抖音 → 视频号（顺序执行，避免 Chrome 端口冲突）

### 四级降级

| 级别 | 模式 | 触发条件 |
|------|------|---------|
| L0 | API 直推 | 公众号 API 直接推草稿箱，无需 Chrome |
| L1 | 自动发布 | CDP 完全自动化 |
| L2 | 辅助发布 | 登录态失效/选择器失效/`--preview` |
| L3 | 手动模式 | CDP 连接失败 |

公众号优先 L0（API），凭证缺失或失败时自动降级 L3（手动）。

### 公众号 API 模式说明

**凭证来源**（按优先级）：
1. 环境变量 `WECHAT_APPID` + `WECHAT_APPSECRET`
2. 配置文件 `~/.config/wechat-api/config.json`

**Token 缓存**：
- 缓存位置：`~/.config/wechat-api/token-cache.json`
- 有效期 2 小时，提前 5 分钟刷新
- 无需手动管理，脚本自动处理

**执行流程**：
1. 获取 access_token（优先读缓存）
2. 从 `_preview.html` 提取文章内容（`extractArticleContent`）
3. 修复 WeChat 不兼容的 HTML 结构（`fixHtmlForWechat`）
4. 扫描并上传本地图片到微信 CDN（`uploadLocalImagesInHtml`）
5. 上传封面图获取 `thumb_media_id`
6. 调用 `draft/add` 创建草稿

---

## 品牌设计规范

**两套品牌色体系：**
- **01fish**：专业内容品牌（公众号、深度文章、方法论）
- **鱼头头**：真人IP品牌（小红书、即刻、日常分享）

> **单一真相源**：在 `local/SKILL.local.md` 中指定你的品牌色文档路径。
> 如果色值冲突，以品牌文档为准。以下色板作为默认示例。

### 01fish 色板（墨绿体系）

**比例法则**：墨绿 85% : 鱼红 5% : 其余 10%

| 名称 | 色值 | 用途 |
|------|------|------|
| 墨绿主色 | `#1A3328` | 暗底卡片背景 |
| 宣纸底 | `#F2EDE3` | 浅底卡片背景 |
| 鱼红 | `#C44536` | 强调色、数字、标签（仅点睛） |
| 半透白 | `rgba(255,255,255,0.5)` | 暗底上的品牌名 |
| 半透墨绿 | `rgba(26,51,40,0.4)` | 浅底上的品牌名 |
| 苔灰 | `#7A8C80` | 次要文字 |
| 深墨 | `#0F1F18` | 更深背景 |
| 淡青 | `#D4DDD7` | 分割线、边框 |

### 鱼头头色板（桃粉体系）

**比例法则**：桃气粉 15% : 奶油黄 40% : 暮光紫 10% : 灰色 35%

| 名称 | 色值 | 用途 |
|------|------|------|
| 桃气粉 | `#FF6B9D` | 主强调色、标题、关键数据 |
| 奶油黄底 | `#FFF9E6` | 浅底背景、卡片底色 |
| 暮光紫 | `#9D7BA8` | 辅助色、次要信息、品牌名 |
| 温灰 | `#6B6B6B` | 正文文字 |
| 浅灰底 | `#F5F5F5` | 现代感背景 |
| 深夜蓝 | `#2D3047` | 暗底背景（少用） |

### 品牌选择规则

| 内容类型 | 使用品牌 | 原因 |
|---------|---------|------|
| 公众号深度文章 | 01fish | 专业、权威、内容品牌 |
| 行业分析报告 | 01fish | 冷静客观 |
| 小红书真人分享 | 鱼头头 | 温暖、真实、真人IP |
| 即刻日常动态 | 鱼头头 | 活泼、亲和 |
| 产品开发记录 | 鱼头头 | 真实过程展示 |
| B端产品介绍 | 01fish | 专业可信赖 |

**双品牌联动**：同一篇内容，公众号用01fish色，小红书转发用鱼头头色

### 字体

```css
font-family: -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif;
```

### 品牌角标

每页左上角 `01fish` logo + 文字，暗底页用 `.light`，浅底页用 `.dark`。

### 页码

右下角 `1/N`，暗底页 `rgba(255,255,255,0.2)`，浅底页 `rgba(26,51,40,0.2)`。

---

## 内容改写原则

微信 → 小红书不是照搬，需适配：

| 维度 | 微信 | 小红书 |
|------|------|--------|
| 篇幅 | 2000-3000 字 | 每页 50-80 字 |
| 结构 | 线性阅读 | 卡片式跳读 |
| 语气 | 技术向、深度 | 简洁、直观、有冲击力 |
| 视觉 | 文字为主 | 视觉为主、文字点缀 |

改写要点：标题要炸、数字要大、一页一个点、视觉替代文字、保留核心链接。

---

## 完整模板参考

首次生成小红书图片时，参考 `references/xiaohongshu-examples/` 目录下的范例文件获取完整 CSS + JS。

> 如果有额外的本地模板参考，在 `local/SKILL.local.md` 中指定路径。

生成新内容时复用范例文件的 CSS + JS 部分，只替换卡片内容。

---

## Script Directory

**Agent Execution**: Determine this SKILL.md directory as `SKILL_DIR`, then use `${SKILL_DIR}/scripts/<name>`.

| Script | Purpose |
|--------|---------|
| `scripts/fetch_wechat_article.py` | 微信文章抓取（Python，模拟微信 UA） |
| `scripts/distribute/distribute.ts` | 分发主编排器 |
| `scripts/distribute/cdp-utils.ts` | 共享 CDP 工具 + Manifest 类型定义 |
| `scripts/distribute/wechat-api.ts` | 公众号 API 客户端（token 管理、图片上传、草稿创建） |
| `scripts/distribute/platforms/*.ts` | 各平台发布模块 |

---

## Reference 文件索引

cc 按需读取，不要一次性加载所有 reference。

| 场景 | 读取文件 |
|------|---------|
| 出稿写说明书文章 | `references/manual-framework.md` — 六段式说明书框架（定义+成果→特性→用法→价值→路线→收束，3000-6000 字） |
| 出稿写深度长文 | `references/writing-style.md` — 人设 + 写作规范 + 格式（四幕式，8000-12000 字） |
| 出稿写教程文章 | `references/tutorial-framework.md` — 六段式教程框架（先看结果→概念→操作→实战→拿走即用，2000-4000 字） |
| 生成头图/配图 | `references/cover-template.md` — 01fish 风格排版规范（头图 + 配图 + 视觉组件） |
| 横版→竖版封面 | `references/cover-vertical-spec.md` — 公众号封面转竖版的 CSS 转换规范 |
| 生成小红书轮播图 | `references/xiaohongshu-format.md` — HTML 模板 + 视觉组件库 |
| 生成各平台文案 | `references/platform-copy.md` — 小红书/即刻/播客/朋友圈文案规范 |
| 生成播客音频 | `references/tts-config.md` — IndexTTS2 本地 TTS 配置 + 生成脚本 |
| 小宇宙播客（百家讲坛） | `references/xiaoyuzhou-podcast.md` — 15分钟讲书人风格脚本规范 + 改编流程 + 发布配置 |
| 播客节目封面 | `references/podcast-cover-template.md` — 3000×3000 正方形封面 HTML 模板 |
| 史记罗生门栏目 | `references/shiji-luoshengmen.md` — 栏目品牌设定 + AI侦探风格 + 脚本结构 |
| 分发到各平台 | `references/distribute-platforms.md` — 平台配置 + manifest 格式 + 降级策略 |
| 生成录屏画布 | `references/video-canvas-template.md` — 录屏画布模板（全屏网页演示+露脸+提词器+录制） |

---

## 故障处理

| 问题 | 处理 |
|------|------|
| 微信抓取失败 | 提示用户手动复制文章正文 |
| 文章太短（<500字） | 压缩为 5-6 张卡片 |
| 文章太长（>5000字） | 精选核心，控制 10 张以内 |
| 导出图片模糊 | 检查 SCALE=2，浏览器缩放 100% |
| manifest 不存在 | 提示先运行内容生成 |
| Chrome 启动失败 | 降级 L3（手动模式） |
| IndexTTS2 模型加载失败 | 检查 checkpoints 目录和 infer_v2 导入 |
| TTS 生成失败 | 只输出脚本文本，提示手动录制 |
