关于 docs-auditor
面向开发者文档团队的审计技能,根据文档 URL 检查七类共 33 项内容,并生成带评分的可视化 HTML 报告。检查范围包括 AI 可发现性、导航、内容质量、SEO、链接和维护信号。
主要功能
- 01执行七类共 33 项检查
- 02评估文档结构与内容完整度
- 03检查 SEO、内部链接和版本维护
- 04生成独立的评分 HTML 报告
适用场景
- 01评估开发者文档的整体质量
- 02发现导航、内容或可抓取性缺口
- 03为文档改进确定优先事项
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ infrasity-labs/ dev-gtm-claude-skills --skill docs-auditor安装后在 Claude Code 中输入/docs-auditor确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/fetch-strategy.mdscoring.mdwidget-template.mdtests/test-cases.json详细介绍
文档审计技能
通过 7 个类别中的 33 项检查,审计开发者文档网站。给定文档 URL 后,获取所有必需页面、评估每项检查,并生成可视化评分报告。
步骤 0a — 通过定向搜索解锁派生 URL(关键,首先执行)
获取任何派生 URL 之前,先运行一次包含所需确切文件路径的 web_search。这是必需的,因为 web_fetch 仅允许获取用户提供的 URL,或先前搜索/获取结果中出现的 URL——即使已知根域名,该工具也无法自行获取派生路径。
给定类似 https://docs.example.com/ 的文档 URL,构造并运行以下搜索:
docs.example.com/llms.txt docs.example.com/robots.txt docs.example.com/sitemap.xml example.com/llms.txt example.com/robots.txt example.com/sitemap.xml
在同一查询中同时包含子域名和根域名变体——这些文件可能托管在其中任一域名上。这次搜索会在结果中显示确切文件 URL,使其可以立即获取。如果某个文件完全没有出现在结果中,这本身就是该文件不存在的有力证据——将相关检查标记为失败,无需尝试获取。
将此搜索作为内部准备步骤静默执行。不要向用户描述此步骤。
步骤 0b — 扩展 URL(关键)
用户提供基础文档 URL(例如 https://docs.example.com/)时,必须立即将以下所有派生 URL 视为用户已提供,并直接获取,无需征求许可。这是确保审计顺利进行的核心机制。
给定基础 URL https://docs.example.com/,在第一轮中获取以下所有内容:
{base}/robots.txt
{base}/sitemap.xml
{base}/llms.txt
{base}/llms-full.txt
如果文档托管在子域名上,也尝试获取根域名变体:
https://{root-domain}/robots.txt
https://{root-domain}/llms.txt
https://{root-domain}/llms-full.txt
https://{root-domain}/sitemap.xml
然后获取文档主页,以及以下标准子页面(根据侧边栏/导航中发现的内容调整 slug):
{base}/ ← landing / intro page
{base}/quickstart (or /getting-started, /get-started)
{base}/changelog (or /releases, /release-notes)
{base}/api (or /api-reference, /reference)
{base}/faq (or /troubleshooting, /help)
{base}/[one use-case or tutorial page]
{base}/[one deep settings or config page]
至少获取 6–8 个页面。越多越好。不要向用户索要更多 URL——自行推导。
步骤 1 — 执行全部 33 项检查
获取页面后,根据以下标准评估每项检查。使用获取到的 HTML/Markdown 内容作为证据。按照每项检查定义的标准,将其标记为 通过、警告 或 失败。
类别 1 — AI 与大模型可发现性(5 项检查)
| # | 检查 | 通过 | 警告 | 失败 |
|---|---|---|---|---|
| 1.1 | 根域名下存在 llms.txt | 文件已成功获取且包含内容 | 文件存在,但为空或格式不正确 | 404/未找到 |
| 1.2 | 存在 llms-full.txt | 文件已成功获取 | 文件存在,但内容稀少 | 404/未找到 |
| 1.3 | llms.txt 中列出了文档页面 | 在 llms.txt 中找到了文档页面链接 | 列出了一些页面,但不完整 | llms.txt 不存在或没有文档链接 |
| 1.4 | robots.txt 允许 AI 机器人访问 | 明确允许 GPTBot、ClaudeBot 或类似机器人,或没有针对它们的禁止规则 | 未提及机器人(情况不明确) | 明确禁止机器人访问 |
| 1.5 | sitemap.xml 中包含文档页面 | 找到了站点地图,且其中包含文档页面 URL | 站点地图存在,但内容稀少/不完整 | 站点地图缺失或返回 404 |
类别 2 — 结构与导航(6 项检查)
| # | 检查项 | 通过 | 警告 | 失败 |
|---|---|---|---|---|
| 2.1 | 存在包含实际内容的介绍 / 概览页面 | 页面存在,且包含实质性的产品介绍(>200 个单词) | 页面存在,但内容单薄 / 含糊 | 未找到介绍页面 |
| 2.2 | 提供包含可操作步骤的快速入门 / 入门指南 | 分步指南可帮助用户进入可用状态 | 页面存在,但步骤含糊或不完整 | 未找到快速入门指南 |
| 2.3 | 存在 API 参考 / 参考资料章节 | 设有专门的 API 参考章节,包含端点或方法 | 有一些参考内容,但未按 API 参考资料组织 | 未找到参考资料章节 |
| 2.4 | 存在侧边栏 / 导航菜单 | HTML 中可见包含分类链接的侧边栏 | 存在侧边栏,但链接未分类 | 未检测到侧边栏 |
| 2.5 | 存在面包屑导航 | 抽样页面中可见面包屑路径 | 部分页面有面包屑,但并非全部页面都有 | 未找到面包屑导航 |
| 2.6 | 存在搜索功能 | 在 HTML 中检测到搜索输入框 | 搜索链接到外部,但页面上没有搜索功能 | 未找到搜索功能 |
类别 3 — 内容完整性(6 项检查)
| # | 检查项 | 通过 | 警告 | 失败 |
|---|---|---|---|---|
| 3.1 | 存在用例 / 教程 / 示例章节 | 设有专门章节,包含至少 2 个完整教程页面 | 章节存在,但只有 1 个页面或内容单薄 | 未找到用例 / 教程 |
| 3.2 | 存在代码示例 | 多个抽样页面中都找到代码块 | 仅 1 个页面包含代码 | 未找到代码示例 |
| 3.3 | 提供多种语言的示例(Python、JS、cURL 等) | 代码示例中展示了 2 种或更多语言 | 仅展示了 1 种语言 | 完全没有代码示例 |
| 3.4 | 存在更新日志 / 发行说明 | 更新日志页面存在,且包含实际条目 | 页面存在,但为空或仅为占位内容 | 未找到更新日志 |
| 3.5 | 存在常见问题 / 故障排除章节 | 设有专门的常见问题或故障排除页面,包含实际问答 | 提到了常见问题,但内容极少 | 未找到常见问题或故障排除内容 |
| 3.6 | 记录了错误消息 / 状态码 | 文档中的某处列出了错误码或状态码 | 仅有简短提及 | 未找到错误相关文档 |
类别 4 — 内容质量(3 项检查)
| # | 检查项 | 通过 | 警告 | 失败 |
|---|---|---|---|---|
| 4.1 | 介绍页面说明产品是什么以及适用对象 | 清晰介绍产品,并说明目标受众 | 介绍了产品,但目标受众含糊 | 内容空泛 / 仅为营销宣传,没有实质信息 |
| 4.2 | 快速入门指南能帮助用户进入可用状态 | 提供从零开始到获得可用输出的端到端步骤 | 提供了步骤,但不完整或缺少关键信息 | 快速入门指南过于含糊,无法遵循 |
| 4.3 | 抽样页面内容充实(非空壳页面) | 所有抽样页面都有实际内容(>150 个单词,且结构清晰) | 完整页面与空壳页面并存 | 大多数抽样页面都是空壳页面 |
类别 5 — 技术 SEO 与可抓取性(5 项检查)
| # | 检查项 | 通过 | 警告 | 失败 |
|---|---|---|---|---|
| 5.1 | 强制使用 HTTPS | 所有获取的 URL 均使用 HTTPS | HTTP 和 HTTPS 混用 | 仅使用 HTTP |
| 5.2 | 文档页面包含 Meta 标题 | 所有抽样页面都找到 <title> 标签 | 部分页面存在 | 大多数页面缺失 |
| 5.3 | 文档页面包含 Meta 描述 | 所有抽样页面都找到 meta-description | 部分页面存在 | 大多数页面缺失 |
| 5.4 | 存在正确的规范 URL | 存在规范标签,且指向正确的域名 | 存在规范标签,但指向错误的域名 / 预览域名 | 未找到规范标签 |
| 5.5 | 文档页面没有 noindex 指令 | 所有抽样页面均设置 meta-robots: index, follow | 不一致——部分页面设置了 noindex | 大多数页面设置为 noindex |
类别 6 — 内部链接与流程(4 项检查)
| # | 检查项 | 通过 | 警告 | 失败 |
|---|---|---|---|---|
| 6.1 | 文档页面之间相互链接 | 抽查页面正文中发现内部链接 | 部分页面相互链接,但大多数没有 | 正文中未发现内部链接 |
| 6.2 | 提供上一页 / 下一页导航 | 抽查页面底部有上一页 / 下一页导航链接 | 部分页面提供了导航 | 未发现 |
| 6.3 | GitHub / 源代码链接 | 文档中发现 GitHub 或源代码链接 | 文本中提及,但未添加链接 | 未发现 GitHub / 源代码链接 |
| 6.4 | 提供社区 / 支持链接(Discord、Slack、论坛、聊天) | 发现指向社区或支持渠道的直接链接 | 有提及,但没有直接链接 | 未发现社区或支持相关信息 |
类别 7 — 版本管理与维护(4 项检查)
| # | 检查项 | 通过 | 警告 | 失败 |
|---|---|---|---|---|
| 7.1 | 显示版本标识(v1.2、“latest”、徽章) | 抽查页面上可见版本徽章或标签 | 文本中提及版本,但没有徽章 | 未发现版本标识 |
| 7.2 | 页面上显示最后更新 / 新鲜度标识 | 可见“最后更新”日期或类似信息 | 有变更日志,可作为替代信号 | 未发现任何新鲜度标识 |
| 7.3 | 安装命令包含版本固定 | 安装命令指定了固定版本(例如 pip install foo==1.2) | 有安装命令,但未固定版本 | 未发现安装命令 |
| 7.4 | 提供弃用通知(适用于多版本产品) | 可见弃用横幅或通知 | 变更日志中提及弃用 | 未发现弃用通知(仅当产品有多个版本时才算失败) |
第 2 步 — 计算分数
计算每个类别的分数,上限为该类别的最高分。类别内每项检查的分值相同。 所有类别的权重相同(每类最高可得 100/7 ≈ 14.3 分)。
每个类别内:
- 通过 = 满分
- 警告 = 半分
- 失败 = 0 分
最终分数 = 所有 7 个类别的分数之和,四舍五入为 100 分制整数。
第 3 步 — 生成报告
生成一个独立的 HTML 报告文件:
- 将
references/widget-template.md中的 HTML/CSS/JS 模板用作设计参考。 - 将完成的报告写入当前工作目录下名为
{domain}-docs-audit.html的文件(例如supabase-docs-audit.html)。 - 报告必须包含:
- 分数概览 — 100 分制的大号分数、域名、通过 / 警告 / 失败的汇总数量
- 图例 — 绿色圆点 = 通过,琥珀色圆点 = 警告,红色圆点 = 失败
- 类别区块 — 每个类别一个区块,包含:
- 类别名称和分数(例如“3/5”)
- 徽标: “X 项通过”“X 项警告”“X 项失败”
- 每项检查的行,包含图标(✓ / ! / ✗)、标签和简短的证据说明
- 将所有审计数据(分数、数量、类别分数、检查状态、证据说明)直接填入模板,不得留下未填写的占位值。
- 文件必须完全独立(无外部依赖),无需服务器即可在任何浏览器中正确打开。
第 4 步 — 报告之后
生成报告后,提供一段简短的文字摘要(3–5 句话),涵盖:
- 表现最好的 1–2 个类别
- 最大的缺口 / 可快速改进的事项
- 任何关键问题(例如规范链接失效、文档设置了 noindex、AI 爬虫被屏蔽)
并表示可以深入分析任何类别,或制定按优先级排序的行动计划。
边缘情况说明
- 子域名文档(例如
docs.stripe.com):始终也要检查根域名(stripe.com)下的robots.txt、llms.txt和sitemap.xml——它们通常托管在根域名下。 - 需要身份验证的文档:如果页面返回 401/403,将相关检查标记为 warn,并附注 “无法验证——页面需要身份验证。”
- 由 JS 渲染的文档:如果获取到的 HTML 文本内容很少(< 200 个字符),请注明文档 可能由 JS 渲染,因此部分检查可能无法得出确切结论。
- 检查 7.4(弃用):只有在证据表明产品存在多个版本时才判定为失败。如果产品显然只有 v1,则标记为 N/A(评分时计为通过)。