compose · v1.1.0 · 2026-09-08 · sha256 06109c24dc98bc55

compose v1.1.0A

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

---
name: compose
description: 基于主题或参考文章进行中文创作。自动检索素材库、加载主力风格档案,产出符合个人风格的文章。支持公众号、Twitter、小红书、博客等多种场景。当用户说"写一篇关于XX的文章""围绕XX创作""基于这篇文章写一篇""参考这篇英文写个中文版""帮我写""出一篇稿子"时使用此技能。即使用户只给了一个主题或一篇参考文章,也应考虑使用。
license: MIT
metadata:
  author: simonwong
  version: "1.1.0"
---

# 创作

基于主题或参考文章,结合素材库和主力风格,产出文章。

## 核心原则

1. **分步走**:先出大纲/创作规划,用户确认后再写正文。不要一口气写完再问。
2. **风格优先**:严格遵循主力风格档案,这是区别于通用 AI 写作的关键。
3. **素材融入**:自然引用素材库中的内容,不是生硬拼接。
4. **去翻译腔**:参考模式下,最终产出必须像中文母语者写的,不是翻译稿。

## 模式判断

根据用户输入自动识别:

- 用户给了一个**主题**,没有参考文章 → **主题模式**
- 用户给了一篇**参考文章**(通常是英文) → **参考模式**
- 用户同时给了主题和参考文章 → **参考模式**(参考文章为骨架,主题为方向)

## 前置准备

无论哪种模式,先做以下准备:

### 1. 加载主力风格

读取 `./writing-workspace/styles/my_style.json`。

- 如果文件存在:后续写作严格遵循其中的语言特征、结构偏好、forbidden_words 和 anti_ai_notes
- 如果文件不存在:提醒用户"你还没有建立主力风格档案,建议先用 style-extract 技能分析几篇文章来初始化。现在可以用默认风格先写,写完再用 rewrite 技能调整。",然后用自然、口语化的默认风格继续

### 2. 检索相关素材

读取 `./writing-workspace/materials/index.jsonl`。

- 如果文件存在且非空:逐行解析,按主题/标签匹配相关素材,读取匹配条目的完整 JSON
- 如果文件不存在或为空:跳过,仅基于用户输入和自身知识写作

### 3. 确认输出场景

如果用户没有指定场景,默认为公众号长文。各场景篇幅参考:

| 场景 | 篇幅 | 特点 |
|------|------|------|
| 公众号 | 2000-4000 字 | 深度长文,可以铺开讲 |
| 博客 | 1500-3000 字 | 结构化,小标题清晰 |
| 小红书 | 300-800 字 | 短平快,口语化,段落短 |
| Twitter | 280 字以内 | 一个核心观点,金句化 |

---

## 主题模式

用户给了一个主题,从零开始写。

### 第一步:生成大纲

基于主题、检索到的素材、主力风格的结构偏好,生成文章大纲:

```
## 创作大纲

**主题:** XXX
**场景:** 公众号
**预计篇幅:** 约 2500 字
**风格:** [从 my_style.json 中提取的 overall_tone 摘要]

### 结构

1. **开头** — [开头方式,如"从一个具体场景切入"]
   - 引出问题/悬念
2. **第一部分:[小标题]**
   - 核心观点:...
   - 素材支撑:[mat_xxx — 一句话说明]
3. **第二部分:[小标题]**
   - ...
4. **第三部分:[小标题]**
   - ...
5. **结尾** — [结尾方式,如"金句收束"]

### 将使用的素材
- mat_20260327_001: "..."
- mat_20260327_003: "..."
```

呈现给用户,等待确认或修改意见。

### 第二步:写正文

用户确认大纲后,按大纲逐段写作:

- 遵循主力风格的语言特征(词汇、句式、标点、人称、情绪)
- 遵循主力风格的结构特征(段落节奏、过渡方式)
- 自然融入素材(转述而非直接粘贴,除非是 quote 类型)
- 严格避免 forbidden_words 中的词
- 严格遵守 anti_ai_notes 中的约束

### 第三步:自检

写完正文后,对照以下清单自检一遍:

- [ ] 没有使用 forbidden_words 中的任何词
- [ ] 段落长短有变化,不是每段都差不多长
- [ ] 没有"首先...其次...最后..."的机械结构
- [ ] 没有排比句(除非主力风格明确偏好排比)
- [ ] 开头和结尾符合主力风格的偏好
- [ ] 素材融入自然,不像是硬塞进去的
- [ ] 整体读起来像人写的,不像 AI 生成的

如果自检发现问题,直接修正后输出。

### 第四步:保存和提示

- 将终稿保存到 `./writing-workspace/drafts/draft_[主题关键词]_v1.md`
- 告诉用户文件保存路径
- 建议:"初稿完成,可以用 rewrite 技能做进一步润色,或用 title-gen 技能生成标题。"

---

## 参考模式

用户给了一篇参考文章(通常是英文),基于它创作中文内容。

**核心区别**:这不是翻译,是再创作。结构要重组,语言要中文化。

### 第一步:生成创作规划

深度阅读参考文章后,生成创作规划:

```
## 创作规划

**参考文章:** 《原文标题》
**输出场景:** 公众号
**预计篇幅:** 约 3000 字

### 原文核心概念
1. [概念A] — 一句话中文摘要
2. [概念B] — 一句话中文摘要
3. [概念C] — 一句话中文摘要

### 取舍建议
- ✅ 保留:概念A(核心论点,必须保留)
- ✅ 保留:概念B(有数据支撑,说服力强)
- ⚠️ 弱化:概念C(过于技术细节,中文读者可能不关心)
- ❌ 跳过:原文第X段(纯背景介绍,中文语境不需要)

### 补充建议
- 🔗 素材库匹配:mat_xxx 可以补充到概念A的论述中
- 💡 建议加入:[你自己的案例/思考] 的位置在概念B之后

### 建议结构(不照搬原文)
1. **开头** — ...
2. **第一部分** — 对应概念A,但用中文读者熟悉的案例引入
3. **第二部分** — 融合概念B + 素材库补充
4. **第三部分** — 你的延伸思考
5. **结尾** — ...
```

呈现给用户,等待确认。

### 第二步:写正文

用户确认后写作,额外注意:

- **不照搬原文结构**:段落安排必须重新设计
- **不翻译句子**:用自己的话重新阐述概念,读者不应察觉有英文原文
- **本地化案例**:尽量用中文读者熟悉的案例替换或补充
- **融入素材**:将素材库中的匹配内容自然织入
- 同样执行主题模式的自检清单

### 第三步:保存和提示

同主题模式。

---

## 写作中的风格应用

以下是将 my_style.json 应用到写作中的具体指导:

### 语言层面

- `vocabulary_level`:决定用词的口语/书面比例
- `sentence_rhythm`:控制句子长短交替。如果是"短句为主",大部分句子控制在 15 字以内,偶尔用长句收束
- `favorite_expressions`:在自然的位置使用这些表达,但不要刻意堆砌
- `punctuation_habits`:比如"多用破折号"就多用破折号做插入和转折
- `person_perspective`:决定主要人称。如果是"第一人称为主,偶尔切第二人称",就这么写
- `emotion_intensity`:控制情绪表达的浓度

### 结构层面

- `opening_pattern`:决定文章如何开头
- `paragraph_rhythm`:控制段落长短的交替规律
- `argument_logic`:决定论证的展开方式
- `transition_style`:决定段落之间如何过渡
- `closing_pattern`:决定文章如何收尾

### 反 AI 层面

- `forbidden_words`:这些词绝对不能出现
- `anti_ai_notes`:这些模式必须避免