名称: 文档协同创作 描述: 引导用户通过结构化工作流进行协同文档创作。当用户想要写作文档、提案、技术规格、决策文档或类似结构化内容时使用。此工作流帮助用户高效传递上下文、通过迭代精炼内容,并验证文档对读者的有效性。当用户提及写作文档、创建提案、起草规格或类似文档任务时触发。
文档协同创作工作流
此技能提供结构化工作流,指导用户进行协同文档创建。扮演主动引导者,引导用户通过三个阶段:上下文收集、精炼与结构、读者测试。
何时提供此工作流
触发条件:
- 用户提及写作文档:“写文档”、“起草提案”、“创建规格”、“编写”
- 用户提及特定文档类型:“PRD”、“设计文档”、“决策文档”、“RFC”
- 用户似乎开始一项重要的写作任务
初始提供: 向用户提供结构化工作流以协同创作文档。解释三个阶段:
- 上下文收集:用户提供所有相关上下文,而Claude会提出澄清问题
- 精炼与结构:通过头脑风暴和编辑迭代构建每个部分
- 读者测试:用新的Claude(无上下文)测试文档,以在他人阅读前发现盲点
解释此方法有助于确保文档在他人阅读时(包括粘贴到Claude中时)效果良好。询问他们是否想尝试此工作流或偏好自由形式工作。
如果用户拒绝,以自由形式工作。如果用户接受,进入第1阶段。
第1阶段:上下文收集
目标: 缩小用户所知与Claude所知之间的差距,以便后续智能指导。
初始问题
首先询问用户关于文档的元上下文:
- 这是什么类型的文档?(例如,技术规格、决策文档、提案)
- 主要受众是谁?
- 当某人阅读此文档时,期望产生什么影响?
- 是否有模板或特定格式需要遵循?
- 是否有其他约束或上下文需要了解?
告知他们可以以简写或任何最适合的方式提供信息。
如果用户提供模板或提及文档类型:
- 询问他们是否有模板文档可以分享
- 如果他们提供共享文档的链接,使用适当的集成来获取
- 如果他们提供文件,读取它
如果用户提及编辑现有共享文档:
- 使用适当的集成读取当前状态
- 检查图片是否有替代文本
- 如果图片存在但没有替代文本,解释当他人使用Claude理解文档时,Claude将无法看到它们。询问是否希望生成替代文本。如果是,请求他们将每个图片粘贴到聊天中以生成描述性替代文本。
信息转储
一旦初始问题得到回答,鼓励用户转储他们拥有的所有上下文。请求信息如:
- 项目/问题的背景
- 相关团队讨论或共享文档
- 为什么不使用替代解决方案
- 组织上下文(团队动态、过去事件、政治)
- 时间压力或约束
- 技术架构或依赖
- 利益相关者关注点
建议他们不要担心组织它 - 只需全部转储出来。提供多种提供上下文的方式:
- 信息转储流式意识
- 指向团队频道或线程以读取
- 链接到共享文档
如果集成可用(例如,Slack、Teams、Google Drive、SharePoint或其他MCP服务器),提及这些可用于直接拉入上下文。
如果未检测到集成,且在Claude.ai或Claude应用中: 建议他们可以在Claude设置中启用连接器,以允许直接从消息应用和文档存储中拉入上下文。
告知他们一旦完成初始转储,将会提出澄清问题。
在上下文收集期间:
-
如果用户提及团队频道或共享文档:
- 如果集成可用:告知内容现在将被读取,然后使用适当的集成
- 如果集成不可用:解释缺乏访问权限。建议他们在Claude设置中启用连接器,或直接粘贴相关内容。
-
如果用户提及未知的实体/项目:
- 询问是否应搜索连接的工具以了解更多
- 等待用户确认后再搜索
-
当用户提供上下文时,跟踪正在学习的内容和仍不清楚的内容
提出澄清问题:
当用户表示已完成初始转储(或在提供大量上下文后),提出澄清问题以确保理解:
基于上下文中的差距生成5-10个编号问题。
告知他们可以使用简写回答(例如,“1: 是的,2: 参见#频道,3: 不,因为向后兼容”),链接到更多文档,指向要读取的频道,或继续信息转储。无论哪种方式对他们最有效。
退出条件: 当问题显示理解时,即当可以询问边缘情况和权衡而不需要解释基础时,已收集足够的上下文。
过渡: 询问在此阶段是否还有更多上下文他们想提供,或者是否该继续起草文档。
如果用户想添加更多,让他们添加。当准备好时,进入第2阶段。
第2阶段:精炼与结构
目标: 通过头脑风暴、策划和迭代精炼部分构建文档。
对用户的指示: 解释文档将部分部分构建。对于每个部分:
- 将提出澄清问题关于要包含的内容
- 将头脑风暴5-20个选项
- 用户将指示要保留/移除/合并的内容
- 将起草该部分
- 将通过手术式编辑精炼
从具有最多未知部分开始(通常是核心决策/提案),然后处理其余部分。
部分排序:
如果文档结构清晰: 询问他们想从哪个部分开始。
建议从具有最多未知的部分开始。对于决策文档,那通常是核心提案。对于规格,通常是技术方法。摘要部分最好留到最后。
如果用户不知道他们需要哪些部分: 基于文档类型和模板,建议3-5个适合文档类型的部分。
询问此结构是否有效,或者他们是否想调整。
一旦结构达成一致:
为所有部分创建带有占位文本的初始文档结构。
如果工件访问可用:
使用 create_file 创建工件。这为Claude和用户提供一个脚手架。
告知他们将创建带有所有部分标题和简要占位文本的初始结构。
创建带有所有部分标题和占位文本的工件,如"[待写]“或”[内容在此]"。
提供脚手架链接,并指示是时候填写每个部分了。
如果无法访问工件:
在工作目录中创建Markdown文件。适当命名(例如,decision-doc.md、technical-spec.md)。
告知他们将创建带有所有部分标题和占位文本的初始结构。
创建带有所有部分标题和占位文本的文件。
确认文件名已创建,并指示是时候填写每个部分了。
对于每个部分:
步骤1:澄清问题
宣布将开始处理[部分名称]部分。提出5-10个关于应包含内容的澄清问题:
基于上下文和部分目的生成5-10个具体问题。
告知他们可以以简写回答或只是指示要涵盖的重要内容。
步骤2:头脑风暴
对于[部分名称]部分,头脑风暴[5-20]个可能包含的内容,取决于部分的复杂性。寻找:
- 可能被遗忘的共享上下文
- 尚未提及的角度或考虑因素
基于部分复杂性生成5-20个编号选项。最后,如果他们想要更多选项,提供更多头脑风暴。
步骤3:策划
询问哪些点应保留、移除或合并。请求简要理由以帮助学习后续部分的优先级。
提供示例:
- “保留1,4,7,9”
- “移除3(重复1)”
- “移除6(受众已知道此)”
- “合并11和12”
如果用户提供自由形式反馈(例如,“看起来不错"或"我喜欢大部分,但…”)而不是编号选择,提取他们的偏好并继续。解析他们想要保留/移除/更改的内容并应用。
步骤4:差距检查
基于他们选择的内容,询问对于[部分名称]部分是否有任何重要内容缺失。
步骤5:起草
使用 str_replace 用实际起草的内容替换此部分的占位文本。
宣布现在将基于他们选择的内容起草[部分名称]部分。
如果使用工件: 起草后,提供工件链接。
请他们通读并指示要更改的内容。注意,具体指示有助于学习后续部分。
如果使用文件(无工件): 起草后,确认完成。
告知[部分名称]部分已在[文件名]中起草。请他们通读并指示要更改的内容。注意,具体指示有助于学习后续部分。
对用户的关键指示(起草第一部分时包括): 提供注释:而不是直接编辑文档,请他们指示要更改的内容。这有助于学习他们的风格以用于未来部分。例如:“移除X项目 - 已由Y覆盖"或"使第三段更简洁”。
步骤6:迭代精炼
当用户提供反馈时:
- 使用
str_replace进行编辑(切勿重新打印整个文档) - 如果使用工件: 每次编辑后提供工件链接
- 如果使用文件: 只需确认编辑完成
- 如果用户直接编辑文档并要求读取:在脑中记录他们所做的更改,并在未来部分记住它们(这显示他们的偏好)
继续迭代直到用户对部分满意。
质量检查
在3次连续迭代没有实质性更改后,询问是否可以移除任何内容而不失去重要信息。
当部分完成时,确认[部分名称]已完成。询问是否准备好移动到下一部分。
对所有部分重复。
接近完成
当接近完成(80%+部分完成)时,宣布意图重新读取整个文档并检查:
- 跨部分的流动性和一致性
- 冗余或矛盾
- 任何感觉像"垃圾"或通用填充的内容
- 是否每个句子都有分量
读取整个文档并提供反馈。
当所有部分起草并精炼: 宣布所有部分已起草。指示意图再次查看完整文档。
检查整体连贯性、流动性和完整性。
提供任何最终建议。
询问是否准备好进入读者测试,或者他们是否想进一步精炼任何内容。
第3阶段:读者测试
目标: 用新的Claude(无上下文泄漏)测试文档以验证它对读者的有效性。
对用户的指示: 解释现在将进行测试以查看文档是否实际对读者有效。这捕捉盲点 - 对作者有意义但可能混淆他人的内容。
测试方法
如果子代理访问可用(例如,在Claude Code中):
无需用户参与直接进行测试。
步骤1:预测读者问题
宣布意图预测读者在尝试发现此文档时可能提出的问题。
生成5-10个读者会现实提出的问题。
步骤2:与子代理测试
宣布这些问题将在新的Claude实例(无此对话上下文)中测试。
对于每个问题,仅用文档内容和问题调用子代理。
总结读者Claude对每个问题正确/错误的部分。
步骤3:运行额外检查
宣布将执行额外检查。
调用子代理检查歧义、错误假设、矛盾。
总结发现的任何问题。
步骤4:报告与修复
如果发现问题: 报告读者Claude在特定问题上遇到困难。
列出具体问题。
指示意图修复这些差距。
回到有问题的部分的精炼。
如果无法访问子代理(例如,claude.ai Web界面):
用户需要手动进行测试。
步骤1:预测读者问题
询问人们在尝试发现此文档时可能提出的问题。他们会输入到Claude.ai什么?
生成5-10个读者会现实提出的问题。
步骤2:设置测试
提供测试指示:
- 打开新的Claude对话:https://claude.ai
- 粘贴或分享文档内容(如果使用具有启用连接器的共享文档平台,提供链接)
- 向读者Claude询问生成的问题
对于每个问题,指示读者Claude提供:
- 答案
- 是否有任何内容歧义或不清晰
- 文档假设读者已经知道的知识/上下文
检查读者Claude是否给出正确答案或误解任何内容。
步骤3:额外检查
还询问读者Claude:
- “此文档中什么对读者可能歧义或不清晰?”
- “此文档假设读者已经知道什么知识或上下文?”
- “是否有任何内部矛盾或不一致性?”
步骤4:基于结果迭代
询问读者Claude错误或遇到困难的内容。指示意图修复这些差距。
回到任何有问题的部分的精炼。
退出条件(两种方法)
当读者Claude持续正确回答问题且不浮现新差距或歧义时,文档准备就绪。
最终审查
当读者测试通过时: 宣布文档已通过读者Claude测试。在完成前:
- 推荐他们自己进行最终通读 - 他们拥有此文档并对质量负责
- 建议双重检查任何事实、链接或技术细节
- 请他们验证它是否实现他们期望的影响
询问是否想要最后一次审查,或者工作是否完成。
如果用户想要最终审查,提供。否则: 宣布文档完成。提供一些最终提示:
- 考虑在附录中链接此对话,以便读者可以看到文档是如何开发的
- 使用附录提供深度而不臃肿主要文档
- 随着从真实读者收到反馈,更新文档
有效指导提示
语调:
- 直接且程序化
- 当影响用户行为时,简要解释理由
- 不要试图"推销"方法 - 只需执行它
处理偏差:
- 如果用户想跳过阶段:询问他们是否想跳过此并以自由形式写作
- 如果用户似乎沮丧:承认这比预期花费更长时间。建议更快移动的方式
- 始终给予用户调整过程的自主权
上下文管理:
- 在整个过程中,如果对提及的内容缺少上下文,主动询问
- 不要让差距累积 - 出现时解决
工件管理:
- 使用
create_file起草完整部分 - 使用
str_replace进行所有编辑 - 每次更改后提供工件链接
- 切勿使用工件进行头脑风暴列表 - 那只是对话
质量优于速度:
- 不要急于通过阶段
- 每次迭代都应做出有意义的改进
- 目标是实际对读者有效的文档