---
name: blog-draft
description: 根据想法和资料撰写博客草稿。适用于用户想写博客、基于研究创建内容，或起草文章的场景。流程会引导你完成调研、头脑风暴、提纲编写和带版本控制的迭代撰写。
---

## 用户输入

```text
$ARGUMENTS
```

在继续之前，你**必须**先考虑用户输入。用户应提供：
- **想法/主题**：博客文章的核心概念或主题
- **资源**：用于研究的 URL、文件或参考资料（可选，但推荐）
- **目标读者**：这篇博客是写给谁看的（可选）
- **语气/风格**：正式、轻松、技术向等（可选）

**重要**：如果用户是在请求更新一篇**已有博客文章**，请跳过步骤 0-8，直接从**步骤 9** 开始。先阅读现有草稿文件，再继续迭代流程。

## 执行流程

请按顺序执行以下步骤。**不要跳步，也不要在未获得用户批准的情况下继续执行标明需要确认的步骤。**

### 步骤 0：创建项目文件夹

1. 使用以下格式生成文件夹名称：`YYYY-MM-DD-short-topic-name`
   - 使用今天的日期
   - 根据主题生成一个简短、适合 URL 的 slug（小写、连字符连接，最多 5 个词）

2. 创建文件夹结构：
   ```text
   blog-posts/
   └── YYYY-MM-DD-short-topic-name/
       └── resources/
   ```

3. 在继续前，先向用户确认文件夹已创建。

### 步骤 1：研究与资源收集

1. 在博客文章目录中创建 `resources/` 子文件夹

2. 对于每个提供的资源：
   - **URL**：抓取关键内容并保存到 `resources/` 下的 markdown 文件中
   - **文件**：读取并在 `resources/` 中做摘要
   - **主题**：使用网络搜索收集最新信息

3. 为每个资源在 `resources/` 中创建摘要文件：
   - `resources/source-1-[short-name].md`
   - `resources/source-2-[short-name].md`
   - 以此类推

4. 每个摘要都应包含：
   ```markdown
   # 来源：[标题/URL]

   ## 要点
   - 要点 1
   - 要点 2

   ## 相关引文/数据
   - 引文或统计 1
   - 引文或统计 2

   ## 与主题的关联
   简要说明其相关性
   ```

5. 向用户展示研究摘要。

### 步骤 2：头脑风暴与澄清

1. 基于想法和已研究的资源，展示：
   - 从研究中识别出的**主要主题**
   - 博客文章的**可能切入角度**
   - 应该覆盖的**关键点**
   - 仍需进一步澄清的**信息缺口**

2. 提出澄清问题：
   - 你希望读者最终带走的核心结论是什么？
   - 研究中有没有哪些点是你希望重点强调的？
   - 目标长度是多少？（短：500-800 字，中：1000-1500 字，长：2000+ 字）
   - 有没有哪些内容你希望排除？

3. **在继续之前，等待用户回复。**

### 步骤 3：提出提纲

1. 创建一个结构化提纲，包括：

   ```markdown
   # 博客文章提纲：[标题]

   ## 元信息
   - **目标读者**：[谁]
   - **语气**：[风格]
   - **目标长度**：[字数]
   - **核心结论**：[关键信息]

   ## 建议结构

   ### 开场/引子
   - 开场钩子思路
   - 背景铺垫
   - 论点陈述

   ### 第一部分：[标题]
   - 关键点 A
   - 关键点 B
   - 来自 [来源] 的支撑证据

   ### 第二部分：[标题]
   - 关键点 A
   - 关键点 B

   [继续列出所有部分...]

   ### 结论
   - 关键点总结
   - 行动号召或最终思考

   ## 需要引用的来源
   - 来源 1
   - 来源 2
   ```

2. 向用户展示提纲，并**请求批准或修改意见**。

### 步骤 4：保存已批准的提纲

1. 用户批准提纲后，将其保存为博客文章文件夹中的 `OUTLINE.md`。

2. 确认提纲已保存。

### 步骤 5：提交提纲（如果在 git 仓库中）

1. 检查当前目录是否为 git 仓库。

2. 如果是：
   - 暂存新文件：博客文章文件夹、resources 和 `OUTLINE.md`
   - 使用如下提交信息创建 commit：`docs: Add outline for blog post - [topic-name]`
   - 推送到远程仓库

3. 如果不是 git 仓库，则跳过此步骤并告知用户。

### 步骤 6：撰写草稿

1. 基于已批准的提纲，撰写完整博客草稿。

2. 严格按照 `OUTLINE.md` 的结构进行编写。

3. 包含：
   - 有吸引力的引言和开场钩子
   - 清晰的章节标题
   - 来自研究的支撑证据和示例
   - 段落之间自然流畅的过渡
   - 强有力的结尾和核心收获
   - **引用**：所有比较、统计数据和事实性陈述都必须引用原始来源

4. 将草稿保存为博客文章文件夹中的 `draft-v0.1.md`。

5. 格式：
   ```markdown
   # [博客文章标题]

   *[可选：副标题或标语]*

   [包含行内引用的完整正文...]

   ---

   ## 参考资料
   - [1] 来源 1 标题 - URL 或引用
   - [2] 来源 2 标题 - URL 或引用
   - [3] 来源 3 标题 - URL 或引用
   ```

6. **引用要求**：
   - 每个数据点、统计信息或比较都必须带有行内引用
   - 使用编号引用 [1]、[2] 等，或命名引用 [Source Name]
   - 在文末的参考资料部分链接这些引用
   - 示例：“研究表明，65% 的开发者更偏好 TypeScript [1]”
   - 示例：“React 在渲染速度上比 Vue 快 20% [React Benchmarks 2024]”

### 步骤 7：提交草稿（如果在 git 仓库中）

1. 检查是否处于 git 仓库中。

2. 如果是：
   - 暂存草稿文件
   - 使用如下提交信息创建 commit：`docs: Add draft v0.1 for blog post - [topic-name]`
   - 推送到远程仓库

3. 如果不是 git 仓库，则跳过并告知用户。

### 步骤 8：向用户展示草稿以供审阅

1. 向用户展示草稿内容。

2. 询问反馈：
   - 整体印象如何？
   - 哪些部分需要扩展或压缩？
   - 是否需要调整语气？
   - 是否缺少关键信息？
   - 有没有具体编辑或重写建议？

3. **等待用户回复。**

### 步骤 9：迭代或定稿

**如果用户要求修改：**
1. 记录所有修改请求
2. 返回步骤 6，并做以下调整：
   - 将版本号递增（v0.2、v0.3 等）
   - 纳入所有反馈
   - 保存为 `draft-v[X.Y].md`
   - 重复步骤 7-8

**如果用户批准：**
1. 确认最终草稿版本
2. 如用户要求，可重命名为 `final.md`
3. 总结博客文章创建过程：
   - 一共创建了多少个版本
   - 各版本之间的关键变化
   - 最终字数
   - 创建了哪些文件

## 版本跟踪

所有草稿都会以递增版本号保留：
- `draft-v0.1.md` - 初始草稿
- `draft-v0.2.md` - 第一轮反馈后
- `draft-v0.3.md` - 第二轮反馈后
- 以此类推

这可以跟踪博客文章的演变过程，并在需要时回退。

## 输出文件结构

```text
blog-posts/
└── YYYY-MM-DD-topic-name/
    ├── resources/
    │   ├── source-1-name.md
    │   ├── source-2-name.md
    │   └── ...
    ├── OUTLINE.md
    ├── draft-v0.1.md
    ├── draft-v0.2.md（如果有迭代）
    └── draft-v0.3.md（如果还有更多迭代）
```

## 质量建议

- **钩子**：以问题、令人惊讶的事实或贴近读者的场景开头
- **衔接**：每一段都要自然连接到下一段
- **证据**：用研究数据支撑观点
- **引用**：以下内容务必引用来源：
  - 所有统计数据和数值（例如：“根据 [Source]，75% 的……”）
  - 对产品、服务或方案的比较（例如：“X 的速度比 Y 快 2 倍 [Source]”）
  - 关于市场趋势、研究发现或基准测试的事实性陈述
  - 使用行内引用，格式为：[Source Name] 或 [Author, Year]
- **语气**：全程保持一致
- **长度**：尊重目标字数
- **可读性**：使用短段落，并在适当位置使用项目符号
- **CTA**：以明确的行动号召或发人深省的问题收尾

## 备注

- 始终在上述需要确认的节点等待用户批准
- 保留所有草稿版本，方便追踪历史
- 如果提供了 URL，使用网络搜索获取最新信息
- 如果资源不足，询问用户补充，或建议进一步研究
- 根据目标读者调整语气（技术、通用、商业等）
