UNPKG

article-writer-cn

Version:

AI 驱动的智能写作系统 - 专注公众号/自媒体文章创作

1,261 lines (936 loc) 36.4 kB
# 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 实施(主动提问) - [ ] 测试验收 - [ ] 更新文档 - [ ] 发布新版本