ELI5 技术文档简化方法论:cloudflare-docs 写作模式库、隐喻库与质量保障体系详解
【免费下载链接】cloudflare-docsCloudflare’s documentation项目地址: https://gitcode.com/GitHub_Trending/cl/cloudflare-docs
本文基于 cloudflare-docs 仓库中 ELI5 技能(.agents/skills/eli5/)的扩展示例参考手册 EXAMPLES_REFERENCE.md 展开。ELI5(Explain Like I'm 5)是一套面向文档 Agent 的技术写作技能,核心使命是把术语密集、假设读者已具备领域背景的技术文档,改写成对开发者、IT 管理员、营销人员乃至学生都清晰可读的版本——简化的是语言,绝不是事实。读完本文,你将掌握五种内容类型的简化模式、十条技术邻近隐喻、ELI5 输出模板、质量检查清单与边界情况处理策略,并看到这套方法论在仓库中的源码级定义与真实产出样例。
一、参考手册在仓库中的定位
EXAMPLES_REFERENCE.md 是 ELI5 技能的三份支撑材料之一,它的定位在文件开头写得很明确:SKILL.md 是"可执行规范",而这份参考手册存放的是会让 SKILL.md 变得过于庞大的详细示例与模式。当 Agent 需要详细指导或示例时,按目录索引到对应章节取用即可。
仓库内.agents/skills/eli5/目录的完整结构为:
eli5/ ├── README.md # 技能介绍与 9 步工作流概览 ├── SKILL.md # 技能定义:9 步工作流、约束、对抗性审查协议、质量清单、反模式 ├── references/ │ ├── content-type-guide.md # 各内容类型的检测信号与策略(687 行) │ ├── EXAMPLES_REFERENCE.md # 详细的 before/after 示例与输出模板(1834 行) │ └── pattern-library.md # 常见清晰度问题的可复用转换模式(634 行) └── recommendations/ └── internal-dns/ └── index.eli5.mdx # 示例产出:Internal DNS 概览页的 ELI5 改写稿三份参考文档分工不同:content-type-guide.md 负责"怎么检测并简化某种类型的页面",pattern-library.md 提供"具体句式与结构怎么改"的复用模式,而本文主角 EXAMPLES_REFERENCE.md 则提供完整的前后对照长示例,覆盖五种内容类型、十大隐喻、输出模板与边界情况。
二、内容类型驱动的简化模式
ELI5 的第一步是识别内容类型——SKILL.md 定义了五种类型(Overview、Concept、How To、Reference、Tutorial),每种类型有独立的检测信号和简化策略。参考手册对每种类型给出了目的、必备要素、分析焦点、简化步骤和完整的 before/after 示例。
2.1 概览页(Overview):从技术优先到价值优先
目的:帮助用户快速理解某个产品/功能是什么,以及自己是否需要它。
必备要素:开场利益陈述(解决什么问题)→ 问题/方案/收益结构 → "Perfect for"自我识别区 → 快速上手链接 → 技术架构分离到底部。
分析焦点:开场段是否回答了"是什么"与"为什么"?功能是否用收益而非描述来解释?是否有清晰的行动号召?技术术语是否被定义或隔离?
简化路径(EXAMPLES_REFERENCE.md 中 Overview 节的五个步骤):
- 用收益开头——把技术描述转化为价值主张;
- 问题框架——从用户面临的挑战切入;
- 功能→收益转换——把功能列表改写成结果陈述;
- 自我识别——增加带用户场景的"Perfect for";
- 分离技术细节——把架构挪进可折叠区块。
模式示例(技术优先 → 收益优先):
❌ Before(技术优先): ## Product X Product X 是一个分布式边缘计算平台,利用 V8 isolates 提供亚毫秒级冷启动的 无服务器代码执行性能,采用全球 anycast 网络部署,按请求计费。 ✅ After(收益优先): ## Product X 无需管理服务器,即可在世界各地运行代码。数秒部署,自动扩展,按用量付费。 **它解决的问题:** 维护全球基础设施昂贵而复杂。Product X 自动在 300+ 城市运行你的代码, 替你处理全部基础设施。 **适合谁:** - 需要全球快速性能的应用 - 想跳过服务器管理的团队 - 流量波动的项目(从零扩展到百万级) [5 分钟快速上手 →] --- **给技术用户:** 基于 V8 isolates 与全球 anycast 部署。[架构细节 →]这段示例完整呈现了该类型最核心的转换逻辑:把"我们有什么技术"改写成"你得到什么价值",同时用分隔线和"给技术用户"区块保留深度信息,实现渐进式披露。
2.2 概念页(Concept):从纯技术解释到分层解释
目的:建立"它为什么以这种方式工作"的理解。
必备要素:开场类比/可视化 → 平实语言定义 → "为什么重要"的商业价值 → 简化版工作原理 → 3-5 个真实使用场景 → 给高级用户的技术细节(分离)。
简化路径:类比开场(建立心智模型)→ 平实英语定义 → 价值优先(先"为什么"后"怎么工作")→ 分层解释(简单→详细→技术)→ 具体示例。
模式示例(纯技术 → 分层解释),以限流为例:
❌ Before(纯技术): ## Rate Limiting 限流基于令牌桶算法控制请求吞吐,可配置突发大小与补充速率参数。 超过限额的请求会收到 429 状态码。 ✅ After(分层解释): ## Rate Limiting **可以把它想成:** 一家有最大容量的夜店。即使 1000 人同时想进, 一次也只放进受控的人数,保持局面可管理。 **它是什么:** 限流控制单位时间内有多少请求能打到你的网站。没有它,无论是真实用户 还是攻击者引发的突发流量,都可能压垮你的服务器。 **你为什么需要它:** - 防止 DDoS 攻击拖垮网站 - 阻止爬虫抓取内容 - 保证所有用户的公平使用 - 让基础设施成本可预测 **它如何工作:** 你设置一条规则,比如"每个 IP 每分钟 100 个请求"。当有人超过限额, 我们在时间窗口重置前阻止额外请求。 **真实场景:** - 电商网站黑色星期五防止机器人抢购 - API 防止商品目录被爬取 - 论坛防止垃圾帖刷屏 --- **给技术用户:** 实现令牌桶算法,突发大小与补充速率可配置。超限返回 429 状态码并携带 Retry-After 头。[实现细节 →]注意其技巧:类比必须"技术邻近"(夜店容量控制是大多数人熟悉的排队/容量场景),同时诚实地在底部说明"Where this breaks down"——该模式的"分层"让零基础读者与资深工程师各取所需。
2.3 操作指南页(How To):从纯步骤到带上下文的双路径
目的:帮助用户成功完成具体任务。
必备要素:上下文(完成什么、为什么做)→ 前置条件前置 → 预期结果 → 时间估计(若耗时)→ 仪表盘路径(UI 步骤)→ API/CLI 路径(折叠区内代码)→ 验证步骤 → 常见问题与排查。
简化路径:补上下文 → 列前置条件 → 双路径指令(仪表盘 + API/CLI)→ 给步骤加注释 → 加验证 → 处理常见坑。
模式示例(纯步骤 → 带上下文的多路径),完整呈现了该模板的骨架:
## Enable Feature **这样做的作用:** 通过 [具体机制] 保护你的站点免受 [具体威胁]。 **所需时间:** 约 2 分钟 **前置条件:** 账户管理员权限 **会发生什么:** 启用后,所有入站请求将[具体行为]。5 分钟内可在 Analytics 看到结果。 ### 通过仪表盘 1. 登录 dash.example.com 仪表盘 2. 从列表中选择你的站点 3. 在左侧边栏点击 **Security** 4. 找到 **Feature Name** 并切换到 **On** 5. 点击 **Save Changes** 💡 **注意:** 变更立即生效,但分析数据可能需要 5 分钟更新。 ### 通过 API <details> <summary>展开查看 API 示例</summary> curl -X PATCH "https://api.example.com/v1/settings" \ -H "Authorization: Bearer YOUR_TOKEN" \ -d '{"feature_enabled": true}' **响应:** { "success": true, "result": { "feature_enabled": true, "updated_at": "2026-02-09T10:30:00Z" } } [完整 API 文档 →] </details> ## 验证是否生效 1. 在新浏览器标签页访问你的站点 2. 打开开发者工具(F12) 3. 在 Network 标签查看 [具体请求头/行为] 4. 你应该看到 [预期结果] ## 故障排查 **问题:** 功能似乎未生效 **解决:** 清理浏览器缓存并等待 5 分钟传播。仍无效?检查 [前置条件]。该模板的关键工程点是<details>折叠:API 路径服务于技术用户,同时不吓跑新手。注意 SKILL.md 中的约束——如果原文只有一条路径,不要自行创造缺失的路径,只把它记为建议让作者确认。
2.4 参考页(Reference):从字母序规格到按用途组织
目的:以易读的方式提供全面的技术细节。
必备要素:开场上下文("何时使用这份参考")→ 常见场景前置 → 按用途而非字母序组织 → 双层描述(平实英语 + 技术规格)→ 每个条目的实用示例 → 真实使用场景。
简化路径:加开场上下文 → 按用途重组 → 双层描述 → 加示例(含预期结果)→ 加"何时使用"决策指导。
模式示例(字母序纯规格 → 按用途组织),以缓存头为例,展示了完整的条目级模板——每条目包含"作用 / 何时用 / 技术规格 / 示例 / 结果"五个部分:
## Cache Headers Reference **何时使用:** 控制内容缓存多久、谁能缓存。 ### 常见场景 场景 1:静态资源(图片、CSS、JS)→ 缓存 1 年 场景 2:博客文章 → 缓存 1 小时 场景 3:用户仪表盘 → 永不缓存 --- ## 按用途分类的头 ### 长期缓存(静态资源) #### `max-age=31536000`(1 年) **作用:** 内容缓存 1 年后才检查更新 **何时使用:** 永不变化的文件,如 `logo-v2.png` 或带版本哈希的 `style.abc123.css` **技术规格:** 整数,单位秒。范围:0-31536000(1 年上限) **示例:** Cache-Control: public, max-age=31536000, immutable **结果:** 首个访问者下载文件;接下来一年内所有访问者拿到缓存版本, 对源站零请求。 --- #### `immutable` **作用:** 告知浏览器此文件永远不会变化 **何时使用:** 与 `max-age` 组合用于版本化资源(文件名含哈希/版本号) **技术规格:** 无值,出现即生效。 **示例:** Cache-Control: public, max-age=31536000, immutable **结果:** 浏览器即使在刷新时也不会重新校验。适用于内容变化时哈希随之 变化的 `style.abc123.css`。 --- ### 频繁更新内容 #### `max-age=3600`(1 小时) **作用:** 内容缓存 1 小时 **何时使用:** 偶尔更新但不需实时的内容,如博客文章或产品页 **示例:** Cache-Control: public, max-age=3600 **结果:** 缓存 1 小时;到期后下一个请求回源检查更新。 #### `no-cache` **作用:** 使用缓存版本前始终回源校验 **何时使用:** 频繁变化但仍可短暂缓存的内容(购物车、个性化页面) **示例:** Cache-Control: no-cache **结果:** 每个请求通过 If-Modified-Since 或 ETag 回源校验;无变化则返回 304 并服务缓存版本。 --- ### 永不缓存 #### `private, no-store` **作用:** 禁止一切缓存 **何时使用:** 敏感数据(账户信息、支付细节)或高动态内容(实时比分、直播聊天) **技术规格:** 两个指令组合使用 **示例:** Cache-Control: private, no-store **结果:** 每个请求都从源站取最新数据,任何位置都不缓存。"按用途分组"而非"按字母序罗列"是参考页简化最具价值的模式——用户在解决"怎么缓存静态资源"时,不需要扫过全部指令再自行判断。
2.5 教程页(Tutorial):从代码倾倒到解释式渐进
目的:通过真实应用教学,逐步建立信心。
必备要素:"你将构建什么"(带具体示例)→ "适合谁"(含前置条件)→ 时间估计 → "你将学到什么" → 渐进复杂度(最小→完整→打磨)→ 代码块解释("这段代码做什么")→ 排查章节 → 明确标记的可选增强。
简化路径:设定预期(做什么/谁/时间/学习成果)→ 最小起点(用最简版本证明概念)→ 渐进增强(一次加一个功能)→ 解释每个代码块 → 排查 → 标记可选。
模式示例(代码倾倒 → 解释式渐进),以 URL 缩短器为例展示了教程的完整节奏——每一步包含代码、逐行解释、测试方法:
## 构建一个 URL 缩短器 ### 你将构建什么 一个可用的 URL 缩短器:把短链重定向到长 URL、存储映射、跟踪点击统计。 **在线示例:** `short.example.com/github` → `github.com/cloudflare` ### 适合谁 熟悉 JavaScript 的开发者。无需 Workers 经验,但应理解: - HTTP 请求与响应 - JSON 数据格式 - 基本 async/await ### 所需时间 30-45 分钟 ### 你将学到什么 - 如何在边缘处理请求 - 在键值存储中存取数据 - 构建一个简单 API - 数秒内全球部署代码 --- ## 第 1 步:创建你的第一个 Worker 从绝对最小版本开始——一个响应请求的 Worker: // 入口:每个 HTTP 请求都会执行 addEventListener('fetch', event => { // 把请求交给我们的处理函数 event.respondWith(handleRequest(event.request)) }) // 处理函数:处理请求并返回响应 async function handleRequest(request) { return new Response('你的 URL 缩短器将在这里!', { headers: { 'content-type': 'text/plain' } }) } **这段代码做什么:** - **第 2 行:** 监听入站 HTTP 请求 - **第 4 行:** 调用 `handleRequest` 处理每个请求 - **第 8-12 行:** 返回简单文本响应 **测试它:** 部署后访问 Worker 的 URL,应看到 "你的 URL 缩短器将在这里!"——证明 Worker 已在运行。 ## 第 2 步:添加 URL 解析 [逐步构建……] ## 常见问题 **问题:** "Error: Exceeded CPU limit" **原因:** 单个请求内做了太多计算 **解决:** Workers 有 CPU 时间限制。把重计算移到后台任务, 或使用 Durable Objects 处理长操作。 **问题:** "KV 数据不更新" **原因:** KV 最终一致,全球传播可能需要 60 秒 **解决:** 测试时加缓存破坏参数(?v=2),或写入与读取间等待 60 秒。 ## 可选增强 **添加点击统计**(中难度):在 KV 中记录点击数、重定向时自增、创建统计端点 **自定义短码**(简单):让用户自选短码、检查是否被占用、不可用时返回错误 **过期链接**(中难度):存储过期时间戳、重定向前检查、过期返回 404教程模式的核心纪律是:不重写代码,只解释代码;每个代码块附带"这段代码做什么",把"渐进增强"与"可选增强"严格区分,避免读者误以为所有功能都是必须的。
三、简化原则:从措辞到心智模型
3.1 平实语言准则(Plain Language Guidelines)
参考手册给出了五条句式层面的硬性准则:
- 每句一个观点:"Webhooks 会发送通知。这发生在事件出现时。"而不是"Webhooks 是 HTTP 回调,会在平台发生特定事件时向你的指定端点发送包含事件数据的通知。"
- 主动语态优先:"系统发送通知"而非"通知由系统发送"。
- 具体名词优先:"你的端点收到一个 POST 请求"而非"接口抽象层促进了数据传输"。
- 同等准确时用常用词:用 Use 而非 utilize,Help 而非 facilitate,Start 而非 initiate。
- 短段落(最多 3-4 句):便于扫读、提供视觉留白、保持单主题聚焦。
3.2 术语处理
- 首次出现必定义:
API(Application Programming Interface,应用程序接口); - 展开缩写:CDN(Content Delivery Network)、CI/CD(Continuous Integration/Continuous Deployment)、HMAC(Hash-based Message Authentication Code);
- 给技术术语提供上下文:不要写"配置 webhook 端点",而写"webhook 端点是我们发送通知的 URL,把它配置到你的服务器"。
pattern-library.md 还提供了一张术语→平实英语对照词典(.agents/skills/eli5/references/pattern-library.md),例如 Implement→Set up、Utilize→Use、Egress→Outgoing data(出站数据)、Anycast→Routing to nearest server(自动路由到最近位置)、Propagation→Spreading, updating(全球生效)。同时,SKILL.md 明令禁止"同义词堆叠"——定义过的概念不要再说"也叫 X",一个行为式定义足矣。
3.3 隐喻库:十条技术邻近隐喻
ELI5 对隐喻有明确标准:植根于读者可能熟悉的技术、关键概念 1:1 映射、比原概念更简单、诚实说明隐喻失效之处。参考手册维护了一个隐喻库,每个都带"Where this breaks down"(失效点)声明:
| # | 概念 | 隐喻 | 失效点 |
|---|---|---|---|
| 1 | API | 餐厅菜单:菜单列明可点的菜(端点)、可做的定制(参数)、你将得到的(响应) | API 响应近乎瞬时;API 会失败(厨房缺食材),需要错误处理 |
| 2 | 缓存 | 图书馆预约台:热门书放在前台快速取用 | 缓存会过期;缓存失效比隐喻复杂 |
| 3 | 负载均衡 | 超市收银通道:分散到多个通道,堵了就改道 | 负载均衡器知道服务器健康度、繁忙度,可基于算法路由 |
| 4 | Webhook | 门铃通知:有人按门铃才提醒(推送),而非反复查看门口(轮询) | 门铃瞬时,webhook 有网络延迟;服务器宕机会导致失败(像坏门铃) |
| 5 | 认证 | 大楼门禁工牌:出示工牌验证身份(认证),再检查可进入楼层(授权) | 数字认证用限时令牌,可多因素验证 |
| 6 | 限流 | 高速公路上匝道信号灯:控制每分钟进入的车辆数 | 限流通常是按用户独立的,且按周期重置 |
| 7 | 数据库索引 | 教科书后的索引:不用读每页,索引直接告诉你在哪几页 | 数据变化时索引要更新;选择索引字段是读/写速度的权衡 |
| 8 | CDN | 本地仓库:加州用户从加州仓库发货 | 物理仓库库存唯一,CDN 是所有地点存同一内容的副本,更新需全量传播 |
| 9 | 容器 | 海运集装箱:标准化包装,任意船/车/火车可运 | 软件容器共享操作系统内核,物理集装箱完全隔离 |
| 10 | 环境变量 | 应用的设置面板:不修改代码即可改变行为的配置值 | 环境变量通常在启动前设定,且按环境(dev/staging/prod)隔离 |
参考手册还给出了创建新隐喻的五步法(EXAMPLES_REFERENCE.md 第 858-866 行):识别核心机制或目的 → 找到读者熟悉的技术邻近类比 → 关键概念 1:1 映射 → 测试:是澄清了还是制造了新困惑 → 说明失效点。
3.4 Why 优先的解释顺序
参考手册规定内容组织顺序必须是:问题(Why)→ 方案(What)→ 价值(Why It Matters)→ 使用场景(When)→ 实现(How)。以 webhook 为例:
- 问题:构建应用时常需知道另一平台何时发生某事(支付完成、上传结束、部署成功)。持续轮询浪费资源并带来延迟。
- 方案:Webhook 在事件发生时立即向你的服务器推送消息。
- 价值:实时响应、节省资源、用户获得更快更新、只处理真实发生的事件。
- 使用场景:部署完成触发工作流、内容变化时更新数据库、支付成功发通知、系统间自动同步。
- 实现:创建接收通知的端点 URL → 配置要接收的事件 → 用签名验证请求来源 → 处理事件数据。
理由是"目的先于机制"——这正是人类学习的顺序。
3.5 多受众分层
同一文档要同时服务不同知识水平的人,参考手册给出了分层结构:In Plain Language(一句话人人可懂)→ What It Is(从基础建立理解的 2-3 段)→ Why It Matters → When You'd Use This → Think of It Like(隐喻),然后分隔线,再用"For developers"提供 API 引用与代码示例、"For non-technical readers"聚焦结果与业务影响。这与 2.1 节的"给技术用户"折叠区一脉相承。
四、输出格式模板
4.1 生成文件的完整模板
当 Agent 执行完整简化时,产出.eli5.md文件,其结构(EXAMPLES_REFERENCE.md 第 957-1108 行)为:
# ELI5 Simplified: [原文档名] **Original:** `[文件路径]` **Simplified on:** [时间戳] **Sections simplified:** [章节列表] --- ## 📋 Simplification Overview **What was confusing:** - [模式 1 - 如:缩写大量使用且未展开] - [模式 2 - 如:假设读者已懂 HTTP 协议] **Approach taken:** - [策略 1 - 如:为每个概念加一句话摘要] - [策略 2 - 如:首次出现即展开所有缩写] --- ## Section: [原标题] ### 📄 Original Content [源文本原样保留,格式不变] ### ⚠️ Issues Identified **Jargon(术语):** `[术语]` - [问题所在、假设了什么] **Assumptions(假设):** [假设了什么] **Unclear Logic(逻辑不清):** [问题] ### ✨ Simplified Version **In Plain Language:** [无术语的一句话精炼] **What It Is:** [从基础建立的 2-3 段] **Why It Matters:** [价值主张与具体收益] **When You'd Use This:** [带语境的场景 1/2/3] **Think of It Like:** [技术邻近隐喻,含完整展开] **Where this metaphor breaks down:** [诚实说明局限] **Common Pitfalls:** [误解 → 纠正] **Related Concepts:** [与已知概念的连接] --- [每个章节重复此结构] --- ## 📊 Summary & Recommendations **Key Improvements Made:** [改进清单] **Patterns Noticed:** [元分析:这份文档难懂的原因] ## ✅ Next Steps 1. Suggest additional improvements 2. Create a PR 3. Refine specific sections 4. Apply changes to original 5. Keep as reference该模板的关键设计是"原样保留原文"(Original Content 区块逐字保存、格式不变)——这保证了任何简化都可被审计对比,事实核查有据可依。
4.2 文件命名约定
- 输入
path/to/documentation.md→ 输出path/to/documentation.eli5.md; - 输入
api-reference.mdx→ 输出api-reference.eli5.mdx。
.eli5后缀清晰标识简化版本,同时保留原格式扩展名。仓库中的真实产出.agents/skills/eli5/recommendations/internal-dns/index.eli5.mdx正是这一约定的落地实例——它是一份针对 Internal DNS 概览页的完整改写稿,保留了原文的<Description>、<Plan>、<Example>等所有 MDX 组件和三张 mermaid 图,目标扩展比 1.89x(135 → 255 行),并在文末附带了完整的"enhancement summary"。
4.3 Suggestions for Enhancement(增强建议)
主简化完成后,Agent 会追加一个"增强建议"章节,每条建议包含六个字段:行号引用、适用章节、当前做法、建议增强、为何有帮助、实现示例。参考手册给出了三个完整样例:
- L45-52 添加双路径指令:原文只有仪表盘路径,建议补充 API 路径(附
curl -X PATCH .../settings/always_use_https请求与响应示例),理由是同时服务 UI 用户与偏好代码的开发者; - L78-85 把技术细节移入折叠区:原文把密码套件细节内联在主体解释中,建议移入
<details><summary>For technical users</summary>...折叠区(附 TLS 1.3 AEAD 套件列表示例),实现清晰的渐进披露; - L120-122 给出推荐默认值:原文把所有加密模式(Off/Flexible/Full/Full Strict)等权罗列,建议标出"Recommended for most sites: Full (Strict)",减少选择瘫痪;
- L195-200 添加具体使用场景:原文只有抽象收益陈述,建议补一个"黑色星期五 DDoS 攻击中真实顾客正常下单"的场景化故事。
何时启用该章节:存在多路径机会(Dashboard + API)、技术细节可折叠、缺少推荐默认值、抽象概念需要具体示例、渐进披露可改进、常见决策点缺指导。放置位置:在"Summary & Recommendations"之后、"Next Steps"之前。
五、质量保障体系:从检查清单到对抗性审查
5.1 质量检查清单(Quality Checklist)
参考手册规定任何简化内容定稿前必须逐项核对(第 1309-1327 行):
- 技术准确性保持不变——没有改变或过度简化任何事实;
- 一句话摘要无术语地抓住本质;
- 术语被识别并解释或替换;
- 假设在 Issues 区块中被显式声明;
- 解释中"Why"先于"What";
- 用例真实且实用;
- 隐喻关键概念 1:1 映射;
- 隐喻局限被承认;
- 常见坑确实常见(不是编造的);
- 语气专业且尊重;
- 没有居高临下的措辞("simply""just""obviously");
- 全程尊重读者智力。
5.2 语气规则(Tone Rules)
参考手册明令禁止居高临下的措辞:"Simply configure the endpoint..."、"Just add the webhook URL..."、"Obviously, you'll need to..."、"Clearly, this requires..."、"As everyone knows..."、"It's easy to..."、"All you have to do is..."。替代方案是尊重读者的表达:"To configure the endpoint, you'll need to..."、"Add the webhook URL by..."、"This requires..."、"Here's how this works..."。这与 SKILL.md 的基调一致——面向"聪明但缺乏具体领域背景"的读者。
5.3 准确性不可妥协
好的简化示例:"Webhooks 在指定事件发生时向你的端点 URL 发送 HTTP POST 请求。把它想成一个通知系统——我们调用你的服务器,而不是你不断轮询我们的服务器。"(准确、清晰、有效用隐喻)。
坏的简化示例:"Webhooks 让程序之间互相交谈。"(过于含糊、丢失重要细节、实际没有帮助)。
当必须保留复杂准确性时,使用渐进式披露:
**简化版:** 限流控制你在一个时间段内能发起多少请求,比如每分钟 100 次。 **更精确地说:** 限流按 API key 生效,采用滑动窗口重置。达到上限后 返回 429 状态码,并带 Retry-After 头指示何时可以重试。这套准则与 SKILL.md 完全呼应:"简化意味着更清晰的语言,而非降低精度;如果简化后的解释在技术上是错的,应该增加细微差别而不是省略它。"同时 SKILL.md 特别强调 Cloudflare 特有实现可能与行业惯例不同,任何净新增信息必须对照仓库中的src/content/docs/源文档核验,并给出引用来源。
5.4 不同内容类型的处理侧重
- API 文档:聚焦端点目的、使用场景、发送参数(解释参数用途而非仅类型)、返回响应、常见用例、错误处理(什么会出错);通过解释参数用途、展示真实请求/响应示例、澄清常见误解来增值。
- 架构文档:聚焦被解决的问题、为何选择此方案、做出的权衡(得到了什么/失去了什么)、何时该架构合理、考虑过的替代方案;通过解释决策理由、显式化权衡、连接业务需求来增值。
- 代码文档:聚焦代码达成什么、为何这样组织、使用的关键概念或模式、需要注意什么;通过平实语言"阅读指南"、解释非显然的选择、展示部件如何组合来增值。
5.5 对抗性审查(Adversarial Review)
这是 SKILL.md 中定义的强制第 9 步:提交前必须启动一个全新的子 Agent(与当前会话隔离、不接触 ELI5 技能说明),以怀疑论者身份逐条核验新增主张。审查重点是五类高风险内容:简化机制描述(听起来合理但机制错误的解释比原术语更糟)、误导性细微差别(如把 per-path 的 allow/disallow 机制说成全盘屏蔽)、净新增主张(每一条新信息都要有引用)、Cloudflare 特有行为(不得假设行业惯例适用于 Cloudflare 产品)、跨类别过度概括("所有记录""每个请求"这类量词是否真实普适)。审查产出是一张带严重级别(critical/high/medium/low)的主张核查表,每个问题必须引用证据来源。
六、边界情况与处理策略
参考手册为五类边界情况给出了明确策略(第 1425-1553 行):
超长文档(>1000 行):向用户提供四种处理选项——处理全部章节 / 聚焦指定章节(列出清单)/ 自动检测最复杂章节 / 分块处理(如 1-10、11-20)。自动检测逻辑包括:计算术语密度(每 100 词的术语数)、统计假设指示词("as you know"、无解释的引用)、识别没有用例或"why"陈述的章节,优先处理复杂度得分最高的章节。
已清晰的文档:承认其清晰度,只做小改进。明确列出要避免的行为——不添加不必要的冗长、不制造不存在的问题、不过度解释已清楚的内容、不为了有话可说而填充。产出格式是"做得好的地方 + 小改进建议 + 总体评估"。
高技术含量内容:先保准确(绝不过度简化到错误),分层解释(High-level → How it works → Technical details),加解释性散文但不改技术规格,用渐进披露并明确各章节写给谁。
代码密集文档:不简化代码本身——代码必须保持准确,不重写功能代码;围绕代码添加解释性上下文("这段代码做什么""为什么这样组织""关键理解点"),创建"阅读指南"逐段走读复杂代码。
含组件的 MDX 文件:聚焦散文内容、组件代码保持不动;解释组件目的(如"<CodeBlock>组件显示带语法高亮和复制功能的代码");除非文档本身就是讲 React/框架细节,否则不深入框架实现。
七、未来增强计划
参考手册末尾记录了对未来迭代的规划(第 1555-1619 行),标注为"documented for future implementation":
- 内联代码注释读取:支持解析带内联文档的代码文件,提取 docstring 与注释、简化注释中的技术语言、为复杂逻辑添加解释性散文、生成"代码走读"指南;规划支持
.js/.ts/.tsx/.py/.go/.rb/.java。 - 多格式支持:HTML 文档、PDF 技术论文、Confluence/Wiki 页面、OpenAPI 规范的可访问化。
- 自动化复杂度评分:术语密度(每 100 词)、可读性分数(Flesch-Kincaid、SMOG 指数)、假设检测(标记假设知识的短语)、上下文缺口分析(识别缺失的"why"与"when");并按复杂度排序章节、聚焦高价值简化、生成复杂度报告。
- 交互模式:逐节处理并接收用户反馈、基于输入的实时精炼、迭代改进循环、不同隐喻的 A/B 测试。
八、完整工作示例:两份逐行对照
参考手册第 1621-1786 行给出了两份完整的端到端示例,展示全部要素如何组装。
示例一:API 文档(POST /webhooks)。原文档只有端点名、参数表(endpoint/events/secret 三个参数及类型)与响应说明;简化版将其扩写为八个区块——In Plain Language("设置自动通知,特定事件发生时我们发送到你的服务器")、What It Is(对比轮询解释推送机制)、Why It Matters(实时更新、资源效率、可靠性、自动化)、When You'd Use This(部署通知、内容同步、监控、系统集成)、Think of It Like(门铃隐喻)、Where this breaks down(网络延迟与服务器宕机需要重试逻辑)、Parameters Explained(每个参数用行为而非类型定义:endpoint 是"你的服务器监听 webhook 事件的地址,必须用 HTTPS")、Common Pitfalls("以为 webhook 100% 可靠"与"不验证签名"两条纠正)。它还特别用 RSS 类比收尾:两者都推送更新,但 webhook 可编程且适用于任意事件类型。
示例二:架构决策(边缘部署架构)。原文档一句话描述了"利用 V8 isolates 的多租户全局分布式边缘架构";简化版补上了完整论证链——Plain Language(代码部署在全球服务器上,用户就近响应)、What It Is(弗吉尼亚的服务器服务新加坡用户要跨半球往返,边缘架构让请求由最近节点处理)、Why It Matters(速度、可靠性、规模、简单性)、Think of It Like(中心仓库 vs 各城本地仓库)、Technical Approach(isolates 微秒级启动 vs 容器 50-500ms 冷启动)、Why this architecture(列出评估过的三种方案:传统服务器/容器 serverless/isolate 边缘,并说明选择理由)、Tradeoff made(无任意系统库、执行时间受限,为速度接受约束)、Common Pitfalls("假设与普通服务器相同"——无持久本地存储、无后台任务;"期待 Node.js 兼容"——实现的是 Web 标准)。
九、方法论在仓库中的闭环:从规范到产出
回顾整个体系,ELI5 在 cloudflare-docs 中形成了一条完整的闭环:
- 可执行规范SKILL.md 定义了 9 步工作流(接受文件→识别内容类型→施加增强约束→选择章节→分析问题→提取术语→生成对照→报告→对抗性审查)、决策框架(何时简化术语/加内容/点明后果/加术语气泡)、18 项质量清单和 8 条反模式;
- 操作指南content-type-guide.md 提供五种内容类型的检测信号与检测决策树,以及"1.5-2x 保守扩展"的硬约束;
- 复用模式pattern-library.md 提供术语词典、五种转换模式(技术优先→收益优先、抽象→隐喻、纯步骤→多路径、字母序→按用途、代码倾倒→解释式渐进)与隐喻模板;
- 详细示例本文主角 EXAMPLES_REFERENCE.md 提供逐行完整的长示例与输出模板;
- 真实产出index.eli5.mdx 是整套方法论应用在 Internal DNS 概览页上的完整成果——保留全部 MDX 组件与 mermaid 图,补充了"何时使用""查询流程五步走""三个带落地场景的用例""Getting started 清单",目标扩展 1.89x。
整套方法论的最后一段哲学总结值得记住:"技术专长永远不应成为理解的门槛。每个人都值得获得清晰、准确、尊重人的文档。"而 SKILL.md 的质量清单则给出了执行此哲学的落点:技术准确、Why 先于 What、隐喻 1:1 映射且声明局限、不居高临下、保持 1.5-2x 的克制扩展、不重写本就正确的散文、每个简化描述的都是正确机制——因为"一个听起来合理但机制错误的解释,比原来的术语更糟"。
【免费下载链接】cloudflare-docsCloudflare’s documentation项目地址: https://gitcode.com/GitHub_Trending/cl/cloudflare-docs
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考