wewrite/references/onboard.md
wangzhuc b80baa4c73 修复 7 个闭环审查问题
#1 HIGH: 用户给选题时跳到 Step 4 → 改为跳到 Step 3(保留素材采集)
#2 MEDIUM: writing-guide.md "Step 3.75" → "Step 3b"(2处)
#3 MEDIUM: history.yaml 新增 writing_persona 字段记录
#4 MEDIUM: 声明优先级 playbook > persona > writing-guide
#5 LOW: onboard.md 新增 tone → persona 自动映射表
#6 LOW: 错误处理表新增 persona 文件不存在的降级
#7 LOW: 错误处理表新增 WebSearch 降级

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 01:05:05 +08:00

86 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Onboard首次设置
**触发条件**
- Step 1 发现 `style.yaml` 不存在
- 用户明确说"重新设置风格"、"修改配置"
## Phase 1: 收集信息(交互式问答)
通过对话收集以下信息,**不要一次性列出所有问题**——一轮问 1-2 个,像聊天一样:
**必问**(缺了无法运行):
| 顺序 | 问题 | 对应字段 | 示例引导 |
|------|------|---------|---------|
| 1 | 你的公众号叫什么名字?主要做什么方向? | `name` + `industry` | "比如'零号AI',做科技/互联网" |
| 2 | 主要写哪几个方向的内容? | `topics` | "比如 AI、产品设计、效率工具" |
| 3 | 你希望文章是什么风格? | `tone` | "专业严肃?轻松有趣?毒舌犀利?像朋友聊天?" |
**选问**(有默认值,用户不答就用默认):
| 问题 | 对应字段 | 默认值 |
|------|---------|-------|
| 目标读者是谁? | `target_audience` | 从 industry 推断 |
| 用什么人称写? | `voice` | "第一人称,像一个懂行的朋友" |
| 有没有绝对不能出现的词或话题? | `blacklist` | 空 |
| 有没有想参考的公众号? | `reference_accounts` | 空 |
| 署名写什么? | `author` | name 字段值 |
| 偏好哪种写作人格? | `writing_persona` | 从 tone 推断(见映射) |
**tone → persona 自动映射**(用户不选时的默认推断):
- 轻松/有趣/朋友/聊天 → `midnight-friend`
- 温暖/共鸣/故事/治愈 → `warm-editor`
- 专业/分析/深度/行业 → `industry-observer`
- 犀利/锐评/观点/新闻 → `sharp-journalist`
- 严谨/数据/研究/财经 → `cold-analyst`
| 偏好哪种排版风格?(可运行 `gallery` 命令预览全部 16 个主题) | `theme` | "professional-clean" |
| 封面风格偏好? | `cover_style` | 从 industry 推断 |
| 有没有固定封面模板? | `cover_template` | 不设置 |
**写作人格说明**`personas/` 目录下有详细定义):
| 人格 | 适合 | 朱雀实测 | 一句话描述 |
|------|------|---------|----------|
| `midnight-friend` | 个人号/自媒体 | **39% 人工** | 像深夜给朋友发微信,极度口语化 |
| `warm-editor` | 生活/文化/情感 | 10% 人工 | 故事驱动,温暖共鸣 |
| `industry-observer` | 行业媒体/分析 | 10% 人工 | 克制的专业分析,偶尔锐利 |
| `sharp-journalist` | 新闻/评论 | 0% 人工(需编辑) | 短句利落,观点鲜明 |
| `cold-analyst` | 财经/投研 | 0% 人工(需编辑) | 严谨数据,专业措辞 |
**快捷路径**
- 如果用户直接甩了一段描述(如"我做科技自媒体,风格像虎嗅"),直接从中提取所有能提取的字段,只补问缺的
- 如果用户说"不设置"、"用默认的"、"直接写" → 复制 `{skill_dir}/style.example.yaml``style.yaml`,跳过所有问答
```
参考: {skill_dir}/references/style-template.md字段说明和可用主题列表
```
## Phase 2: 生成配置
用收集到的信息自动生成 `{skill_dir}/style.yaml`
同时确保以下文件/目录存在(不存在则创建):
- `{skill_dir}/history.yaml` → 初始化为 `articles: []`
- `{skill_dir}/corpus/` → 空目录
- `{skill_dir}/lessons/` → 空目录
生成完成后,**把 style.yaml 的内容展示给用户看一遍**,问"这个配置 OK 吗?有什么要改的?"。用户确认后继续。
## Phase 3: Playbook可选不阻断
问用户:"你有没有之前写过的公众号文章?如果有 20 篇以上,我可以从中学习你的写作风格,以后写出来的文章会更像你。"
- **用户有语料** → 告知将文章(.md 或 .txt放入 `{skill_dir}/corpus/`,然后运行:
```bash
python3 {skill_dir}/scripts/build_playbook.py
```
按脚本输出逐批阅读文章,提取风格特征,生成 `playbook.md`
- **用户没有语料 / 暂时不想弄** → 完全正常,跳过。告知用户:"没问题,先用通用风格写,后续你可以随时说'学习我的修改'来让我逐渐适应你的风格。"
## Phase 4: 试跑
Onboard 完成后,问用户:"配置好了,要不要现在试写一篇?"
- **是** → 回到 Step 1执行完整流程
- **否** → 告知用户下次如何触发:"下次直接说'写一篇公众号文章'就行"