跳到主内容
文档写作

技术文档生成 Prompt:让 AI 写出人能看懂的文档

让 AI 写「任务导向」的文档而非正确的废话:先讲读者要做什么,再给前置条件、操作步骤与常见错误排查。适合功能已跑通、需要给接入方一份指南时使用;API 未定稿就先写,产出很快会过期。

发布 2026-06-21更新 2026-10-13
适用:ClaudeCursorChatGPT

用法

把代码 / API / 功能描述粘进来,配合下面的 prompt。

什么时候用 / 别用

用它:

  • 一个已经能跑的功能要有对外文档,而作者本人懒得写(这是它最对的场景)。
  • 你要把「口头讲过三遍的部署步骤」固化成一份可复制链接的东西。
  • API 已经定稿,需要给接入方一份任务指南。

别用:

  • API 还没定稿就先写文档——你会得到一份漂亮的、即将过期的东西。先出 API 设计再写文档,顺序见 API 设计 Prompt。
  • 要写的是决策记录 / 架构说明(为什么这么设计、权衡了什么)。这类文档的价值在取舍,而这条 prompt 明确禁止写「设计理念」,会把它写成操作手册。
  • 合规 / 法务 / 对外承诺类文本。AI 生成的确定性措辞在法律文本里是风险不是效率。

最容易犯的错:把整仓代码一次粘进去。这条 prompt 一次只该处理一个模块——范围一大,「常用操作按使用频率排序」这条就会退化成「按目录顺序列一遍」。

Prompt

帮我把以下内容写成技术文档。不要写成说明书(「X 是一个用于 Y 的工具」),写成任务指南(「你想做 Z?这样做」)。

## 文档结构

### 这个文档解决什么问题
(1 句话:读者看完能做什么)

### 30 秒上手
(最小可运行示例,不超过 5 步,能 copy-paste 直接跑)

### 常用操作
(按使用频率排序,不是按功能分类排序。每个操作格式:)
- **做 X**:`命令或代码` → 预期结果
- **做 Y**:`命令或代码` → 预期结果

### 常见问题
(列出 3 个最可能遇到的报错,每个给解决方案。不要列「什么是 X」这种概念问题)

### 进阶
(只给链接和一句话描述,不要在这里展开。读者需要时会自己点进去)

## 规则
- 不要写「概述」「背景」「设计理念」——没人看
- 代码示例必须能直接运行,不能有伪代码
- 如果某个操作需要前置条件,在步骤里写明
- 中文输出,代码注释也用中文

---

内容来源:
(粘贴你的代码 / API 定义 / 功能描述)

效果

不加 prompt 时 AI 写的文档通常是:「X 是一个强大的工具,它提供了 A、B、C 功能……」——正确但没人看。

加了这条 prompt 后输出变成任务导向:「你想部署?这样做。你想调试?这样做。」——读者可以直接找到自己要做的事。

一个对照例子

给同一个"图片上传 API"写文档:

说明书式(没人看):

"本模块提供图片上传能力,支持多种格式,具备完善的错误处理机制和灵活的配置选项……"

读者看完还是不知道怎么传一张图。

任务指南式(这条 prompt 的产出):

30 秒上手

curl -F "file=@photo.jpg" https://api.x.com/upload -H "Authorization: Bearer $TOKEN"
# 返回 {"url": "https://cdn.x.com/abc.jpg"}

常见问题

  • 413 Payload Too Large:单文件上限 10MB,压缩后重试。
  • 415 Unsupported Media Type:只收 jpg/png/webp。

后者读者复制就能跑,报错也知道怎么办——这才是文档的目的。

验收判据:怎么判断这次生成是合格的

别用「读起来通顺」当标准,那是一条任何人都能自我说服的标准。用这四条:

判据具体做法不合格的典型信号
示例可运行把「30 秒上手」那段原样复制进干净环境跑一次出现 ...、<your-key> 之类的占位符没被替换;命令依赖读者已经做过的未写明步骤
报错可复现任选「常见问题」里的一条,真的去触发它AI 编了一个你的实现里根本不会抛的错误码
排序反映频率随机问三个同事「你最常来这页查什么」第一段就在讲三年没人对外的内部接口
无概念段全文搜「概述 / 背景 / 设计理念」出现即说明约束没生效,重跑并把规则前置

最狠的一条是第二条。 AI 生成文档最典型的失败不是写错,而是写出一个看起来很专业、但你的代码里根本不会发生的错误场景——因为它见过一千个同类项目,而你这个不是其中之一。

变体

A. 一次只改一段(适合已有文档的增量维护)

下面是一份现有文档的一个小节,以及本次的代码变更 diff。
只重写受影响的小节,其他部分原样保留,不要重写整篇。
如果变更不影响任何小节,明确回答「无需更新」。

B. 面向「接手的人」而非「使用者」

把读者假定为刚接手这个模块、没有上下文的新同事。
每个操作步骤都要说明「为什么必须这一步」,以及跳过会怎样。
最后补一节「历史包袱」:列出三处看起来不合理但不能改的地方,并说明原因。

C. 管道化(把文档生成接进终端流水线)

# 只 regenerate 变更模块,输出到 stdout 直接看 diff
changed=$(git diff --name-only origin/main...HEAD -- "src/**")
[ -n "$changed" ] && cat "$changed" | claude -p "$(cat prompts/doc-generation.txt)" > /tmp/doc.md

# 与现有文档对比,人工 review 增量而不是全文
diff -u docs/upload.md /tmp/doc.md | less

claude -p 是非交互管道模式;同理可用于 Codex / Gemini CLI / Qwen Code。管道化的价值在于「文档 diff」变成可 review 的产物,而不是每次重写全文。

为什么有效

  • 指定读者:文档灾难的头号原因是「写给所有人」,写进 prompt 的受众约束会直接改变用词与深度。
  • 要求「为什么」而非只写「怎么做」:没有动机说明的文档三个月后没人敢改,因为没人知道哪些是历史包袱。
  • 强制给出可运行示例:示例是唯一能被自动验证的部分,也是读者真正会复制粘贴的部分。

进阶(自动化)

把文档生成挂到 CI,让「文档过期」变成可检测事件:

# 只 regenerate 变更模块对应的文档,人工 review diff
changed=$(git diff --name-only origin/main...HEAD -- "src/**")
[ -n "$changed" ] && ai-doc --files "$changed" --out docs/ && git diff --stat docs/

延伸阅读

相关对比

Cursor vs Aider:GUI IDE 还是 CLI?2026 对比

Cursor vs Aider 2026 选型对比:GUI IDE vs Git 原生 CLI,从 Composer vs Architect 双模型、Tab 补全、多模型 BYOK、价格计费、开源与否和适合人群判断,帮开发者选对。Cursor 是闭源 VS Code fork 月费 $20,Aider 是开源 Apache-2.0 CLI 自带 API key。

Augment Code vs Cursor:企业 AI 编程怎么选?Context Engine vs AI IDE 对比

Augment Code vs Cursor 2026 选型对比:Context Engine 全仓索引的企业 AI 平台 vs SpaceX 收购的 AI IDE 天花板,从形态、Context 覆盖、长任务、价格、合规、中文支持和适合人群 8 个维度判断,帮你选对企业 AI 编程工具。

Cursor vs Claude Code:什么时候用哪个?(2026 实测选型)

Cursor 和 Claude Code 到底怎么选?一句话结论 + 决策树 + 价格实测 + 国内可用性对比。GUI 派选 Cursor,终端长任务派选 Claude Code,最优解其实是共存。

Cursor vs GitHub Copilot:AI IDE 还是插件?2026 对比

Cursor vs GitHub Copilot 2026 选型对比:AI 原生 IDE vs IDE 插件,从 Composer vs Agent Mode、Tab 补全、多模型、AI Credits 计费、企业版和适合人群判断,帮开发者选对。Cursor 是 VS Code fork 重写交互层,Copilot 是 VS Code 插件继承原生体验。两家都已切 usage 制。

Cursor vs Kiro:「对话式改代码」与「规格驱动开发」怎么选(2026)

Cursor 代表对话式、迭代式 AI 编码;Kiro 主打 spec-driven,先写需求与设计再生成代码。本文补上 2026-11-03 官网核对的价格与额度、两种范式的实际差异、决策表与迁移成本,帮你按交付方式而不是口号选型。

Cursor vs Trae:国内开发者怎么选?价格、模型、网络和真实体验对比

Cursor vs Trae 2026 选型对比:从价格、模型能力、国内访问、Builder/Composer、多文件改写、MCP 生态和适合人群判断,帮国内开发者决定继续用 Cursor,还是切到字节 Trae。

相关评测