# Soia Media Compose Article Draft

> 把 distill 提炼出的观点写成成文草稿。以用户观点为骨、vault 摘抄为料，生成可继续交给 publish 的文章。可指定公众号/知乎/随笔风格。Triggers：「把这些观点写成一篇」「把 X 主题写成文章」「compose 这篇」「写成草稿」「起草这篇」

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

---


# soia-media-compose-article-draft

媒体内容工作流的**成文环节（写）**：把 `distill` 产出的观点，写成一篇可发布的文章草稿。

## 客户可读说明

### 这个技能可以做什么

把 distill 提炼出的观点写成成文草稿。以用户观点为骨、vault 摘抄为料，生成可继续交给 publish 的文章。可指定公众号/知乎/随笔风格

| 客户想要 | 技能会做 | 客户能看到 |
|---|---|---|
| 完成本技能覆盖的工作 | 读取用户请求、必要上下文和本技能正文流程，执行最小可靠步骤 | 客户会看到 Obsidian/vault 文件变更、终端日志、生成产物路径和最终回执。 |
| 缺少依赖、权限、配置或 key | 停止需要外部状态的动作，明确指出缺什么 | 安装命令、申请地址、配置路径或需要客户确认的问题 |
| 执行完成 | 汇总成功、跳过、失败、文件变更和验证结果 | 一段可复制进工单/日志的完成回执 |

### 客户如何使用

1. 用自然语言说明目标，并提供必要输入：文件、URL、repo、workspace、proposal、vault 或平台账号状态。
2. 能 dry-run 或预览的动作先给预览；涉及删除、覆盖、发送、发布、写远端状态时先征求客户确认。

### 依赖与安装

安装（推荐：装整个领域插件，一次装好本仓全部技能）：

```bash
claude plugin marketplace add soia-team/soia-open-skills
```

```bash
claude plugin install soia-media-content@soia
```

只要这一个技能时，可用 npx 路线。注意技能会落进共享真源 `~/.agents/skills`；若同时装了插件，同一技能会出现两份索引且各自漂移，建议二选一：

```bash
npx skills add soia-team/soia-open-media-content-skills -g -a '*' -s soia-media-compose-article-draft -y
```

配置约定：

```text
~/.config/soia-skills/soia-media-compose-article-draft/config.yml
SOIA_MEDIA_COMPOSE_ARTICLE_DRAFT_CONFIG_FILE=<custom-config-path>
```

- 如果本技能不需要私有配置，可以不创建 `config.yml`。
- 如果需要 API key、cookie、session、provider home 或本机路径，只能放进私有 `config.yml`、进程环境或 provider 自己的登录态里，不能写进仓库、vault 正文或日志。
- 第三方 skill 只能声明依赖和安装方式，不直接修改第三方 skill 文件。

**WorkBuddy** 的装载单位是角色化专家而不是插件，`npx skills add -a '*'` 覆盖不到它，需要单独安装，见 [docs/install/workbuddy.md](https://github.com/soia-team/soia-open-skills/blob/main/docs/install/workbuddy.md)。

### 日志与完成回执

每次执行都要让客户看见过程和结果。最低回执格式：

```markdown
完成：<一句话说明本次完成了什么>。

日志摘要：
- started: <检查到的输入/配置/依赖，不打印秘密值>
- processed: <数量或范围>
- created/updated: <数量或路径>
- skipped/failed: <数量和原因>

文件变化：
- <绝对路径或“未改动文件”>

验证：
- <运行过的检查、命令或人工核对点>

问题与下一步：
- <缺 key / 缺依赖 / 需要客户确认 / 建议下一条命令；没有则写“无”>
```

## 核心原则

- **观点是你的，文章是你的**。compose 以你 distill 出的观点为骨架，用 vault 里的摘抄 / 文章作论据，组织成通顺文章。**不凭空造观点、不加你没表达过的判断**。
- 缺料就问，不编。

## 流程

1. **收集素材**：
   - 单篇 → 某文章的 `## 我的看法` + `## 原文` 摘要
   - 主题 → distill 模式 B 产出的 `50_草稿/…观点综述.md`，或某 MOC 下多篇的「我的看法」
2. **确认角度与风格**：先读 `00_Obsidian系统/个人说明书.md` 里对应平台的读者与口吻定位，据此定基调；只就本篇的差异（具体角度、标题方向）跟用户确认，不再从零问「我是谁 / 读者是谁 / 什么风格」。个人说明书无此文件或缺该平台定义时，才回退到问用户。
3. **搭结构**：开头（钩子/问题）→ 主体（你的观点 + 论据）→ 结尾（升华/行动）。**先给大纲让用户确认**，再动笔。
4. **成文**：按大纲写，你的观点为主线，摘抄 / 文章为佐证（用 `[[]]` 双链注明来源）。
5. **落草稿**：`<vault-drafts-dir>/YYYY-MM-DD-<标题>.md`，frontmatter `tags:[草稿]`、`status:草稿`、`source_notes:[[…]]`（来源笔记）。
6. **回执**：告知草稿路径、字数、结构，提示"要改哪段告诉我；满意后按目标平台选择 `publish-*` 家族"。

## 标题工序

写完初稿（流程第 4 步之后、落草稿之前），按下表挑至少覆盖 2 种不同公式的 **3 个候选标题**交给用户选，不要自己替用户定夺：

| 钩子公式 | 说法 | 示例 |
|---|---|---|
| 数字盘点 | 用数字量化涵盖范围 | 三步搭建可持续阅读系统 |
| 反常识 | 挑战读者的默认认知 | 你以为读书越多越好？其实相反 |
| 提问 | 直接抛出读者关心的问题 | 为什么你读了很多书却记不住？ |
| 对比冲突 | 摆出两种做法/观点的张力 | 别人囤书，我囤观点 |
| 结果承诺 | 直接给出读完能得到什么 | 读完这篇，你能建一套自己的阅读系统 |
| 场景代入 | 把读者带入具体场景 | 深夜刷手机时，你在逃避什么 |
| 权威背书 | 引用可信来源/数据支撑 | 哈佛研究发现：碎片阅读正在偷走你的专注力 |
| 悬念留白 | 留一个信息缺口勾引点开 | 我删掉了读书笔记里的 90%，只留了这一条 |

## 去AI味自检

交稿前按这份高频问题清单自检，发现即轻改：套路开场（在这个时代、随着…发展）、空洞大词（卓越、颠覆性）、假金句（听着猛但没信息增量）、破折号滥用、bullet 堆叠（能写成自然段却硬拆成列表）、单句顺滑但段落间无信息推进（每句话都通顺，合起来没有主线）。

多数情况做**轻改**：只处理清单命中的具体问题，不重写全文。若原稿明显不像成稿（像资料整理稿、提纲稿、AI 草稿初版），升级到**深改**并向用户说明原因；深改产出写入新文件，不覆盖初稿。

## 边界

- 只落 `50_草稿/`，不碰摘抄原文。
- 观点必须来自用户（distill 产出或直接口述），AI 不虚构立场。
- 引用 vault 内容用双链 `[[]]` 注明。

## 闭环位置

```
clip(收) → organize(整理) → distill(点) → ★compose(写) → publish(发)
```

上游 `distill` 给观点；下游 `publish` 把成文适配多平台发布。


---

## 完成后回执

回执包含：

1. **做了什么** — 一句话总结完成的工作。
2. **文件变更** — 列出新建 / 修改 / 移动的文件（完整路径）；未改动文件则说明"未改动文件"。
3. **下一步** — 可选的后续建议（如衔接的下一个 skill）。

