用途
该技能面向文档团队,负责把 Kibana 发布说明生成器产出的原始 .md 工具输出,转换为 Stack 发布说明 Markdown 格式,适用于 Elastic Observability 或 Elastic Security。转换过程中使用 GitHub PR 上下文提升准确性与用户价值,并参照 docs-content 仓库中既往的 Stack 发布说明来匹配既有的语气、语调和格式。
适用时机
用户已从 Kibana 发布说明生成器生成原始 .md 输出,并(可选)补充了 Observability 或 Security 发布说明;用户希望查看发布说明中列出的每个 PR(以及任何被引用的 PR),以核验准确性并改进面向用户的措辞。
输入包括:原始 .md 文件路径(或粘贴内容),以及可选的解决方案(observability 或 security)和 Stack 版本(例如 9.3.2)。
响应格式
响应必须按固定顺序包含两部分:首先是在单个围栏代码块中的发布说明 Markdown(便于复制粘贴);其次是在代码块外的 Notes(Confidence + Assumptions),需明确列出:最不确信的发布说明条目及原因、任何加粗判断的不确定性(按钮/页面标题与功能名称之别)、所作的任何假设(仓库选择、章节映射、术语规范化等)、任何输入异常(缺失 PR 编号、归属不明、范围模糊),以及所引用的既往发布说明(目录与文件),或说明无法获取的原因。
输出结构
默认且推荐的结构为:顶级标题使用二级标题加 Stack 版本号,即 ## VERSION [elastic-SOLUTION-VERSION-release-notes];锚点格式为 elastic- + 解决方案名 + - + 版本 + -release-notes,例如 elastic-observability-9.3.2-release-notes 或 elastic-security-9.3.2-release-notes。目前只允许两个章节标题,且顺序固定:### Features and enhancements [elastic-SOLUTION-VERSION-features-enhancements] 和 ### Fixes [elastic-SOLUTION-VERSION-fixes]。工具输出中的组件/类别标题(如 Discover、Management、Elastic Observability solution、Dashboards and Visualizations)必须丢弃,所有条目统一归入上述两个章节。
输入优先级
按以下优先级考虑输入:首先严格遵循该技能的指令/规则(结构、格式与风格要求);其次是原始发布说明(原始 .md 工具输出),作为候选条目与措辞/分类的来源;再次是 GitHub PR 上下文(必须获取),利用 PR 标题/正文/评论/变更来改进措辞、范围与影响,纠正不准确之处,去除内部行话,在保留原始 .md 意图的前提下提升面向用户的清晰度;最后是既往 Stack 发布说明目录(必须获取),作为既有措辞、语气与格式的权威来源,地址为 https://github.com/elastic/docs-content/tree/main/release-notes/elastic-observability 和 https://github.com/elastic/docs-content/tree/main/release-notes/elastic-security。
既往发布说明的参照
在写出最终输出前,所有 GitHub 请求均须使用 GH CLI。需获取并查阅 elastic/docs-content 中相应目录下的 index.md:Observability 对应 release-notes/elastic-observability/index.md,Security 对应 release-notes/elastic-security/index.md。据此推断典型条目的措辞、语气和时态,UI 标签与功能名称的加粗方式,技术术语与设置的格式,偏好的具体程度,以及反复出现的 Stack 术语模式。将这些观察应用到条目改写中,匹配既有语气(简洁、面向用户、适合高级用户)、格式惯例(标点、大小写、加粗模式),并始终以正确性为最高优先级。若目录无法获取(不存在/权限/工具限制),则依据该技能指令、PR 上下文与工具输出继续,并在 Notes 中明确说明风格置信度降低及其原因。
GitHub 上下文充实
对工具输出中发现的每个 PR 编号,使用 GH CLI 读取 PR 上下文:PR 标题、描述/正文、相关时的评论与评审线程、文件列表和/或 diff。利用这些上下文改进发布说明:纠正或细化变更实际内容(避免误导性概括),移除内部跟踪用语(如“Part 1”“Milestone”、团队专属行话),除非对用户有意义;在保持简洁的同时阐明用户影响(变更了什么、在哪里、为何重要);在准确的前提下优先使用 PR 中的面向用户术语,否则按文档质量要求重写。若 PR 上下文无法获取(未找到/权限/访问不足),则回退到工具输出文本,只要 PR 编号存在仍按正确格式带上 PR 链接,并在 Notes 中标注该条目置信度降低。
解析 .md 工具输出
将工具章节映射到两个输出章节:Features(release_note:feature)→ Features and enhancements;Enhancements(release_note:enhancements)→ Features and enhancements;Fixes(release_note:fix)→ Fixes。对于意外章节(如 breaking changes、known issues、deprecations、security notices),不新增标题,而是尽力按其代表的内容归入 Features and enhancements 或 Fixes,并在 Notes 中明确记录映射决定与任何歧义。提取 PR 编号时,将 #123456(opens in a new tab or window) 之类的模式规范化为 123456。若条目缺少 PR 编号,保留为不带 PR 链接的条目,并在 Notes 中标注为较低置信度(除非 .md 文本本身足够清晰)。
条目编写与格式
目标读者为高级用户,他们可通过 PR 链接查看详情,因此在保持简洁易懂的同时优先保证准确与清晰。每个值得进入发布说明的变更写一个条目(而非每个提交一个条目)。条目以动词开头、使用现在时,例如 Adds、Enables、Supports、Improves、Fixes、Ensures、Removes、Disables、Updates、Replaces、Refactors。要具体:优先描述“用户现在可以做什么/现在避免了什么/现在支持了什么”,而非实现细节;若 PR 主要是内部重构且用户影响极小,应如实简短说明。
每个引用 PR 的条目必须以 [#123456]({{kib-pull}}123456) 结尾(Kibana PR),不得使用裸 URL,始终使用上述 Handlebars 风格变量。若仓库不确定,依据 PR 上下文和文件名/组件做最佳判断;仍不确定时宁可不加 PR 链接也不猜测仓库变量,并在 Notes 中标注不确定性。
格式方面:加粗按钮名、页面标题、标签页、下拉项等明确 UI 标签(如 Service Inventory、Manage index、Rule summary);功能名称不加粗而是首字母大写(如 AI Assistant、Machine Learning、Anomaly Detection、Elastic Observability、Elastic Security);若不确定某内容是 UI 标签还是功能名称,选择最合适的格式并在 Notes 中说明。技术术语使用反引号(如 STATS、concat、on_disk_rescore、approximate)。ES|QL 统一使用 {{esql}}(不用 “ES|QL” 等变体),具体命令/函数放在反引号中。产品变量在适当处使用 {{esql}}、{{kib}}、{{serverless-full}},并保持双花括号格式不变。软件来自 Elastic(可能涉及 Elasticsearch、Elastic Observability 或 Elastic Security),据此使用正确术语,不添加营销语言。
编辑改进与质量检查
有意识地做以下编辑改进:去行话,移除非必要的内部跟踪说明;阐明影响,把模糊表述(如“basic support”“code changes”)替换为用户可见行为;合并与语境化,若多个 PR 明显构成一个连贯的面向用户变更,可合并为一个条目(仅在能提升清晰度时),并在 Notes 中说明合并。不得包含子章节标题,即不引入工具输出中的组件/类别标题。
回复前必须通过质量检查:Markdown 部分位于单个代码块中且仅含 Markdown;恰好一个 ## 标题和恰好两个 ### 标题(顺序正确);锚点使用 elastic-SOLUTION-VERSION-release-notes 格式;每个 PR 条目在仓库已知时以正确的 [#]({{...}}) 链接结尾;不包含工具子标题;条目以动词开头,时态与语气一致并对齐既往 Stack 发布说明文件;UI 标签加粗、功能名称首字母大写(不加粗)、技术术语用反引号、统一使用 {{esql}};Notes 部分按 PR 编号和/或条目片段明确列出最低置信度条目及原因,并说明引用了 release-notes 中的哪些文件,或无法获取的原因。