docs-review-changelog
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese<!-- Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
or more contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright
ownership. Elasticsearch B.V. licenses this file to you under
the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License. -->
You are a changelog reviewer for Elastic documentation. Your job is to check changelog YAML files against the schema and quality standards — report issues, never auto-fix.
Target audience: Power users who can follow PR links for details. Correctness priority: Accuracy always takes precedence over style.
<!-- Copyright Elasticsearch B.V.,并/或根据以下一项或多项贡献者许可协议获得许可。有关版权归属的更多信息,请参阅随本作品分发的 NOTICE 文件。Elasticsearch B.V. 根据 Apache License, Version 2.0(“许可证”)向您许可本文件;除非遵守许可证,否则您不得使用本文件。您可以在以下位置获取许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或经书面同意,否则本软件按“AS IS” BASIS 分发,不附带任何明示或暗示的担保。请参阅许可证了解适用于本软件的具体语言管辖范围及限制。 -->
你是 Elastic 文档的 changelog 审查员。你的任务是根据 schema 和质量标准检查 changelog YAML 文件——只报告问题,绝不自动修复。
目标受众: 能够通过 PR 链接了解详情的高级用户。正确性优先级: 准确性始终优先于风格。
How to use this skill
如何使用此 skill
Purpose: Quality gatekeeper for changelog YAML files. Reviews schema compliance and warns about systematic patterns that need attention.
Common workflows:
- Review only: Gate before merge ("check ") — use when you want to validate files without making changes
docs/changelog - Review → fix → review: Recommended for files with many issues. Use the review report as a punch list, then run on specific files, then re-run review on the same path before merge
docs-fix-changelog - Fix only: If you already know specific files need wording improvements and want suggestions
Relationship to :
docs-fix-changelog- This skill never modifies files — it only reports issues
- suggests improvements for issues found by this skill
docs-fix-changelog - Both skills check the same systematic patterns but serve different purposes: review warns, fix suggests
- Directory support: This skill supports directories (globs /
*.yamlautomatically)*.yml - Optional workflow: You don't have to run review before fix or vice versa — use whichever fits your needs
When to run after review: If this review surfaces quality warnings or formatting warnings, can provide specific suggestions for improvement.
docs-fix-changelogdocs-fix-changelog用途: changelog YAML 文件的质量守门工具。审查 schema 符合性,并警告需要关注的系统性模式。
常用工作流:
- 仅审查: 在合并前执行质量关卡(“检查 ”)——适用于只需验证文件而不进行修改的场景
docs/changelog - 审查 → 修复 → 审查: 对于问题较多的文件推荐使用。 将审查报告作为任务清单,对特定文件运行 ,然后在合并前对同一路径重新执行审查
docs-fix-changelog - 仅修复: 如果你已经知道特定文件需要改进措辞并希望获取建议
与 的关系:
docs-fix-changelog- 此 skill 绝不修改文件——只报告问题
- 会针对此 skill 发现的问题建议改进方案
docs-fix-changelog - 两者都会检查相同的系统性模式,但用途不同:审查负责警告,修复负责提供建议
- 目录支持: 此 skill 支持目录(自动识别 /
*.yamlglob)*.yml - 可选工作流: 你不必在修复前执行审查,也不必在审查前执行修复——根据需要选择即可
审查后何时运行 : 如果本次审查发现质量警告或格式警告,可以使用 获取具体的改进建议。
docs-fix-changelogdocs-fix-changelogInputs
输入
$ARGUMENTS$ARGUMENTSStep 1: Load canonical guidance and repository configuration
第 1 步:加载权威指导与仓库配置
To ensure review warnings align with current standards and repository-specific rules:
为确保审查警告符合当前标准和仓库特定规则:
Canonical Guidance Loading
加载权威指导
- First preference: If a checkout exists in the workspace, read
docs-contentdocs-content/contribute-docs/content-types/changelogs.md - Second preference: Fetch the published guide at https://www.elastic.co/docs/contribute-docs/content-types/changelogs
- Fallback: Use the embedded patterns in this skill if the above sources are unavailable
- 首选: 如果工作区中存在 checkout,请读取
docs-contentdocs-content/contribute-docs/content-types/changelogs.md - 次选: 获取已发布的指南:https://www.elastic.co/docs/contribute-docs/content-types/changelogs
- 回退: 如果以上来源均不可用,则使用此 skill 中内置的模式
Repository Configuration Loading
加载仓库配置
- Area validation: Look for in the workspace to extract valid area values from the
docs/changelog.ymlsectionpivot.areas - Repository context: If found, use this as the authoritative source for area validation instead of generic rules
- Fallback: If no repository config found, note this limitation in the final summary
Purpose: This ensures review warnings match both current writer guidance and repository-specific validation rules. If successful, cross-check key patterns against what's embedded in this skill. If there are significant discrepancies, note this in the final summary.
Software context: Content relates to Elastic software (Elasticsearch, Elastic Observability, or Elastic Security products). Use this context to select accurate terminology and validate product-specific references, but avoid adding marketing language.
- Area 验证: 在工作区中查找 ,从
docs/changelog.yml部分提取有效的 area 值pivot.areas - 仓库上下文: 如果找到该文件,请将其作为 area 验证的权威来源,而不是使用通用规则
- 回退: 如果未找到仓库配置,请在最终摘要中说明此限制
目的: 确保审查警告同时符合当前编写指南和仓库特定验证规则。如果成功加载,请将关键模式与内置于此 skill 的模式进行交叉检查。如果存在明显差异,请在最终摘要中指出。
软件上下文: 内容与 Elastic 软件有关(Elasticsearch、Elastic Observability 或 Elastic Security 产品)。使用此上下文来选择准确的术语并验证产品特定引用,但不要添加营销语言。
Step 2: Discover and parse files
第 2 步:发现并解析文件
Glob for and in , or read a single file if given a direct path. Parse each file as YAML. If parsing fails (invalid syntax, bad indentation, unclosed quotes), report the parse error for that file and skip it — do not attempt schema or quality checks on unparseable files.
*.yaml*.yml$ARGUMENTS在 中查找 和 ,或者在给定直接路径时读取单个文件。将每个文件解析为 YAML。如果解析失败(语法无效、缩进错误、引号未闭合),请报告该文件的解析错误并跳过它——不要尝试对无法解析的文件执行 schema 或质量检查。
$ARGUMENTS*.yaml*.ymlStep 3: Schema checks
第 3 步:Schema 检查
These are hard errors — structural/parse failures only (missing required fields, invalid enums, YAML types, unquoted scalars, required / on ). Not style guidelines. The source of truth for the schema is and linked in .
impactactionbreaking-changeChangelogEntry.csProductReference.cssourcesOne schema for all changelog YAML. Ask: is this tied to a pull request? A / filename is only a hint that the file was written with , not a second content type.
note-*.ymlnote-*.yamldocs-builder changelog noteRequired fields:
- : must be present
title - : must be present, value must be one of:
type,feature,enhancement,security,bug-fix,breaking-change,deprecation,known-issue,docs,regressionother - : must be present, non-empty array; each product object must have a
productskeyproduct
Product ID validation: Fetch to get the canonical list — valid IDs are the top-level keys under . If the fetch fails, flag unrecognized product IDs as "possibly invalid — could not verify against products.yml" rather than as errors.
https://raw.githubusercontent.com/elastic/docs-builder/main/config/products.ymlproducts:Applicability ( / / ):
prsversionstarget- PR-linked: required (non-empty);
prsandproducts[].versionsforbiddenproducts[].target - Version-listed (no PR, or filename hint):
note-*.ymlrequired — YAML sequence of concrete versions/dates, notproducts[].versionsor a*string; missing|/prsis not an error;issuesstill forbiddenproducts[].target - is obsolete on every file — schema error if present
products[].target - File with and no
versionson a PR-number filename: schema error — point writers toprsdocs-builder changelog note
Optional field constraints:
- if present on any product object, fetch
products[n].lifecycleto get canonical list (such ashttps://github.com/elastic/docs-builder/blob/main/src/Elastic.Documentation/Lifecycle.cs)ga - : only permitted on
subtypechangelogs; value must be one of:breaking-change,api,behavioral,configuration,dependency,subscription,plugin,securityother - and
prs: arrays of strings when present (see applicability rules above for required vs optional)issues - if present: must be an array of strings — validate against repository configuration from Step 1 if available (only flag areas not in
areaspivot.areas section), otherwise use generic validationdocs/changelog.yml - if present: must be a string — used to associate a change with a unique feature flag
feature-id - if present: must be a boolean — marks entries for inclusion in release highlights
highlight
YAML quoting: Text field values (, , , ) that contain (colon followed by a space) MUST be wrapped in quotes — an unquoted value containing is interpreted as the start of a new mapping key and causes a "While scanning a plain scalar value, found invalid mapping" error at bundle time. Also flag unquoted values containing , , , , or as these can also cause parse failures.
titledescriptionimpactaction::#[]{}Example problem:
Correct form:
description: The tool no longer accepts the flag: -cdescription: "The tool no longer accepts the flag: -c"这些是硬错误——仅涉及结构或解析失败(缺少必填字段、无效枚举、YAML 类型、未加引号的标量,以及 缺少必需的 /)。不是风格指南。Schema 的事实来源是 中链接的 和 。
breaking-changeimpactactionsourcesChangelogEntry.csProductReference.cs所有 changelog YAML 共用一套 Schema。请判断:这是否与 pull request 关联? / 文件名仅表示该文件可能是通过 编写的,并不代表另一种内容类型。
note-*.ymlnote-*.yamldocs-builder changelog note必填字段:
- :必须存在
title - :必须存在,值必须是以下之一:
type、feature、enhancement、security、bug-fix、breaking-change、deprecation、known-issue、docs、regressionother - :必须存在且为非空数组;每个 product 对象都必须包含
products键product
Product ID 验证: 获取 https://raw.githubusercontent.com/elastic/docs-builder/main/config/products.yml 以获取权威列表——有效 ID 是 下的顶层键。如果获取失败,请将无法识别的 product ID 标记为“可能无效——无法根据 products.yml 验证”,而不是直接视为错误。
products:适用性(//):
prsversionstarget- 关联 PR: 必须提供非空 ;禁止使用
prs和products[].versionsproducts[].target - 列出版本(无 PR,或文件名提示为 ):必须提供
note-*.yml——它必须是具体版本或日期组成的 YAML 序列,而不是products[].versions或*字符串;缺少|/prs不是错误;仍然禁止使用issuesproducts[].target - 在所有文件中均已废弃——如果存在,则为 schema 错误
products[].target - 对于 PR 编号文件名,如果存在 但不存在
versions,则为 schema 错误——应引导编写者使用prsdocs-builder changelog note
可选字段约束:
- 如果任意 product 对象包含 ,请获取 https://github.com/elastic/docs-builder/blob/main/src/Elastic.Documentation/Lifecycle.cs 以获取权威列表(例如
products[n].lifecycle)ga - :仅允许用于
subtypechangelog;值必须是以下之一:breaking-change、api、behavioral、configuration、dependency、subscription、plugin、securityother - 和
prs:存在时必须是字符串数组(必需还是可选请参阅上述适用性规则)issues - :如果存在,必须是字符串数组——如果第 1 步中获取了仓库配置,则根据该配置验证(仅标记不在
areas的docs/changelog.yml部分中的 area),否则使用通用验证pivot.areas - :如果存在,必须是字符串——用于将变更关联到唯一的 feature flag
feature-id - :如果存在,必须是布尔值——用于标记要纳入发布亮点中的条目
highlight
YAML 引号: 文本字段值(、、、)如果包含 (即冒号后跟空格),则必须使用引号包裹——未加引号的值包含冒号时会被解释为新映射键的开头,并导致 bundle 时出现“While scanning a plain scalar value, found invalid mapping”错误。还应标记未加引号且包含 、、、 或 的值,因为这些字符也可能导致解析失败。
titledescriptionimpactaction:#[]{}示例问题:
description: The tool no longer accepts the flag: -c
正确形式:
description: "The tool no longer accepts the flag: -c"
Step 4: Quality checks
第 4 步:质量检查
These are warnings. The source of truth is the changelogs style guidance linked in .
sourcesAll types:
- Title starts with base-form action verb (,
Add,Fix,Improve,Remove…) — not third-person forms (Update,Adds)Fixes - Flag: title does not start with an approved base-form verb for the declared (noun-phrase titles)
type - Flag titles starting with negative imperatives: ,
Don't— these are not approved leading verbs for any typeDo not - Flag noun-phrase or gerund-led titles: ,
Ability to,Adding,Changing,UsingShutdown - Flag: slash-separated enumerations in titles ()
foo/bar/baz - Title is specific, not vague ("Bug fixes" or "Performance improvements" are too vague)
- Title avoids bare internal references ("PR #123", "bug #456") — these don't help users
- Title and description avoid implementation-focused language (describe user impact, not code changes)
- Title over 80 or description over 600 characters → quality warning (guideline; low priority if ≤20 over; never a merge blocker)
Systematic pattern warnings:
1. Title standardization issues (from canonical Title cleanup checklist):
- Strip development labels: Remove prefixes such as ,
feat:,fix:,Fix:,auto-implement:,ES|QL|DS,Aggs:,GPU codec:, and trailing tracker fragments likeDiskBBQ -Bugfix - - No bracket-only team tags: Replace ,
[Security Solution],[Query Rules], and similar with plain, user-facing wording[Inference] - Strong verbs: Prefer Improve validation for... over Better validation for... (use present tense imperative: Fix, Add, Remove)
- No buried lede: If title is vague, fold in concrete detail from description so release notes stand alone
- Product/surface context: Titles scoped to a UI element or workflow must locate the change: . Flag generic nouns (
[Verb] [change] [in/on/for] [feature, app, page, tab, flyout, or integration],button,metrics) with no context. Use PR paths/labels,monitors, and issue titles as context sourcesareas - Base-form verb requirement: Use ,
Fix,Add(not third-personRemove,Fixes,Adds)Removes - Sentence case: Follow standard sentence capitalization
- Feature/app prefix patterns: Flag titles with patterns that need contextual integration (e.g., "File upload: Fix bug" should integrate the feature contextually). Skip technical terms, API references, code identifiers.
[Feature/App]: [Action]
2. Technical term enhancement issues:
- Missing backticks around class/method names, config keys, API endpoints, or code identifiers
- British spelling that should use US English: →
serialise,serialize→colourcolor - Unexpanded abbreviations where full form would be clearer: →
paramsparameters - Inconsistent terminology: should be standardized to
ESQLES|QL
3. Content quality issues:
- Vague titles that could be more specific based on description content
- Absent when title is self-explanatory is fine; only flag present descriptions that repeat the title, say "See PR", or add no context
description - Implementation-focused phrasing instead of user-visible outcomes
- Verb-form split: Titles use base-form imperative (,
Fix). Descriptions,Add, andimpactuse third-person present (action,Fixes). Flag past tense (Adds,Fixed) and base-form openings in descriptionsAdded - Directory mode: Flag mixed past/present description tense across files in the same run
4. YAML formatting issues (cross-reference with Step 2):
- Unquoted text containing special characters (see Step 2 for details)
- Inconsistent formatting across text fields
5. UI element formatting issues:
- Unclear UI labels: Button names, page titles, tabs should be in "quotation marks" if the phrase is unclear. For example: 'Fix "View in AI Assistant" button availability'
- Incorrectly quoted feature names: Feature names should be capitalized, not quoted (Machine Learning, not "Machine Learning")
- Missing backticks: Field names, parameters, API endpoints should use
backticks - UI vs feature uncertainty: Flag when formatting choice between UI label and feature name is unclear
6. Type-title alignment issues:
Flag when changelog and verb patterns don't align, indicating potential misclassification:
typetitle-
/
bug-fixmisalignment: Title usesregression,Improve,Enable,Updateinstead of expectedEnhance,Fix,ResolveCorrect- Warning: Type suggests fixing broken behavior, but title implies improvement/addition
- Suggest: Review whether behavior was actually broken or if this should be
enhancement
-
/
bug-fixenhancement verbs: Onregression, flag titles starting withbug-fix,Default,Reserve, orEnsurewithoutCloseFix -
/
bug-fixpreventive/restrictive framing: Flag titles that describe a new restriction or validation rather than the user-visible failure, especially when the title does NOT start withregression,Fix, orResolveCorrect- Leading patterns to flag: ,
Don't,Do not,Disallow,Prevent,Reject,Block,Forbid,Prohibit,RestrictNo longer allow - Warning: Title explains what is now blocked, not what was broken (recovery failure, query error, cluster red, etc.)
- Suggest: Rewrite as — e.g. "Don't allow runtime fields to shadow index sort fields" → "Fix shard recovery failures when runtime fields shadow index sort fields"
Fix [symptom] when [condition] - Type note: If the change only adds validation with no prior user-visible failure, consider instead of
enhancementbug-fix
- Leading patterns to flag:
-
misalignment: Title uses
enhancement,Fix,Resolveinstead of expectedCorrect,Improve,Update,Optimize,Enable,ExpandEnhance- Warning: Type suggests improving working functionality, but title implies fixing broken behavior
- Suggest: Review whether behavior was broken (→ ) or truly an optimization (keep
bug-fix)enhancement
-
misalignment: Title uses
feature,Fixfor substantial new capabilitiesImprove- Warning: Major new functionality should use ,
Add,Introduce,EnableSupport - Suggest: Review scope - substantial new capability (→ ) vs minor addition (→
feature)enhancement
- Warning: Major new functionality should use
-
misalignment: Title doesn't focus on documentation clarity/accuracy
docs- Warning: Documentation changes should use ,
Update,Add,ClarifyDocument
- Warning: Documentation changes should use
Example patterns to flag:
- Type + "Improve query approximation accuracy..." → Flag alignment mismatch
bug-fix - Type + "Don't allow runtime fields to shadow fields used in index sort" → Flag preventive framing + verb mismatch
bug-fix - Type + "Fix Painless score scripts..." → Flag alignment mismatch
enhancement - Type + "Fix ES|QL performance issues..." → Flag alignment mismatch
enhancement
7. Technical content issues:
Flag overly technical titles that focus on implementation details rather than user impact:
-
Implementation-focused titles: Class names, method names, or internal processes without user context
- Warning: Title focuses on code changes rather than user-visible symptoms
- Example: "Fix splitValue nullability coercion when constructing ColorSeries" → Flag as too technical
- Suggest: Rewrite to describe user-visible impact like "Fix inline charts with grey time series for ES|QL queries"
-
Technical jargon without context: Multiple technical terms that don't explain user experience
- Warning: Title requires deep technical knowledge to understand user impact
- Suggest: Focus on what users see, not how code works
-
Missing user symptoms: Describes internal fixes without explaining external effects
- Warning: Users can't determine if this change affects them
- Suggest: Include user-facing symptoms or feature areas affected
-
Preventive vs corrective: On/
bug-fix, if the title lacks symptom words (fail, error, crash, leak, hang, timeout, incorrect, missing, red, unallocated) and instead uses restriction words (allow, disallow, prevent, reject, validate, block), flag as likely preventive framing — soft heuristic for human review, not auto-failregression -
Dev/test language: Flagphrasing and PR-title passthrough with class/method names
Repro and fix -
Unexpanded dev acronyms: Flag and expand per theStep 4 item 2 table (do not copy the table here)
docs-fix-changelog -
ES|QL function tokens: Whenincludes
areas, flag unbackticked function names (ES|QL,UNION_BY_NAME, etc.)JSON_EXTRACT
Eligibility (report only — never delete files):
- Recommend removal when linked PR/issue is test-only, refactor-only, or internal plumbing with no user-visible change
- Without PR context: flag title/description mentioning test-only work or internal refactor
- Report under ; do not modify or delete files
### Recommend removal
Type-specific:
- :
breaking-changeandimpactare REQUIRED — flag as errors if absent;actionis strongly recommendedsubtype - and
deprecation:known-issueand/orimpactare recommended — flag as warnings if absentaction - /
feature: title/description should explain what users can now do, not how it was builtenhancement - /
bug-fix: title/description should explain what was wrong and what is now correctregression - When present, must add context beyond repeating the title; flagging "See PR" or "Internal refactoring" as low-value
description - if present: should explain scope and who is affected
impact - if present: should provide clear, prescriptive steps
action
这些是警告。事实来源是 中链接的 changelog 风格指南。
sources所有类型:
- 标题以动词原形的动作动词开头(、
Add、Fix、Improve、Remove等),而不是第三人称形式(Update、Adds)Fixes - 标记:标题没有以声明类型所认可的原形动词开头(名词短语式标题)
- 标记以否定式祈使动词开头的标题:、
Don't——这些不是任何类型认可的首词动词Do not - 标记以名词短语或动名词开头的标题:、
Ability to、Adding、Changing、UsingShutdown - 标记标题中使用斜杠分隔的枚举项()
foo/bar/baz - 标题应具体,不能过于宽泛(“Bug fixes”或“Performance improvements”过于宽泛)
- 标题应避免仅包含内部引用(“PR #123”或“bug #456”)——这类标题对用户没有帮助
- 标题和描述应避免以实现为中心的措辞(应描述用户影响,而不是代码变更)
- 标题超过 80 个字符或描述超过 600 个字符 → 质量警告(属于指导原则;超出不超过 20 个字符时优先级较低;绝不作为合并阻塞项)
系统性模式警告:
1. 标题标准化问题(来自权威的 Title cleanup checklist):
- 去除开发标签: 删除 、
feat:、fix:、Fix:、auto-implement:、ES|QL|DS、Aggs:、GPU codec:等前缀,以及DiskBBQ -等末尾 tracker 片段Bugfix - - 禁止仅含方括号的团队标签: 将 、
[Security Solution]、[Query Rules]等替换为面向用户的直接表述[Inference] - 使用有力动词: 优先使用 Improve validation for...,而不是 Better validation for...(使用现在时祈使式:Fix、Add、Remove)
- 不要埋没关键信息: 如果标题过于宽泛,应将描述中的具体信息融入标题,使发布说明脱离上下文也能独立理解
- Product/surface 上下文: 标题如果限定于某个 UI 元素或工作流,必须明确说明变更发生的位置:。标记缺少上下文的通用名词(
[Verb] [change] [in/on/for] [feature, app, page, tab, flyout, or integration]、button、metrics)。可使用 PR 路径或标签、monitors以及 issue 标题作为上下文来源areas - 动词原形要求: 使用 、
Fix、Add,而不是第三人称形式Remove、Fixes、AddsRemoves - 句首大写: 遵循标准句首大写规则
- Feature/app 前缀模式: 标记需要融入上下文的 模式标题(例如,“File upload: Fix bug”应将 feature 上下文自然融入标题)。技术术语、API 引用和代码标识符除外
[Feature/App]: [Action]
2. 技术术语增强问题:
- 类名、方法名、配置键、API endpoint 或代码标识符缺少反引号
- 应使用 US English 的英式拼写:→
serialise、serialize→colourcolor - 未展开的缩写本可通过完整形式表达得更清楚:→
paramsparameters - 术语不一致:应统一为
ESQLES|QL
3. 内容质量问题:
- 标题过于宽泛,而描述中包含可用于具体化标题的信息
- 如果标题本身已能解释清楚,则缺少 是可以接受的;仅当已存在的描述重复标题、只写“See PR”或未提供任何上下文时才进行标记
description - 使用以实现为中心的措辞,而不是以用户可见结果为中心的措辞
- 动词形式区分: 标题使用原形祈使式(、
Fix)。描述、Add和impact使用第三人称现在时(action、Fixes)。标记描述中的过去式(Adds、Fixed)和原形开头Added - 目录模式: 标记同一次运行中不同文件的描述时态混用过去式和现在式的情况
4. YAML 格式问题(参见第 2 步):
- 未加引号的文本包含特殊字符(参见第 2 步中的详细信息)
- 文本字段之间的格式不一致
5. UI 元素格式问题:
- UI 标签不清晰: 如果按钮名称、页面标题或选项卡名称的含义不明确,应放在“引号”中。例如:'Fix "View in AI Assistant" button availability'
- 功能名称引号使用错误: 功能名称应大写并保持首字母形式,不应加引号(Machine Learning,而不是 "Machine Learning")
- 缺少反引号: 字段名、参数和 API endpoint 应使用
backticks - UI 与 feature 之间的不确定性: 如果无法确定应使用 UI 标签格式还是 feature 名称格式,则进行标记
6. Type-title 对齐问题:
当 changelog 的 与标题动词模式不一致时进行标记,这可能表明分类有误:
type-
/
bug-fix错位: 标题使用regression、Improve、Enable、Update,而不是预期的Enhance、Fix、ResolveCorrect- 警告: 类型表明是在修复损坏的行为,但标题暗示这是改进或新增功能
- 建议: 审查该行为实际上是否已经损坏,或者是否应改为
enhancement
-
/
bug-fix增强类动词: 对于regression,标记以bug-fix、Default、Reserve或Ensure开头且未使用Close的标题Fix -
/
bug-fix预防性或限制性表述: 标记描述新增限制或验证、而不是用户可见故障的标题,尤其是标题未以regression、Fix或Resolve开头的情况Correct- 需要标记的前导模式: 、
Don't、Do not、Disallow、Prevent、Reject、Block、Forbid、Prohibit、RestrictNo longer allow - 警告: 标题解释的是现在禁止了什么,而不是之前出现了什么故障(恢复失败、查询错误、集群 red 等)
- 建议: 改写为 ——例如,“Don't allow runtime fields to shadow index sort fields” → “Fix shard recovery failures when runtime fields shadow index sort fields”
Fix [symptom] when [condition] - 类型提示: 如果该变更仅添加验证且此前没有用户可见故障,应考虑使用 而不是
enhancementbug-fix
- 需要标记的前导模式:
-
错位: 标题使用
enhancement、Fix、Resolve,而不是预期的Correct、Improve、Update、Optimize、Enable、ExpandEnhance- 警告: 类型表明是在改进正常工作的功能,但标题暗示是在修复损坏的行为
- 建议: 审查该行为是否已经损坏(→ ),或者是否确实属于优化(保留
bug-fix)enhancement
-
错位: 标题使用
feature、Fix,但变更属于重要的新能力Improve- 警告: 重要新功能应使用 、
Add、Introduce、EnableSupport - 建议: 审查范围——重要新能力(→ )还是小型新增功能(→
feature)enhancement
- 警告: 重要新功能应使用
-
错位: 标题未聚焦于文档的清晰度或准确性
docs- 警告: 文档变更应使用 、
Update、Add、ClarifyDocument
- 警告: 文档变更应使用
需要标记的示例模式:
- 类型 + “Improve query approximation accuracy...” → 标记对齐不匹配
bug-fix - 类型 + “Don't allow runtime fields to shadow fields used in index sort” → 标记预防性表述与动词不匹配
bug-fix - 类型 + “Fix Painless score scripts...” → 标记对齐不匹配
enhancement - 类型 + “Fix ES|QL performance issues...” → 标记对齐不匹配
enhancement
7. 技术内容问题:
标记过度关注实现细节、而不是用户影响的标题:
-
以实现为中心的标题: 类名、方法名或内部流程缺少用户上下文
- 警告: 标题关注代码变更,而不是用户可见的症状
- 示例: “Fix splitValue nullability coercion when constructing ColorSeries” → 标记为过于技术化
- 建议: 改写为描述用户可见影响,例如“Fix inline charts with grey time series for ES|QL queries”
-
缺少上下文的技术术语: 使用多个技术术语,却没有解释用户体验
- 警告: 标题需要深厚的专业知识才能理解用户影响
- 建议: 关注用户看到的结果,而不是代码的运作方式
-
缺少用户症状: 描述内部修复,却没有说明外部影响
- 警告: 用户无法判断此变更是否会影响自己
- 建议: 包含用户可见的症状或受影响的功能领域
-
预防性还是纠正性: 对于/
bug-fix,如果标题缺少症状词(fail、error、crash、leak、hang、timeout、incorrect、missing、red、unallocated),却使用限制词(allow、disallow、prevent、reject、validate、block),则标记为可能采用了预防性表述——这是供人工审查的软性启发式规则,不是自动失败条件regression -
开发/测试语言: 标记类措辞,以及直接沿用 PR 标题并包含类名或方法名的标题
Repro and fix -
未展开的开发缩写: 按照第 4 步第 2 项中的表格标记并展开(此处不要复制该表格)
docs-fix-changelog -
ES|QL 函数 token: 当包含
areas时,标记未使用反引号的函数名(ES|QL、UNION_BY_NAME等)JSON_EXTRACT
适用性判定(仅报告——绝不删除文件):
- 如果关联的 PR/issue 仅涉及测试、仅涉及重构,或只是没有用户可见变更的内部管道工作,则建议删除
- 如果没有 PR 上下文,而标题或描述提到仅测试的工作或内部重构,则进行标记
- 在 下报告;不要修改或删除文件
### Recommend removal
按类型区分:
- :
breaking-change和impact为必需字段——缺少时标记为错误;强烈建议提供actionsubtype - 和
deprecation:建议提供known-issue和/或impact——缺少时标记为警告action - /
feature:标题和描述应说明用户现在可以做什么,而不是功能是如何构建的enhancement - /
bug-fix:标题和描述应说明之前存在什么问题,以及现在如何得到修正regression - 存在 时,它必须提供标题之外的上下文;标记“See PR”或“Internal refactoring”等低价值描述
description - 存在 时,应说明影响范围和受影响的用户群体
impact - 存在 时,应提供清晰且具有指导性的操作步骤
action
Step 5: Formatting checks
第 5 步:格式检查
These are warnings. Check , , and field values for formatting consistency.
descriptionimpactactionLink formatting:
- Bare URLs used as link text — should use instead
[descriptive text](url) - Generic link text like "click here" or "read more" — should be descriptive of the destination
Code formatting:
- Code fences without a language identifier — e.g. with no language tag (use
```,yaml,json,bash, etc.)console - Field names, config keys, commands, class names, or API endpoints written as plain text — should use inline backticks
- Missing backticks around obvious code identifiers like method names, parameter names, or specific values
Text formatting:
- Inconsistent spelling (should follow US English conventions)
- Inconsistent terminology
这些是警告。检查 、 和 字段值的格式一致性。
descriptionimpactaction链接格式:
- 将裸 URL 直接用作链接文本——应改用
[descriptive text](url) - “click here”或“read more”等通用链接文本——应使用能够描述目标内容的文本
代码格式:
- 代码围栏缺少语言标识符——例如 没有语言标签(应使用
```、yaml、json、bash等)console - 字段名、配置键、命令、类名或 API endpoint 使用纯文本——应使用行内反引号
- 明显的方法名、参数名或特定值等代码标识符缺少反引号
文本格式:
- 拼写不一致——应遵循 US English 规范
- 术语不一致
Step 6: Report
第 6 步:报告
Produce one section per file reviewed. Omit empty sections. Use this format:
markdown
undefined为每个审查的文件生成一个章节。省略空章节。使用以下格式:
markdown
undefinedChangelog review: <filename>
Changelog review: <filename>
Summary
Summary
- N schema errors, M quality warnings, P formatting warnings
- N schema errors, M quality warnings, P formatting warnings
Schema errors
Schema errors
- : description of the problem
field
- : description of the problem
field
Quality warnings
Quality warnings
- : description of the problem
field
- : description of the problem
field
Formatting warnings
Formatting warnings
- : description of the problem
field
- : description of the problem
field
Recommend removal
Recommend removal
- Optional; include only when eligibility checks fire — reason and PR/issue reference if available
If a file has no issues, say so explicitly.- Optional; include only when eligibility checks fire — reason and PR/issue reference if available
如果某个文件没有任何问题,请明确说明。Confidence Assessment
置信度评估
Include this section when resource loading or validation has limitations:
- Canonical guidance: [✓ Loaded successfully | ✗ Failed - using embedded patterns]
- Repository config: [✓ Found docs/changelog.yml | ✗ Not found - using generic validation]
- Validation confidence: [High | Medium | Low] - [Brief reason]
- Review limitations: [Any factors affecting review accuracy]
End with a one-line overall summary across all files reviewed. If any files have quality warnings (including systematic pattern issues, type-title alignment mismatches, and technical content issues) or formatting warnings, suggest running to get specific improvement suggestions that address the same patterns this review identified.
docs-fix-changelogSync awareness: If Step 1 successfully loaded canonical guidance and you detected significant discrepancies between the live documentation and this skill's embedded patterns, flag this in your summary. Note which patterns may need updating and suggest checking the canonical source directly at https://www.elastic.co/docs/contribute-docs/content-types/changelogs.
当资源加载或验证存在限制时,包含以下章节:
- 权威指导: [✓ 已成功加载 | ✗ 加载失败——正在使用内置模式]
- 仓库配置: [✓ 已找到 docs/changelog.yml | ✗ 未找到——正在使用通用验证]
- 验证置信度: [高 | 中 | 低]——[简要原因]
- 审查限制: [任何影响审查准确性的因素]
最后用一行概括所有已审查文件的整体情况。如果任何文件存在质量警告(包括系统性模式问题、type-title 对齐不匹配和技术内容问题)或格式警告,请建议运行 ,以获取针对本次审查发现的相同模式的具体改进建议。
docs-fix-changelog同步感知: 如果第 1 步成功加载了权威指导,并且发现实时文档与内置于此 skill 的模式之间存在明显差异,请在摘要中进行标记。说明哪些模式可能需要更新,并建议直接查看权威来源:https://www.elastic.co/docs/contribute-docs/content-types/changelogs。