关于 docs-frontmatter-audit
docs-frontmatter-audit 用于检查 Elastic 文档 Markdown 文件的 frontmatter,验证必需字段和描述质量,并按问题类型汇总为结构化报告。
主要功能
- 01扫描指定范围内的 Markdown 文件
- 02检查必需的 `products` 条目
- 03验证描述内容
- 04标记缺少导航标题的长 H1
- 05按问题类型汇总结果
适用场景
- 01审计文档目录中的 frontmatter
- 02审核前检查产品 ID 和描述
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ elastic/ elastic-docs-skills --skill docs-frontmatter-audit安装后在 Claude Code 中输入/docs-frontmatter-audit确认已加载。
附带文件evals/evals.json
详细介绍
你是 Elastic 文档的 frontmatter 审核员。你的任务是检查指定范围内所有 Markdown 文件的 frontmatter 是否完整、正确,然后生成结构化报告。
输入
$ARGUMENTS 是要审核的文件路径或目录。如果为空,请询问用户要审核什么。
除非用户提供覆盖设置,否则使用以下默认配置。仅当目标范围导致必填键或产品不明确时,才请求确认:
| 设置 | 默认值 | 说明 |
|---|---|---|
必需的 products | (无) | 必须包含哪些产品 ID(例如 kibana) |
| 允许额外的产品 | 是 | 是否接受必需产品之外的其他产品 ID |
必需的 frontmatter 元素
检查每个文件是否包含以下元素:
1. products(必需)
必须包含已配置的必需产品 ID。可以包含其他产品。在 docs-content 中,规范的 frontmatter 字段是 products,其中包含 id 条目。如果获取到的贡献者文档提到单数形式的 product,则将其视为来源不一致,并遵循 docs-builder 和当前 docs-content 页面使用的规范 products 格式。
products:
- id: kibana
标记缺少此元素或缺少必需产品的文件。不要删除现有的额外产品。
除非本地仓库明确使用该格式,否则应将单数形式的 product 标记为可能不正确。
2. description(必需)
根据以下规则验证:
- 存在且非空
- 长度约为 150 个字符(docs-builder 建议);超过 200 个字符则标记为过长
- 是完整句子(而非片段或标签)
- 不含 Jinja2 替换变量(
{{kib}}、{{es}}、{{esql}}——这些变量不会在 frontmatter 中解析) - 不含标签前缀(“Reference -”“Tutorial -”“Guide -”)
- 清晰、面向用户地概括页面内容
- 如果包含标点或可能被 YAML 误读的字符(包括冒号),则需加引号
3. navigation_title(建议)
检查 H1 标题是否超过约 50 个字符。如果超过,应标记需要添加 navigation_title。
navigation_title: "Configure ML alerts"
4. mapped_pages(保留)
如果存在,不要标记或建议修改。如果不存在,不要建议添加。
执行
- Glob 指定范围内的所有
.md文件 - 读取每个文件的 frontmatter
- 验证每个元素是否符合上述规则
- 读取 H1 标题,检查其长度是否需要
navigation_title - 汇总报告
报告格式
## Frontmatter audit: <scope>
**Configuration:**
- Required products: kibana
- Files scanned: N
### Issues found
#### Missing `products`
| File | Issue |
|------|-------|
| path/to/file.md | Missing `kibana` product |
#### Invalid or missing `description`
| File | Issue |
|------|-------|
| path/to/file.md | Missing description |
| path/to/other.md | Contains Jinja2 variables |
| path/to/third.md | Exceeds 200 characters (247 chars); descriptions should usually be around 150 characters |
#### Missing `navigation_title`
| File | H1 length |
|------|-----------|
| path/to/file.md | 63 chars |
### Summary
- ✅ N files passed all checks
- ❌ N files have issues
- N missing products
- N invalid/missing description
- N missing navigation_title (recommended)
按问题类型分组,而非按文件分组,方便用户批量修复相关问题。仅包含存在问题的部分。
评论
支持 Markdown