article-writer-cn
Version:
AI 驱动的智能写作系统 - 专注公众号/自媒体文章创作
1,261 lines (936 loc) • 36.4 kB
Markdown
# PRD-10: 写作风格学习与协作增强系统
**版本**: v1.0
**创建时间**: 2025-10-28
**状态**: 待审核
**作者**: Claude Sonnet 4.5
**优先级**: P0(风格学习)+ P1(Session管理、主动提问)
**预计工作量**: 5-6 天
---
## 📋 背景与问题
### 1.1 竞品参考:Spiral Personal
通过分析 Spiral Personal 的核心功能,我们发现了三个可以提升 Article Writer 用户体验的关键特性:
**Spiral 的优势**:
1. **可定制"写作风格"** ⭐ - 上传范文/指定风格,系统自动学习模仿
2. **Session 管理** - 单次写作项目不限消息,支持暂停和恢复
3. **对话协作过程** - 主动提问引导,而非单纯依赖用户指令
### 1.2 当前系统的不足
**Article Writer 现状**:
- ✅ **已有素材库系统**(materials/)- 收集真实素材
- ✅ **已有历史文章归档**(materials/archive/)- 保存过往文章
- ❌ **缺少风格学习机制** - 无法从历史文章中学习用户写作风格
- ❌ **缺少 Session 概念** - 无法暂停/恢复写作进度
- ⚠️ **主动提问深度不够** - 可以进一步增强引导能力
### 1.3 用户痛点
**痛点 1:风格不一致**
> "AI 生成的内容感觉不像我写的,用词习惯、句式节奏都不对"
> "我有很多历史文章存在 `materials/archive/` 文件夹,但 AI 没有学习我的风格"
**痛点 2:无法断点续写**
> "写了一半有事,回来发现上下文丢失了"
> "不知道上次写到哪一步了,流程要重新开始"
**痛点 3:被动式协作**
> "AI 只是等我发指令,没有主动引导我思考"
> "有时候不知道该提供什么信息,AI 应该主动问我"
---
## 🎯 设计目标
### 核心目标
1. **风格学习与模仿** ⭐ - 让 AI 学习用户的写作风格,实现"品牌或个人语气一致性"
2. **Session 生命周期管理** - 支持写作暂停、恢复、历史记录
3. **主动提问增强** - AI 不再被动等待,而是主动引导用户完善思路
### 预期效果
**风格一致性提升**:
- 从历史文章中提取风格特征(词汇偏好、句式习惯、段落节奏)
- AI 在引导和检查时参考用户风格档案
- 降低"不像我写的"的违和感
**协作体验优化**:
- 写作过程可随时暂停和恢复
- AI 主动发现需求不明确的地方并提问
- 更流畅的对话式协作体验
---
## 🎨 方案设计
## 功能 1: 写作风格学习系统 ⭐
### 1.1 核心机制
**风格档案构建流程**:
```
用户历史文章(2-3篇代表性文章)
↓
AI 分析提取
↓
风格特征档案
↓
应用到写作流程(/write、/review)
```
### 1.2 风格特征维度
**分析维度**(参考 Spiral):
| 维度 | 分析内容 | 应用场景 |
|-----|---------|---------|
| **词汇偏好** | 常用词、避用词、专业术语 | /write 引导时推荐用词 |
| **句式特点** | 平均句长、复杂度、语序习惯 | /review 检查句式偏离 |
| **段落节奏** | 段落长度、段落数量、段间连接 | /write 结构建议 |
| **表达习惯** | 第一/第三人称、问句频率、感叹号使用 | /authentic 真实性检查 |
| **开头风格** | 直入主题 vs 铺垫、Hook 类型 | /write 开头引导 |
| **结尾风格** | 总结型 vs 启发型、CTA 习惯 | /write 结尾引导 |
### 1.3 实现方案
#### 新增命令:`/learn-style`
**准备工作**:
- 用户先将 2-3 篇代表性历史文章放到 `materials/archive/` 文件夹
- 支持格式:Markdown (.md) 或纯文本 (.txt)
**触发时机**:
- 方式 1:用户主动调用 `/learn-style`(推荐在 `/specify` 之前)
- 方式 2:`/specify` 自动提示(检测到 `materials/archive/` 有文章时)
**工作流程**:
```markdown
# /learn-style - 学习写作风格
## 准备工作
📁 请先将你的代表性文章放到以下文件夹:
`materials/archive/`
💡 建议准备 2-3 篇文章:
- 你最满意的文章
- 阅读量/转发量高的文章
- 最近 6 个月内的文章(风格更稳定)
- 格式:Markdown (.md) 或纯文本 (.txt)
准备好后,回复 "开始" 继续
> _
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## 第一步:检测历史文章
🔍 正在检查 materials/archive/ 目录...
发现 12 篇历史文章:
1. Claude-vs-Cursor-深度评测.md (3200字,公众号)
2. AI工具选择指南.md (2800字,公众号)
3. 程序员效率工具推荐.md (2500字,博客)
4. ...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## 第二步:选择代表性文章
请选择 2-3 篇最能代表你写作风格的文章:
请输入文章编号(用逗号分隔,如:1,2,5):
> _
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## 第三步:分析风格特征
📊 正在分析你的写作风格...
【词汇偏好分析】
- 高频词: "其实"(出现23次)、"还是"(18次)、"真的"(15次)
- 专业术语: "AI检测率"、"Prompt工程"、"工作流"
- 避用词: 检测到你很少用"非常"、"特别"等强化副词
【句式特点分析】
- 平均句长: 18字(偏短,适合公众号)
- 短句比例: 65%(节奏明快)
- 问句频率: 每100字出现2.3个问句(互动性强)
【段落节奏分析】
- 平均段落长度: 120字(符合公众号规范)
- 段落数量: 15-18段/千字(节奏清晰)
- 单句成段比例: 15%(用于强调)
【表达习惯分析】
- 人称: 第一人称为主("我"出现频率高)
- 口语化程度: 78%(非常口语化)
- 感叹号使用: 适中(不过度)
【开头风格】
- 类型: Hook式开头(70%)+ 直入主题(30%)
- 特点: 喜欢用问句或场景描述开头
- 示例: "你有没有遇到过这种情况..."
【结尾风格】
- 类型: 启发型结尾为主(60%)
- 特点: 常以问题或思考结束
- CTA习惯: 温和引导,不强制
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## 第四步:保存风格档案
✅ 风格档案已保存到:
.content/memory/style-profile.json
📋 档案内容:
- 词汇偏好 (120个常用词)
- 句式特征 (7个维度)
- 段落节奏模板
- 开头/结尾风格模板
- 口语化表达库 (50+)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
## 下一步
✅ 风格学习完成!
在后续写作中,AI 将参考你的风格档案:
- /write - 按照你的句式和节奏引导
- /review - 检查风格偏离度
- /authentic - 验证是否符合你的表达习惯
💡 提示:
- 风格档案会自动应用到所有工作区
- 如需更新风格,重新运行 /learn-style
- 建议每 3-6 个月更新一次
现在可以开始 /specify 定义需求了!
```
#### 风格档案格式:`style-profile.json`
```json
{
"version": "1.0",
"created_at": "2025-10-28T10:30:00Z",
"updated_at": "2025-10-28T10:30:00Z",
"source_articles": [
"materials/archive/Claude-vs-Cursor-深度评测.md",
"materials/archive/AI工具选择指南.md"
],
"analysis": {
"vocabulary": {
"high_frequency_words": ["其实", "还是", "真的", "感觉", "基本"],
"technical_terms": ["AI检测率", "Prompt", "工作流"],
"avoided_words": ["非常", "特别", "十分"],
"filler_words_frequency": 0.12
},
"sentence_patterns": {
"avg_sentence_length": 18,
"short_sentence_ratio": 0.65,
"question_frequency": 2.3,
"exclamation_frequency": 1.1,
"compound_sentence_ratio": 0.35
},
"paragraph_rhythm": {
"avg_paragraph_length": 120,
"paragraphs_per_1000_chars": 16,
"single_sentence_paragraph_ratio": 0.15,
"transition_phrases": ["不过", "说回来", "换句话说"]
},
"expression_style": {
"person": "first_person",
"colloquial_level": 0.78,
"tone": "friendly_conversational",
"humor_level": 0.45
},
"opening_style": {
"hook_ratio": 0.70,
"direct_ratio": 0.30,
"common_patterns": [
"问句开头(你有没有...)",
"场景描述(最近在用...)",
"观点直陈(很多人说...,但我觉得...)"
]
},
"closing_style": {
"summary_ratio": 0.40,
"inspirational_ratio": 0.60,
"cta_style": "gentle_suggestion",
"common_patterns": [
"开放式问题(你怎么看?)",
"思考引导(或许可以试试...)"
]
}
},
"examples": {
"typical_sentences": [
"其实用下来感觉还不错",
"说实话,这个功能真的很实用",
"你有没有遇到过这种情况?"
],
"typical_openings": [
"最近在测试 XX,发现一个有趣的现象...",
"你有没有觉得,XX 其实..."
],
"typical_closings": [
"你怎么看?欢迎留言讨论",
"或许,我们可以换个角度思考..."
]
}
}
```
### 1.4 风格应用场景
#### 场景 1:`/write` 教练模式应用
**当前逻辑**(PRD-08):
```
AI: 请写开头段,描述你为什么要写这篇评测
```
**增强后**(应用风格档案):
```
AI: 请写开头段,描述你为什么要写这篇评测
💡 根据你的风格档案,你通常这样开头:
- 用问句吸引读者(70%概率)
- 或者直接描述使用场景(30%概率)
参考你之前的开头风格:
"你有没有遇到过这种情况..."
"最近在测试 XX,发现..."
建议开头方式(二选一):
方式A:问句 Hook
"你在选择 AI 编程工具时,最看重什么?"
方式B:场景描述
"最近两周,我同时深度使用了 Claude Code 和 Cursor..."
现在请写你的开头(100-150字):
> _
```
#### 场景 2:`/review` 风格检查
**新增检查项:风格偏离度**
```markdown
## 审校结果(第二遍 - 风格审校)
### 🎨 风格一致性检查 ⭐ 新增
【整体评分】:78/100(良好)
【词汇偏离度】:⚠️ 中等偏离
- 发现 5 处不符合你风格的用词:
❌ 第2段:"这个功能非常强大"
建议改为:"这个功能真的很实用"(你更常用"真的"而非"非常")
❌ 第5段:"综上所述"
建议改为:"说回来"(你更喜欢口语化过渡)
【句式偏离度】:✅ 良好
- 平均句长 19字(你的习惯是18字,接近)
- 短句比例 62%(你的习惯是65%,接近)
【段落节奏】:⚠️ 需要调整
- 发现 3 个段落过长(>150字),建议拆分:
- 第 3 段(185字)→ 建议拆成 2 段
- 第 7 段(210字)→ 建议拆成 2-3 段
【表达习惯】:✅ 符合
- 第一人称使用:正常
- 口语化程度:76%(你的习惯是78%,接近)
- 问句频率:2.1/100字(你的习惯是2.3,接近)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 建议修改的地方(优先级排序):
1. 拆分第3段和第7段(段落过长)
2. 替换"非常"为"真的"(词汇习惯)
3. 替换"综上所述"为口语化过渡(表达习惯)
是否需要我帮你修改这些地方?(Y/n)
```
#### 场景 3:`/authentic` 真实性增强
**结合风格档案检查**:
```markdown
## 维度 2: 个性 - 是否有你的表达方式?
### 检查标准(结合风格档案 ⭐)
根据你的风格档案,你的典型表达方式是:
- 常用"其实"、"还是"、"真的"等口头禅
- 喜欢用问句与读者互动
- 段落简短(平均120字)
### 检查结果
❌ 第 3 段:表达方式不像你
当前:"该功能展现出卓越的性能表现"
问题:太书面化,不符合你的风格
建议:"这个功能表现真的很不错"
✅ 第 5 段:符合你的风格
"说实话,用下来感觉还是挺顺手的"
→ 典型的口语化表达,有"说实话"、"还是"等你常用的词
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 建议:
把所有书面化表达改成你习惯的口语化风格
参考你的风格档案中的"典型表达"
```
---
## 功能 2: Session 生命周期管理系统
### 2.1 核心概念
**Session(写作会话)定义**:
- 每篇文章 = 一个独立的 Session
- Session 记录从 `/specify` 到 `/publish` 的完整历史
- 支持暂停、恢复、查看进度
### 2.2 Session 元数据
**存储位置**:`.content/memory/session.json`
**数据结构**:
```json
{
"session_id": "session_20251028_103045",
"article_title": "Claude Code vs Cursor 深度评测",
"workspace": "wechat",
"writing_mode": "coach",
"status": "in_progress",
"created_at": "2025-10-28T10:30:45Z",
"updated_at": "2025-10-28T14:20:30Z",
"current_step": "write",
"completed_steps": [
"specify",
"research",
"topic",
"collect",
"extract"
],
"progress": {
"total_steps": 11,
"completed": 5,
"percentage": 45
},
"files": {
"brief": "_briefs/brief.md",
"specification": "_briefs/specification.md",
"draft": "workspaces/wechat/articles/draft.md",
"materials_found": "_briefs/materials-found.md"
},
"statistics": {
"total_commands": 12,
"total_time_minutes": 95,
"word_count": 1200,
"revisions": 2
},
"context_history": [
{
"step": "specify",
"timestamp": "2025-10-28T10:30:45Z",
"summary": "定义需求:Claude Code vs Cursor 评测,目标读者:开发者"
},
{
"step": "research",
"timestamp": "2025-10-28T10:45:20Z",
"summary": "调研完成:收集两款工具的官方文档和用户评价"
}
]
}
```
### 2.3 实现方案
#### 新增命令:`/session`
**功能**:
- `/session status` - 查看当前进度
- `/session history` - 查看历史记录
- `/session resume` - 恢复上次写作
- `/session new` - 开始新 Session(保存当前)
#### `/session status` 示例输出
```markdown
╔════════════════════════════════════════════════════════╗
║ 当前写作进度 ║
╚════════════════════════════════════════════════════════╝
📋 文章标题: Claude Code vs Cursor 深度评测
🏢 工作区: wechat (公众号)
🎓 写作模式: 教练模式
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 进度:5/11 步骤完成 (45%)
✅ 1. /specify - 需求定义完成
✅ 2. /research - 调研完成
✅ 3. /topic - 选题确定
✅ 4. /collect - 素材收集完成
✅ 5. /extract - 真实经历提取完成
⏸️ 6. /write - 正在进行(写作中)
⬜ 7. /authentic - 待开始
⬜ 8. /review - 待开始
⬜ 9. /images - 待开始
⬜ 10. /check - 待开始
⬜ 11. /publish - 待开始
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⏱️ 统计信息:
- 开始时间: 2025-10-28 10:30
- 已用时间: 1小时35分钟
- 已完成命令: 12 次
- 当前字数: 1200 字
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 下一步建议:
继续 /write 命令,完成剩余段落
预计还需 1-2 小时完成初稿
📁 相关文件:
- Brief: _briefs/brief.md
- 选题: _briefs/specification.md
- 草稿: workspaces/wechat/articles/draft.md
- 素材: _briefs/materials-found.md
```
#### `/session resume` 恢复逻辑
```markdown
# 恢复写作会话
🔍 检测到上次未完成的 Session...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 会话信息:
- 文章: Claude Code vs Cursor 深度评测
- 进度: 5/11 步骤 (45%)
- 上次保存: 2025-10-28 14:20 (2小时前)
- 当前步骤: /write (写作中)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 上下文回顾:
你正在写一篇 Claude Code vs Cursor 的深度评测:
✅ 已完成:
- 需求定义: 目标读者是开发者,对比性能和体验
- 调研: 收集了官方文档和 Reddit 讨论
- 选题: 确定了 5 个对比维度
- 素材: 找到了 8 条个人使用动态
- 经历提取: 整理了两周实测数据
⏸️ 进行中:
- /write: 已完成开头 + 2 个小节(共 1200 字)
- 待写: 剩余 3 个小节 + 结尾
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 接下来:
你正在写第 3 个小节:"代码补全对比"
根据 specification,这部分需要:
- 对比两款工具的代码补全准确率
- 分享你的实测数据
- 给出使用建议
是否继续写作?(Y/n)
> _
```
### 2.4 自动保存机制
**触发时机**:
- 每个命令执行完成后自动保存 Session
- 用户中断(Ctrl+C)时提示保存
- 每 10 分钟自动保存一次
**保存内容**:
- Session 元数据更新
- 当前步骤状态
- 已生成文件列表
- 上下文摘要
---
## 功能 3: 主动提问机制增强
### 3.1 设计原则
**Spiral 的启示**:
> "主动提问,帮助用户不断完善和明确想法"
**我们的增强方向**:
- AI 不再被动等待指令
- 主动发现需求不明确的地方
- 引导用户思考更深层次的问题
### 3.2 主动提问场景
#### 场景 1:`/specify` - 需求澄清
**当前逻辑**(简化):
```
AI: 请告诉我你想写什么文章
用户: Claude Code vs Cursor 评测
AI: 生成 brief
```
**增强后(主动提问)**:
```
AI: 请告诉我你想写什么文章
用户: Claude Code vs Cursor 评测
AI: 好的,我想更了解你的需求,问你几个问题:
1️⃣ 目标读者是谁?
- [ ] 完全不了解 AI 编程工具的新手
- [ ] 正在选择工具的开发者
- [ ] 已经在用,想换工具的用户
2️⃣ 你想达到什么效果?
- [ ] 帮读者选择合适的工具
- [ ] 展示深度使用经验
- [ ] 吐槽/分享踩坑经历
3️⃣ 你的独特优势是什么?
- [ ] 我两个工具都深度用过(实测数据)
- [ ] 我有具体的使用场景(真实案例)
- [ ] 我发现了别人没注意到的细节
请告诉我答案(可多选,如:1-B, 2-A, 3-A+B):
> _
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[用户回答后]
AI: 明白了!基于你的回答,我再追问一个关键问题:
❓ 你希望这篇文章给读者什么"独特价值"?
换句话说,别人的评测也很多,你这篇有什么不同?
💡 提示:
- 是实测数据更详细?
- 是对比维度更独特?
- 还是有只有你知道的坑?
请用 1-2 句话描述:
> _
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[用户回答后]
AI: 完美!现在我对你的需求很清楚了。
基于我们的讨论,我建议:
📋 文章定位:
- 目标读者:正在选择工具的开发者
- 核心价值:提供两周深度实测数据,帮助读者选择
- 独特优势:真实使用场景 + 详细性能对比
🎓 推荐写作模式:教练模式
理由:你有大量实测经历,适合深度挖掘
现在开始生成 brief...
```
#### 场景 2:`/topic` - 选题深化
**当前逻辑**:
```
AI: 这里有 3 个选题方向,你选哪个?
用户: 选 A
AI: 好的,开始写 specification
```
**增强后(主动提问)**:
```
AI: 你选择了方向 A "全维度性能对比"
在我写选题大纲之前,想和你确认几个细节:
1️⃣ 对比维度选择
我建议从这 5 个维度对比:
- 代码补全准确率
- 响应速度
- 上下文理解能力
- 稳定性
- 价格
❓ 问题:
- 这些维度是你关心的吗?
- 有没有我遗漏的重要维度?
- 哪个维度你的经验最丰富?(可以重点写)
2️⃣ 证据准备
这些维度需要数据支持,你有吗?
- [ ] 我有实测数据(跑分、计时)
- [ ] 我有使用截图(可配图)
- [ ] 我有具体案例(某个项目中的对比)
- [ ] 没有数据,但有主观感受
❓ 如果没有数据,我们可以:
- 降低量化对比,增加场景化描述
- 或者,你现在去测一下(我给你测试清单)
请告诉我你的想法:
> _
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[根据用户回答调整选题结构]
AI: 明白了!根据你的反馈,我调整一下选题结构:
调整后的对比维度:
1. 代码补全(你有实测数据,重点写)✨
2. 响应速度(你有主观感受,辅助写)
3. 上下文理解(你有具体案例,场景化描述)
4. 稳定性(你的踩坑经历,重点写)✨
5. 价格(简单对比)
这样结构更合理,既有数据支撑,又有真实案例。
现在生成 specification...
```
#### 场景 3:`/extract` - 经历挖掘
**当前逻辑**:
```
AI: 请分享你的真实使用经历
用户: 我用了两周,Claude Code 卡了 3 次
AI: 好的,继续
```
**增强后(主动提问)**:
```
AI: 你提到 Claude Code 卡了 3 次,很好的素材!
我想深挖一下细节,这样文章会更真实:
❓ 追问 1:这 3 次卡顿具体是什么情况?
- 是在写什么类型的代码时卡的?
- 卡顿时有什么特征?(完全无响应 vs 只是慢)
- 你是怎么解决的?(重启?等待?)
💡 为什么问这个:
读者会想知道"我遇到这种情况该怎么办"
请详细描述一次卡顿经历(100-150字):
> _
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❓ 追问 2:对比下,Cursor 的稳定性如何?
- Cursor 有没有卡过?
- 如果没卡,是因为什么?(配置更好?用法不同?)
- 同样的场景下,两个工具表现差异大吗?
💡 为什么问这个:
对比越具体,文章越有说服力
请描述 Cursor 的稳定性表现:
> _
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❓ 追问 3:这个问题影响你的选择吗?
- 3 次卡顿算严重问题吗?(还能接受 vs 不能忍)
- 如果 Claude Code 其他方面很好,你会因为卡顿放弃吗?
- 你会推荐什么类型的用户选 Claude Code?
💡 为什么问这个:
结论和建议需要基于真实权衡
请分享你的权衡思路:
> _
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[用户回答后]
AI: 太好了!通过这三层追问,我们得到了:
✅ 具体场景: 写 Python 数据处理代码时卡顿
✅ 解决方案: 重启 Claude Code(耗时 2 分钟)
✅ 对比数据: Cursor 同样场景没卡过
✅ 权衡结论: 能接受卡顿,因为代码质量更好
这些细节会让你的文章非常有说服力!
继续挖掘下一个经历...
```
### 3.3 主动提问规则
**触发条件**:
| 场景 | 触发条件 | 提问类型 |
|-----|---------|---------|
| 需求模糊 | 用户描述 < 20 字 | 澄清问题(目标、读者、价值) |
| 缺少细节 | 用户回答过于笼统 | 追问具体细节 |
| 逻辑跳跃 | 缺少推理过程 | 询问思考过程 |
| 证据不足 | 观点缺乏支撑 | 追问数据或案例 |
**提问策略**:
1. **递进式提问**:从宏观到细节,层层深入
2. **结构化选项**:提供选项降低回答难度
3. **说明原因**:告诉用户为什么要问这个问题
4. **限制轮次**:单个话题最多追问 3 次,避免疲劳
---
## 📝 实施方案
### Phase 1: 风格学习系统(P0)
**工作量**: 2-3 天
#### Day 1: 风格分析引擎
**任务**:
1. 创建 `/learn-style` 命令模板(slash command)
2. 实现历史文章检测(读取 `materials/archive/` 文件夹)
3. 实现文章选择交互界面
4. 使用 Read 工具读取选定的文章内容
**输出**:
- `templates/commands/learn-style.md`(slash command 模板)
- 历史文章列表展示
- 允许的工具:`Read(//materials/archive/**)`
#### Day 2: 风格特征提取
**任务**:
1. 实现 6 个维度的分析逻辑:
- 词汇偏好(高频词、避用词)
- 句式特点(句长、短句比例)
- 段落节奏(段落长度、单句段比例)
- 表达习惯(人称、口语化程度)
- 开头风格(Hook vs 直入主题)
- 结尾风格(总结 vs 启发)
2. 生成 `style-profile.json`
**技术方案(Slash Command)**:
```markdown
---
description: 学习用户的写作风格
argument-hint: [无需参数]
allowed-tools: Read(//materials/archive/**), Write(//.content/memory/style-profile.json)
---
# /learn-style - 写作风格学习
1. 使用 Read 工具列出 materials/archive/ 下的所有 .md 和 .txt 文件
2. 让用户选择 2-3 篇代表性文章
3. 使用 Read 工具读取选定文章的内容
4. AI 分析 6 个维度的风格特征
5. 生成 style-profile.json 保存到 .content/memory/
6. 展示分析结果摘要
```
**分析逻辑(AI 在 slash command 中执行)**:
- 提取高频词、避用词、专业术语(词汇维度)
- 计算平均句长、短句比例、问句频率(句式维度)
- 分析段落长度分布、单句段比例(段落维度)
- 识别人称使用、口语化程度(表达维度)
- 总结开头和结尾的典型模式(结构维度)
#### Day 3: 风格应用集成
**任务**:
1. 修改 `/write` - 引导时参考风格档案
2. 修改 `/review` - 增加风格偏离度检查
3. 修改 `/authentic` - 结合风格档案检查真实性
**修改文件**:
- `templates/commands/write.md`
- `templates/commands/review.md`
- `templates/commands/authentic.md`
---
### Phase 2: Session 管理系统(P1)
**工作量**: 2 天
#### Day 4: Session 数据结构
**任务**:
1. 设计 `session.json` 格式
2. 实现 Session 初始化(在 `/specify` 时创建)
3. 实现 Session 自动更新(每个命令后)
**输出**:
- `.content/memory/session.json`
- Session 创建/更新逻辑
#### Day 5: Session 命令实现
**任务**:
1. 实现 `/session status` - 查看进度
2. 实现 `/session resume` - 恢复写作
3. 实现 `/session history` - 查看历史
4. 实现自动保存机制
**输出**:
- `templates/commands/session.md`
- 恢复上下文逻辑
---
### Phase 3: 主动提问增强(P1)
**工作量**: 1-2 天
#### Day 6: 提问规则引擎
**任务**:
1. 定义提问触发条件
2. 编写提问模板库
3. 实现递进式提问逻辑
**提问模板库示例**:
```markdown
# 提问模板库
## 需求澄清类
- 目标读者是谁?
- 你想达到什么效果?
- 你的独特优势是什么?
## 细节追问类
- 具体是什么情况?
- 你是怎么解决的?
- 当时的感受是什么?
## 证据验证类
- 你有数据支持吗?
- 有具体案例吗?
- 能举个例子吗?
```
#### Day 7: 集成到核心命令
**任务**:
1. 修改 `/specify` - 增加需求澄清提问
2. 修改 `/topic` - 增加选题深化提问
3. 修改 `/extract` - 增加经历挖掘提问
**修改文件**:
- `templates/commands/specify.md`
- `templates/commands/topic.md`
- `templates/commands/extract.md`
---
## 📊 验收标准
### 功能 1: 风格学习系统
**测试用例 1:风格学习**
```
✅ 前置条件: materials/archive/ 有 3+ 篇历史文章
✅ 执行: /learn-style
✅ 预期:
- 列出所有历史文章
- 用户选择 2-3 篇
- 分析 6 个维度的风格特征
- 生成 style-profile.json
- 展示分析结果摘要
```
**测试用例 2:风格应用(/write)**
```
✅ 前置条件: 已有 style-profile.json
✅ 执行: /write (教练模式)
✅ 预期:
- 引导开头时,参考用户的开头风格
- 提供符合用户习惯的用词建议
- 段落长度提示符合用户习惯
```
**测试用例 3:风格检查(/review)**
```
✅ 前置条件: 已有 style-profile.json 和 draft.md
✅ 执行: /review
✅ 预期:
- 检测词汇偏离("非常" vs "真的")
- 检测句式偏离(句长、短句比例)
- 检测段落偏离(段落过长/过短)
- 给出具体修改建议
```
**质量标准**:
- ✅ 风格分析准确率 > 70%(与人工分析对比)
- ✅ 用户认同度 > 75%("这确实是我的风格")
- ✅ 风格应用后,违和感降低 30%+
---
### 功能 2: Session 管理
**测试用例 1:Session 创建与更新**
```
✅ 执行: /specify → /research → /topic
✅ 预期:
- /specify 后创建 session.json
- 每个命令后自动更新 Session
- completed_steps 正确记录
- current_step 正确更新
```
**测试用例 2:进度查看**
```
✅ 前置条件: 已完成 5/11 步骤
✅ 执行: /session status
✅ 预期:
- 展示进度条(5/11,45%)
- 列出已完成和待完成步骤
- 显示统计信息(用时、字数)
- 给出下一步建议
```
**测试用例 3:恢复写作**
```
✅ 前置条件:
- 有未完成的 Session(进行到 /write)
- 模拟新会话(上下文丢失)
✅ 执行: /session resume
✅ 预期:
- 加载 Session 数据
- 回顾已完成步骤
- 提示当前待完成任务
- 恢复上下文(读取 brief、specification 等)
```
**质量标准**:
- ✅ Session 数据完整性 100%(无丢失)
- ✅ 恢复后上下文准确率 > 90%
- ✅ 用户反馈"断点续写很有用" > 80%
---
### 功能 3: 主动提问
**测试用例 1:需求澄清**
```
✅ 执行: /specify
✅ 用户输入: "Claude Code 评测"(过于简单)
✅ 预期:
- AI 主动追问:目标读者、期望效果、独特优势
- 至少 3 个澄清问题
- 基于回答调整 brief 内容
```
**测试用例 2:经历挖掘**
```
✅ 执行: /extract
✅ 用户输入: "Claude Code 卡了 3 次"(笼统)
✅ 预期:
- AI 追问:具体情况、解决方案、对比数据
- 递进式追问(3 层深度)
- 提取出可用的详细素材
```
**测试用例 3:提问节制**
```
✅ 执行: /specify
✅ 用户输入: 详细的需求描述(200+ 字)
✅ 预期:
- AI 不追问(需求已清晰)
- 或只追问 1-2 个补充问题
- 避免过度提问
```
**质量标准**:
- ✅ 提问相关性 > 85%(用户认为问题有必要)
- ✅ 提问适度性 > 80%(不会觉得烦)
- ✅ 细节挖掘深度提升 40%+(对比旧版)
---
## ⚠️ 风险与应对
### 风险 1: 风格分析不准确
**风险描述**:
AI 分析的风格特征不符合用户实际风格,导致误导性建议。
**应对措施**:
1. ✅ 要求用户选择 2-3 篇**代表性**文章(不是随机)
2. ✅ 分析结果展示给用户确认("这是你的风格吗?")
3. ✅ 提供手动调整选项(用户可编辑 style-profile.json)
4. ✅ 风格建议标记为"参考",不强制执行
### 风险 2: 历史文章数量不足
**风险描述**:
用户 `materials/archive/` 文件夹为空或只有 1 篇文章,样本太小,分析不准确。
**应对措施**:
1. ✅ 最少要求 2 篇文章(< 2 篇提示"样本不足,建议先放入 2-3 篇历史文章")
2. ✅ 提供"跳过风格学习"选项(使用通用风格)
3. ✅ 在 `/learn-style` 命令开始时提示用户准备文件
4. ✅ 建议用户先写 2-3 篇文章并保存到 `materials/archive/`,再开启风格学习
### 风险 3: Session 数据过大
**风险描述**:
长时间写作(如一周),Session 记录几百条,加载缓慢。
**应对措施**:
1. ✅ 只保留最近 50 条上下文历史(旧的归档)
2. ✅ Session 摘要而非全记录(每步只存 summary)
3. ✅ 懒加载:`/session status` 只显示必要信息
### 风险 4: 主动提问过度
**风险描述**:
AI 问太多问题,用户觉得烦。
**应对措施**:
1. ✅ 单话题最多追问 3 次
2. ✅ 如果用户回答很详细,跳过追问
3. ✅ 提供"跳过提问"选项(用户可选择快速模式)
4. ✅ 在提问时说明原因("为什么问这个")
---
## 📈 成功指标
### 用户体验指标
1. **风格一致性提升**:
- 目标:用户认为"更像我写的" > 70%
- 测量:用户反馈问卷
2. **断点续写使用率**:
- 目标:> 40% 的 Session 使用了恢复功能
- 测量:`/session resume` 调用次数
3. **主动提问满意度**:
- 目标:> 75% 用户认为"提问有帮助"
- 测量:用户反馈问卷
### 质量指标
1. **风格偏离度降低**:
- 目标:应用风格档案后,偏离度降低 30%
- 测量:对比 `/review` 风格检查结果
2. **经历挖掘深度提升**:
- 目标:`/extract` 产出的素材详细度提升 40%
- 测量:对比旧版,计算平均字数和细节数量
3. **流程完成率提升**:
- 目标:完整走完 11 步流程的比例提升 20%
- 测量:Session 数据统计
---
## 🎉 预期效果
### 解决的核心问题
1. ✅ **风格一致性** - 从历史文章学习,生成"更像我写的"内容
2. ✅ **工作流中断** - Session 管理让写作可暂停、可恢复
3. ✅ **协作被动性** - AI 主动提问,引导用户完善思路
### 与 Spiral 的差异化
| 维度 | Spiral Personal | Article Writer (PRD-10) |
|-----|----------------|-------------------------|
| 风格学习 | ✅ 上传范文学习 | ✅ 分析历史文章 + 6 维度特征 |
| Session 管理 | ✅ 不限消息 | ✅ 完整生命周期 + 断点续写 |
| 主动提问 | ✅ 对话协作 | ✅ 结构化提问 + 3 层递进 |
| **独特优势** | - | ✅ **真实驱动工作流**(素材库+教练模式) |
| **独特优势** | - | ✅ **多模式写作**(教练/快速/混合) |
| **独特优势** | - | ✅ **工作区系统**(公众号/视频/通用) |
**总结**:
- Spiral 的核心优势我们都能实现
- 我们的独特优势(真实驱动、多模式)Spiral 没有
- **差异化价值**: Article Writer = Spiral 的风格学习 + 更强的真实性保障
---
## 🚀 下一步
### 等待用户确认
请审阅此 PRD,如果同意,我将开始实施:
**Phase 1 (P0)**: 风格学习系统(2-3 天)
- Day 1: `/learn-style` 命令 + 文章检测
- Day 2: 风格特征提取
- Day 3: 风格应用集成(/write、/review、/authentic)
**Phase 2 (P1)**: Session 管理(2 天)
- Day 4: Session 数据结构 + 自动更新
- Day 5: `/session` 命令实现
**Phase 3 (P1)**: 主动提问(1-2 天)
- Day 6: 提问规则引擎
- Day 7: 集成到核心命令
**预计总工时**: 5-6 天
---
## 📎 附录
### A. 风格档案示例
完整示例见 [2.2 风格特征维度] 章节的 `style-profile.json`
### B. Session 数据示例
完整示例见 [功能 2.2 Session 元数据] 章节
### C. 主动提问模板库
完整模板见 [功能 3.3 主动提问规则] 章节
---
## 🤝 变更日志
| 日期 | 版本 | 变更内容 | 作者 |
|------|------|----------|------|
| 2025-10-28 | v1.0 | 初始创建 PRD-10 | Claude Sonnet 4.5 |
---
**PRD 状态**: 📝 待审核 → 待用户确认
**下一步**:
- [ ] 用户审阅并确认 PRD
- [ ] 开始 Phase 1 实施(风格学习)
- [ ] 开始 Phase 2 实施(Session 管理)
- [ ] 开始 Phase 3 实施(主动提问)
- [ ] 测试验收
- [ ] 更新文档
- [ ] 发布新版本