关于 tech-writer
用于撰写和编辑技术文档的技能,覆盖 PRD、技术规范、QA 材料及日常工程沟通,并按文档类型提供流程,区分源材料事实与协作提案。
主要功能
- 01覆盖规划、设计、QA 和团队文档
- 02按文档类型选择专用指南
- 03确保主张有源材料依据
- 04区分转录事实与协作提案
- 05用自检清单审阅草稿
适用场景
- 01起草 PRD、技术规范或 ADR
- 02将规范拆分为任务或议题
- 03编写 QA 测试计划和缺陷报告
- 04编辑 README、PR 或状态更新
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ marcioaltoe/ skills --skill tech-writer安装后在 Claude Code 中输入/tech-writer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/doc-type-playbooks.mdprd-playbook.mdqa-playbook.mdtasks-playbook.mdtechspec-playbook.md详细介绍
技术写作者
撰写能吸引读者注意力的技术内容:优先说明最重要的信息,用真实事实和可运行示例证明观点,并删去所有无助于读者判断或采取行动的内容。涵盖资深工程师或架构师编写的完整文档链——从构想简报和 PRD,到技术规格、ADR、任务文件和 issue,再到 QA 测试计划、缺陷报告和验证报告——以及日常文档、PR、评审和进度更新。
适用场景
- 为工具、库或服务撰写 README、快速入门、文档页面或指南
- 撰写或重写 PRD、技术规格、RFC、ADR、设计文档、构想简报、GitHub issue、缺陷报告、PR 描述、代码评审评论或异步状态更新
- 将 PRD 或规格拆分成任务列表和单独的任务文件,或拆分成纵向切片 issue
- 撰写 QA 文档:测试计划、测试用例、探索式测试纲要、缺陷报告、验证报告
- 重写任何显得冗长、含糊或像 AI 生成的技术文本
两种模式:转录或协作撰写
写作前先确定模式;这会改变允许做的事。
- 转录——已有源材料(代码、规格、工单、差异、对话、先前文档)。只写源材料支持的内容。绝不编造验收标准、指标、边缘情况、备选方案或行为。与其编造细节,不如标注
TBD — needs <owner>。 - 协作撰写——用户正在与你共同创建文档。为尚无内容的章节提出建议,但要明确标注每一项建议(加上
Proposed:前缀或使用明确的提示),并在其成为事实前征求确认。每次只问一个问题;选项明确时,优先使用选择题;将未解决的问题列在 Open questions 下,并注明负责人。用户确认的建议即成为事实;用户尚未看到的建议仍只是建议。
流程
- 先阅读源材料。 写作前检查代码、CLI 帮助信息、API 接口、规格、工单或差异。每项陈述都必须有实际依据。
- 明确读者和行动。 确定读者是谁(新用户、评审者、PM、实施工程师、QA、未来的维护者),以及读完后他们应该知道或做的一件事。围绕这一点组织全部内容。
- 选择文档类型并加载对应指南。 只阅读下方路由器中匹配的参考文件——其中包含该类型的结构规则、骨架和质量门槛。
- 按倒金字塔结构起草。 最重要的句子放在最前面。对于文档,先说明它的作用和具体成果;对于 PR,先写可独立理解的摘要行;对于进度更新,先写 TL;DR。不要寒暄铺垫(“欢迎来到……”“本文档介绍……”)。
- 精简一遍。 删除不必要的词、限定语和重复观点。如果删掉某个词后句子依然成立,这个词就是噪声。
- 润色得更自然。 检查下方列出的禁用表达模式,并改写每一处。
- 验证。 运行自检。确认每条命令都能运行、每个链接都有效、每项陈述的事实都能在源材料中找到,并确保文档通过对应指南的质量门槛。
文档类型路由
| 文档 | 操作手册 |
|---|---|
| PRD(完整或轻量版)、创意/探索简报、用户故事、验收标准 | references/prd-playbook.md |
| 技术规范、设计文档、RFC、ADR | references/techspec-playbook.md |
| 任务列表、任务文件、垂直切片问题、工作分解 | references/tasks-playbook.md |
| QA 测试计划、测试用例、探索性测试纲要、QA 缺陷报告、验证报告 | references/qa-playbook.md |
| README、文档页面、快速入门、跟踪器问题/缺陷报告、PR 描述、评审评论、异步更新 | references/doc-type-playbooks.md |
高级判断力
这些习惯让高级架构师的文档有别于记录者的笔记。请在所有文档类型中贯彻这些习惯。
- 把握抽象层级。 PRD 说明做什么以及为什么,绝不规定架构。规范精确地定义系统的行为——契约、数据模型、故障模式——精确度应与决策所需相匹配。任务说明要完成什么,而不是如何完成。混淆抽象层级是最常见的结构性问题。
- 明确非目标至关重要。 明确列出范围之外的内容,比任何其他章节都更能避免返工。每份规划文档都应包含这一项。
- 说明权衡。 没有缺点的规范就还不完整。说明设计舍弃了什么、否决了哪些备选方案及原因,以及仍然存在的风险。坦陈自身弱点的文档更能赢得评审者的信任。
- 用数字而非形容词。 “快”只是一种愿望;“p95 低于 200ms”才是要求。尽量将每项非功能性声明转化为可衡量的目标;在转录模式下,只能使用源文档明确给出的目标。
- 验收标准必须可观察。 每条标准都必须让未编写代码的人也能检查:一种行为、一项输出或一条成功执行的命令。适用时使用 Given-When-Then;同时包含负面和边界情况。
- 保持可追溯链条。 每个规范组件都应追溯到 PRD 目标;每项任务都应追溯到规范章节;每项测试都应追溯到任务或用户旅程;每个缺陷都应追溯到复现步骤。读者必须能通过链接双向追溯整条链,而不是依赖重复内容。
- 引用,不要重复。 下游文档应按名称引用上游章节(“参见技术规范 → 数据模型”),而不是复述内容。重复内容会逐渐偏离,链接则不会。
- 纵向拆解。 将工作切分为精简的端到端路径(架构 + API + UI + 测试),每个切片都能独立实现和演示——绝不要按横向层拆分。明确列出依赖关系;优先处理风险最高的切片。
- 规划发布与回滚。 与未配置回滚路径的相同代码相比,通过功能标志发布且经过回滚测试的设计更胜一筹。只有在源文档确定了发布与回滚方案时,规范才应说明两者。
- 为执行者撰写——无论是人还是 Agent。 任务和问题就是提示词:问题清晰、验收标准完整、边界明确,并提供最低限度的必要背景。输入含糊,产出也会含糊。
写作规则
- 使用主动语态。“CLI 会写入报告”,而不是“报告会被写入”。
- **用具体内容代替抽象表述,但具体程度不能超出原文。**写明原文给出的命令、版本、文件路径和数字。“使用指数退避重试 3 次”胜过“能妥善处理故障”。但如果原文只写了“指数退避”,就到此为止:绝不能自行计算原文未说明的示例延迟、倍数或公式。原文明确的具体信息才可信;凭空编造具体信息就是错误。
- **示例和释义遵守相同规则。**用法示例只能展示原文说明的标志值、格式和输入。若文档没有说明可接受的值,就保留占位符(
--level <level>),或提示读者查看--help;绝不能用猜测的值举例(--level warn)。同样,对字段或选项的说明不能超出注释或文档的内容:“默认值为 true”只说明默认值,不代表说明了false的作用或设置它的原因。 - **说明原因,而非复述内容。**代码、差异和架构已经展示了是什么。文字应补充原因:意图、权衡和被否决的替代方案。
- **每份材料只讲一个主题。**每份 ADR 记录一个决策,每个议题讨论一个想法,每个页面说明一个用途。
- **使用“必须”“可以”“可能”,不要用“应该”。**必需事项用“必须”,可选事项用“可以”,可能的结果用“可能”。“应该”会让读者摸不着头绪。
- **用证据支撑收益。**说明读者能获得什么,再展示实现这一点的代码、命令或证据。
- **每段只讲一个想法,最多四句话。**冗长的段落会掩盖重点。
- **标题使用句首字母大写格式。**写“Getting started”,不要写“Getting Started”。
- **示例必须可运行。**代码片段必须完整、可直接复制粘贴,且不超过一屏。优先提供一个真实示例,而不是三个抽象示例。
- **用词直白。**用“使用”代替“利用”,用“帮助”代替“促成”,用“快速”代替“性能出色”。
禁用模式
重写所有出现以下模式的内容。它们会让文字显得像机器生成的填充内容。
- AI 词汇: delve、leverage、seamless、robust、cutting-edge、crucial、pivotal、comprehensive、testament、landscape(抽象含义)、showcase、foster、tapestry、intricate、vibrant、streamline、empower、elevate、unlock、supercharge。
- 填充短语: 将“in order to”改为“to”;将“due to the fact that”改为“because”;删除“it is important to note that”;将“at this point in time”改为“now”;删除“please note that”。
- 弱化词: “simply”“easily”“just”“it's that simple”。如果事情真的简单,读者就不需要文档。
- 夸大意义: “plays a vital role”“marks a pivotal step”“represents a paradigm shift”。
- 空洞的 -ing 结尾: 例如“……ensuring reliability”“……showcasing flexibility”“……highlighting its power”。删掉这些结尾,或用事实替代。
- 否定式排比: “It's not just X, it's Y.”
- 凑数的三项并列: 刻意堆砌“快速、灵活且强大”之类的三项并列。只保留真实且有证据支持的形容词。
- 加粗标题式项目符号列表: 例如“Performance: 性能得到了提升……”改用正文或普通项目符号。
- 装饰性内容: 标题或项目符号中不要加表情符号,不要用感叹号,不要使用标题式大写格式,也不要零散地加粗强调。
- 模糊归因: “许多开发者表示”“用户想要”“普遍认为”。引用工单、调查或来源,否则删掉相关说法。
- 泛泛的结尾: “未来一片光明”“祝编码愉快!”。结尾应指出下一步具体要做什么。
自检
交付前,每个问题的答案都必须是“是”:
- 第一句是否传达了对这位读者最重要的唯一要点?
- 每个代码块是否完整,并且按原样即可运行?
- 扫描是否确认不存在禁用模式?
- 每项说法是否具体,并由命令、数字、选项名称、引用或示例佐证?
- 文档是否遵循其类型的结构,并通过其操作手册中的质量门槛?
- 在转录模式下:每项事实是否都存在于源内容中?在协作撰写模式下:每项未经确认的提议是否仍标注为提议?
- 目标读者(或执行 Agent)能否仅凭这段文本及其链接采取行动?
反模式
- 未阅读代码、规格说明、任务单或差异内容就开始写作。
- 以历史、哲学或“在当今快节奏的世界中……”开篇。
- 在 PRD 中规定实现方案,或在规格说明中重新争论产品策略。
- 不引用上游内容的相关章节,而是在下游重复其内容。
- 按层拆分任务(“先构建所有模型,再构建所有 API”),而不是按结果拆分。
- 制定无法核查的验收标准(“正常工作”“妥善处理错误”)。
- 为了显得详尽而凑字数。实用的短文胜过华而不实的长文。
- 编造源内容中没有的基准测试、用户评价、指标或行为。
- 未提供最新证据就宣称 QA 结论,或未说明哪些内容尚未测试。
评论
支持 Markdown