---
name: writing-team
description: |
  7 人 AI 写作团队编排。启动素材猎手、主笔、事实核查、风格审计、标题工匠协作完成长文创作。
  触发场景：用户要求写自媒体长文、需要素材调研或事实核查、提到"用我的风格写"、"去 AI 味"、"多角度打磨"。
  仅支持 Claude Code（依赖 Agent Teams 实验功能），不适用于 OpenClaw 等对话式 Agent。
  不适用于语音录音整理（请用 voice-article skill）。
enabled: false
source: github:kaiye/skills
imported-from: github:kaiye/skills
---

# Writing Team

## Step 0：环境检查 + 初始化

### 0.1 Agent 文件同步

检查 `.claude/agents/` 下是否存在以下 5 个文件：

- `writing-researcher.md`
- `writing-writer.md`
- `writing-fact-checker.md`
- `writing-voice-auditor.md`
- `writing-title-crafter.md`

**同步规则：**

- 文件不存在 → 从 `{skill_dir}/references/` 复制
- 文件已存在 → 比较内容是否与 `references/` 一致。如不一致，提示用户：
  > `.claude/agents/writing-xxx.md` 与 skill 最新版本不同，是否覆盖更新？（y/n）
- 如果 `.claude/agents/` 目录不存在，先创建

### 0.2 环境变量检查

检查 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` 是否已启用，**两处都要查**：

1. 操作系统环境变量：`echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS`
2. `~/.claude/settings.json` 中的配置

任一处为 `"1"` 即可。如果都未开启，提示用户添加后再继续。

### 0.3 风格参考确认

如果用户未提供 `$STYLE_REF` 或 `$TONE_REF`，**必须先向用户确认**：

> 需要确认两个路径，方便素材猎手采集风格样本：
> 1. **风格参考**：有没有自己写过的文章可以做风格样本？（目录或文件路径，没有可跳过）
> 2. **语气参考**：有没有喜欢的幽默/语气素材？（目录或文件路径，没有可跳过）

用户确认后写入 Brief。跳过则标注"无，使用默认风格"。

### 0.4 初始化项目文件夹

```
{项目名}/
  00-Brief.md           ← 创作要求（含主题、受众、结构、风格标准、参考路径）
  01-Context/           ← 素材报告
  02-Drafts/            ← 草稿版本
  03-Reviews/           ← 审核报告
```

撰写 `00-Brief.md`，**使用以下模板**，写完后请用户确认：

```markdown
# 创作要求 (Brief)

## 主题
（一句话描述文章核心主题）

## 目标受众
（读者画像：职业、年龄段、关注点）

## 目标字数
（如：2000-3000 字。未指定则默认 2000-3000 字）

## 发布平台
（公众号 / 知乎 / 小红书 / 博客 / 其他）

## 结构要求
（如：总分总、故事线、问题-方案-结论，或留空由主笔决定）

## 风格标准
- [ ] 使用默认风格（口语化、短句、去 AI 味）
- [ ] 自定义风格：（描述）

## 风格参考路径
（文件或目录路径，无则留空）

## 语气参考路径
（文件或目录路径，无则留空）

## 特殊要求
（如：必须包含某个案例、避免提及某品牌、需要 CTA 等）
```

## Step 1：素材采集（并行 Subagent x3）

**必须使用自定义 agent 类型**，不要用 `general-purpose`：

```
subagent_type: "writing-researcher"
run_in_background: true
```

三个猎手分别负责：
1. 搜索项目笔记库中与主题相关的内容
2. 搜索项目中相关的素材和引用
3. 联网搜索最新资料和外部案例

产出：`01-Context/research-1.md`、`research-2.md`、`research-3.md`

**等待全部完成后再进入 Step 2。**

## Step 2：创建团队 + 主笔写初稿

### 2.1 创建写作团队

```
TeamCreate → team_name: "writing-{项目名}"
```

### 2.2 主笔写初稿（Teammate）

```
subagent_type: "writing-writer"
team_name: "writing-{项目名}"
```

主笔阅读 Brief + 素材报告 + 风格参考，写出初稿 → `02-Drafts/v1.md`

### 2.3 用户确认方向（检查点）

向用户展示 v1 的大纲和关键段落摘要，确认方向是否正确：

> 初稿已完成，请确认方向：
> - 大纲：...
> - 核心论点：...
> - 是否继续进入审核？（y/调整方向）

**用户确认后才进入 Step 3。** 如果用户要求调整，主笔根据反馈修改后重新确认（最多 2 轮）。

## Step 3：首轮审核（Teammate x2）

同时 spawn 事实核查员和风格审计员（持续参与，用 Teammate）：

```
subagent_type: "writing-fact-checker"
team_name: "writing-{项目名}"

subagent_type: "writing-voice-auditor"
team_name: "writing-{项目名}"
```

两位审核员各自阅读 v1，产出首轮审核报告：
- `03-Reviews/fact-check.md`
- `03-Reviews/voice-audit.md`

**等待两份审核报告都完成，进入迭代修改循环。**

## Step 4：迭代修改循环

本阶段是一个循环，主笔根据反馈修改，审核员按需介入，直到用户满意。

### 4.1 主笔修改

将审核报告发送给主笔（通过 SendMessage），根据反馈修改 → `02-Drafts/v{n}.md`

### 4.2 审核员介入时机

审核员作为 Teammate 常驻团队，**不是每次改动都审核**。通过以下三种方式触发：

#### 触发方式 A：自动触发（Lead 判断）

每当主笔产出新版本，Lead 判断本次修改的性质：

| 修改类型 | 示例 | 是否触发审核 |
|----------|------|-------------|
| 重大修改 | 调整文章结构、新增/删除整段内容、更换核心论点 | 触发双审 |
| 中等修改 | 重写某个段落、替换案例、修改数据引用 | 触发对应审核员（事实变更→核查员，风格变更→审计员） |
| 轻微修改 | 措辞微调、修错别字、调整标点 | 不触发，直接进入下一轮 |

#### 触发方式 B：用户触发

用户主动说「帮我审一下」「检查一下这版」「我改完了」→ 立即触发双审。

#### 触发方式 C：终审触发

用户说「差不多了」「准备发布」「定稿」→ 强制触发一轮完整审核（无论之前审过多少次），作为发布前的最终质量门禁。

### 4.3 审核员复核流程

被触发时，通过 SendMessage 通知对应审核员阅读最新版本：
- 事实核查员：重点检查新增/修改的事实断言，确认之前标记的问题是否已修正
- 风格审计员：重点检查新增/修改的段落，确认 AI 味和风格偏离是否改善

各自更新审核报告（追加「第 N 轮复核」章节），通过 SendMessage 将反馈发给主笔。

### 4.4 循环退出条件

满足以下任一条件退出循环，进入 Step 5：

1. **用户确认定稿**：用户明确表示满意，终审通过
2. **审核通过**：两位审核员的最新报告均无重大问题（无「错误」或「存疑」断言，风格评分均 ≥ 7/10）
3. **迭代上限**：累计修改达到 5 轮（v1 不算，从 v2 开始计），强制退出并提醒用户

## Step 5：标题打磨 + 汇总报告

### 5.1 标题打磨（Subagent）

```
subagent_type: "writing-title-crafter"
run_in_background: true
```

基于终稿 + Brief 产出 15 个候选标题 → `03-Reviews/titles.md`

### 5.2 汇总报告

向用户展示：
1. 终稿位置（`02-Drafts/v{n}.md`）
2. TOP 5 标题推荐
3. 事实核查问题摘要（含各轮变化）
4. 风格审计评分（含各轮变化）
5. 迭代历史：共经历 N 轮修改，M 次审核
6. 下一步建议（选标题、终审、补配图）

然后关闭所有 teammate（主笔、事实核查员、风格审计员），清理团队资源：

```
关闭所有 teammate → TeamDelete("writing-{项目名}")
```

## 关键规则

1. **必须使用自定义 agent 类型**，不要用 `general-purpose` 手写角色定义
2. **一次性任务用 Subagent**（素材采集、标题），**需要多轮交互的用 Teammate**（主笔、事实核查、风格审计）
3. **所有产出必须落盘到项目文件夹**
4. **审核按需触发**，不是每次改动都审，Lead 根据修改性质判断
5. **审核必须并行**，事实核查和风格审计同时跑
6. **tmux 模式**：在 tmux 中 teammate 自动分屏，否则用 in-process 模式
7. **团队用完必须清理**：关闭所有 teammate → TeamDelete
8. **迭代上限**：用户确认方向最多 2 轮，修改循环最多 5 轮，防止死循环
9. **团队名唯一**：`team_name` 使用 `writing-{项目名}`，项目名不可重复
