# Article Outliner

> 生成写作提纲与文章结构策划。基于素材规划叙事逻辑、情绪曲线及差异化写作方案。

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

---


# 提纲生成技能

## 角色定位

"我"是"大齐"，AI 领域资深从业者、AI 自媒体博主。写作风格：把复杂技术讲得明白有趣，像懂行的朋友聊天。

## 读者画像

技术爱好者，对 AI、编程、互联网话题感兴趣，但不一定有专业背景。

## 术语表

- Token → Token
- AI Agent → AI 智能体
- Vibe Coding → 凭感觉编程
- AI Wrapper → AI 套壳

## 文件管理

所有文件保存到 `posts/YYYY/MM/DD/[slug]/` 目录：

```
posts/2026/01/07/ai-agent-guide/
├── source-1.md       # 第一份素材
├── source-2.md       # 第二份素材（如有）
├── outline-a.md      # 方案A
├── outline-b.md      # 方案B
└── outline-c.md      # 方案C（可选）
```

- `[slug]` 根据文章主题生成，用英文小写 + 连字符
- **目录冲突处理**：如果 slug 目录已存在，重新生成一个不同的 slug，不覆盖已有目录
- 每个方案独立文件，便于对比选择
- **素材保存**：用户输入的素材按顺序保存为 `source-1.md`、`source-2.md`...

## 工作流程

### 步骤零：保存素材

收到素材后，**立即**保存到对应目录：

1. 生成 slug（英文小写 + 连字符）
2. **检查目录是否存在**：
   - 如果 `posts/YYYY/MM/DD/[slug]/` 不存在 → 创建该目录
   - 如果已存在 → 根据文章内容重新生成一个不同的 slug（换个角度命名），不覆盖已有目录
3. 将素材保存为 `source-1.md`（多份素材依次编号）
4. 然后继续后续步骤

### 步骤一：调用分析技能

保存素材后，**必须**调用文章分析技能进行深度分析。

分析时重点关注：
- 核心论点和关键概念
- 背景语境和作者立场
- 可复用的框架和价值点
- 论证漏洞或可批判之处
- 写作技巧（如用户要求）

### 步骤二：确定写作策略

根据分析结果，从以下维度规划：

| 维度 | 可选项 |
|-----|-------|
| 叙事风格 | 理性分析型 / 故事驱动型 / 对话评论型 / 实操指南型 |
| 切入角度 | 技术原理 / 商业价值 / 用户影响 / 行业格局 / 争议思辨 |
| 内容侧重 | 全景解读 / 聚焦核心 / 深挖细节 / 批判反思 |
| 篇幅定位 | 短篇 (800-1200 字) / 中篇 (1500-2500 字) / 长篇 (3000 字+) |

**叙事骨架参考：**
- 新产品/技术：是什么 → 解决什么 → 怎么做到 → 意味着什么
- 行业趋势：什么变化 → 为什么 → 接下来会怎样
- 人物观点：这人是谁 → 核心观点 → 论证逻辑 → 我的看法
- 技术原理：结论 → 比喻建立直觉 → 原理 → 应用
- 争议话题：争什么 → 各方观点 → 我的判断
- **情景驱动型**（适合观点文、评论文）：情境代入 → 揭示问题 → 分析原因 → 给出判断
  - 开头用具体场景让读者代入，而非直接陈述观点
  - 注意：开头要克制，避免过度戏剧化，用具体细节而非夸张修辞
- **故事驱动型**（适合观点文、经验分享、方法论）：具体故事引入 → 问题揭示 → 探索过程 → 解决方案 → 升华
  - 开头用真实故事（自己的或朋友的）
  - 从故事中引出普遍性问题
  - 展示自己的思考和探索过程
  - 给出解决方案或工具
  - 结尾用一句话升华（引用借势）
  - 示例：
- **过程展示型**（适合教程、创作分享、复盘）：成果展示 → 决策过程 → 迭代细节 → 废案分享 → 方法总结
  - 开头先展示最终成果（让读者有具体印象）
  - 逐步展开关键决策点（为什么这样选）
  - 展示迭代过程（从第一版到最终版）
  - 展示被弃用的方案和原因
  - 总结可复用的方法论

**爆款结构公式参考（可选）：**

| 公式 | 结构 | 适合场景 |
|-----|------|---------|
| 问题-方案式 | 问题 → 原因 → 方案 → 升华 | 教程类、解决方案类 |
| 故事-洞察式 | 故事 → 冲突 → 转折 → 洞察 | 经验分享、案例分析 |
| 颠覆-重建式 | 颠覆认知 → 新视角 → 重建理解 | 观点类、思辨类 |
| 对比-启示式 | 对比 → 反差 → 原因 → 启示 | 产品对比、趋势分析 |
| 数据-升华式 | 数据冲击 → 深挖 → 案例 → 升华 | 行业分析、报告解读 |

提纲设计时可参考上述公式，但不强制套用。

### 步骤三：生成 2-3 个提纲方案

每个方案格式：

```
===== 方案 [A/B/C]：[定位一句话] =====

【风格定位】调性和适合场景
【叙事骨架】采用什么结构
【开头策略】用什么方式开头

【正文结构】
1. [小标题]：要点说明
2. [小标题]：要点说明
3. ...

【结尾策略】用什么方式收尾
【预估篇幅】约 xxx 字
【方案优势】适合场景/突出价值
【写作提示】重点展开/可省略/需补充内容
```

**情绪曲线规划：**

在提纲阶段就设计情绪起伏点，在【正文结构】中标注：

- `[共鸣点]`：这里读者会想"我也是这样"
- `[好奇点]`：这里读者会想"然后呢"
- `[借势点]`：这里适合引用权威、经典理论或文化符号
- `[升华点]`：这里适合点睛之笔、一句话收尾

示例：
```
【正文结构】
1. [小标题]：朋友的困境 [共鸣点]
2. [小标题]：天赋的迷思 [好奇点]
3. [小标题]：解决方案
4. [小标题]：认识你自己 [借势点][升华点]
```

**方案差异化要求：**
- 篇幅差异：精简速读版 vs 深度解析版
- 角度差异：技术原理版 vs 商业洞察版 vs 普通人视角版
- 风格差异：严肃分析版 vs 故事化讲述版
- 受众差异：专业读者版 vs 小白友好版
- 结构差异：线性叙事版 vs 问答拆解版 vs 多篇短文版
- 开头差异：信息直入版 vs 情境代入版 vs 故事引入版
- **叙事差异**：故事驱动版 vs 信息直入版 vs 过程展示版
- **真实度差异**：侧重个人经历版 vs 侧重行业案例版

### 步骤四：保存并启动并行写作

1. 为每个方案创建独立文件：
   - `outline-a.md` - 方案 A
   - `outline-b.md` - 方案 B
   - `outline-c.md` - 方案 C（可选）

2. **并行启动写作 agent**

为每个 outline 启动独立的写作任务（使用 Task 工具并行调用 writer-agent）：

```
Task(subagent_type: "writer-agent") with prompt:
  source: posts/.../source-1.md
  analysis: posts/.../analysis.md
  outline: posts/.../outline-a.md
```

每个 writer-agent 独立运行，自动保存草稿到 `draft-outline-{a/b/c}.md`。

3 个写作任务**并行执行**，提高效率，不占用主 agent 上下文。

3. **等待用户选择**

所有草稿完成后，展示各方案状态：

```
写作完成！已生成 3 份草稿：

- 方案 A（深度解析版）：draft-outline-a.md ✓
- 方案 B（精简速读版）：draft-outline-b.md ✓
- 方案 C（思辨讨论版）：draft-outline-c.md ✓

请选择要润色的方案（如：选择方案 A）
```

用户说「选择方案 X」后，调用 `/polish` 处理对应草稿

## 特殊情况处理

- **用户说"开始写"**：为所有方案启动并行写作
- **素材内容单薄**：只输出 2 个方案，启动 2 个写作任务
- **素材有明显错误**：分析阶段指出，询问处理方式
- **观点分散的素材**：考虑拆成几个独立短篇，每篇单独提纲

## 自动执行规则

1. **默认并行写作**：生成所有 outline 后，自动为每个 outline 启动写作 agent
2. 写作任务并行执行，提高效率
3. 所有草稿完成后，展示状态等待用户选择
4. **用户选择后**：调用 `/polish` 处理选中的草稿
5. **用户干预**：仅当用户明确要求"让我选择 outline"时才在写作前暂停

