[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-elastic-docs-fix-changelog":3,"mdc-oc3osi-key":36,"related-repo-elastic-docs-fix-changelog":4916,"related-org-elastic-docs-fix-changelog":4990},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":31,"sourceUrl":34,"mdContent":35},"docs-fix-changelog","improve Elastic changelog YAML files","Suggest improved text for changelog YAML files against current Elastic standards. Mirrors the pattern catalog from docs-review-changelog to provide consistent fixes. Includes type-title alignment checking and technical content assessment to catch overly technical titles that need user-focused rewrites. Features repository-aware area validation and enhanced confidence scoring. Supports single files or directories. Fetches canonical guidance to stay in sync. Use after review identifies quality issues, or when drafting new changelogs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"elastic","Elastic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Felastic.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Documentation","documentation","tag",{"name":17,"slug":18,"type":15},"YAML","yaml",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Technical Writing","technical-writing",71,"https:\u002F\u002Fgithub.com\u002Felastic\u002Felastic-docs-skills","2026-07-12T07:48:58.570382",null,9,[29,8,30],"docs","skills",{"repoUrl":24,"stars":23,"forks":27,"topics":32,"description":33},[29,8,30],"Instructions for code agents on how to author Elastic docs","https:\u002F\u002Fgithub.com\u002Felastic\u002Felastic-docs-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fchangelogs\u002Ffix-changelog","---\nname: docs-fix-changelog\nversion: 2.4.1\ndescription: Suggest improved text for changelog YAML files against current Elastic standards. Mirrors the pattern catalog from docs-review-changelog to provide consistent fixes. Includes type-title alignment checking and technical content assessment to catch overly technical titles that need user-focused rewrites. Features repository-aware area validation and enhanced confidence scoring. Supports single files or directories. Fetches canonical guidance to stay in sync. Use after review identifies quality issues, or when drafting new changelogs.\nargument-hint: \"[changelog-file-or-directory] [pr\u002Fissue-context]\"\ncontext: fork\nallowed-tools: Read, Grep, Glob, WebFetch\nsources:\n- https:\u002F\u002Fgithub.com\u002Felastic\u002Fdocs-builder\u002Fblob\u002Fmain\u002Fsrc\u002FElastic.Documentation\u002FReleaseNotes\u002FChangelogEntry.cs\n- https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fcontribute-docs\u002Fcontent-types\u002Fchangelogs\n- https:\u002F\u002Felastic.github.io\u002Fdocs-builder\u002Fsyntax\u002Flinks\u002F\n- https:\u002F\u002Felastic.github.io\u002Fdocs-builder\u002Fsyntax\u002Fcode\u002F\n---\n\nYou are a changelog writing assistant for Elastic documentation. You suggest improved text for changelog fields and help draft content for new changelogs. You do not create files — file creation is always done via `docs-builder changelog add`.\n\n**Correctness priority:** Accuracy always takes precedence over style — never sacrifice factual correctness for better formatting or phrasing.\n\n## How to use this skill\n\nThis skill pairs with `docs-review-changelog` as part of a systematic changelog improvement workflow:\n\n1. **Review first:** Use `docs-review-changelog` to identify schema errors, quality warnings, and systematic pattern violations\n2. **Fix second:** Use this skill to get specific improvement suggestions that address the same pattern catalog\n3. **Optional iteration:** Run both tools again before merge for final validation\n\n**Common workflows:**\n\n- **Single file:** `\u002Fdocs-fix-changelog path\u002Fto\u002Fchangelog.yaml` — suggest improvements for one file\n- **Directory mode:** `\u002Fdocs-fix-changelog path\u002Fto\u002Fdirectory\u002F` — process all `*.yaml` and `*.yml` files in the directory\n- **New changelog:** `\u002Fdocs-fix-changelog \"Create new changelog for: [PR context]\"` — suggest content for a new changelog\n\n**Default behavior:** Suggest-only mode. Changes are only applied to disk after explicit user confirmation.\n\n## Step 1: Load canonical guidance and repository configuration\n\nTo ensure fix suggestions align with current standards and repository-specific rules:\n\n### Canonical Guidance Loading\n1. **First preference:** If a `docs-content` checkout exists in the workspace, read `docs-content\u002Fcontribute-docs\u002Fcontent-types\u002Fchangelogs.md`\n2. **Second preference:** Fetch the published guide at [https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fcontribute-docs\u002Fcontent-types\u002Fchangelogs](https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fcontribute-docs\u002Fcontent-types\u002Fchangelogs)\n3. **Fallback:** Use the embedded post-edit checklist in this skill if the above sources are unavailable\n\n### Repository Configuration Loading\n1. **Area validation:** Look for `docs\u002Fchangelog.yml` in the workspace to extract valid area values from the `pivot.areas` section\n2. **Repository context:** If found, use this as the authoritative source for area validation instead of generic rules\n3. **Fallback:** If no repository config found, note this limitation in confidence tracking\n\n**Purpose:** This ensures fix suggestions match both current writer guidance and repository-specific validation rules. \n\n**Track for confidence:** Document whether canonical guidance and repository config were successfully loaded. Failed fetches or fallbacks affect suggestion confidence and should be noted in the final output.\n\n## Operating modes\n\n**Mode A — Improve an existing file.** The first argument is a path to a changelog YAML file that already exists. Read it, assess weak or missing fields, and suggest improvements.\n\n**Mode B — Process directory.** The first argument is a path to a directory containing changelog files. Process all `*.yaml` and `*.yml` files in that directory, suggesting improvements for each.\n\n**Mode C — Suggest content for a new file.** No file path is given, or the argument doesn't resolve to a readable file or directory. Suggest text for the text-based fields that the user can pass to `docs-builder changelog add`.\n\nDetect mode automatically: if the first argument resolves to a readable file, use Mode A. If it resolves to a directory, use Mode B. Otherwise, use Mode C.\n\n## Step 2: Determine mode and read input\n\n- **Mode A**: Read and parse the changelog file. If YAML parsing fails, report the error and stop.\n- **Mode B**: Glob for `*.yaml` and `*.yml` files in the directory. Parse each file as YAML. If parsing fails for any file, report the error for that file but continue processing others.\n- **Mode C**: No file to read. Proceed to Step 3.\n\n## Step 3: Resolve PR\u002Fissue context\n\nContext from a PR or issue produces better suggestions. Use it in this order:\n\n1. If the user passed a second argument or quoted text in `$ARGUMENTS`, treat it as context\n2. If the conversation already contains PR or issue title, description, diff, or linked references, use that\n3. If `prs` or `issues` fields in the existing file (Mode A) contain URLs, use those as implicit context — they identify the PR or issue the changelog describes\n4. If none of the above is available, ask once: \"Do you have context from a PR or issue (title, description, diff, or linked references) to share? **If there are acronyms in the title (like 'KI'), please clarify what they stand for.** Richer context produces better suggestions.\" Skip this ask if the user has already declined.\n\n**Enhanced context utilization for acronyms:**\n\n- **Scan for acronym definitions:** In PR titles\u002Fdescriptions, look for patterns like \"KI (Knowledge Indicator)\" or context clues that define abbreviations\n- **Cross-reference expansions:** Before expanding acronyms, check if PR context contradicts assumed meaning\n\n**Track for confidence:** Document what context was available (full PR details, partial info, URLs only, or none) and any fetch failures. This will inform confidence scoring in Step 7.\n\n**PR fetch and eligibility:**\n\n- When `prs` or `issues` URLs exist in the file, fetch them before suggesting — required, not optional\n- If PR\u002Fissue is test-only, refactor-only, or has no user-visible impact → recommend **delete file**, not a cosmetic rewrite\n- Directory mode: fetch PR context per file; skip auto-apply on low-confidence rewrites\n\n**Issue-title cross-check (when `issues` URLs are present and fetched successfully):**\n\n- Compare issue title tone to changelog title\n- If the issue title describes a **failure\u002Fsymptom** (e.g. \"causes recovery to fail\", \"cluster health became red\") but the changelog title uses **preventive\u002Frestrictive** language (`Don't allow`, `Disallow`, `Prevent`), suggest a symptom-first rewrite using language from the issue title\n- Example: issue *\"Adding a runtime field that shadows a sorted field causes recovery to fail\"* + changelog \"Don't allow runtime fields to shadow fields used in index sort\" → suggest \"Fix shard recovery failures when runtime fields shadow index sort fields\"\n\n## Step 4: Apply post-edit checklist\n\nApply the systematic pattern checklist from `docs-review-changelog` (Step 4). Add fix-specific deltas below — do not re-derive the full catalog here.\n\n**1. Title standardization fixes (from canonical Title cleanup checklist):**\n\n- **Strip development labels:** Remove prefixes such as `feat:`, `fix:`, `Fix:`, `auto-implement:`, and trailing tracker fragments like `Bugfix -` — also strip `ES|QL|DS`, `Aggs:`, `GPU codec:`, `DiskBBQ -` (see review skill Step 4.1)\n- **Replace slash lists:** Convert `\u002F` enumerations to Oxford comma lists in titles (e.g., `foo\u002Fbar\u002Fbaz` → `foo, bar, and baz`)\n- **No bracket-only team tags:** Replace `[Security Solution]`, `[Query Rules]`, `[Inference]`, and similar with plain, user-facing wording\n- **Strong verbs:** Prefer *Improve validation for...* over *Better validation for...* (use present tense imperative: Fix, Add, Remove)\n- **No buried lede:** If title is vague, fold in concrete detail from description so release notes stand alone\n- **Base-form verb requirement:** Use `Fix`, `Add`, `Remove` (not third-person `Fixes`, `Adds`, `Removes`)\n- **Sentence case:** Follow standard sentence capitalization\n- **Feature\u002Fapp prefix integration:** Detect `[Feature\u002FApp]: [Action]` patterns and suggest contextual alternatives (e.g., \"File upload: Fix bug\" → \"Fix bug in file upload tool\"). Target UI components, feature names, 1-4 word capitalized phrases. Skip technical terms (e.g., \"Authorization: Bearer\"), API references, code identifiers.\n\n**2. Technical term enhancement fixes:**\n\n| Acronym | Action |\n|---|---|\n| `NPE` | Expand to NullPointerException |\n| `UOE` | Expand to UnsupportedOperationException |\n| `PIT` | Expand to point-in-time |\n| `GPU`, `API`, `HTTP`, `OTLP` | Keep uppercase |\n| `ESQL` | Standardize to `ES|QL` |\n| `OSQ` and other domain acronyms | Expand only with PR confirmation |\n\n- Add backticks around class\u002Fmethod names, config keys, API endpoints, or code identifiers where missing\n- Convert British spelling to US English: `serialise` → `serialize`, `colour` → `color`\n- Expand abbreviations where full form would be clearer: `params` → `parameters`\n- **Acronym expansion:** Follow the table above; flag domain acronyms as uncertain without PR context\n- Standardize format: `ESQL` → `ES|QL`\n\n**3. Content quality fixes:**\n\n- Make vague titles more specific based on description content\n- Remove redundant descriptions that just repeat the title without adding context\n- Focus on user-visible outcomes instead of implementation details\n\n**4. YAML formatting fixes:**\n\n- Quote text containing special characters (backticks, colons, brackets) to prevent parse errors\n- Ensure consistent formatting across text fields\n\n**5. UI element formatting fixes:**\n\n- **Quote UI labels if unclear:** Button names, page titles, tabs, dropdown names, column names (e.g., \"Service Inventory\") \n- **Capitalize feature names:** Don't quote feature names — capitalize them (Machine Learning, Elastic Security)\n- **Code identifiers:** Use backticks for field names, parameters, API endpoints (`index.refresh_interval`)\n- **When uncertain:** Note formatting uncertainty if UI label vs feature name is unclear\n\n## Step 4.5: Type-Title Alignment Check\n\nValidate that `type` and `title` verb patterns align (same rules as review Step 4.5). When mismatch detected, provide both options: keep type and rewrite title, or keep title and suggest type change.\n\n**`bug-fix` \u002F `regression`:**\n\n- **Expected verbs:** `Fix`, `Resolve`, `Correct`\n- **Expected pattern:** \"Fix [symptom] in [context]\"\n- **Flag if title uses:** `Improve`, `Enable`, `Update`, `Enhance`\n- **Also flag:** `Default`, `Reserve`, `Ensure` without `Fix` — rewrite as **Fix [what was wrong]**\n- **Preventive\u002Frestrictive framing:** Flag titles that describe a new restriction or validation rather than the user-visible failure, especially when the title does NOT start with `Fix`, `Resolve`, or `Correct`\n  - **Leading patterns to flag:** `Don't`, `Do not`, `Disallow`, `Prevent`, `Reject`, `Block`, `Forbid`, `Prohibit`, `Restrict`, `No longer allow`\n  - **Warning:** Title explains what is now blocked, not what was broken (recovery failure, query error, cluster red, etc.)\n  - **Suggest:** Rewrite as `Fix [symptom] when [condition]` — e.g. \"Don't allow runtime fields to shadow index sort fields\" → \"Fix shard recovery failures when runtime fields shadow index sort fields\"\n  - **Type note:** If the change only adds validation with no prior user-visible failure, consider `enhancement` instead of `bug-fix`\n- **Action:** Suggest either changing type to `enhancement` OR rewriting title to describe what was broken\n\n**`enhancement`:**\n\n- **Expected verbs:** `Improve`, `Update`, `Optimize`, `Enable`, `Expand`, `Enhance`\n- **Expected pattern:** \"Improve [capability] for [context]\"  \n- **Flag if title uses:** `Fix`, `Resolve`, `Correct`\n- **Action:** Suggest either changing type to `bug-fix` OR rewriting title to focus on improvement\u002Fcapability\n\n**`feature`:**\n\n- **Expected verbs:** `Add`, `Introduce`, `Enable`, `Support`  \n- **Expected pattern:** \"Add [new capability] for [users]\"\n- **Flag if title uses:** `Fix`, `Improve` (unless truly new)\n- **Action:** Major new functionality → `feature`. Minor additions → `enhancement`\n\n**`docs`:**\n\n- **Expected verbs:** `Update`, `Add`, `Clarify`, `Document`\n- **Expected pattern:** \"Update [documentation] for [clarity\u002Faccuracy]\"\n\n**`breaking-change` \u002F `deprecation` \u002F `known-issue` \u002F `security`:**\n\n- **Any appropriate verb** but should align with the actual change nature\n- **Focus on clarity** rather than strict verb patterns\n\n### Alignment Assessment Process\n\nFor each changelog:\n\n1. **Extract leading verb** from title (first word after articles\u002Fprepositions)\n2. **Check against expected verbs** for the declared type\n3. **If mismatch detected**, provide both options:\n   - **Option A:** Keep type, rewrite title with appropriate verb\n   - **Option B:** Keep title, suggest more appropriate type\n4. **Include confidence note** explaining which option is more likely correct based on PR context\n\n## Step 4.6: Technical Content Assessment\n\nEvaluate titles for implementation-focused language. Rewrite using `[Fix|Improve|Add] [user-visible outcome] [in context]` — e.g., \"Fix splitValue nullability coercion when constructing ColorSeries\" → \"Fix inline charts with grey time series for ES|QL queries\".\n\n**Flag titles that prioritize implementation over user symptoms:**\n\n- **Class\u002Fmethod references without context**: \"constructing ColorSeries\", \"splitValue nullability\", \"when building QueryNode\"\n- **Internal process descriptions**: \"coercion logic\", \"serialization handling\", \"initialization sequence\"  \n- **Implementation-focused terminology**: Technical terms that don't explain what users experience\n- **Missing user-visible symptoms**: Titles describing code changes without explaining user impact\n- **Preventive vs corrective:** On `bug-fix`\u002F`regression`, 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-fail\n\n### User Impact Assessment\n\n**Recognize titles that already focus on user experience:**\n- Clear symptom descriptions: \"Fix inline charts with grey time series\"\n- User-facing feature names: \"ES|QL queries\", \"dashboard widgets\", \"alert notifications\"\n- Observable behaviors: \"slow loading\", \"incorrect results\", \"missing data\"\n\n### Technical Content Scoring\n\n**High priority for user-focused rewrite:**\n- Title contains multiple technical terms without user context\n- Implementation details dominate over user symptoms  \n- Class names, method names, or internal concepts without explanation\n\n**Low priority for rewrite (formatting only):**\n- Title already describes user-visible symptoms clearly\n- Technical terms support rather than obscure user understanding\n\n## Step 5: Assess fields\n\n**Mode A & B** — identify fields that need improvement (apply to each file processed):\n\n- `title`: too vague, implementation-focused, wrong tense, missing action verb, or over 80 characters\n- `description`: only suggest when title is vague; do not suggest when title is self-explanatory; flag present low-quality content (repeats title, \"See PR\", \"Internal refactoring\")\n- `impact` \u002F `action`: absent on `breaking-change`, `deprecation`, or `known-issue`\n- `areas` if present: must be an array of strings; validate against repository configuration from Step 1 if available (only flag areas not in `docs\u002Fchangelog.yml` pivot.areas section), otherwise use generic validation\n- `feature-id` if present: must be a string; no content quality check needed, just YAML type correctness\n\nAlso check for formatting anti-patterns in existing `description`, `impact`, and `action` values:\n\n- Bare URLs used as link text\n- Code fences missing a language identifier\n- Field names, config keys, commands, or API endpoints written as plain text instead of inline code\n- Unquoted values containing `:` (colon + space), `#`, `[`, `]`, `{`, or `}` — these cause YAML parse errors\n\n**Mode C** — determine which fields to suggest based on `type` (ask if unknown):\n\n- All types: `title` (required), `description` (recommended)\n- `breaking-change`, `deprecation`, `known-issue`: also `impact` and `action`\n\n## Step 6: Generate suggestions\n\n**Character limits:** Target 80\u002F600 characters; prefer clarity over trimming; split excess detail into `description` rather than shortening accurate titles. Suggest optional `description` when technical detail is stripped from the title.\n\n**Confidence tracking:** During suggestion generation, note factors that affect confidence:\n\n- **High confidence:** Routine pattern fixes (development prefixes, obvious YAML quoting), standard terminology, good PR context\n- **Medium confidence:** Technical terms with contextual clues, partial PR context, common Elastic terminology\n- **Low confidence:** Domain-specific terms without context, missing PR details, ambiguous phrasing that could have multiple interpretations, novel or uncommon technical concepts\n\n**Type-Title Alignment Confidence:**\n\n- **High confidence type corrections:**\n  - Clear functional behavior (Fix broken → `bug-fix`)\n  - Clear new capability (Add substantial → `feature`)  \n  - PR context confirms the classification\n\n- **Medium confidence:**\n  - Performance improvements (could be `enhancement` or `bug-fix` depending on whether previous performance was \"broken\")\n  - Minor additions (could be `enhancement` or `feature` depending on scope)\n\n- **Low confidence - provide both options:**\n  - Ambiguous PR context about whether behavior was broken or just suboptimal\n  - Edge cases between types (e.g., \"fixing\" by adding a missing capability)\n\n**Technical Content Assessment Confidence:**\n\n- **High confidence user-impact rewrites:**\n  - Titles heavy in class names, method names, or implementation details without user context\n  - Multiple technical terms that don't explain user symptoms\n  - Clear implementation focus over user experience (e.g., \"Fix splitValue nullability coercion when constructing ColorSeries\")\n\n- **Medium confidence:**\n  - Technical terms mixed with some user-facing language\n  - Partial user context but still implementation-heavy\n\n- **Low priority formatting-only suggestions:**\n  - Titles already focused on user symptoms and impact\n  - Technical terms support rather than obscure user understanding\n  - Clear user-facing language with minimal technical jargon\n\n**Repository Validation Confidence:**\n\n- **High confidence:** Repository configuration loaded successfully, using authoritative area validation\n- **Medium confidence:** Repository config partially available or unclear\n- **Low confidence:** No repository configuration found, using generic validation rules\n\n**Feature\u002Fapp prefix integration patterns:**\n\n- `\"[Feature]: Fix [issue]\"` → `\"Fix [issue] in [feature]\"`\n- `\"[Feature]: Enable [capability]\"` → `\"Enable [capability] for [feature]\"`  \n- `\"[Feature]: Add [functionality]\"` → `\"Add [functionality] to [feature]\"`\n\n**Feature prefix suggestion confidence:**\n\n- **High confidence:** Clear UI component names, known Elastic features, good PR context\n- **Medium confidence:** Ambiguous feature names, partial context\n- **Low confidence:** Could be technical term vs feature name, missing PR details\n\n**Mode A & B** — for each weak or malformed field, show:\n\n- Current value (or \"not present\")\n- One or two suggested alternatives\n- Brief explanation of what makes the suggestion better\n\n**Mode C** — suggest text for each relevant field, then present a ready-to-copy `docs-builder changelog add` command:\n\n```sh\ndocs-builder changelog add \\\n  --type \u003Ctype> \\\n  --title \"\u003Csuggested title>\" \\\n  --description \"\u003Csuggested description>\" \\\n  --impact \"\u003Csuggested impact>\" \\\n  --action \"\u003Csuggested action>\"\n```\n\nOmit `--impact` and `--action` when not applicable to the type. Note that inside shell-quoted values, backticks must be escaped with a backslash (`\\``) and double quotes must be escaped (`\\\"`).\n\nRemind the user that `--products`, `--prs`, `--issues`, and other non-text options must be provided separately. Refer them to `docs-builder changelog add --help` for the full list.\n\n### Enhanced Type-specific guidance\n\n**`bug-fix` \u002F `regression`:**\n\n- **Title pattern:** \"Fix [symptom] in [context]\" (base-form verb)\n- **Common misalignment:** Titles that say \"Improve\" when fixing broken behavior; preventive framing (`Don't allow`, `Disallow`, `Prevent`) instead of symptom-first `Fix [symptom] when [condition]`\n- **Resolution:** If behavior was broken → keep `bug-fix`, rewrite title. If adding new capability → change to `enhancement`. Use issue title language when available (Step 3 cross-check)\n- **Description should explain:** What was wrong, what's now correct\n- **Required fields:** `impact` and `action` recommended for regressions\n\n**`enhancement`:**  \n\n- **Title pattern:** \"Improve [existing capability]\" or \"Add [minor capability]\"\n- **Common misalignment:** Titles that say \"Fix\" for performance improvements\n- **Resolution:** If fixing objectively broken behavior → change to `bug-fix`. If optimizing working functionality → keep `enhancement`, rewrite title\n- **Description should explain:** What users can now do better\u002Ffaster\n\n**`feature`:**\n\n- **Title pattern:** \"Add [substantial new capability]\"  \n- **Common misalignment:** Minor improvements labeled as features\n- **Resolution:** Major new functionality → `feature`. Minor additions → `enhancement`\n- **Description should explain:** What users can now do that they couldn't before\n\n**`breaking-change`:**\n\n- **Title pattern:** Any clear verb, but focus on impact clarity\n- **Required fields:** `impact` must explain what breaks and who is affected; `action` must give ordered, prescriptive migration steps — include code examples if context allows; `subtype` is strongly recommended\n\n**`deprecation`:**\n\n- **Title pattern:** \"Deprecate [functionality]\" or \"Remove [functionality]\" \n- **Required fields:** `action` should name the replacement and link to migration guidance\n- **Optional fields:** `impact` recommended for high-impact deprecations\n\n**`known-issue`:**\n\n- **Title pattern:** Describe the issue clearly, not the investigation\n- **Required fields:** Include all affected versions and contexts; describe any available workaround in `action`\n\n**`docs`:**\n\n- **Title pattern:** \"Update [documentation] for [clarity\u002Faccuracy]\"\n- **Focus:** Content gaps addressed or user experience improvements\n\n## Formatting rules for suggested text\n\nAll suggested `title`, `description`, `impact`, and `action` content must follow these rules.\n\n### YAML quoting\n\nAlways wrap text field values in double quotes in any YAML output. This is mandatory when the value contains `:` (colon + space), `#`, `[`, `]`, `{`, or `}` — these characters cause YAML parse errors in unquoted scalars. Escape any double-quote characters within the value with a backslash (`\\\"`).\n\nGood: `description: \"Removes the --path.home flag: it had no effect\"`\nBad: `description: Removes the --path.home flag: it had no effect`\n\n### Links\n\n- Use descriptive link text — never bare URLs, never \"click here\"\n- Same-repo internal links: absolute path from docs root with `.md` extension — `[Migration guide](\u002Fdeploy-manage\u002Fmigration.md)`\n- Cross-repo links: `scheme:\u002F\u002Fpath` syntax — `[Kibana settings](kibana:\u002F\u002Fmanagement\u002Fsettings.md)`\n- External links: full `https:\u002F\u002F` URL — `[RFC 7231](https:\u002F\u002Ftools.ietf.org\u002Fhtml\u002Frfc7231)`\n- Never use `https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002F...` for internal content — use a cross-repo or relative link instead\n\n### Inline code\n\nUse backticks for field names, parameter names, config keys, API endpoints, commands, and specific values — e.g. ``index.refresh_interval``, ``POST \u002F_reindex``.\n\n### Code blocks\n\n- Always include a language identifier: ````yaml`, ````json`, ````bash`, ````console`\n- Use `console` for Elasticsearch API requests — it renders with a Kibana Dev Console link\n- Add `subs=true` when the block contains docs-builder substitution variables\n- Add callouts (`\u003C1>`, `\u003C2>`) only when annotation adds real value; always follow with a matching ordered list\n\n## Step 7: Present output\n\n**Mode A:** Present \"current → suggested\" pairs for each field. Do not apply changes without user confirmation.\n\n**Mode B:** Present results for each file processed in the directory. For files needing improvements, show \"current → suggested\" pairs. Summarize at the end with a count of files processed and files needing improvements. Do not apply changes without user confirmation.\n\n**Mode C:** Present the suggested field text, followed by the ready-to-copy `docs-builder changelog add` command. Invite the user to confirm or adjust before running the command. Make clear that the skill does not create the file — `changelog add` does.\n\n### Confidence and assumptions section\n\n**All modes:** After presenting suggestions but before requesting confirmation, include a structured \"Confidence + Assumptions\" section that helps writers evaluate suggestion quality:\n\n```markdown\n## Confidence + Assumptions\n\n### Least confident suggestions:\n- [Field]: [Specific suggestion] — [Reason for uncertainty, e.g., \"Limited PR context\", \"Ambiguous technical term\", \"Multiple interpretation options\"]\n\n### Type-title alignment issues:\n- [File]: Type `[current-type]` + Title \"[current-title]\" — [Mismatch description]\n  - **Option A:** Keep type, suggested title: \"[new-title]\"\n  - **Option B:** Keep title, suggested type: `[new-type]`\n  - **Recommendation:** [Which option with reasoning]\n\n### Technical content assessment:\n- [File]: Title \"[current-title]\" — [Technical assessment]\n  - **Issue:** [Implementation-focused vs user-focused description]\n  - **Suggested user-focused rewrite:** \"[user-impact-focused title]\"\n  - **Reasoning:** [Why the rewrite better serves users]\n\n### Terminology uncertainties:\n- [Term\u002Fphrase]: Assumed [interpretation] — [Why uncertain, e.g., \"Could be UI element vs feature name\", \"Missing domain context\"]\n- [Acronym]: Expanded to \"[expansion]\" — [Confidence level: High\u002FMedium\u002FLow based on PR context, jargon-skill patterns, or domain knowledge]\n\n### Assumptions made:\n- [Assumption]: [Rationale, e.g., \"Normalized technical term based on common Elastic usage\", \"Inferred user impact from limited PR description\"]\n\n### Input limitations:\n- [Issue]: [Impact on suggestions, e.g., \"Couldn't fetch PR #1234 - title suggestions based on changelog content only\", \"No issue links - impact\u002Faction suggestions may be incomplete\"]\n\n### Resources referenced:\n- [✓\u002F✗] Canonical guidance: [Source used or fetch failure reason]\n- [✓\u002F✗] PR\u002FIssue context: [What was available or missing]\n```\n\n**Confidence scoring guidance:**\n\n- **Low confidence triggers:** Missing PR context, ambiguous technical terms, conflicting pattern interpretations, failed resource fetches, domain-specific terminology without clear context\n- **Medium confidence:** Partial PR context, standard technical terms, routine pattern fixes with good guidance\n- **High confidence:** Full context available, canonical guidance loaded, routine formatting\u002Fstructural fixes\n\n**Enhanced confidence methodology:**\n\n- **Document all uncertainties:** Explicitly flag each suggestion where multiple interpretations are possible\n- **Track assumption rationales:** Always explain why you chose one interpretation over another\n- **Resource dependency transparency:** Clearly indicate which suggestions depend on successfully loaded canonical guidance vs fallback patterns\n\n**Default behavior:** Default behavior is suggest-only. Only apply changes to disk after explicit user confirmation. After writing changes, re-parse YAML to validate the result.\n\n**Sync 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 output. Note which patterns may need updating and suggest checking the canonical source directly at \u003Chttps:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fcontribute-docs\u002Fcontent-types\u002Fchangelogs>.",{"data":37,"body":47},{"name":4,"version":38,"description":6,"argument-hint":39,"context":40,"allowed-tools":41,"sources":42},"2.4.1","[changelog-file-or-directory] [pr\u002Fissue-context]","fork","Read, Grep, Glob, WebFetch",[43,44,45,46],"https:\u002F\u002Fgithub.com\u002Felastic\u002Fdocs-builder\u002Fblob\u002Fmain\u002Fsrc\u002FElastic.Documentation\u002FReleaseNotes\u002FChangelogEntry.cs","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fcontribute-docs\u002Fcontent-types\u002Fchangelogs","https:\u002F\u002Felastic.github.io\u002Fdocs-builder\u002Fsyntax\u002Flinks\u002F","https:\u002F\u002Felastic.github.io\u002Fdocs-builder\u002Fsyntax\u002Fcode\u002F",{"type":48,"children":49},"root",[50,67,78,85,98,140,148,220,230,236,241,248,302,308,356,366,376,382,392,415,431,436,442,488,494,499,553,561,584,593,601,639,654,717,723,735,743,1002,1010,1163,1248,1256,1274,1282,1295,1303,1353,1359,1379,1401,1716,1728,1837,1850,1949,1961,2017,2051,2074,2080,2085,2151,2157,2170,2178,2244,2250,2258,2276,2282,2290,2308,2316,2329,2335,2345,2433,2458,2524,2540,2595,2601,2625,2635,2668,2676,2784,2792,2866,2874,2904,2912,2963,2971,3001,3010,3028,3044,3219,3247,3282,3288,3306,3419,3431,3496,3508,3562,3574,3616,3628,3683,3695,3721,3733,3764,3770,3800,3806,3856,3875,3881,3959,3965,3983,3989,4059,4065,4075,4085,4110,4116,4126,4805,4813,4844,4852,4885,4894,4910],{"type":51,"tag":52,"props":53,"children":54},"element","p",{},[55,58,65],{"type":56,"value":57},"text","You are a changelog writing assistant for Elastic documentation. You suggest improved text for changelog fields and help draft content for new changelogs. You do not create files — file creation is always done via ",{"type":51,"tag":59,"props":60,"children":62},"code",{"className":61},[],[63],{"type":56,"value":64},"docs-builder changelog add",{"type":56,"value":66},".",{"type":51,"tag":52,"props":68,"children":69},{},[70,76],{"type":51,"tag":71,"props":72,"children":73},"strong",{},[74],{"type":56,"value":75},"Correctness priority:",{"type":56,"value":77}," Accuracy always takes precedence over style — never sacrifice factual correctness for better formatting or phrasing.",{"type":51,"tag":79,"props":80,"children":82},"h2",{"id":81},"how-to-use-this-skill",[83],{"type":56,"value":84},"How to use this skill",{"type":51,"tag":52,"props":86,"children":87},{},[88,90,96],{"type":56,"value":89},"This skill pairs with ",{"type":51,"tag":59,"props":91,"children":93},{"className":92},[],[94],{"type":56,"value":95},"docs-review-changelog",{"type":56,"value":97}," as part of a systematic changelog improvement workflow:",{"type":51,"tag":99,"props":100,"children":101},"ol",{},[102,120,130],{"type":51,"tag":103,"props":104,"children":105},"li",{},[106,111,113,118],{"type":51,"tag":71,"props":107,"children":108},{},[109],{"type":56,"value":110},"Review first:",{"type":56,"value":112}," Use ",{"type":51,"tag":59,"props":114,"children":116},{"className":115},[],[117],{"type":56,"value":95},{"type":56,"value":119}," to identify schema errors, quality warnings, and systematic pattern violations",{"type":51,"tag":103,"props":121,"children":122},{},[123,128],{"type":51,"tag":71,"props":124,"children":125},{},[126],{"type":56,"value":127},"Fix second:",{"type":56,"value":129}," Use this skill to get specific improvement suggestions that address the same pattern catalog",{"type":51,"tag":103,"props":131,"children":132},{},[133,138],{"type":51,"tag":71,"props":134,"children":135},{},[136],{"type":56,"value":137},"Optional iteration:",{"type":56,"value":139}," Run both tools again before merge for final validation",{"type":51,"tag":52,"props":141,"children":142},{},[143],{"type":51,"tag":71,"props":144,"children":145},{},[146],{"type":56,"value":147},"Common workflows:",{"type":51,"tag":149,"props":150,"children":151},"ul",{},[152,170,203],{"type":51,"tag":103,"props":153,"children":154},{},[155,160,162,168],{"type":51,"tag":71,"props":156,"children":157},{},[158],{"type":56,"value":159},"Single file:",{"type":56,"value":161}," ",{"type":51,"tag":59,"props":163,"children":165},{"className":164},[],[166],{"type":56,"value":167},"\u002Fdocs-fix-changelog path\u002Fto\u002Fchangelog.yaml",{"type":56,"value":169}," — suggest improvements for one file",{"type":51,"tag":103,"props":171,"children":172},{},[173,178,179,185,187,193,195,201],{"type":51,"tag":71,"props":174,"children":175},{},[176],{"type":56,"value":177},"Directory mode:",{"type":56,"value":161},{"type":51,"tag":59,"props":180,"children":182},{"className":181},[],[183],{"type":56,"value":184},"\u002Fdocs-fix-changelog path\u002Fto\u002Fdirectory\u002F",{"type":56,"value":186}," — process all ",{"type":51,"tag":59,"props":188,"children":190},{"className":189},[],[191],{"type":56,"value":192},"*.yaml",{"type":56,"value":194}," and ",{"type":51,"tag":59,"props":196,"children":198},{"className":197},[],[199],{"type":56,"value":200},"*.yml",{"type":56,"value":202}," files in the directory",{"type":51,"tag":103,"props":204,"children":205},{},[206,211,212,218],{"type":51,"tag":71,"props":207,"children":208},{},[209],{"type":56,"value":210},"New changelog:",{"type":56,"value":161},{"type":51,"tag":59,"props":213,"children":215},{"className":214},[],[216],{"type":56,"value":217},"\u002Fdocs-fix-changelog \"Create new changelog for: [PR context]\"",{"type":56,"value":219}," — suggest content for a new changelog",{"type":51,"tag":52,"props":221,"children":222},{},[223,228],{"type":51,"tag":71,"props":224,"children":225},{},[226],{"type":56,"value":227},"Default behavior:",{"type":56,"value":229}," Suggest-only mode. Changes are only applied to disk after explicit user confirmation.",{"type":51,"tag":79,"props":231,"children":233},{"id":232},"step-1-load-canonical-guidance-and-repository-configuration",[234],{"type":56,"value":235},"Step 1: Load canonical guidance and repository configuration",{"type":51,"tag":52,"props":237,"children":238},{},[239],{"type":56,"value":240},"To ensure fix suggestions align with current standards and repository-specific rules:",{"type":51,"tag":242,"props":243,"children":245},"h3",{"id":244},"canonical-guidance-loading",[246],{"type":56,"value":247},"Canonical Guidance Loading",{"type":51,"tag":99,"props":249,"children":250},{},[251,275,292],{"type":51,"tag":103,"props":252,"children":253},{},[254,259,261,267,269],{"type":51,"tag":71,"props":255,"children":256},{},[257],{"type":56,"value":258},"First preference:",{"type":56,"value":260}," If a ",{"type":51,"tag":59,"props":262,"children":264},{"className":263},[],[265],{"type":56,"value":266},"docs-content",{"type":56,"value":268}," checkout exists in the workspace, read ",{"type":51,"tag":59,"props":270,"children":272},{"className":271},[],[273],{"type":56,"value":274},"docs-content\u002Fcontribute-docs\u002Fcontent-types\u002Fchangelogs.md",{"type":51,"tag":103,"props":276,"children":277},{},[278,283,285],{"type":51,"tag":71,"props":279,"children":280},{},[281],{"type":56,"value":282},"Second preference:",{"type":56,"value":284}," Fetch the published guide at ",{"type":51,"tag":286,"props":287,"children":290},"a",{"href":44,"rel":288},[289],"nofollow",[291],{"type":56,"value":44},{"type":51,"tag":103,"props":293,"children":294},{},[295,300],{"type":51,"tag":71,"props":296,"children":297},{},[298],{"type":56,"value":299},"Fallback:",{"type":56,"value":301}," Use the embedded post-edit checklist in this skill if the above sources are unavailable",{"type":51,"tag":242,"props":303,"children":305},{"id":304},"repository-configuration-loading",[306],{"type":56,"value":307},"Repository Configuration Loading",{"type":51,"tag":99,"props":309,"children":310},{},[311,337,347],{"type":51,"tag":103,"props":312,"children":313},{},[314,319,321,327,329,335],{"type":51,"tag":71,"props":315,"children":316},{},[317],{"type":56,"value":318},"Area validation:",{"type":56,"value":320}," Look for ",{"type":51,"tag":59,"props":322,"children":324},{"className":323},[],[325],{"type":56,"value":326},"docs\u002Fchangelog.yml",{"type":56,"value":328}," in the workspace to extract valid area values from the ",{"type":51,"tag":59,"props":330,"children":332},{"className":331},[],[333],{"type":56,"value":334},"pivot.areas",{"type":56,"value":336}," section",{"type":51,"tag":103,"props":338,"children":339},{},[340,345],{"type":51,"tag":71,"props":341,"children":342},{},[343],{"type":56,"value":344},"Repository context:",{"type":56,"value":346}," If found, use this as the authoritative source for area validation instead of generic rules",{"type":51,"tag":103,"props":348,"children":349},{},[350,354],{"type":51,"tag":71,"props":351,"children":352},{},[353],{"type":56,"value":299},{"type":56,"value":355}," If no repository config found, note this limitation in confidence tracking",{"type":51,"tag":52,"props":357,"children":358},{},[359,364],{"type":51,"tag":71,"props":360,"children":361},{},[362],{"type":56,"value":363},"Purpose:",{"type":56,"value":365}," This ensures fix suggestions match both current writer guidance and repository-specific validation rules.",{"type":51,"tag":52,"props":367,"children":368},{},[369,374],{"type":51,"tag":71,"props":370,"children":371},{},[372],{"type":56,"value":373},"Track for confidence:",{"type":56,"value":375}," Document whether canonical guidance and repository config were successfully loaded. Failed fetches or fallbacks affect suggestion confidence and should be noted in the final output.",{"type":51,"tag":79,"props":377,"children":379},{"id":378},"operating-modes",[380],{"type":56,"value":381},"Operating modes",{"type":51,"tag":52,"props":383,"children":384},{},[385,390],{"type":51,"tag":71,"props":386,"children":387},{},[388],{"type":56,"value":389},"Mode A — Improve an existing file.",{"type":56,"value":391}," The first argument is a path to a changelog YAML file that already exists. Read it, assess weak or missing fields, and suggest improvements.",{"type":51,"tag":52,"props":393,"children":394},{},[395,400,402,407,408,413],{"type":51,"tag":71,"props":396,"children":397},{},[398],{"type":56,"value":399},"Mode B — Process directory.",{"type":56,"value":401}," The first argument is a path to a directory containing changelog files. Process all ",{"type":51,"tag":59,"props":403,"children":405},{"className":404},[],[406],{"type":56,"value":192},{"type":56,"value":194},{"type":51,"tag":59,"props":409,"children":411},{"className":410},[],[412],{"type":56,"value":200},{"type":56,"value":414}," files in that directory, suggesting improvements for each.",{"type":51,"tag":52,"props":416,"children":417},{},[418,423,425,430],{"type":51,"tag":71,"props":419,"children":420},{},[421],{"type":56,"value":422},"Mode C — Suggest content for a new file.",{"type":56,"value":424}," No file path is given, or the argument doesn't resolve to a readable file or directory. Suggest text for the text-based fields that the user can pass to ",{"type":51,"tag":59,"props":426,"children":428},{"className":427},[],[429],{"type":56,"value":64},{"type":56,"value":66},{"type":51,"tag":52,"props":432,"children":433},{},[434],{"type":56,"value":435},"Detect mode automatically: if the first argument resolves to a readable file, use Mode A. If it resolves to a directory, use Mode B. Otherwise, use Mode C.",{"type":51,"tag":79,"props":437,"children":439},{"id":438},"step-2-determine-mode-and-read-input",[440],{"type":56,"value":441},"Step 2: Determine mode and read input",{"type":51,"tag":149,"props":443,"children":444},{},[445,455,478],{"type":51,"tag":103,"props":446,"children":447},{},[448,453],{"type":51,"tag":71,"props":449,"children":450},{},[451],{"type":56,"value":452},"Mode A",{"type":56,"value":454},": Read and parse the changelog file. If YAML parsing fails, report the error and stop.",{"type":51,"tag":103,"props":456,"children":457},{},[458,463,465,470,471,476],{"type":51,"tag":71,"props":459,"children":460},{},[461],{"type":56,"value":462},"Mode B",{"type":56,"value":464},": Glob for ",{"type":51,"tag":59,"props":466,"children":468},{"className":467},[],[469],{"type":56,"value":192},{"type":56,"value":194},{"type":51,"tag":59,"props":472,"children":474},{"className":473},[],[475],{"type":56,"value":200},{"type":56,"value":477}," files in the directory. Parse each file as YAML. If parsing fails for any file, report the error for that file but continue processing others.",{"type":51,"tag":103,"props":479,"children":480},{},[481,486],{"type":51,"tag":71,"props":482,"children":483},{},[484],{"type":56,"value":485},"Mode C",{"type":56,"value":487},": No file to read. Proceed to Step 3.",{"type":51,"tag":79,"props":489,"children":491},{"id":490},"step-3-resolve-prissue-context",[492],{"type":56,"value":493},"Step 3: Resolve PR\u002Fissue context",{"type":51,"tag":52,"props":495,"children":496},{},[497],{"type":56,"value":498},"Context from a PR or issue produces better suggestions. Use it in this order:",{"type":51,"tag":99,"props":500,"children":501},{},[502,515,520,541],{"type":51,"tag":103,"props":503,"children":504},{},[505,507,513],{"type":56,"value":506},"If the user passed a second argument or quoted text in ",{"type":51,"tag":59,"props":508,"children":510},{"className":509},[],[511],{"type":56,"value":512},"$ARGUMENTS",{"type":56,"value":514},", treat it as context",{"type":51,"tag":103,"props":516,"children":517},{},[518],{"type":56,"value":519},"If the conversation already contains PR or issue title, description, diff, or linked references, use that",{"type":51,"tag":103,"props":521,"children":522},{},[523,525,531,533,539],{"type":56,"value":524},"If ",{"type":51,"tag":59,"props":526,"children":528},{"className":527},[],[529],{"type":56,"value":530},"prs",{"type":56,"value":532}," or ",{"type":51,"tag":59,"props":534,"children":536},{"className":535},[],[537],{"type":56,"value":538},"issues",{"type":56,"value":540}," fields in the existing file (Mode A) contain URLs, use those as implicit context — they identify the PR or issue the changelog describes",{"type":51,"tag":103,"props":542,"children":543},{},[544,546,551],{"type":56,"value":545},"If none of the above is available, ask once: \"Do you have context from a PR or issue (title, description, diff, or linked references) to share? ",{"type":51,"tag":71,"props":547,"children":548},{},[549],{"type":56,"value":550},"If there are acronyms in the title (like 'KI'), please clarify what they stand for.",{"type":56,"value":552}," Richer context produces better suggestions.\" Skip this ask if the user has already declined.",{"type":51,"tag":52,"props":554,"children":555},{},[556],{"type":51,"tag":71,"props":557,"children":558},{},[559],{"type":56,"value":560},"Enhanced context utilization for acronyms:",{"type":51,"tag":149,"props":562,"children":563},{},[564,574],{"type":51,"tag":103,"props":565,"children":566},{},[567,572],{"type":51,"tag":71,"props":568,"children":569},{},[570],{"type":56,"value":571},"Scan for acronym definitions:",{"type":56,"value":573}," In PR titles\u002Fdescriptions, look for patterns like \"KI (Knowledge Indicator)\" or context clues that define abbreviations",{"type":51,"tag":103,"props":575,"children":576},{},[577,582],{"type":51,"tag":71,"props":578,"children":579},{},[580],{"type":56,"value":581},"Cross-reference expansions:",{"type":56,"value":583}," Before expanding acronyms, check if PR context contradicts assumed meaning",{"type":51,"tag":52,"props":585,"children":586},{},[587,591],{"type":51,"tag":71,"props":588,"children":589},{},[590],{"type":56,"value":373},{"type":56,"value":592}," Document what context was available (full PR details, partial info, URLs only, or none) and any fetch failures. This will inform confidence scoring in Step 7.",{"type":51,"tag":52,"props":594,"children":595},{},[596],{"type":51,"tag":71,"props":597,"children":598},{},[599],{"type":56,"value":600},"PR fetch and eligibility:",{"type":51,"tag":149,"props":602,"children":603},{},[604,622,634],{"type":51,"tag":103,"props":605,"children":606},{},[607,609,614,615,620],{"type":56,"value":608},"When ",{"type":51,"tag":59,"props":610,"children":612},{"className":611},[],[613],{"type":56,"value":530},{"type":56,"value":532},{"type":51,"tag":59,"props":616,"children":618},{"className":617},[],[619],{"type":56,"value":538},{"type":56,"value":621}," URLs exist in the file, fetch them before suggesting — required, not optional",{"type":51,"tag":103,"props":623,"children":624},{},[625,627,632],{"type":56,"value":626},"If PR\u002Fissue is test-only, refactor-only, or has no user-visible impact → recommend ",{"type":51,"tag":71,"props":628,"children":629},{},[630],{"type":56,"value":631},"delete file",{"type":56,"value":633},", not a cosmetic rewrite",{"type":51,"tag":103,"props":635,"children":636},{},[637],{"type":56,"value":638},"Directory mode: fetch PR context per file; skip auto-apply on low-confidence rewrites",{"type":51,"tag":52,"props":640,"children":641},{},[642],{"type":51,"tag":71,"props":643,"children":644},{},[645,647,652],{"type":56,"value":646},"Issue-title cross-check (when ",{"type":51,"tag":59,"props":648,"children":650},{"className":649},[],[651],{"type":56,"value":538},{"type":56,"value":653}," URLs are present and fetched successfully):",{"type":51,"tag":149,"props":655,"children":656},{},[657,662,704],{"type":51,"tag":103,"props":658,"children":659},{},[660],{"type":56,"value":661},"Compare issue title tone to changelog title",{"type":51,"tag":103,"props":663,"children":664},{},[665,667,672,674,679,681,687,689,695,696,702],{"type":56,"value":666},"If the issue title describes a ",{"type":51,"tag":71,"props":668,"children":669},{},[670],{"type":56,"value":671},"failure\u002Fsymptom",{"type":56,"value":673}," (e.g. \"causes recovery to fail\", \"cluster health became red\") but the changelog title uses ",{"type":51,"tag":71,"props":675,"children":676},{},[677],{"type":56,"value":678},"preventive\u002Frestrictive",{"type":56,"value":680}," language (",{"type":51,"tag":59,"props":682,"children":684},{"className":683},[],[685],{"type":56,"value":686},"Don't allow",{"type":56,"value":688},", ",{"type":51,"tag":59,"props":690,"children":692},{"className":691},[],[693],{"type":56,"value":694},"Disallow",{"type":56,"value":688},{"type":51,"tag":59,"props":697,"children":699},{"className":698},[],[700],{"type":56,"value":701},"Prevent",{"type":56,"value":703},"), suggest a symptom-first rewrite using language from the issue title",{"type":51,"tag":103,"props":705,"children":706},{},[707,709,715],{"type":56,"value":708},"Example: issue ",{"type":51,"tag":710,"props":711,"children":712},"em",{},[713],{"type":56,"value":714},"\"Adding a runtime field that shadows a sorted field causes recovery to fail\"",{"type":56,"value":716}," + changelog \"Don't allow runtime fields to shadow fields used in index sort\" → suggest \"Fix shard recovery failures when runtime fields shadow index sort fields\"",{"type":51,"tag":79,"props":718,"children":720},{"id":719},"step-4-apply-post-edit-checklist",[721],{"type":56,"value":722},"Step 4: Apply post-edit checklist",{"type":51,"tag":52,"props":724,"children":725},{},[726,728,733],{"type":56,"value":727},"Apply the systematic pattern checklist from ",{"type":51,"tag":59,"props":729,"children":731},{"className":730},[],[732],{"type":56,"value":95},{"type":56,"value":734}," (Step 4). Add fix-specific deltas below — do not re-derive the full catalog here.",{"type":51,"tag":52,"props":736,"children":737},{},[738],{"type":51,"tag":71,"props":739,"children":740},{},[741],{"type":56,"value":742},"1. Title standardization fixes (from canonical Title cleanup checklist):",{"type":51,"tag":149,"props":744,"children":745},{},[746,822,856,888,912,922,974,984],{"type":51,"tag":103,"props":747,"children":748},{},[749,754,756,762,763,769,770,776,777,783,785,791,793,799,800,806,807,813,814,820],{"type":51,"tag":71,"props":750,"children":751},{},[752],{"type":56,"value":753},"Strip development labels:",{"type":56,"value":755}," Remove prefixes such as ",{"type":51,"tag":59,"props":757,"children":759},{"className":758},[],[760],{"type":56,"value":761},"feat:",{"type":56,"value":688},{"type":51,"tag":59,"props":764,"children":766},{"className":765},[],[767],{"type":56,"value":768},"fix:",{"type":56,"value":688},{"type":51,"tag":59,"props":771,"children":773},{"className":772},[],[774],{"type":56,"value":775},"Fix:",{"type":56,"value":688},{"type":51,"tag":59,"props":778,"children":780},{"className":779},[],[781],{"type":56,"value":782},"auto-implement:",{"type":56,"value":784},", and trailing tracker fragments like ",{"type":51,"tag":59,"props":786,"children":788},{"className":787},[],[789],{"type":56,"value":790},"Bugfix -",{"type":56,"value":792}," — also strip ",{"type":51,"tag":59,"props":794,"children":796},{"className":795},[],[797],{"type":56,"value":798},"ES|QL|DS",{"type":56,"value":688},{"type":51,"tag":59,"props":801,"children":803},{"className":802},[],[804],{"type":56,"value":805},"Aggs:",{"type":56,"value":688},{"type":51,"tag":59,"props":808,"children":810},{"className":809},[],[811],{"type":56,"value":812},"GPU codec:",{"type":56,"value":688},{"type":51,"tag":59,"props":815,"children":817},{"className":816},[],[818],{"type":56,"value":819},"DiskBBQ -",{"type":56,"value":821}," (see review skill Step 4.1)",{"type":51,"tag":103,"props":823,"children":824},{},[825,830,832,838,840,846,848,854],{"type":51,"tag":71,"props":826,"children":827},{},[828],{"type":56,"value":829},"Replace slash lists:",{"type":56,"value":831}," Convert ",{"type":51,"tag":59,"props":833,"children":835},{"className":834},[],[836],{"type":56,"value":837},"\u002F",{"type":56,"value":839}," enumerations to Oxford comma lists in titles (e.g., ",{"type":51,"tag":59,"props":841,"children":843},{"className":842},[],[844],{"type":56,"value":845},"foo\u002Fbar\u002Fbaz",{"type":56,"value":847}," → ",{"type":51,"tag":59,"props":849,"children":851},{"className":850},[],[852],{"type":56,"value":853},"foo, bar, and baz",{"type":56,"value":855},")",{"type":51,"tag":103,"props":857,"children":858},{},[859,864,866,872,873,879,880,886],{"type":51,"tag":71,"props":860,"children":861},{},[862],{"type":56,"value":863},"No bracket-only team tags:",{"type":56,"value":865}," Replace ",{"type":51,"tag":59,"props":867,"children":869},{"className":868},[],[870],{"type":56,"value":871},"[Security Solution]",{"type":56,"value":688},{"type":51,"tag":59,"props":874,"children":876},{"className":875},[],[877],{"type":56,"value":878},"[Query Rules]",{"type":56,"value":688},{"type":51,"tag":59,"props":881,"children":883},{"className":882},[],[884],{"type":56,"value":885},"[Inference]",{"type":56,"value":887},", and similar with plain, user-facing wording",{"type":51,"tag":103,"props":889,"children":890},{},[891,896,898,903,905,910],{"type":51,"tag":71,"props":892,"children":893},{},[894],{"type":56,"value":895},"Strong verbs:",{"type":56,"value":897}," Prefer ",{"type":51,"tag":710,"props":899,"children":900},{},[901],{"type":56,"value":902},"Improve validation for...",{"type":56,"value":904}," over ",{"type":51,"tag":710,"props":906,"children":907},{},[908],{"type":56,"value":909},"Better validation for...",{"type":56,"value":911}," (use present tense imperative: Fix, Add, Remove)",{"type":51,"tag":103,"props":913,"children":914},{},[915,920],{"type":51,"tag":71,"props":916,"children":917},{},[918],{"type":56,"value":919},"No buried lede:",{"type":56,"value":921}," If title is vague, fold in concrete detail from description so release notes stand alone",{"type":51,"tag":103,"props":923,"children":924},{},[925,930,931,937,938,944,945,951,953,959,960,966,967,973],{"type":51,"tag":71,"props":926,"children":927},{},[928],{"type":56,"value":929},"Base-form verb requirement:",{"type":56,"value":112},{"type":51,"tag":59,"props":932,"children":934},{"className":933},[],[935],{"type":56,"value":936},"Fix",{"type":56,"value":688},{"type":51,"tag":59,"props":939,"children":941},{"className":940},[],[942],{"type":56,"value":943},"Add",{"type":56,"value":688},{"type":51,"tag":59,"props":946,"children":948},{"className":947},[],[949],{"type":56,"value":950},"Remove",{"type":56,"value":952}," (not third-person ",{"type":51,"tag":59,"props":954,"children":956},{"className":955},[],[957],{"type":56,"value":958},"Fixes",{"type":56,"value":688},{"type":51,"tag":59,"props":961,"children":963},{"className":962},[],[964],{"type":56,"value":965},"Adds",{"type":56,"value":688},{"type":51,"tag":59,"props":968,"children":970},{"className":969},[],[971],{"type":56,"value":972},"Removes",{"type":56,"value":855},{"type":51,"tag":103,"props":975,"children":976},{},[977,982],{"type":51,"tag":71,"props":978,"children":979},{},[980],{"type":56,"value":981},"Sentence case:",{"type":56,"value":983}," Follow standard sentence capitalization",{"type":51,"tag":103,"props":985,"children":986},{},[987,992,994,1000],{"type":51,"tag":71,"props":988,"children":989},{},[990],{"type":56,"value":991},"Feature\u002Fapp prefix integration:",{"type":56,"value":993}," Detect ",{"type":51,"tag":59,"props":995,"children":997},{"className":996},[],[998],{"type":56,"value":999},"[Feature\u002FApp]: [Action]",{"type":56,"value":1001}," patterns and suggest contextual alternatives (e.g., \"File upload: Fix bug\" → \"Fix bug in file upload tool\"). Target UI components, feature names, 1-4 word capitalized phrases. Skip technical terms (e.g., \"Authorization: Bearer\"), API references, code identifiers.",{"type":51,"tag":52,"props":1003,"children":1004},{},[1005],{"type":51,"tag":71,"props":1006,"children":1007},{},[1008],{"type":56,"value":1009},"2. Technical term enhancement fixes:",{"type":51,"tag":1011,"props":1012,"children":1013},"table",{},[1014,1033],{"type":51,"tag":1015,"props":1016,"children":1017},"thead",{},[1018],{"type":51,"tag":1019,"props":1020,"children":1021},"tr",{},[1022,1028],{"type":51,"tag":1023,"props":1024,"children":1025},"th",{},[1026],{"type":56,"value":1027},"Acronym",{"type":51,"tag":1023,"props":1029,"children":1030},{},[1031],{"type":56,"value":1032},"Action",{"type":51,"tag":1034,"props":1035,"children":1036},"tbody",{},[1037,1055,1072,1089,1127,1144],{"type":51,"tag":1019,"props":1038,"children":1039},{},[1040,1050],{"type":51,"tag":1041,"props":1042,"children":1043},"td",{},[1044],{"type":51,"tag":59,"props":1045,"children":1047},{"className":1046},[],[1048],{"type":56,"value":1049},"NPE",{"type":51,"tag":1041,"props":1051,"children":1052},{},[1053],{"type":56,"value":1054},"Expand to NullPointerException",{"type":51,"tag":1019,"props":1056,"children":1057},{},[1058,1067],{"type":51,"tag":1041,"props":1059,"children":1060},{},[1061],{"type":51,"tag":59,"props":1062,"children":1064},{"className":1063},[],[1065],{"type":56,"value":1066},"UOE",{"type":51,"tag":1041,"props":1068,"children":1069},{},[1070],{"type":56,"value":1071},"Expand to UnsupportedOperationException",{"type":51,"tag":1019,"props":1073,"children":1074},{},[1075,1084],{"type":51,"tag":1041,"props":1076,"children":1077},{},[1078],{"type":51,"tag":59,"props":1079,"children":1081},{"className":1080},[],[1082],{"type":56,"value":1083},"PIT",{"type":51,"tag":1041,"props":1085,"children":1086},{},[1087],{"type":56,"value":1088},"Expand to point-in-time",{"type":51,"tag":1019,"props":1090,"children":1091},{},[1092,1122],{"type":51,"tag":1041,"props":1093,"children":1094},{},[1095,1101,1102,1108,1109,1115,1116],{"type":51,"tag":59,"props":1096,"children":1098},{"className":1097},[],[1099],{"type":56,"value":1100},"GPU",{"type":56,"value":688},{"type":51,"tag":59,"props":1103,"children":1105},{"className":1104},[],[1106],{"type":56,"value":1107},"API",{"type":56,"value":688},{"type":51,"tag":59,"props":1110,"children":1112},{"className":1111},[],[1113],{"type":56,"value":1114},"HTTP",{"type":56,"value":688},{"type":51,"tag":59,"props":1117,"children":1119},{"className":1118},[],[1120],{"type":56,"value":1121},"OTLP",{"type":51,"tag":1041,"props":1123,"children":1124},{},[1125],{"type":56,"value":1126},"Keep uppercase",{"type":51,"tag":1019,"props":1128,"children":1129},{},[1130,1139],{"type":51,"tag":1041,"props":1131,"children":1132},{},[1133],{"type":51,"tag":59,"props":1134,"children":1136},{"className":1135},[],[1137],{"type":56,"value":1138},"ESQL",{"type":51,"tag":1041,"props":1140,"children":1141},{},[1142],{"type":56,"value":1143},"Standardize to `ES",{"type":51,"tag":1019,"props":1145,"children":1146},{},[1147,1158],{"type":51,"tag":1041,"props":1148,"children":1149},{},[1150,1156],{"type":51,"tag":59,"props":1151,"children":1153},{"className":1152},[],[1154],{"type":56,"value":1155},"OSQ",{"type":56,"value":1157}," and other domain acronyms",{"type":51,"tag":1041,"props":1159,"children":1160},{},[1161],{"type":56,"value":1162},"Expand only with PR confirmation",{"type":51,"tag":149,"props":1164,"children":1165},{},[1166,1171,1203,1221,1231],{"type":51,"tag":103,"props":1167,"children":1168},{},[1169],{"type":56,"value":1170},"Add backticks around class\u002Fmethod names, config keys, API endpoints, or code identifiers where missing",{"type":51,"tag":103,"props":1172,"children":1173},{},[1174,1176,1182,1183,1189,1190,1196,1197],{"type":56,"value":1175},"Convert British spelling to US English: ",{"type":51,"tag":59,"props":1177,"children":1179},{"className":1178},[],[1180],{"type":56,"value":1181},"serialise",{"type":56,"value":847},{"type":51,"tag":59,"props":1184,"children":1186},{"className":1185},[],[1187],{"type":56,"value":1188},"serialize",{"type":56,"value":688},{"type":51,"tag":59,"props":1191,"children":1193},{"className":1192},[],[1194],{"type":56,"value":1195},"colour",{"type":56,"value":847},{"type":51,"tag":59,"props":1198,"children":1200},{"className":1199},[],[1201],{"type":56,"value":1202},"color",{"type":51,"tag":103,"props":1204,"children":1205},{},[1206,1208,1214,1215],{"type":56,"value":1207},"Expand abbreviations where full form would be clearer: ",{"type":51,"tag":59,"props":1209,"children":1211},{"className":1210},[],[1212],{"type":56,"value":1213},"params",{"type":56,"value":847},{"type":51,"tag":59,"props":1216,"children":1218},{"className":1217},[],[1219],{"type":56,"value":1220},"parameters",{"type":51,"tag":103,"props":1222,"children":1223},{},[1224,1229],{"type":51,"tag":71,"props":1225,"children":1226},{},[1227],{"type":56,"value":1228},"Acronym expansion:",{"type":56,"value":1230}," Follow the table above; flag domain acronyms as uncertain without PR context",{"type":51,"tag":103,"props":1232,"children":1233},{},[1234,1236,1241,1242],{"type":56,"value":1235},"Standardize format: ",{"type":51,"tag":59,"props":1237,"children":1239},{"className":1238},[],[1240],{"type":56,"value":1138},{"type":56,"value":847},{"type":51,"tag":59,"props":1243,"children":1245},{"className":1244},[],[1246],{"type":56,"value":1247},"ES|QL",{"type":51,"tag":52,"props":1249,"children":1250},{},[1251],{"type":51,"tag":71,"props":1252,"children":1253},{},[1254],{"type":56,"value":1255},"3. Content quality fixes:",{"type":51,"tag":149,"props":1257,"children":1258},{},[1259,1264,1269],{"type":51,"tag":103,"props":1260,"children":1261},{},[1262],{"type":56,"value":1263},"Make vague titles more specific based on description content",{"type":51,"tag":103,"props":1265,"children":1266},{},[1267],{"type":56,"value":1268},"Remove redundant descriptions that just repeat the title without adding context",{"type":51,"tag":103,"props":1270,"children":1271},{},[1272],{"type":56,"value":1273},"Focus on user-visible outcomes instead of implementation details",{"type":51,"tag":52,"props":1275,"children":1276},{},[1277],{"type":51,"tag":71,"props":1278,"children":1279},{},[1280],{"type":56,"value":1281},"4. YAML formatting fixes:",{"type":51,"tag":149,"props":1283,"children":1284},{},[1285,1290],{"type":51,"tag":103,"props":1286,"children":1287},{},[1288],{"type":56,"value":1289},"Quote text containing special characters (backticks, colons, brackets) to prevent parse errors",{"type":51,"tag":103,"props":1291,"children":1292},{},[1293],{"type":56,"value":1294},"Ensure consistent formatting across text fields",{"type":51,"tag":52,"props":1296,"children":1297},{},[1298],{"type":51,"tag":71,"props":1299,"children":1300},{},[1301],{"type":56,"value":1302},"5. UI element formatting fixes:",{"type":51,"tag":149,"props":1304,"children":1305},{},[1306,1316,1326,1343],{"type":51,"tag":103,"props":1307,"children":1308},{},[1309,1314],{"type":51,"tag":71,"props":1310,"children":1311},{},[1312],{"type":56,"value":1313},"Quote UI labels if unclear:",{"type":56,"value":1315}," Button names, page titles, tabs, dropdown names, column names (e.g., \"Service Inventory\")",{"type":51,"tag":103,"props":1317,"children":1318},{},[1319,1324],{"type":51,"tag":71,"props":1320,"children":1321},{},[1322],{"type":56,"value":1323},"Capitalize feature names:",{"type":56,"value":1325}," Don't quote feature names — capitalize them (Machine Learning, Elastic Security)",{"type":51,"tag":103,"props":1327,"children":1328},{},[1329,1334,1336,1342],{"type":51,"tag":71,"props":1330,"children":1331},{},[1332],{"type":56,"value":1333},"Code identifiers:",{"type":56,"value":1335}," Use backticks for field names, parameters, API endpoints (",{"type":51,"tag":59,"props":1337,"children":1339},{"className":1338},[],[1340],{"type":56,"value":1341},"index.refresh_interval",{"type":56,"value":855},{"type":51,"tag":103,"props":1344,"children":1345},{},[1346,1351],{"type":51,"tag":71,"props":1347,"children":1348},{},[1349],{"type":56,"value":1350},"When uncertain:",{"type":56,"value":1352}," Note formatting uncertainty if UI label vs feature name is unclear",{"type":51,"tag":79,"props":1354,"children":1356},{"id":1355},"step-45-type-title-alignment-check",[1357],{"type":56,"value":1358},"Step 4.5: Type-Title Alignment Check",{"type":51,"tag":52,"props":1360,"children":1361},{},[1362,1364,1370,1371,1377],{"type":56,"value":1363},"Validate that ",{"type":51,"tag":59,"props":1365,"children":1367},{"className":1366},[],[1368],{"type":56,"value":1369},"type",{"type":56,"value":194},{"type":51,"tag":59,"props":1372,"children":1374},{"className":1373},[],[1375],{"type":56,"value":1376},"title",{"type":56,"value":1378}," verb patterns align (same rules as review Step 4.5). When mismatch detected, provide both options: keep type and rewrite title, or keep title and suggest type change.",{"type":51,"tag":52,"props":1380,"children":1381},{},[1382],{"type":51,"tag":71,"props":1383,"children":1384},{},[1385,1391,1393,1399],{"type":51,"tag":59,"props":1386,"children":1388},{"className":1387},[],[1389],{"type":56,"value":1390},"bug-fix",{"type":56,"value":1392}," \u002F ",{"type":51,"tag":59,"props":1394,"children":1396},{"className":1395},[],[1397],{"type":56,"value":1398},"regression",{"type":56,"value":1400},":",{"type":51,"tag":149,"props":1402,"children":1403},{},[1404,1432,1457,1493,1541,1699],{"type":51,"tag":103,"props":1405,"children":1406},{},[1407,1412,1413,1418,1419,1425,1426],{"type":51,"tag":71,"props":1408,"children":1409},{},[1410],{"type":56,"value":1411},"Expected verbs:",{"type":56,"value":161},{"type":51,"tag":59,"props":1414,"children":1416},{"className":1415},[],[1417],{"type":56,"value":936},{"type":56,"value":688},{"type":51,"tag":59,"props":1420,"children":1422},{"className":1421},[],[1423],{"type":56,"value":1424},"Resolve",{"type":56,"value":688},{"type":51,"tag":59,"props":1427,"children":1429},{"className":1428},[],[1430],{"type":56,"value":1431},"Correct",{"type":51,"tag":103,"props":1433,"children":1434},{},[1435,1440,1442,1448,1450,1455],{"type":51,"tag":71,"props":1436,"children":1437},{},[1438],{"type":56,"value":1439},"Expected pattern:",{"type":56,"value":1441}," \"Fix ",{"type":51,"tag":1443,"props":1444,"children":1445},"span",{},[1446],{"type":56,"value":1447},"symptom",{"type":56,"value":1449}," in ",{"type":51,"tag":1443,"props":1451,"children":1452},{},[1453],{"type":56,"value":1454},"context",{"type":56,"value":1456},"\"",{"type":51,"tag":103,"props":1458,"children":1459},{},[1460,1465,1466,1472,1473,1479,1480,1486,1487],{"type":51,"tag":71,"props":1461,"children":1462},{},[1463],{"type":56,"value":1464},"Flag if title uses:",{"type":56,"value":161},{"type":51,"tag":59,"props":1467,"children":1469},{"className":1468},[],[1470],{"type":56,"value":1471},"Improve",{"type":56,"value":688},{"type":51,"tag":59,"props":1474,"children":1476},{"className":1475},[],[1477],{"type":56,"value":1478},"Enable",{"type":56,"value":688},{"type":51,"tag":59,"props":1481,"children":1483},{"className":1482},[],[1484],{"type":56,"value":1485},"Update",{"type":56,"value":688},{"type":51,"tag":59,"props":1488,"children":1490},{"className":1489},[],[1491],{"type":56,"value":1492},"Enhance",{"type":51,"tag":103,"props":1494,"children":1495},{},[1496,1501,1502,1508,1509,1515,1516,1522,1524,1529,1531],{"type":51,"tag":71,"props":1497,"children":1498},{},[1499],{"type":56,"value":1500},"Also flag:",{"type":56,"value":161},{"type":51,"tag":59,"props":1503,"children":1505},{"className":1504},[],[1506],{"type":56,"value":1507},"Default",{"type":56,"value":688},{"type":51,"tag":59,"props":1510,"children":1512},{"className":1511},[],[1513],{"type":56,"value":1514},"Reserve",{"type":56,"value":688},{"type":51,"tag":59,"props":1517,"children":1519},{"className":1518},[],[1520],{"type":56,"value":1521},"Ensure",{"type":56,"value":1523}," without ",{"type":51,"tag":59,"props":1525,"children":1527},{"className":1526},[],[1528],{"type":56,"value":936},{"type":56,"value":1530}," — rewrite as ",{"type":51,"tag":71,"props":1532,"children":1533},{},[1534,1536],{"type":56,"value":1535},"Fix ",{"type":51,"tag":1443,"props":1537,"children":1538},{},[1539],{"type":56,"value":1540},"what was wrong",{"type":51,"tag":103,"props":1542,"children":1543},{},[1544,1549,1551,1556,1557,1562,1564,1569],{"type":51,"tag":71,"props":1545,"children":1546},{},[1547],{"type":56,"value":1548},"Preventive\u002Frestrictive framing:",{"type":56,"value":1550}," Flag titles that describe a new restriction or validation rather than the user-visible failure, especially when the title does NOT start with ",{"type":51,"tag":59,"props":1552,"children":1554},{"className":1553},[],[1555],{"type":56,"value":936},{"type":56,"value":688},{"type":51,"tag":59,"props":1558,"children":1560},{"className":1559},[],[1561],{"type":56,"value":1424},{"type":56,"value":1563},", or ",{"type":51,"tag":59,"props":1565,"children":1567},{"className":1566},[],[1568],{"type":56,"value":1431},{"type":51,"tag":149,"props":1570,"children":1571},{},[1572,1648,1658,1676],{"type":51,"tag":103,"props":1573,"children":1574},{},[1575,1580,1581,1587,1588,1594,1595,1600,1601,1606,1607,1613,1614,1620,1621,1627,1628,1634,1635,1641,1642],{"type":51,"tag":71,"props":1576,"children":1577},{},[1578],{"type":56,"value":1579},"Leading patterns to flag:",{"type":56,"value":161},{"type":51,"tag":59,"props":1582,"children":1584},{"className":1583},[],[1585],{"type":56,"value":1586},"Don't",{"type":56,"value":688},{"type":51,"tag":59,"props":1589,"children":1591},{"className":1590},[],[1592],{"type":56,"value":1593},"Do not",{"type":56,"value":688},{"type":51,"tag":59,"props":1596,"children":1598},{"className":1597},[],[1599],{"type":56,"value":694},{"type":56,"value":688},{"type":51,"tag":59,"props":1602,"children":1604},{"className":1603},[],[1605],{"type":56,"value":701},{"type":56,"value":688},{"type":51,"tag":59,"props":1608,"children":1610},{"className":1609},[],[1611],{"type":56,"value":1612},"Reject",{"type":56,"value":688},{"type":51,"tag":59,"props":1615,"children":1617},{"className":1616},[],[1618],{"type":56,"value":1619},"Block",{"type":56,"value":688},{"type":51,"tag":59,"props":1622,"children":1624},{"className":1623},[],[1625],{"type":56,"value":1626},"Forbid",{"type":56,"value":688},{"type":51,"tag":59,"props":1629,"children":1631},{"className":1630},[],[1632],{"type":56,"value":1633},"Prohibit",{"type":56,"value":688},{"type":51,"tag":59,"props":1636,"children":1638},{"className":1637},[],[1639],{"type":56,"value":1640},"Restrict",{"type":56,"value":688},{"type":51,"tag":59,"props":1643,"children":1645},{"className":1644},[],[1646],{"type":56,"value":1647},"No longer allow",{"type":51,"tag":103,"props":1649,"children":1650},{},[1651,1656],{"type":51,"tag":71,"props":1652,"children":1653},{},[1654],{"type":56,"value":1655},"Warning:",{"type":56,"value":1657}," Title explains what is now blocked, not what was broken (recovery failure, query error, cluster red, etc.)",{"type":51,"tag":103,"props":1659,"children":1660},{},[1661,1666,1668,1674],{"type":51,"tag":71,"props":1662,"children":1663},{},[1664],{"type":56,"value":1665},"Suggest:",{"type":56,"value":1667}," Rewrite as ",{"type":51,"tag":59,"props":1669,"children":1671},{"className":1670},[],[1672],{"type":56,"value":1673},"Fix [symptom] when [condition]",{"type":56,"value":1675}," — e.g. \"Don't allow runtime fields to shadow index sort fields\" → \"Fix shard recovery failures when runtime fields shadow index sort fields\"",{"type":51,"tag":103,"props":1677,"children":1678},{},[1679,1684,1686,1692,1694],{"type":51,"tag":71,"props":1680,"children":1681},{},[1682],{"type":56,"value":1683},"Type note:",{"type":56,"value":1685}," If the change only adds validation with no prior user-visible failure, consider ",{"type":51,"tag":59,"props":1687,"children":1689},{"className":1688},[],[1690],{"type":56,"value":1691},"enhancement",{"type":56,"value":1693}," instead of ",{"type":51,"tag":59,"props":1695,"children":1697},{"className":1696},[],[1698],{"type":56,"value":1390},{"type":51,"tag":103,"props":1700,"children":1701},{},[1702,1707,1709,1714],{"type":51,"tag":71,"props":1703,"children":1704},{},[1705],{"type":56,"value":1706},"Action:",{"type":56,"value":1708}," Suggest either changing type to ",{"type":51,"tag":59,"props":1710,"children":1712},{"className":1711},[],[1713],{"type":56,"value":1691},{"type":56,"value":1715}," OR rewriting title to describe what was broken",{"type":51,"tag":52,"props":1717,"children":1718},{},[1719],{"type":51,"tag":71,"props":1720,"children":1721},{},[1722,1727],{"type":51,"tag":59,"props":1723,"children":1725},{"className":1724},[],[1726],{"type":56,"value":1691},{"type":56,"value":1400},{"type":51,"tag":149,"props":1729,"children":1730},{},[1731,1776,1797,1822],{"type":51,"tag":103,"props":1732,"children":1733},{},[1734,1738,1739,1744,1745,1750,1751,1757,1758,1763,1764,1770,1771],{"type":51,"tag":71,"props":1735,"children":1736},{},[1737],{"type":56,"value":1411},{"type":56,"value":161},{"type":51,"tag":59,"props":1740,"children":1742},{"className":1741},[],[1743],{"type":56,"value":1471},{"type":56,"value":688},{"type":51,"tag":59,"props":1746,"children":1748},{"className":1747},[],[1749],{"type":56,"value":1485},{"type":56,"value":688},{"type":51,"tag":59,"props":1752,"children":1754},{"className":1753},[],[1755],{"type":56,"value":1756},"Optimize",{"type":56,"value":688},{"type":51,"tag":59,"props":1759,"children":1761},{"className":1760},[],[1762],{"type":56,"value":1478},{"type":56,"value":688},{"type":51,"tag":59,"props":1765,"children":1767},{"className":1766},[],[1768],{"type":56,"value":1769},"Expand",{"type":56,"value":688},{"type":51,"tag":59,"props":1772,"children":1774},{"className":1773},[],[1775],{"type":56,"value":1492},{"type":51,"tag":103,"props":1777,"children":1778},{},[1779,1783,1785,1790,1792,1796],{"type":51,"tag":71,"props":1780,"children":1781},{},[1782],{"type":56,"value":1439},{"type":56,"value":1784}," \"Improve ",{"type":51,"tag":1443,"props":1786,"children":1787},{},[1788],{"type":56,"value":1789},"capability",{"type":56,"value":1791}," for ",{"type":51,"tag":1443,"props":1793,"children":1794},{},[1795],{"type":56,"value":1454},{"type":56,"value":1456},{"type":51,"tag":103,"props":1798,"children":1799},{},[1800,1804,1805,1810,1811,1816,1817],{"type":51,"tag":71,"props":1801,"children":1802},{},[1803],{"type":56,"value":1464},{"type":56,"value":161},{"type":51,"tag":59,"props":1806,"children":1808},{"className":1807},[],[1809],{"type":56,"value":936},{"type":56,"value":688},{"type":51,"tag":59,"props":1812,"children":1814},{"className":1813},[],[1815],{"type":56,"value":1424},{"type":56,"value":688},{"type":51,"tag":59,"props":1818,"children":1820},{"className":1819},[],[1821],{"type":56,"value":1431},{"type":51,"tag":103,"props":1823,"children":1824},{},[1825,1829,1830,1835],{"type":51,"tag":71,"props":1826,"children":1827},{},[1828],{"type":56,"value":1706},{"type":56,"value":1708},{"type":51,"tag":59,"props":1831,"children":1833},{"className":1832},[],[1834],{"type":56,"value":1390},{"type":56,"value":1836}," OR rewriting title to focus on improvement\u002Fcapability",{"type":51,"tag":52,"props":1838,"children":1839},{},[1840],{"type":51,"tag":71,"props":1841,"children":1842},{},[1843,1849],{"type":51,"tag":59,"props":1844,"children":1846},{"className":1845},[],[1847],{"type":56,"value":1848},"feature",{"type":56,"value":1400},{"type":51,"tag":149,"props":1851,"children":1852},{},[1853,1886,1907,1928],{"type":51,"tag":103,"props":1854,"children":1855},{},[1856,1860,1861,1866,1867,1873,1874,1879,1880],{"type":51,"tag":71,"props":1857,"children":1858},{},[1859],{"type":56,"value":1411},{"type":56,"value":161},{"type":51,"tag":59,"props":1862,"children":1864},{"className":1863},[],[1865],{"type":56,"value":943},{"type":56,"value":688},{"type":51,"tag":59,"props":1868,"children":1870},{"className":1869},[],[1871],{"type":56,"value":1872},"Introduce",{"type":56,"value":688},{"type":51,"tag":59,"props":1875,"children":1877},{"className":1876},[],[1878],{"type":56,"value":1478},{"type":56,"value":688},{"type":51,"tag":59,"props":1881,"children":1883},{"className":1882},[],[1884],{"type":56,"value":1885},"Support",{"type":51,"tag":103,"props":1887,"children":1888},{},[1889,1893,1895,1900,1901,1906],{"type":51,"tag":71,"props":1890,"children":1891},{},[1892],{"type":56,"value":1439},{"type":56,"value":1894}," \"Add ",{"type":51,"tag":1443,"props":1896,"children":1897},{},[1898],{"type":56,"value":1899},"new capability",{"type":56,"value":1791},{"type":51,"tag":1443,"props":1902,"children":1903},{},[1904],{"type":56,"value":1905},"users",{"type":56,"value":1456},{"type":51,"tag":103,"props":1908,"children":1909},{},[1910,1914,1915,1920,1921,1926],{"type":51,"tag":71,"props":1911,"children":1912},{},[1913],{"type":56,"value":1464},{"type":56,"value":161},{"type":51,"tag":59,"props":1916,"children":1918},{"className":1917},[],[1919],{"type":56,"value":936},{"type":56,"value":688},{"type":51,"tag":59,"props":1922,"children":1924},{"className":1923},[],[1925],{"type":56,"value":1471},{"type":56,"value":1927}," (unless truly new)",{"type":51,"tag":103,"props":1929,"children":1930},{},[1931,1935,1937,1942,1944],{"type":51,"tag":71,"props":1932,"children":1933},{},[1934],{"type":56,"value":1706},{"type":56,"value":1936}," Major new functionality → ",{"type":51,"tag":59,"props":1938,"children":1940},{"className":1939},[],[1941],{"type":56,"value":1848},{"type":56,"value":1943},". Minor additions → ",{"type":51,"tag":59,"props":1945,"children":1947},{"className":1946},[],[1948],{"type":56,"value":1691},{"type":51,"tag":52,"props":1950,"children":1951},{},[1952],{"type":51,"tag":71,"props":1953,"children":1954},{},[1955,1960],{"type":51,"tag":59,"props":1956,"children":1958},{"className":1957},[],[1959],{"type":56,"value":29},{"type":56,"value":1400},{"type":51,"tag":149,"props":1962,"children":1963},{},[1964,1997],{"type":51,"tag":103,"props":1965,"children":1966},{},[1967,1971,1972,1977,1978,1983,1984,1990,1991],{"type":51,"tag":71,"props":1968,"children":1969},{},[1970],{"type":56,"value":1411},{"type":56,"value":161},{"type":51,"tag":59,"props":1973,"children":1975},{"className":1974},[],[1976],{"type":56,"value":1485},{"type":56,"value":688},{"type":51,"tag":59,"props":1979,"children":1981},{"className":1980},[],[1982],{"type":56,"value":943},{"type":56,"value":688},{"type":51,"tag":59,"props":1985,"children":1987},{"className":1986},[],[1988],{"type":56,"value":1989},"Clarify",{"type":56,"value":688},{"type":51,"tag":59,"props":1992,"children":1994},{"className":1993},[],[1995],{"type":56,"value":1996},"Document",{"type":51,"tag":103,"props":1998,"children":1999},{},[2000,2004,2006,2010,2011,2016],{"type":51,"tag":71,"props":2001,"children":2002},{},[2003],{"type":56,"value":1439},{"type":56,"value":2005}," \"Update ",{"type":51,"tag":1443,"props":2007,"children":2008},{},[2009],{"type":56,"value":14},{"type":56,"value":1791},{"type":51,"tag":1443,"props":2012,"children":2013},{},[2014],{"type":56,"value":2015},"clarity\u002Faccuracy",{"type":56,"value":1456},{"type":51,"tag":52,"props":2018,"children":2019},{},[2020],{"type":51,"tag":71,"props":2021,"children":2022},{},[2023,2029,2030,2036,2037,2043,2044,2050],{"type":51,"tag":59,"props":2024,"children":2026},{"className":2025},[],[2027],{"type":56,"value":2028},"breaking-change",{"type":56,"value":1392},{"type":51,"tag":59,"props":2031,"children":2033},{"className":2032},[],[2034],{"type":56,"value":2035},"deprecation",{"type":56,"value":1392},{"type":51,"tag":59,"props":2038,"children":2040},{"className":2039},[],[2041],{"type":56,"value":2042},"known-issue",{"type":56,"value":1392},{"type":51,"tag":59,"props":2045,"children":2047},{"className":2046},[],[2048],{"type":56,"value":2049},"security",{"type":56,"value":1400},{"type":51,"tag":149,"props":2052,"children":2053},{},[2054,2064],{"type":51,"tag":103,"props":2055,"children":2056},{},[2057,2062],{"type":51,"tag":71,"props":2058,"children":2059},{},[2060],{"type":56,"value":2061},"Any appropriate verb",{"type":56,"value":2063}," but should align with the actual change nature",{"type":51,"tag":103,"props":2065,"children":2066},{},[2067,2072],{"type":51,"tag":71,"props":2068,"children":2069},{},[2070],{"type":56,"value":2071},"Focus on clarity",{"type":56,"value":2073}," rather than strict verb patterns",{"type":51,"tag":242,"props":2075,"children":2077},{"id":2076},"alignment-assessment-process",[2078],{"type":56,"value":2079},"Alignment Assessment Process",{"type":51,"tag":52,"props":2081,"children":2082},{},[2083],{"type":56,"value":2084},"For each changelog:",{"type":51,"tag":99,"props":2086,"children":2087},{},[2088,2098,2108,2141],{"type":51,"tag":103,"props":2089,"children":2090},{},[2091,2096],{"type":51,"tag":71,"props":2092,"children":2093},{},[2094],{"type":56,"value":2095},"Extract leading verb",{"type":56,"value":2097}," from title (first word after articles\u002Fprepositions)",{"type":51,"tag":103,"props":2099,"children":2100},{},[2101,2106],{"type":51,"tag":71,"props":2102,"children":2103},{},[2104],{"type":56,"value":2105},"Check against expected verbs",{"type":56,"value":2107}," for the declared type",{"type":51,"tag":103,"props":2109,"children":2110},{},[2111,2116,2118],{"type":51,"tag":71,"props":2112,"children":2113},{},[2114],{"type":56,"value":2115},"If mismatch detected",{"type":56,"value":2117},", provide both options:\n",{"type":51,"tag":149,"props":2119,"children":2120},{},[2121,2131],{"type":51,"tag":103,"props":2122,"children":2123},{},[2124,2129],{"type":51,"tag":71,"props":2125,"children":2126},{},[2127],{"type":56,"value":2128},"Option A:",{"type":56,"value":2130}," Keep type, rewrite title with appropriate verb",{"type":51,"tag":103,"props":2132,"children":2133},{},[2134,2139],{"type":51,"tag":71,"props":2135,"children":2136},{},[2137],{"type":56,"value":2138},"Option B:",{"type":56,"value":2140}," Keep title, suggest more appropriate type",{"type":51,"tag":103,"props":2142,"children":2143},{},[2144,2149],{"type":51,"tag":71,"props":2145,"children":2146},{},[2147],{"type":56,"value":2148},"Include confidence note",{"type":56,"value":2150}," explaining which option is more likely correct based on PR context",{"type":51,"tag":79,"props":2152,"children":2154},{"id":2153},"step-46-technical-content-assessment",[2155],{"type":56,"value":2156},"Step 4.6: Technical Content Assessment",{"type":51,"tag":52,"props":2158,"children":2159},{},[2160,2162,2168],{"type":56,"value":2161},"Evaluate titles for implementation-focused language. Rewrite using ",{"type":51,"tag":59,"props":2163,"children":2165},{"className":2164},[],[2166],{"type":56,"value":2167},"[Fix|Improve|Add] [user-visible outcome] [in context]",{"type":56,"value":2169}," — e.g., \"Fix splitValue nullability coercion when constructing ColorSeries\" → \"Fix inline charts with grey time series for ES|QL queries\".",{"type":51,"tag":52,"props":2171,"children":2172},{},[2173],{"type":51,"tag":71,"props":2174,"children":2175},{},[2176],{"type":56,"value":2177},"Flag titles that prioritize implementation over user symptoms:",{"type":51,"tag":149,"props":2179,"children":2180},{},[2181,2191,2201,2211,2221],{"type":51,"tag":103,"props":2182,"children":2183},{},[2184,2189],{"type":51,"tag":71,"props":2185,"children":2186},{},[2187],{"type":56,"value":2188},"Class\u002Fmethod references without context",{"type":56,"value":2190},": \"constructing ColorSeries\", \"splitValue nullability\", \"when building QueryNode\"",{"type":51,"tag":103,"props":2192,"children":2193},{},[2194,2199],{"type":51,"tag":71,"props":2195,"children":2196},{},[2197],{"type":56,"value":2198},"Internal process descriptions",{"type":56,"value":2200},": \"coercion logic\", \"serialization handling\", \"initialization sequence\"",{"type":51,"tag":103,"props":2202,"children":2203},{},[2204,2209],{"type":51,"tag":71,"props":2205,"children":2206},{},[2207],{"type":56,"value":2208},"Implementation-focused terminology",{"type":56,"value":2210},": Technical terms that don't explain what users experience",{"type":51,"tag":103,"props":2212,"children":2213},{},[2214,2219],{"type":51,"tag":71,"props":2215,"children":2216},{},[2217],{"type":56,"value":2218},"Missing user-visible symptoms",{"type":56,"value":2220},": Titles describing code changes without explaining user impact",{"type":51,"tag":103,"props":2222,"children":2223},{},[2224,2229,2231,2236,2237,2242],{"type":51,"tag":71,"props":2225,"children":2226},{},[2227],{"type":56,"value":2228},"Preventive vs corrective:",{"type":56,"value":2230}," On ",{"type":51,"tag":59,"props":2232,"children":2234},{"className":2233},[],[2235],{"type":56,"value":1390},{"type":56,"value":837},{"type":51,"tag":59,"props":2238,"children":2240},{"className":2239},[],[2241],{"type":56,"value":1398},{"type":56,"value":2243},", 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-fail",{"type":51,"tag":242,"props":2245,"children":2247},{"id":2246},"user-impact-assessment",[2248],{"type":56,"value":2249},"User Impact Assessment",{"type":51,"tag":52,"props":2251,"children":2252},{},[2253],{"type":51,"tag":71,"props":2254,"children":2255},{},[2256],{"type":56,"value":2257},"Recognize titles that already focus on user experience:",{"type":51,"tag":149,"props":2259,"children":2260},{},[2261,2266,2271],{"type":51,"tag":103,"props":2262,"children":2263},{},[2264],{"type":56,"value":2265},"Clear symptom descriptions: \"Fix inline charts with grey time series\"",{"type":51,"tag":103,"props":2267,"children":2268},{},[2269],{"type":56,"value":2270},"User-facing feature names: \"ES|QL queries\", \"dashboard widgets\", \"alert notifications\"",{"type":51,"tag":103,"props":2272,"children":2273},{},[2274],{"type":56,"value":2275},"Observable behaviors: \"slow loading\", \"incorrect results\", \"missing data\"",{"type":51,"tag":242,"props":2277,"children":2279},{"id":2278},"technical-content-scoring",[2280],{"type":56,"value":2281},"Technical Content Scoring",{"type":51,"tag":52,"props":2283,"children":2284},{},[2285],{"type":51,"tag":71,"props":2286,"children":2287},{},[2288],{"type":56,"value":2289},"High priority for user-focused rewrite:",{"type":51,"tag":149,"props":2291,"children":2292},{},[2293,2298,2303],{"type":51,"tag":103,"props":2294,"children":2295},{},[2296],{"type":56,"value":2297},"Title contains multiple technical terms without user context",{"type":51,"tag":103,"props":2299,"children":2300},{},[2301],{"type":56,"value":2302},"Implementation details dominate over user symptoms",{"type":51,"tag":103,"props":2304,"children":2305},{},[2306],{"type":56,"value":2307},"Class names, method names, or internal concepts without explanation",{"type":51,"tag":52,"props":2309,"children":2310},{},[2311],{"type":51,"tag":71,"props":2312,"children":2313},{},[2314],{"type":56,"value":2315},"Low priority for rewrite (formatting only):",{"type":51,"tag":149,"props":2317,"children":2318},{},[2319,2324],{"type":51,"tag":103,"props":2320,"children":2321},{},[2322],{"type":56,"value":2323},"Title already describes user-visible symptoms clearly",{"type":51,"tag":103,"props":2325,"children":2326},{},[2327],{"type":56,"value":2328},"Technical terms support rather than obscure user understanding",{"type":51,"tag":79,"props":2330,"children":2332},{"id":2331},"step-5-assess-fields",[2333],{"type":56,"value":2334},"Step 5: Assess fields",{"type":51,"tag":52,"props":2336,"children":2337},{},[2338,2343],{"type":51,"tag":71,"props":2339,"children":2340},{},[2341],{"type":56,"value":2342},"Mode A & B",{"type":56,"value":2344}," — identify fields that need improvement (apply to each file processed):",{"type":51,"tag":149,"props":2346,"children":2347},{},[2348,2358,2369,2404,2422],{"type":51,"tag":103,"props":2349,"children":2350},{},[2351,2356],{"type":51,"tag":59,"props":2352,"children":2354},{"className":2353},[],[2355],{"type":56,"value":1376},{"type":56,"value":2357},": too vague, implementation-focused, wrong tense, missing action verb, or over 80 characters",{"type":51,"tag":103,"props":2359,"children":2360},{},[2361,2367],{"type":51,"tag":59,"props":2362,"children":2364},{"className":2363},[],[2365],{"type":56,"value":2366},"description",{"type":56,"value":2368},": only suggest when title is vague; do not suggest when title is self-explanatory; flag present low-quality content (repeats title, \"See PR\", \"Internal refactoring\")",{"type":51,"tag":103,"props":2370,"children":2371},{},[2372,2378,2379,2385,2387,2392,2393,2398,2399],{"type":51,"tag":59,"props":2373,"children":2375},{"className":2374},[],[2376],{"type":56,"value":2377},"impact",{"type":56,"value":1392},{"type":51,"tag":59,"props":2380,"children":2382},{"className":2381},[],[2383],{"type":56,"value":2384},"action",{"type":56,"value":2386},": absent on ",{"type":51,"tag":59,"props":2388,"children":2390},{"className":2389},[],[2391],{"type":56,"value":2028},{"type":56,"value":688},{"type":51,"tag":59,"props":2394,"children":2396},{"className":2395},[],[2397],{"type":56,"value":2035},{"type":56,"value":1563},{"type":51,"tag":59,"props":2400,"children":2402},{"className":2401},[],[2403],{"type":56,"value":2042},{"type":51,"tag":103,"props":2405,"children":2406},{},[2407,2413,2415,2420],{"type":51,"tag":59,"props":2408,"children":2410},{"className":2409},[],[2411],{"type":56,"value":2412},"areas",{"type":56,"value":2414}," if present: must be an array of strings; validate against repository configuration from Step 1 if available (only flag areas not in ",{"type":51,"tag":59,"props":2416,"children":2418},{"className":2417},[],[2419],{"type":56,"value":326},{"type":56,"value":2421}," pivot.areas section), otherwise use generic validation",{"type":51,"tag":103,"props":2423,"children":2424},{},[2425,2431],{"type":51,"tag":59,"props":2426,"children":2428},{"className":2427},[],[2429],{"type":56,"value":2430},"feature-id",{"type":56,"value":2432}," if present: must be a string; no content quality check needed, just YAML type correctness",{"type":51,"tag":52,"props":2434,"children":2435},{},[2436,2438,2443,2444,2449,2451,2456],{"type":56,"value":2437},"Also check for formatting anti-patterns in existing ",{"type":51,"tag":59,"props":2439,"children":2441},{"className":2440},[],[2442],{"type":56,"value":2366},{"type":56,"value":688},{"type":51,"tag":59,"props":2445,"children":2447},{"className":2446},[],[2448],{"type":56,"value":2377},{"type":56,"value":2450},", and ",{"type":51,"tag":59,"props":2452,"children":2454},{"className":2453},[],[2455],{"type":56,"value":2384},{"type":56,"value":2457}," values:",{"type":51,"tag":149,"props":2459,"children":2460},{},[2461,2466,2471,2476],{"type":51,"tag":103,"props":2462,"children":2463},{},[2464],{"type":56,"value":2465},"Bare URLs used as link text",{"type":51,"tag":103,"props":2467,"children":2468},{},[2469],{"type":56,"value":2470},"Code fences missing a language identifier",{"type":51,"tag":103,"props":2472,"children":2473},{},[2474],{"type":56,"value":2475},"Field names, config keys, commands, or API endpoints written as plain text instead of inline code",{"type":51,"tag":103,"props":2477,"children":2478},{},[2479,2481,2486,2488,2494,2495,2501,2502,2508,2509,2515,2516,2522],{"type":56,"value":2480},"Unquoted values containing ",{"type":51,"tag":59,"props":2482,"children":2484},{"className":2483},[],[2485],{"type":56,"value":1400},{"type":56,"value":2487}," (colon + space), ",{"type":51,"tag":59,"props":2489,"children":2491},{"className":2490},[],[2492],{"type":56,"value":2493},"#",{"type":56,"value":688},{"type":51,"tag":59,"props":2496,"children":2498},{"className":2497},[],[2499],{"type":56,"value":2500},"[",{"type":56,"value":688},{"type":51,"tag":59,"props":2503,"children":2505},{"className":2504},[],[2506],{"type":56,"value":2507},"]",{"type":56,"value":688},{"type":51,"tag":59,"props":2510,"children":2512},{"className":2511},[],[2513],{"type":56,"value":2514},"{",{"type":56,"value":1563},{"type":51,"tag":59,"props":2517,"children":2519},{"className":2518},[],[2520],{"type":56,"value":2521},"}",{"type":56,"value":2523}," — these cause YAML parse errors",{"type":51,"tag":52,"props":2525,"children":2526},{},[2527,2531,2533,2538],{"type":51,"tag":71,"props":2528,"children":2529},{},[2530],{"type":56,"value":485},{"type":56,"value":2532}," — determine which fields to suggest based on ",{"type":51,"tag":59,"props":2534,"children":2536},{"className":2535},[],[2537],{"type":56,"value":1369},{"type":56,"value":2539}," (ask if unknown):",{"type":51,"tag":149,"props":2541,"children":2542},{},[2543,2562],{"type":51,"tag":103,"props":2544,"children":2545},{},[2546,2548,2553,2555,2560],{"type":56,"value":2547},"All types: ",{"type":51,"tag":59,"props":2549,"children":2551},{"className":2550},[],[2552],{"type":56,"value":1376},{"type":56,"value":2554}," (required), ",{"type":51,"tag":59,"props":2556,"children":2558},{"className":2557},[],[2559],{"type":56,"value":2366},{"type":56,"value":2561}," (recommended)",{"type":51,"tag":103,"props":2563,"children":2564},{},[2565,2570,2571,2576,2577,2582,2584,2589,2590],{"type":51,"tag":59,"props":2566,"children":2568},{"className":2567},[],[2569],{"type":56,"value":2028},{"type":56,"value":688},{"type":51,"tag":59,"props":2572,"children":2574},{"className":2573},[],[2575],{"type":56,"value":2035},{"type":56,"value":688},{"type":51,"tag":59,"props":2578,"children":2580},{"className":2579},[],[2581],{"type":56,"value":2042},{"type":56,"value":2583},": also ",{"type":51,"tag":59,"props":2585,"children":2587},{"className":2586},[],[2588],{"type":56,"value":2377},{"type":56,"value":194},{"type":51,"tag":59,"props":2591,"children":2593},{"className":2592},[],[2594],{"type":56,"value":2384},{"type":51,"tag":79,"props":2596,"children":2598},{"id":2597},"step-6-generate-suggestions",[2599],{"type":56,"value":2600},"Step 6: Generate suggestions",{"type":51,"tag":52,"props":2602,"children":2603},{},[2604,2609,2611,2616,2618,2623],{"type":51,"tag":71,"props":2605,"children":2606},{},[2607],{"type":56,"value":2608},"Character limits:",{"type":56,"value":2610}," Target 80\u002F600 characters; prefer clarity over trimming; split excess detail into ",{"type":51,"tag":59,"props":2612,"children":2614},{"className":2613},[],[2615],{"type":56,"value":2366},{"type":56,"value":2617}," rather than shortening accurate titles. Suggest optional ",{"type":51,"tag":59,"props":2619,"children":2621},{"className":2620},[],[2622],{"type":56,"value":2366},{"type":56,"value":2624}," when technical detail is stripped from the title.",{"type":51,"tag":52,"props":2626,"children":2627},{},[2628,2633],{"type":51,"tag":71,"props":2629,"children":2630},{},[2631],{"type":56,"value":2632},"Confidence tracking:",{"type":56,"value":2634}," During suggestion generation, note factors that affect confidence:",{"type":51,"tag":149,"props":2636,"children":2637},{},[2638,2648,2658],{"type":51,"tag":103,"props":2639,"children":2640},{},[2641,2646],{"type":51,"tag":71,"props":2642,"children":2643},{},[2644],{"type":56,"value":2645},"High confidence:",{"type":56,"value":2647}," Routine pattern fixes (development prefixes, obvious YAML quoting), standard terminology, good PR context",{"type":51,"tag":103,"props":2649,"children":2650},{},[2651,2656],{"type":51,"tag":71,"props":2652,"children":2653},{},[2654],{"type":56,"value":2655},"Medium confidence:",{"type":56,"value":2657}," Technical terms with contextual clues, partial PR context, common Elastic terminology",{"type":51,"tag":103,"props":2659,"children":2660},{},[2661,2666],{"type":51,"tag":71,"props":2662,"children":2663},{},[2664],{"type":56,"value":2665},"Low confidence:",{"type":56,"value":2667}," Domain-specific terms without context, missing PR details, ambiguous phrasing that could have multiple interpretations, novel or uncommon technical concepts",{"type":51,"tag":52,"props":2669,"children":2670},{},[2671],{"type":51,"tag":71,"props":2672,"children":2673},{},[2674],{"type":56,"value":2675},"Type-Title Alignment Confidence:",{"type":51,"tag":149,"props":2677,"children":2678},{},[2679,2717,2763],{"type":51,"tag":103,"props":2680,"children":2681},{},[2682,2687],{"type":51,"tag":71,"props":2683,"children":2684},{},[2685],{"type":56,"value":2686},"High confidence type corrections:",{"type":51,"tag":149,"props":2688,"children":2689},{},[2690,2701,2712],{"type":51,"tag":103,"props":2691,"children":2692},{},[2693,2695,2700],{"type":56,"value":2694},"Clear functional behavior (Fix broken → ",{"type":51,"tag":59,"props":2696,"children":2698},{"className":2697},[],[2699],{"type":56,"value":1390},{"type":56,"value":855},{"type":51,"tag":103,"props":2702,"children":2703},{},[2704,2706,2711],{"type":56,"value":2705},"Clear new capability (Add substantial → ",{"type":51,"tag":59,"props":2707,"children":2709},{"className":2708},[],[2710],{"type":56,"value":1848},{"type":56,"value":855},{"type":51,"tag":103,"props":2713,"children":2714},{},[2715],{"type":56,"value":2716},"PR context confirms the classification",{"type":51,"tag":103,"props":2718,"children":2719},{},[2720,2724],{"type":51,"tag":71,"props":2721,"children":2722},{},[2723],{"type":56,"value":2655},{"type":51,"tag":149,"props":2725,"children":2726},{},[2727,2745],{"type":51,"tag":103,"props":2728,"children":2729},{},[2730,2732,2737,2738,2743],{"type":56,"value":2731},"Performance improvements (could be ",{"type":51,"tag":59,"props":2733,"children":2735},{"className":2734},[],[2736],{"type":56,"value":1691},{"type":56,"value":532},{"type":51,"tag":59,"props":2739,"children":2741},{"className":2740},[],[2742],{"type":56,"value":1390},{"type":56,"value":2744}," depending on whether previous performance was \"broken\")",{"type":51,"tag":103,"props":2746,"children":2747},{},[2748,2750,2755,2756,2761],{"type":56,"value":2749},"Minor additions (could be ",{"type":51,"tag":59,"props":2751,"children":2753},{"className":2752},[],[2754],{"type":56,"value":1691},{"type":56,"value":532},{"type":51,"tag":59,"props":2757,"children":2759},{"className":2758},[],[2760],{"type":56,"value":1848},{"type":56,"value":2762}," depending on scope)",{"type":51,"tag":103,"props":2764,"children":2765},{},[2766,2771],{"type":51,"tag":71,"props":2767,"children":2768},{},[2769],{"type":56,"value":2770},"Low confidence - provide both options:",{"type":51,"tag":149,"props":2772,"children":2773},{},[2774,2779],{"type":51,"tag":103,"props":2775,"children":2776},{},[2777],{"type":56,"value":2778},"Ambiguous PR context about whether behavior was broken or just suboptimal",{"type":51,"tag":103,"props":2780,"children":2781},{},[2782],{"type":56,"value":2783},"Edge cases between types (e.g., \"fixing\" by adding a missing capability)",{"type":51,"tag":52,"props":2785,"children":2786},{},[2787],{"type":51,"tag":71,"props":2788,"children":2789},{},[2790],{"type":56,"value":2791},"Technical Content Assessment Confidence:",{"type":51,"tag":149,"props":2793,"children":2794},{},[2795,2821,2841],{"type":51,"tag":103,"props":2796,"children":2797},{},[2798,2803],{"type":51,"tag":71,"props":2799,"children":2800},{},[2801],{"type":56,"value":2802},"High confidence user-impact rewrites:",{"type":51,"tag":149,"props":2804,"children":2805},{},[2806,2811,2816],{"type":51,"tag":103,"props":2807,"children":2808},{},[2809],{"type":56,"value":2810},"Titles heavy in class names, method names, or implementation details without user context",{"type":51,"tag":103,"props":2812,"children":2813},{},[2814],{"type":56,"value":2815},"Multiple technical terms that don't explain user symptoms",{"type":51,"tag":103,"props":2817,"children":2818},{},[2819],{"type":56,"value":2820},"Clear implementation focus over user experience (e.g., \"Fix splitValue nullability coercion when constructing ColorSeries\")",{"type":51,"tag":103,"props":2822,"children":2823},{},[2824,2828],{"type":51,"tag":71,"props":2825,"children":2826},{},[2827],{"type":56,"value":2655},{"type":51,"tag":149,"props":2829,"children":2830},{},[2831,2836],{"type":51,"tag":103,"props":2832,"children":2833},{},[2834],{"type":56,"value":2835},"Technical terms mixed with some user-facing language",{"type":51,"tag":103,"props":2837,"children":2838},{},[2839],{"type":56,"value":2840},"Partial user context but still implementation-heavy",{"type":51,"tag":103,"props":2842,"children":2843},{},[2844,2849],{"type":51,"tag":71,"props":2845,"children":2846},{},[2847],{"type":56,"value":2848},"Low priority formatting-only suggestions:",{"type":51,"tag":149,"props":2850,"children":2851},{},[2852,2857,2861],{"type":51,"tag":103,"props":2853,"children":2854},{},[2855],{"type":56,"value":2856},"Titles already focused on user symptoms and impact",{"type":51,"tag":103,"props":2858,"children":2859},{},[2860],{"type":56,"value":2328},{"type":51,"tag":103,"props":2862,"children":2863},{},[2864],{"type":56,"value":2865},"Clear user-facing language with minimal technical jargon",{"type":51,"tag":52,"props":2867,"children":2868},{},[2869],{"type":51,"tag":71,"props":2870,"children":2871},{},[2872],{"type":56,"value":2873},"Repository Validation Confidence:",{"type":51,"tag":149,"props":2875,"children":2876},{},[2877,2886,2895],{"type":51,"tag":103,"props":2878,"children":2879},{},[2880,2884],{"type":51,"tag":71,"props":2881,"children":2882},{},[2883],{"type":56,"value":2645},{"type":56,"value":2885}," Repository configuration loaded successfully, using authoritative area validation",{"type":51,"tag":103,"props":2887,"children":2888},{},[2889,2893],{"type":51,"tag":71,"props":2890,"children":2891},{},[2892],{"type":56,"value":2655},{"type":56,"value":2894}," Repository config partially available or unclear",{"type":51,"tag":103,"props":2896,"children":2897},{},[2898,2902],{"type":51,"tag":71,"props":2899,"children":2900},{},[2901],{"type":56,"value":2665},{"type":56,"value":2903}," No repository configuration found, using generic validation rules",{"type":51,"tag":52,"props":2905,"children":2906},{},[2907],{"type":51,"tag":71,"props":2908,"children":2909},{},[2910],{"type":56,"value":2911},"Feature\u002Fapp prefix integration patterns:",{"type":51,"tag":149,"props":2913,"children":2914},{},[2915,2931,2947],{"type":51,"tag":103,"props":2916,"children":2917},{},[2918,2924,2925],{"type":51,"tag":59,"props":2919,"children":2921},{"className":2920},[],[2922],{"type":56,"value":2923},"\"[Feature]: Fix [issue]\"",{"type":56,"value":847},{"type":51,"tag":59,"props":2926,"children":2928},{"className":2927},[],[2929],{"type":56,"value":2930},"\"Fix [issue] in [feature]\"",{"type":51,"tag":103,"props":2932,"children":2933},{},[2934,2940,2941],{"type":51,"tag":59,"props":2935,"children":2937},{"className":2936},[],[2938],{"type":56,"value":2939},"\"[Feature]: Enable [capability]\"",{"type":56,"value":847},{"type":51,"tag":59,"props":2942,"children":2944},{"className":2943},[],[2945],{"type":56,"value":2946},"\"Enable [capability] for [feature]\"",{"type":51,"tag":103,"props":2948,"children":2949},{},[2950,2956,2957],{"type":51,"tag":59,"props":2951,"children":2953},{"className":2952},[],[2954],{"type":56,"value":2955},"\"[Feature]: Add [functionality]\"",{"type":56,"value":847},{"type":51,"tag":59,"props":2958,"children":2960},{"className":2959},[],[2961],{"type":56,"value":2962},"\"Add [functionality] to [feature]\"",{"type":51,"tag":52,"props":2964,"children":2965},{},[2966],{"type":51,"tag":71,"props":2967,"children":2968},{},[2969],{"type":56,"value":2970},"Feature prefix suggestion confidence:",{"type":51,"tag":149,"props":2972,"children":2973},{},[2974,2983,2992],{"type":51,"tag":103,"props":2975,"children":2976},{},[2977,2981],{"type":51,"tag":71,"props":2978,"children":2979},{},[2980],{"type":56,"value":2645},{"type":56,"value":2982}," Clear UI component names, known Elastic features, good PR context",{"type":51,"tag":103,"props":2984,"children":2985},{},[2986,2990],{"type":51,"tag":71,"props":2987,"children":2988},{},[2989],{"type":56,"value":2655},{"type":56,"value":2991}," Ambiguous feature names, partial context",{"type":51,"tag":103,"props":2993,"children":2994},{},[2995,2999],{"type":51,"tag":71,"props":2996,"children":2997},{},[2998],{"type":56,"value":2665},{"type":56,"value":3000}," Could be technical term vs feature name, missing PR details",{"type":51,"tag":52,"props":3002,"children":3003},{},[3004,3008],{"type":51,"tag":71,"props":3005,"children":3006},{},[3007],{"type":56,"value":2342},{"type":56,"value":3009}," — for each weak or malformed field, show:",{"type":51,"tag":149,"props":3011,"children":3012},{},[3013,3018,3023],{"type":51,"tag":103,"props":3014,"children":3015},{},[3016],{"type":56,"value":3017},"Current value (or \"not present\")",{"type":51,"tag":103,"props":3019,"children":3020},{},[3021],{"type":56,"value":3022},"One or two suggested alternatives",{"type":51,"tag":103,"props":3024,"children":3025},{},[3026],{"type":56,"value":3027},"Brief explanation of what makes the suggestion better",{"type":51,"tag":52,"props":3029,"children":3030},{},[3031,3035,3037,3042],{"type":51,"tag":71,"props":3032,"children":3033},{},[3034],{"type":56,"value":485},{"type":56,"value":3036}," — suggest text for each relevant field, then present a ready-to-copy ",{"type":51,"tag":59,"props":3038,"children":3040},{"className":3039},[],[3041],{"type":56,"value":64},{"type":56,"value":3043}," command:",{"type":51,"tag":3045,"props":3046,"children":3051},"pre",{"className":3047,"code":3048,"language":3049,"meta":3050,"style":3050},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","docs-builder changelog add \\\n  --type \u003Ctype> \\\n  --title \"\u003Csuggested title>\" \\\n  --description \"\u003Csuggested description>\" \\\n  --impact \"\u003Csuggested impact>\" \\\n  --action \"\u003Csuggested action>\"\n","sh","",[3052],{"type":51,"tag":59,"props":3053,"children":3054},{"__ignoreMap":3050},[3055,3083,3117,3144,3170,3196],{"type":51,"tag":1443,"props":3056,"children":3059},{"class":3057,"line":3058},"line",1,[3060,3066,3072,3077],{"type":51,"tag":1443,"props":3061,"children":3063},{"style":3062},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[3064],{"type":56,"value":3065},"docs-builder",{"type":51,"tag":1443,"props":3067,"children":3069},{"style":3068},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[3070],{"type":56,"value":3071}," changelog",{"type":51,"tag":1443,"props":3073,"children":3074},{"style":3068},[3075],{"type":56,"value":3076}," add",{"type":51,"tag":1443,"props":3078,"children":3080},{"style":3079},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[3081],{"type":56,"value":3082}," \\\n",{"type":51,"tag":1443,"props":3084,"children":3086},{"class":3057,"line":3085},2,[3087,3092,3098,3103,3108,3113],{"type":51,"tag":1443,"props":3088,"children":3089},{"style":3068},[3090],{"type":56,"value":3091},"  --type",{"type":51,"tag":1443,"props":3093,"children":3095},{"style":3094},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[3096],{"type":56,"value":3097}," \u003C",{"type":51,"tag":1443,"props":3099,"children":3100},{"style":3068},[3101],{"type":56,"value":3102},"typ",{"type":51,"tag":1443,"props":3104,"children":3105},{"style":3079},[3106],{"type":56,"value":3107},"e",{"type":51,"tag":1443,"props":3109,"children":3110},{"style":3094},[3111],{"type":56,"value":3112},">",{"type":51,"tag":1443,"props":3114,"children":3115},{"style":3079},[3116],{"type":56,"value":3082},{"type":51,"tag":1443,"props":3118,"children":3120},{"class":3057,"line":3119},3,[3121,3126,3131,3136,3140],{"type":51,"tag":1443,"props":3122,"children":3123},{"style":3068},[3124],{"type":56,"value":3125},"  --title",{"type":51,"tag":1443,"props":3127,"children":3128},{"style":3094},[3129],{"type":56,"value":3130}," \"",{"type":51,"tag":1443,"props":3132,"children":3133},{"style":3068},[3134],{"type":56,"value":3135},"\u003Csuggested title>",{"type":51,"tag":1443,"props":3137,"children":3138},{"style":3094},[3139],{"type":56,"value":1456},{"type":51,"tag":1443,"props":3141,"children":3142},{"style":3079},[3143],{"type":56,"value":3082},{"type":51,"tag":1443,"props":3145,"children":3147},{"class":3057,"line":3146},4,[3148,3153,3157,3162,3166],{"type":51,"tag":1443,"props":3149,"children":3150},{"style":3068},[3151],{"type":56,"value":3152},"  --description",{"type":51,"tag":1443,"props":3154,"children":3155},{"style":3094},[3156],{"type":56,"value":3130},{"type":51,"tag":1443,"props":3158,"children":3159},{"style":3068},[3160],{"type":56,"value":3161},"\u003Csuggested description>",{"type":51,"tag":1443,"props":3163,"children":3164},{"style":3094},[3165],{"type":56,"value":1456},{"type":51,"tag":1443,"props":3167,"children":3168},{"style":3079},[3169],{"type":56,"value":3082},{"type":51,"tag":1443,"props":3171,"children":3173},{"class":3057,"line":3172},5,[3174,3179,3183,3188,3192],{"type":51,"tag":1443,"props":3175,"children":3176},{"style":3068},[3177],{"type":56,"value":3178},"  --impact",{"type":51,"tag":1443,"props":3180,"children":3181},{"style":3094},[3182],{"type":56,"value":3130},{"type":51,"tag":1443,"props":3184,"children":3185},{"style":3068},[3186],{"type":56,"value":3187},"\u003Csuggested impact>",{"type":51,"tag":1443,"props":3189,"children":3190},{"style":3094},[3191],{"type":56,"value":1456},{"type":51,"tag":1443,"props":3193,"children":3194},{"style":3079},[3195],{"type":56,"value":3082},{"type":51,"tag":1443,"props":3197,"children":3199},{"class":3057,"line":3198},6,[3200,3205,3209,3214],{"type":51,"tag":1443,"props":3201,"children":3202},{"style":3068},[3203],{"type":56,"value":3204},"  --action",{"type":51,"tag":1443,"props":3206,"children":3207},{"style":3094},[3208],{"type":56,"value":3130},{"type":51,"tag":1443,"props":3210,"children":3211},{"style":3068},[3212],{"type":56,"value":3213},"\u003Csuggested action>",{"type":51,"tag":1443,"props":3215,"children":3216},{"style":3094},[3217],{"type":56,"value":3218},"\"\n",{"type":51,"tag":52,"props":3220,"children":3221},{},[3222,3224,3230,3231,3237,3239,3245],{"type":56,"value":3223},"Omit ",{"type":51,"tag":59,"props":3225,"children":3227},{"className":3226},[],[3228],{"type":56,"value":3229},"--impact",{"type":56,"value":194},{"type":51,"tag":59,"props":3232,"children":3234},{"className":3233},[],[3235],{"type":56,"value":3236},"--action",{"type":56,"value":3238}," when not applicable to the type. Note that inside shell-quoted values, backticks must be escaped with a backslash (",{"type":51,"tag":59,"props":3240,"children":3242},{"className":3241},[],[3243],{"type":56,"value":3244},"\\``) and double quotes must be escaped (",{"type":56,"value":3246},"\"`).",{"type":51,"tag":52,"props":3248,"children":3249},{},[3250,3252,3258,3259,3265,3266,3272,3274,3280],{"type":56,"value":3251},"Remind the user that ",{"type":51,"tag":59,"props":3253,"children":3255},{"className":3254},[],[3256],{"type":56,"value":3257},"--products",{"type":56,"value":688},{"type":51,"tag":59,"props":3260,"children":3262},{"className":3261},[],[3263],{"type":56,"value":3264},"--prs",{"type":56,"value":688},{"type":51,"tag":59,"props":3267,"children":3269},{"className":3268},[],[3270],{"type":56,"value":3271},"--issues",{"type":56,"value":3273},", and other non-text options must be provided separately. Refer them to ",{"type":51,"tag":59,"props":3275,"children":3277},{"className":3276},[],[3278],{"type":56,"value":3279},"docs-builder changelog add --help",{"type":56,"value":3281}," for the full list.",{"type":51,"tag":242,"props":3283,"children":3285},{"id":3284},"enhanced-type-specific-guidance",[3286],{"type":56,"value":3287},"Enhanced Type-specific guidance",{"type":51,"tag":52,"props":3289,"children":3290},{},[3291],{"type":51,"tag":71,"props":3292,"children":3293},{},[3294,3299,3300,3305],{"type":51,"tag":59,"props":3295,"children":3297},{"className":3296},[],[3298],{"type":56,"value":1390},{"type":56,"value":1392},{"type":51,"tag":59,"props":3301,"children":3303},{"className":3302},[],[3304],{"type":56,"value":1398},{"type":56,"value":1400},{"type":51,"tag":149,"props":3307,"children":3308},{},[3309,3329,3363,3387,3397],{"type":51,"tag":103,"props":3310,"children":3311},{},[3312,3317,3318,3322,3323,3327],{"type":51,"tag":71,"props":3313,"children":3314},{},[3315],{"type":56,"value":3316},"Title pattern:",{"type":56,"value":1441},{"type":51,"tag":1443,"props":3319,"children":3320},{},[3321],{"type":56,"value":1447},{"type":56,"value":1449},{"type":51,"tag":1443,"props":3324,"children":3325},{},[3326],{"type":56,"value":1454},{"type":56,"value":3328},"\" (base-form verb)",{"type":51,"tag":103,"props":3330,"children":3331},{},[3332,3337,3339,3344,3345,3350,3351,3356,3358],{"type":51,"tag":71,"props":3333,"children":3334},{},[3335],{"type":56,"value":3336},"Common misalignment:",{"type":56,"value":3338}," Titles that say \"Improve\" when fixing broken behavior; preventive framing (",{"type":51,"tag":59,"props":3340,"children":3342},{"className":3341},[],[3343],{"type":56,"value":686},{"type":56,"value":688},{"type":51,"tag":59,"props":3346,"children":3348},{"className":3347},[],[3349],{"type":56,"value":694},{"type":56,"value":688},{"type":51,"tag":59,"props":3352,"children":3354},{"className":3353},[],[3355],{"type":56,"value":701},{"type":56,"value":3357},") instead of symptom-first ",{"type":51,"tag":59,"props":3359,"children":3361},{"className":3360},[],[3362],{"type":56,"value":1673},{"type":51,"tag":103,"props":3364,"children":3365},{},[3366,3371,3373,3378,3380,3385],{"type":51,"tag":71,"props":3367,"children":3368},{},[3369],{"type":56,"value":3370},"Resolution:",{"type":56,"value":3372}," If behavior was broken → keep ",{"type":51,"tag":59,"props":3374,"children":3376},{"className":3375},[],[3377],{"type":56,"value":1390},{"type":56,"value":3379},", rewrite title. If adding new capability → change to ",{"type":51,"tag":59,"props":3381,"children":3383},{"className":3382},[],[3384],{"type":56,"value":1691},{"type":56,"value":3386},". Use issue title language when available (Step 3 cross-check)",{"type":51,"tag":103,"props":3388,"children":3389},{},[3390,3395],{"type":51,"tag":71,"props":3391,"children":3392},{},[3393],{"type":56,"value":3394},"Description should explain:",{"type":56,"value":3396}," What was wrong, what's now correct",{"type":51,"tag":103,"props":3398,"children":3399},{},[3400,3405,3406,3411,3412,3417],{"type":51,"tag":71,"props":3401,"children":3402},{},[3403],{"type":56,"value":3404},"Required fields:",{"type":56,"value":161},{"type":51,"tag":59,"props":3407,"children":3409},{"className":3408},[],[3410],{"type":56,"value":2377},{"type":56,"value":194},{"type":51,"tag":59,"props":3413,"children":3415},{"className":3414},[],[3416],{"type":56,"value":2384},{"type":56,"value":3418}," recommended for regressions",{"type":51,"tag":52,"props":3420,"children":3421},{},[3422],{"type":51,"tag":71,"props":3423,"children":3424},{},[3425,3430],{"type":51,"tag":59,"props":3426,"children":3428},{"className":3427},[],[3429],{"type":56,"value":1691},{"type":56,"value":1400},{"type":51,"tag":149,"props":3432,"children":3433},{},[3434,3455,3464,3487],{"type":51,"tag":103,"props":3435,"children":3436},{},[3437,3441,3442,3447,3449,3454],{"type":51,"tag":71,"props":3438,"children":3439},{},[3440],{"type":56,"value":3316},{"type":56,"value":1784},{"type":51,"tag":1443,"props":3443,"children":3444},{},[3445],{"type":56,"value":3446},"existing capability",{"type":56,"value":3448},"\" or \"Add ",{"type":51,"tag":1443,"props":3450,"children":3451},{},[3452],{"type":56,"value":3453},"minor capability",{"type":56,"value":1456},{"type":51,"tag":103,"props":3456,"children":3457},{},[3458,3462],{"type":51,"tag":71,"props":3459,"children":3460},{},[3461],{"type":56,"value":3336},{"type":56,"value":3463}," Titles that say \"Fix\" for performance improvements",{"type":51,"tag":103,"props":3465,"children":3466},{},[3467,3471,3473,3478,3480,3485],{"type":51,"tag":71,"props":3468,"children":3469},{},[3470],{"type":56,"value":3370},{"type":56,"value":3472}," If fixing objectively broken behavior → change to ",{"type":51,"tag":59,"props":3474,"children":3476},{"className":3475},[],[3477],{"type":56,"value":1390},{"type":56,"value":3479},". If optimizing working functionality → keep ",{"type":51,"tag":59,"props":3481,"children":3483},{"className":3482},[],[3484],{"type":56,"value":1691},{"type":56,"value":3486},", rewrite title",{"type":51,"tag":103,"props":3488,"children":3489},{},[3490,3494],{"type":51,"tag":71,"props":3491,"children":3492},{},[3493],{"type":56,"value":3394},{"type":56,"value":3495}," What users can now do better\u002Ffaster",{"type":51,"tag":52,"props":3497,"children":3498},{},[3499],{"type":51,"tag":71,"props":3500,"children":3501},{},[3502,3507],{"type":51,"tag":59,"props":3503,"children":3505},{"className":3504},[],[3506],{"type":56,"value":1848},{"type":56,"value":1400},{"type":51,"tag":149,"props":3509,"children":3510},{},[3511,3525,3534,3553],{"type":51,"tag":103,"props":3512,"children":3513},{},[3514,3518,3519,3524],{"type":51,"tag":71,"props":3515,"children":3516},{},[3517],{"type":56,"value":3316},{"type":56,"value":1894},{"type":51,"tag":1443,"props":3520,"children":3521},{},[3522],{"type":56,"value":3523},"substantial new capability",{"type":56,"value":1456},{"type":51,"tag":103,"props":3526,"children":3527},{},[3528,3532],{"type":51,"tag":71,"props":3529,"children":3530},{},[3531],{"type":56,"value":3336},{"type":56,"value":3533}," Minor improvements labeled as features",{"type":51,"tag":103,"props":3535,"children":3536},{},[3537,3541,3542,3547,3548],{"type":51,"tag":71,"props":3538,"children":3539},{},[3540],{"type":56,"value":3370},{"type":56,"value":1936},{"type":51,"tag":59,"props":3543,"children":3545},{"className":3544},[],[3546],{"type":56,"value":1848},{"type":56,"value":1943},{"type":51,"tag":59,"props":3549,"children":3551},{"className":3550},[],[3552],{"type":56,"value":1691},{"type":51,"tag":103,"props":3554,"children":3555},{},[3556,3560],{"type":51,"tag":71,"props":3557,"children":3558},{},[3559],{"type":56,"value":3394},{"type":56,"value":3561}," What users can now do that they couldn't before",{"type":51,"tag":52,"props":3563,"children":3564},{},[3565],{"type":51,"tag":71,"props":3566,"children":3567},{},[3568,3573],{"type":51,"tag":59,"props":3569,"children":3571},{"className":3570},[],[3572],{"type":56,"value":2028},{"type":56,"value":1400},{"type":51,"tag":149,"props":3575,"children":3576},{},[3577,3586],{"type":51,"tag":103,"props":3578,"children":3579},{},[3580,3584],{"type":51,"tag":71,"props":3581,"children":3582},{},[3583],{"type":56,"value":3316},{"type":56,"value":3585}," Any clear verb, but focus on impact clarity",{"type":51,"tag":103,"props":3587,"children":3588},{},[3589,3593,3594,3599,3601,3606,3608,3614],{"type":51,"tag":71,"props":3590,"children":3591},{},[3592],{"type":56,"value":3404},{"type":56,"value":161},{"type":51,"tag":59,"props":3595,"children":3597},{"className":3596},[],[3598],{"type":56,"value":2377},{"type":56,"value":3600}," must explain what breaks and who is affected; ",{"type":51,"tag":59,"props":3602,"children":3604},{"className":3603},[],[3605],{"type":56,"value":2384},{"type":56,"value":3607}," must give ordered, prescriptive migration steps — include code examples if context allows; ",{"type":51,"tag":59,"props":3609,"children":3611},{"className":3610},[],[3612],{"type":56,"value":3613},"subtype",{"type":56,"value":3615}," is strongly recommended",{"type":51,"tag":52,"props":3617,"children":3618},{},[3619],{"type":51,"tag":71,"props":3620,"children":3621},{},[3622,3627],{"type":51,"tag":59,"props":3623,"children":3625},{"className":3624},[],[3626],{"type":56,"value":2035},{"type":56,"value":1400},{"type":51,"tag":149,"props":3629,"children":3630},{},[3631,3652,3667],{"type":51,"tag":103,"props":3632,"children":3633},{},[3634,3638,3640,3645,3647,3651],{"type":51,"tag":71,"props":3635,"children":3636},{},[3637],{"type":56,"value":3316},{"type":56,"value":3639}," \"Deprecate ",{"type":51,"tag":1443,"props":3641,"children":3642},{},[3643],{"type":56,"value":3644},"functionality",{"type":56,"value":3646},"\" or \"Remove ",{"type":51,"tag":1443,"props":3648,"children":3649},{},[3650],{"type":56,"value":3644},{"type":56,"value":1456},{"type":51,"tag":103,"props":3653,"children":3654},{},[3655,3659,3660,3665],{"type":51,"tag":71,"props":3656,"children":3657},{},[3658],{"type":56,"value":3404},{"type":56,"value":161},{"type":51,"tag":59,"props":3661,"children":3663},{"className":3662},[],[3664],{"type":56,"value":2384},{"type":56,"value":3666}," should name the replacement and link to migration guidance",{"type":51,"tag":103,"props":3668,"children":3669},{},[3670,3675,3676,3681],{"type":51,"tag":71,"props":3671,"children":3672},{},[3673],{"type":56,"value":3674},"Optional fields:",{"type":56,"value":161},{"type":51,"tag":59,"props":3677,"children":3679},{"className":3678},[],[3680],{"type":56,"value":2377},{"type":56,"value":3682}," recommended for high-impact deprecations",{"type":51,"tag":52,"props":3684,"children":3685},{},[3686],{"type":51,"tag":71,"props":3687,"children":3688},{},[3689,3694],{"type":51,"tag":59,"props":3690,"children":3692},{"className":3691},[],[3693],{"type":56,"value":2042},{"type":56,"value":1400},{"type":51,"tag":149,"props":3696,"children":3697},{},[3698,3707],{"type":51,"tag":103,"props":3699,"children":3700},{},[3701,3705],{"type":51,"tag":71,"props":3702,"children":3703},{},[3704],{"type":56,"value":3316},{"type":56,"value":3706}," Describe the issue clearly, not the investigation",{"type":51,"tag":103,"props":3708,"children":3709},{},[3710,3714,3716],{"type":51,"tag":71,"props":3711,"children":3712},{},[3713],{"type":56,"value":3404},{"type":56,"value":3715}," Include all affected versions and contexts; describe any available workaround in ",{"type":51,"tag":59,"props":3717,"children":3719},{"className":3718},[],[3720],{"type":56,"value":2384},{"type":51,"tag":52,"props":3722,"children":3723},{},[3724],{"type":51,"tag":71,"props":3725,"children":3726},{},[3727,3732],{"type":51,"tag":59,"props":3728,"children":3730},{"className":3729},[],[3731],{"type":56,"value":29},{"type":56,"value":1400},{"type":51,"tag":149,"props":3734,"children":3735},{},[3736,3754],{"type":51,"tag":103,"props":3737,"children":3738},{},[3739,3743,3744,3748,3749,3753],{"type":51,"tag":71,"props":3740,"children":3741},{},[3742],{"type":56,"value":3316},{"type":56,"value":2005},{"type":51,"tag":1443,"props":3745,"children":3746},{},[3747],{"type":56,"value":14},{"type":56,"value":1791},{"type":51,"tag":1443,"props":3750,"children":3751},{},[3752],{"type":56,"value":2015},{"type":56,"value":1456},{"type":51,"tag":103,"props":3755,"children":3756},{},[3757,3762],{"type":51,"tag":71,"props":3758,"children":3759},{},[3760],{"type":56,"value":3761},"Focus:",{"type":56,"value":3763}," Content gaps addressed or user experience improvements",{"type":51,"tag":79,"props":3765,"children":3767},{"id":3766},"formatting-rules-for-suggested-text",[3768],{"type":56,"value":3769},"Formatting rules for suggested text",{"type":51,"tag":52,"props":3771,"children":3772},{},[3773,3775,3780,3781,3786,3787,3792,3793,3798],{"type":56,"value":3774},"All suggested ",{"type":51,"tag":59,"props":3776,"children":3778},{"className":3777},[],[3779],{"type":56,"value":1376},{"type":56,"value":688},{"type":51,"tag":59,"props":3782,"children":3784},{"className":3783},[],[3785],{"type":56,"value":2366},{"type":56,"value":688},{"type":51,"tag":59,"props":3788,"children":3790},{"className":3789},[],[3791],{"type":56,"value":2377},{"type":56,"value":2450},{"type":51,"tag":59,"props":3794,"children":3796},{"className":3795},[],[3797],{"type":56,"value":2384},{"type":56,"value":3799}," content must follow these rules.",{"type":51,"tag":242,"props":3801,"children":3803},{"id":3802},"yaml-quoting",[3804],{"type":56,"value":3805},"YAML quoting",{"type":51,"tag":52,"props":3807,"children":3808},{},[3809,3811,3816,3817,3822,3823,3828,3829,3834,3835,3840,3841,3846,3848,3854],{"type":56,"value":3810},"Always wrap text field values in double quotes in any YAML output. This is mandatory when the value contains ",{"type":51,"tag":59,"props":3812,"children":3814},{"className":3813},[],[3815],{"type":56,"value":1400},{"type":56,"value":2487},{"type":51,"tag":59,"props":3818,"children":3820},{"className":3819},[],[3821],{"type":56,"value":2493},{"type":56,"value":688},{"type":51,"tag":59,"props":3824,"children":3826},{"className":3825},[],[3827],{"type":56,"value":2500},{"type":56,"value":688},{"type":51,"tag":59,"props":3830,"children":3832},{"className":3831},[],[3833],{"type":56,"value":2507},{"type":56,"value":688},{"type":51,"tag":59,"props":3836,"children":3838},{"className":3837},[],[3839],{"type":56,"value":2514},{"type":56,"value":1563},{"type":51,"tag":59,"props":3842,"children":3844},{"className":3843},[],[3845],{"type":56,"value":2521},{"type":56,"value":3847}," — these characters cause YAML parse errors in unquoted scalars. Escape any double-quote characters within the value with a backslash (",{"type":51,"tag":59,"props":3849,"children":3851},{"className":3850},[],[3852],{"type":56,"value":3853},"\\\"",{"type":56,"value":3855},").",{"type":51,"tag":52,"props":3857,"children":3858},{},[3859,3861,3867,3869],{"type":56,"value":3860},"Good: ",{"type":51,"tag":59,"props":3862,"children":3864},{"className":3863},[],[3865],{"type":56,"value":3866},"description: \"Removes the --path.home flag: it had no effect\"",{"type":56,"value":3868},"\nBad: ",{"type":51,"tag":59,"props":3870,"children":3872},{"className":3871},[],[3873],{"type":56,"value":3874},"description: Removes the --path.home flag: it had no effect",{"type":51,"tag":242,"props":3876,"children":3878},{"id":3877},"links",[3879],{"type":56,"value":3880},"Links",{"type":51,"tag":149,"props":3882,"children":3883},{},[3884,3889,3908,3927,3946],{"type":51,"tag":103,"props":3885,"children":3886},{},[3887],{"type":56,"value":3888},"Use descriptive link text — never bare URLs, never \"click here\"",{"type":51,"tag":103,"props":3890,"children":3891},{},[3892,3894,3900,3902],{"type":56,"value":3893},"Same-repo internal links: absolute path from docs root with ",{"type":51,"tag":59,"props":3895,"children":3897},{"className":3896},[],[3898],{"type":56,"value":3899},".md",{"type":56,"value":3901}," extension — ",{"type":51,"tag":59,"props":3903,"children":3905},{"className":3904},[],[3906],{"type":56,"value":3907},"[Migration guide](\u002Fdeploy-manage\u002Fmigration.md)",{"type":51,"tag":103,"props":3909,"children":3910},{},[3911,3913,3919,3921],{"type":56,"value":3912},"Cross-repo links: ",{"type":51,"tag":59,"props":3914,"children":3916},{"className":3915},[],[3917],{"type":56,"value":3918},"scheme:\u002F\u002Fpath",{"type":56,"value":3920}," syntax — ",{"type":51,"tag":59,"props":3922,"children":3924},{"className":3923},[],[3925],{"type":56,"value":3926},"[Kibana settings](kibana:\u002F\u002Fmanagement\u002Fsettings.md)",{"type":51,"tag":103,"props":3928,"children":3929},{},[3930,3932,3938,3940],{"type":56,"value":3931},"External links: full ",{"type":51,"tag":59,"props":3933,"children":3935},{"className":3934},[],[3936],{"type":56,"value":3937},"https:\u002F\u002F",{"type":56,"value":3939}," URL — ",{"type":51,"tag":59,"props":3941,"children":3943},{"className":3942},[],[3944],{"type":56,"value":3945},"[RFC 7231](https:\u002F\u002Ftools.ietf.org\u002Fhtml\u002Frfc7231)",{"type":51,"tag":103,"props":3947,"children":3948},{},[3949,3951,3957],{"type":56,"value":3950},"Never use ",{"type":51,"tag":59,"props":3952,"children":3954},{"className":3953},[],[3955],{"type":56,"value":3956},"https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002F...",{"type":56,"value":3958}," for internal content — use a cross-repo or relative link instead",{"type":51,"tag":242,"props":3960,"children":3962},{"id":3961},"inline-code",[3963],{"type":56,"value":3964},"Inline code",{"type":51,"tag":52,"props":3966,"children":3967},{},[3968,3970,3975,3976,3982],{"type":56,"value":3969},"Use backticks for field names, parameter names, config keys, API endpoints, commands, and specific values — e.g. ",{"type":51,"tag":59,"props":3971,"children":3973},{"className":3972},[],[3974],{"type":56,"value":1341},{"type":56,"value":688},{"type":51,"tag":59,"props":3977,"children":3979},{"className":3978},[],[3980],{"type":56,"value":3981},"POST \u002F_reindex",{"type":56,"value":66},{"type":51,"tag":242,"props":3984,"children":3986},{"id":3985},"code-blocks",[3987],{"type":56,"value":3988},"Code blocks",{"type":51,"tag":149,"props":3990,"children":3991},{},[3992,4013,4026,4039],{"type":51,"tag":103,"props":3993,"children":3994},{},[3995,3997,4003,4005,4011],{"type":56,"value":3996},"Always include a language identifier: ",{"type":51,"tag":59,"props":3998,"children":4000},{"className":3999},[],[4001],{"type":56,"value":4002},"yaml`, ",{"type":56,"value":4004},"json",{"type":51,"tag":59,"props":4006,"children":4008},{"className":4007},[],[4009],{"type":56,"value":4010},", ````bash",{"type":56,"value":4012},", ````console`",{"type":51,"tag":103,"props":4014,"children":4015},{},[4016,4018,4024],{"type":56,"value":4017},"Use ",{"type":51,"tag":59,"props":4019,"children":4021},{"className":4020},[],[4022],{"type":56,"value":4023},"console",{"type":56,"value":4025}," for Elasticsearch API requests — it renders with a Kibana Dev Console link",{"type":51,"tag":103,"props":4027,"children":4028},{},[4029,4031,4037],{"type":56,"value":4030},"Add ",{"type":51,"tag":59,"props":4032,"children":4034},{"className":4033},[],[4035],{"type":56,"value":4036},"subs=true",{"type":56,"value":4038}," when the block contains docs-builder substitution variables",{"type":51,"tag":103,"props":4040,"children":4041},{},[4042,4044,4050,4051,4057],{"type":56,"value":4043},"Add callouts (",{"type":51,"tag":59,"props":4045,"children":4047},{"className":4046},[],[4048],{"type":56,"value":4049},"\u003C1>",{"type":56,"value":688},{"type":51,"tag":59,"props":4052,"children":4054},{"className":4053},[],[4055],{"type":56,"value":4056},"\u003C2>",{"type":56,"value":4058},") only when annotation adds real value; always follow with a matching ordered list",{"type":51,"tag":79,"props":4060,"children":4062},{"id":4061},"step-7-present-output",[4063],{"type":56,"value":4064},"Step 7: Present output",{"type":51,"tag":52,"props":4066,"children":4067},{},[4068,4073],{"type":51,"tag":71,"props":4069,"children":4070},{},[4071],{"type":56,"value":4072},"Mode A:",{"type":56,"value":4074}," Present \"current → suggested\" pairs for each field. Do not apply changes without user confirmation.",{"type":51,"tag":52,"props":4076,"children":4077},{},[4078,4083],{"type":51,"tag":71,"props":4079,"children":4080},{},[4081],{"type":56,"value":4082},"Mode B:",{"type":56,"value":4084}," Present results for each file processed in the directory. For files needing improvements, show \"current → suggested\" pairs. Summarize at the end with a count of files processed and files needing improvements. Do not apply changes without user confirmation.",{"type":51,"tag":52,"props":4086,"children":4087},{},[4088,4093,4095,4100,4102,4108],{"type":51,"tag":71,"props":4089,"children":4090},{},[4091],{"type":56,"value":4092},"Mode C:",{"type":56,"value":4094}," Present the suggested field text, followed by the ready-to-copy ",{"type":51,"tag":59,"props":4096,"children":4098},{"className":4097},[],[4099],{"type":56,"value":64},{"type":56,"value":4101}," command. Invite the user to confirm or adjust before running the command. Make clear that the skill does not create the file — ",{"type":51,"tag":59,"props":4103,"children":4105},{"className":4104},[],[4106],{"type":56,"value":4107},"changelog add",{"type":56,"value":4109}," does.",{"type":51,"tag":242,"props":4111,"children":4113},{"id":4112},"confidence-and-assumptions-section",[4114],{"type":56,"value":4115},"Confidence and assumptions section",{"type":51,"tag":52,"props":4117,"children":4118},{},[4119,4124],{"type":51,"tag":71,"props":4120,"children":4121},{},[4122],{"type":56,"value":4123},"All modes:",{"type":56,"value":4125}," After presenting suggestions but before requesting confirmation, include a structured \"Confidence + Assumptions\" section that helps writers evaluate suggestion quality:",{"type":51,"tag":3045,"props":4127,"children":4131},{"className":4128,"code":4129,"language":4130,"meta":3050,"style":3050},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","## Confidence + Assumptions\n\n### Least confident suggestions:\n- [Field]: [Specific suggestion] — [Reason for uncertainty, e.g., \"Limited PR context\", \"Ambiguous technical term\", \"Multiple interpretation options\"]\n\n### Type-title alignment issues:\n- [File]: Type `[current-type]` + Title \"[current-title]\" — [Mismatch description]\n  - **Option A:** Keep type, suggested title: \"[new-title]\"\n  - **Option B:** Keep title, suggested type: `[new-type]`\n  - **Recommendation:** [Which option with reasoning]\n\n### Technical content assessment:\n- [File]: Title \"[current-title]\" — [Technical assessment]\n  - **Issue:** [Implementation-focused vs user-focused description]\n  - **Suggested user-focused rewrite:** \"[user-impact-focused title]\"\n  - **Reasoning:** [Why the rewrite better serves users]\n\n### Terminology uncertainties:\n- [Term\u002Fphrase]: Assumed [interpretation] — [Why uncertain, e.g., \"Could be UI element vs feature name\", \"Missing domain context\"]\n- [Acronym]: Expanded to \"[expansion]\" — [Confidence level: High\u002FMedium\u002FLow based on PR context, jargon-skill patterns, or domain knowledge]\n\n### Assumptions made:\n- [Assumption]: [Rationale, e.g., \"Normalized technical term based on common Elastic usage\", \"Inferred user impact from limited PR description\"]\n\n### Input limitations:\n- [Issue]: [Impact on suggestions, e.g., \"Couldn't fetch PR #1234 - title suggestions based on changelog content only\", \"No issue links - impact\u002Faction suggestions may be incomplete\"]\n\n### Resources referenced:\n- [✓\u002F✗] Canonical guidance: [Source used or fetch failure reason]\n- [✓\u002F✗] PR\u002FIssue context: [What was available or missing]\n","markdown",[4132],{"type":51,"tag":59,"props":4133,"children":4134},{"__ignoreMap":3050},[4135,4148,4157,4170,4197,4204,4216,4279,4326,4364,4390,4398,4411,4453,4479,4505,4531,4539,4552,4596,4639,4647,4660,4686,4694,4707,4733,4741,4754,4780],{"type":51,"tag":1443,"props":4136,"children":4137},{"class":3057,"line":3058},[4138,4143],{"type":51,"tag":1443,"props":4139,"children":4140},{"style":3094},[4141],{"type":56,"value":4142},"## ",{"type":51,"tag":1443,"props":4144,"children":4145},{"style":3062},[4146],{"type":56,"value":4147},"Confidence + Assumptions\n",{"type":51,"tag":1443,"props":4149,"children":4150},{"class":3057,"line":3085},[4151],{"type":51,"tag":1443,"props":4152,"children":4154},{"emptyLinePlaceholder":4153},true,[4155],{"type":56,"value":4156},"\n",{"type":51,"tag":1443,"props":4158,"children":4159},{"class":3057,"line":3119},[4160,4165],{"type":51,"tag":1443,"props":4161,"children":4162},{"style":3094},[4163],{"type":56,"value":4164},"### ",{"type":51,"tag":1443,"props":4166,"children":4167},{"style":3062},[4168],{"type":56,"value":4169},"Least confident suggestions:\n",{"type":51,"tag":1443,"props":4171,"children":4172},{"class":3057,"line":3146},[4173,4178,4183,4188,4192],{"type":51,"tag":1443,"props":4174,"children":4175},{"style":3094},[4176],{"type":56,"value":4177},"-",{"type":51,"tag":1443,"props":4179,"children":4180},{"style":3094},[4181],{"type":56,"value":4182}," [",{"type":51,"tag":1443,"props":4184,"children":4185},{"style":3068},[4186],{"type":56,"value":4187},"Field",{"type":51,"tag":1443,"props":4189,"children":4190},{"style":3094},[4191],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4193,"children":4194},{"style":3079},[4195],{"type":56,"value":4196},": [Specific suggestion] — [Reason for uncertainty, e.g., \"Limited PR context\", \"Ambiguous technical term\", \"Multiple interpretation options\"]\n",{"type":51,"tag":1443,"props":4198,"children":4199},{"class":3057,"line":3172},[4200],{"type":51,"tag":1443,"props":4201,"children":4202},{"emptyLinePlaceholder":4153},[4203],{"type":56,"value":4156},{"type":51,"tag":1443,"props":4205,"children":4206},{"class":3057,"line":3198},[4207,4211],{"type":51,"tag":1443,"props":4208,"children":4209},{"style":3094},[4210],{"type":56,"value":4164},{"type":51,"tag":1443,"props":4212,"children":4213},{"style":3062},[4214],{"type":56,"value":4215},"Type-title alignment issues:\n",{"type":51,"tag":1443,"props":4217,"children":4219},{"class":3057,"line":4218},7,[4220,4224,4228,4233,4237,4242,4247,4252,4256,4261,4265,4270,4274],{"type":51,"tag":1443,"props":4221,"children":4222},{"style":3094},[4223],{"type":56,"value":4177},{"type":51,"tag":1443,"props":4225,"children":4226},{"style":3094},[4227],{"type":56,"value":4182},{"type":51,"tag":1443,"props":4229,"children":4230},{"style":3068},[4231],{"type":56,"value":4232},"File",{"type":51,"tag":1443,"props":4234,"children":4235},{"style":3094},[4236],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4238,"children":4239},{"style":3079},[4240],{"type":56,"value":4241},": Type ",{"type":51,"tag":1443,"props":4243,"children":4244},{"style":3094},[4245],{"type":56,"value":4246},"`",{"type":51,"tag":1443,"props":4248,"children":4249},{"style":3068},[4250],{"type":56,"value":4251},"[current-type]",{"type":51,"tag":1443,"props":4253,"children":4254},{"style":3094},[4255],{"type":56,"value":4246},{"type":51,"tag":1443,"props":4257,"children":4258},{"style":3079},[4259],{"type":56,"value":4260}," + Title \"",{"type":51,"tag":1443,"props":4262,"children":4263},{"style":3094},[4264],{"type":56,"value":2500},{"type":51,"tag":1443,"props":4266,"children":4267},{"style":3068},[4268],{"type":56,"value":4269},"current-title",{"type":51,"tag":1443,"props":4271,"children":4272},{"style":3094},[4273],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4275,"children":4276},{"style":3079},[4277],{"type":56,"value":4278},"\" — [Mismatch description]\n",{"type":51,"tag":1443,"props":4280,"children":4282},{"class":3057,"line":4281},8,[4283,4288,4294,4299,4304,4309,4313,4318,4322],{"type":51,"tag":1443,"props":4284,"children":4285},{"style":3094},[4286],{"type":56,"value":4287},"  -",{"type":51,"tag":1443,"props":4289,"children":4291},{"style":4290},"--shiki-light:#39ADB5;--shiki-light-font-weight:bold;--shiki-default:#89DDFF;--shiki-default-font-weight:bold;--shiki-dark:#89DDFF;--shiki-dark-font-weight:bold",[4292],{"type":56,"value":4293}," **",{"type":51,"tag":1443,"props":4295,"children":4297},{"style":4296},"--shiki-light:#E53935;--shiki-light-font-weight:bold;--shiki-default:#F07178;--shiki-default-font-weight:bold;--shiki-dark:#F07178;--shiki-dark-font-weight:bold",[4298],{"type":56,"value":2128},{"type":51,"tag":1443,"props":4300,"children":4301},{"style":4290},[4302],{"type":56,"value":4303},"**",{"type":51,"tag":1443,"props":4305,"children":4306},{"style":3079},[4307],{"type":56,"value":4308}," Keep type, suggested title: \"",{"type":51,"tag":1443,"props":4310,"children":4311},{"style":3094},[4312],{"type":56,"value":2500},{"type":51,"tag":1443,"props":4314,"children":4315},{"style":3068},[4316],{"type":56,"value":4317},"new-title",{"type":51,"tag":1443,"props":4319,"children":4320},{"style":3094},[4321],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4323,"children":4324},{"style":3079},[4325],{"type":56,"value":3218},{"type":51,"tag":1443,"props":4327,"children":4328},{"class":3057,"line":27},[4329,4333,4337,4341,4345,4350,4354,4359],{"type":51,"tag":1443,"props":4330,"children":4331},{"style":3094},[4332],{"type":56,"value":4287},{"type":51,"tag":1443,"props":4334,"children":4335},{"style":4290},[4336],{"type":56,"value":4293},{"type":51,"tag":1443,"props":4338,"children":4339},{"style":4296},[4340],{"type":56,"value":2138},{"type":51,"tag":1443,"props":4342,"children":4343},{"style":4290},[4344],{"type":56,"value":4303},{"type":51,"tag":1443,"props":4346,"children":4347},{"style":3079},[4348],{"type":56,"value":4349}," Keep title, suggested type: ",{"type":51,"tag":1443,"props":4351,"children":4352},{"style":3094},[4353],{"type":56,"value":4246},{"type":51,"tag":1443,"props":4355,"children":4356},{"style":3068},[4357],{"type":56,"value":4358},"[new-type]",{"type":51,"tag":1443,"props":4360,"children":4361},{"style":3094},[4362],{"type":56,"value":4363},"`\n",{"type":51,"tag":1443,"props":4365,"children":4367},{"class":3057,"line":4366},10,[4368,4372,4376,4381,4385],{"type":51,"tag":1443,"props":4369,"children":4370},{"style":3094},[4371],{"type":56,"value":4287},{"type":51,"tag":1443,"props":4373,"children":4374},{"style":4290},[4375],{"type":56,"value":4293},{"type":51,"tag":1443,"props":4377,"children":4378},{"style":4296},[4379],{"type":56,"value":4380},"Recommendation:",{"type":51,"tag":1443,"props":4382,"children":4383},{"style":4290},[4384],{"type":56,"value":4303},{"type":51,"tag":1443,"props":4386,"children":4387},{"style":3079},[4388],{"type":56,"value":4389}," [Which option with reasoning]\n",{"type":51,"tag":1443,"props":4391,"children":4393},{"class":3057,"line":4392},11,[4394],{"type":51,"tag":1443,"props":4395,"children":4396},{"emptyLinePlaceholder":4153},[4397],{"type":56,"value":4156},{"type":51,"tag":1443,"props":4399,"children":4401},{"class":3057,"line":4400},12,[4402,4406],{"type":51,"tag":1443,"props":4403,"children":4404},{"style":3094},[4405],{"type":56,"value":4164},{"type":51,"tag":1443,"props":4407,"children":4408},{"style":3062},[4409],{"type":56,"value":4410},"Technical content assessment:\n",{"type":51,"tag":1443,"props":4412,"children":4414},{"class":3057,"line":4413},13,[4415,4419,4423,4427,4431,4436,4440,4444,4448],{"type":51,"tag":1443,"props":4416,"children":4417},{"style":3094},[4418],{"type":56,"value":4177},{"type":51,"tag":1443,"props":4420,"children":4421},{"style":3094},[4422],{"type":56,"value":4182},{"type":51,"tag":1443,"props":4424,"children":4425},{"style":3068},[4426],{"type":56,"value":4232},{"type":51,"tag":1443,"props":4428,"children":4429},{"style":3094},[4430],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4432,"children":4433},{"style":3079},[4434],{"type":56,"value":4435},": Title \"",{"type":51,"tag":1443,"props":4437,"children":4438},{"style":3094},[4439],{"type":56,"value":2500},{"type":51,"tag":1443,"props":4441,"children":4442},{"style":3068},[4443],{"type":56,"value":4269},{"type":51,"tag":1443,"props":4445,"children":4446},{"style":3094},[4447],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4449,"children":4450},{"style":3079},[4451],{"type":56,"value":4452},"\" — [Technical assessment]\n",{"type":51,"tag":1443,"props":4454,"children":4456},{"class":3057,"line":4455},14,[4457,4461,4465,4470,4474],{"type":51,"tag":1443,"props":4458,"children":4459},{"style":3094},[4460],{"type":56,"value":4287},{"type":51,"tag":1443,"props":4462,"children":4463},{"style":4290},[4464],{"type":56,"value":4293},{"type":51,"tag":1443,"props":4466,"children":4467},{"style":4296},[4468],{"type":56,"value":4469},"Issue:",{"type":51,"tag":1443,"props":4471,"children":4472},{"style":4290},[4473],{"type":56,"value":4303},{"type":51,"tag":1443,"props":4475,"children":4476},{"style":3079},[4477],{"type":56,"value":4478}," [Implementation-focused vs user-focused description]\n",{"type":51,"tag":1443,"props":4480,"children":4482},{"class":3057,"line":4481},15,[4483,4487,4491,4496,4500],{"type":51,"tag":1443,"props":4484,"children":4485},{"style":3094},[4486],{"type":56,"value":4287},{"type":51,"tag":1443,"props":4488,"children":4489},{"style":4290},[4490],{"type":56,"value":4293},{"type":51,"tag":1443,"props":4492,"children":4493},{"style":4296},[4494],{"type":56,"value":4495},"Suggested user-focused rewrite:",{"type":51,"tag":1443,"props":4497,"children":4498},{"style":4290},[4499],{"type":56,"value":4303},{"type":51,"tag":1443,"props":4501,"children":4502},{"style":3079},[4503],{"type":56,"value":4504}," \"[user-impact-focused title]\"\n",{"type":51,"tag":1443,"props":4506,"children":4508},{"class":3057,"line":4507},16,[4509,4513,4517,4522,4526],{"type":51,"tag":1443,"props":4510,"children":4511},{"style":3094},[4512],{"type":56,"value":4287},{"type":51,"tag":1443,"props":4514,"children":4515},{"style":4290},[4516],{"type":56,"value":4293},{"type":51,"tag":1443,"props":4518,"children":4519},{"style":4296},[4520],{"type":56,"value":4521},"Reasoning:",{"type":51,"tag":1443,"props":4523,"children":4524},{"style":4290},[4525],{"type":56,"value":4303},{"type":51,"tag":1443,"props":4527,"children":4528},{"style":3079},[4529],{"type":56,"value":4530}," [Why the rewrite better serves users]\n",{"type":51,"tag":1443,"props":4532,"children":4534},{"class":3057,"line":4533},17,[4535],{"type":51,"tag":1443,"props":4536,"children":4537},{"emptyLinePlaceholder":4153},[4538],{"type":56,"value":4156},{"type":51,"tag":1443,"props":4540,"children":4542},{"class":3057,"line":4541},18,[4543,4547],{"type":51,"tag":1443,"props":4544,"children":4545},{"style":3094},[4546],{"type":56,"value":4164},{"type":51,"tag":1443,"props":4548,"children":4549},{"style":3062},[4550],{"type":56,"value":4551},"Terminology uncertainties:\n",{"type":51,"tag":1443,"props":4553,"children":4555},{"class":3057,"line":4554},19,[4556,4560,4564,4569,4573,4578,4582,4587,4591],{"type":51,"tag":1443,"props":4557,"children":4558},{"style":3094},[4559],{"type":56,"value":4177},{"type":51,"tag":1443,"props":4561,"children":4562},{"style":3094},[4563],{"type":56,"value":4182},{"type":51,"tag":1443,"props":4565,"children":4566},{"style":3068},[4567],{"type":56,"value":4568},"Term\u002Fphrase",{"type":51,"tag":1443,"props":4570,"children":4571},{"style":3094},[4572],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4574,"children":4575},{"style":3079},[4576],{"type":56,"value":4577},": Assumed ",{"type":51,"tag":1443,"props":4579,"children":4580},{"style":3094},[4581],{"type":56,"value":2500},{"type":51,"tag":1443,"props":4583,"children":4584},{"style":3068},[4585],{"type":56,"value":4586},"interpretation",{"type":51,"tag":1443,"props":4588,"children":4589},{"style":3094},[4590],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4592,"children":4593},{"style":3079},[4594],{"type":56,"value":4595}," — [Why uncertain, e.g., \"Could be UI element vs feature name\", \"Missing domain context\"]\n",{"type":51,"tag":1443,"props":4597,"children":4599},{"class":3057,"line":4598},20,[4600,4604,4608,4612,4616,4621,4625,4630,4634],{"type":51,"tag":1443,"props":4601,"children":4602},{"style":3094},[4603],{"type":56,"value":4177},{"type":51,"tag":1443,"props":4605,"children":4606},{"style":3094},[4607],{"type":56,"value":4182},{"type":51,"tag":1443,"props":4609,"children":4610},{"style":3068},[4611],{"type":56,"value":1027},{"type":51,"tag":1443,"props":4613,"children":4614},{"style":3094},[4615],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4617,"children":4618},{"style":3079},[4619],{"type":56,"value":4620},": Expanded to \"",{"type":51,"tag":1443,"props":4622,"children":4623},{"style":3094},[4624],{"type":56,"value":2500},{"type":51,"tag":1443,"props":4626,"children":4627},{"style":3068},[4628],{"type":56,"value":4629},"expansion",{"type":51,"tag":1443,"props":4631,"children":4632},{"style":3094},[4633],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4635,"children":4636},{"style":3079},[4637],{"type":56,"value":4638},"\" — [Confidence level: High\u002FMedium\u002FLow based on PR context, jargon-skill patterns, or domain knowledge]\n",{"type":51,"tag":1443,"props":4640,"children":4642},{"class":3057,"line":4641},21,[4643],{"type":51,"tag":1443,"props":4644,"children":4645},{"emptyLinePlaceholder":4153},[4646],{"type":56,"value":4156},{"type":51,"tag":1443,"props":4648,"children":4650},{"class":3057,"line":4649},22,[4651,4655],{"type":51,"tag":1443,"props":4652,"children":4653},{"style":3094},[4654],{"type":56,"value":4164},{"type":51,"tag":1443,"props":4656,"children":4657},{"style":3062},[4658],{"type":56,"value":4659},"Assumptions made:\n",{"type":51,"tag":1443,"props":4661,"children":4663},{"class":3057,"line":4662},23,[4664,4668,4672,4677,4681],{"type":51,"tag":1443,"props":4665,"children":4666},{"style":3094},[4667],{"type":56,"value":4177},{"type":51,"tag":1443,"props":4669,"children":4670},{"style":3094},[4671],{"type":56,"value":4182},{"type":51,"tag":1443,"props":4673,"children":4674},{"style":3068},[4675],{"type":56,"value":4676},"Assumption",{"type":51,"tag":1443,"props":4678,"children":4679},{"style":3094},[4680],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4682,"children":4683},{"style":3079},[4684],{"type":56,"value":4685},": [Rationale, e.g., \"Normalized technical term based on common Elastic usage\", \"Inferred user impact from limited PR description\"]\n",{"type":51,"tag":1443,"props":4687,"children":4689},{"class":3057,"line":4688},24,[4690],{"type":51,"tag":1443,"props":4691,"children":4692},{"emptyLinePlaceholder":4153},[4693],{"type":56,"value":4156},{"type":51,"tag":1443,"props":4695,"children":4697},{"class":3057,"line":4696},25,[4698,4702],{"type":51,"tag":1443,"props":4699,"children":4700},{"style":3094},[4701],{"type":56,"value":4164},{"type":51,"tag":1443,"props":4703,"children":4704},{"style":3062},[4705],{"type":56,"value":4706},"Input limitations:\n",{"type":51,"tag":1443,"props":4708,"children":4710},{"class":3057,"line":4709},26,[4711,4715,4719,4724,4728],{"type":51,"tag":1443,"props":4712,"children":4713},{"style":3094},[4714],{"type":56,"value":4177},{"type":51,"tag":1443,"props":4716,"children":4717},{"style":3094},[4718],{"type":56,"value":4182},{"type":51,"tag":1443,"props":4720,"children":4721},{"style":3068},[4722],{"type":56,"value":4723},"Issue",{"type":51,"tag":1443,"props":4725,"children":4726},{"style":3094},[4727],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4729,"children":4730},{"style":3079},[4731],{"type":56,"value":4732},": [Impact on suggestions, e.g., \"Couldn't fetch PR #1234 - title suggestions based on changelog content only\", \"No issue links - impact\u002Faction suggestions may be incomplete\"]\n",{"type":51,"tag":1443,"props":4734,"children":4736},{"class":3057,"line":4735},27,[4737],{"type":51,"tag":1443,"props":4738,"children":4739},{"emptyLinePlaceholder":4153},[4740],{"type":56,"value":4156},{"type":51,"tag":1443,"props":4742,"children":4744},{"class":3057,"line":4743},28,[4745,4749],{"type":51,"tag":1443,"props":4746,"children":4747},{"style":3094},[4748],{"type":56,"value":4164},{"type":51,"tag":1443,"props":4750,"children":4751},{"style":3062},[4752],{"type":56,"value":4753},"Resources referenced:\n",{"type":51,"tag":1443,"props":4755,"children":4757},{"class":3057,"line":4756},29,[4758,4762,4766,4771,4775],{"type":51,"tag":1443,"props":4759,"children":4760},{"style":3094},[4761],{"type":56,"value":4177},{"type":51,"tag":1443,"props":4763,"children":4764},{"style":3094},[4765],{"type":56,"value":4182},{"type":51,"tag":1443,"props":4767,"children":4768},{"style":3068},[4769],{"type":56,"value":4770},"✓\u002F✗",{"type":51,"tag":1443,"props":4772,"children":4773},{"style":3094},[4774],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4776,"children":4777},{"style":3079},[4778],{"type":56,"value":4779}," Canonical guidance: [Source used or fetch failure reason]\n",{"type":51,"tag":1443,"props":4781,"children":4783},{"class":3057,"line":4782},30,[4784,4788,4792,4796,4800],{"type":51,"tag":1443,"props":4785,"children":4786},{"style":3094},[4787],{"type":56,"value":4177},{"type":51,"tag":1443,"props":4789,"children":4790},{"style":3094},[4791],{"type":56,"value":4182},{"type":51,"tag":1443,"props":4793,"children":4794},{"style":3068},[4795],{"type":56,"value":4770},{"type":51,"tag":1443,"props":4797,"children":4798},{"style":3094},[4799],{"type":56,"value":2507},{"type":51,"tag":1443,"props":4801,"children":4802},{"style":3079},[4803],{"type":56,"value":4804}," PR\u002FIssue context: [What was available or missing]\n",{"type":51,"tag":52,"props":4806,"children":4807},{},[4808],{"type":51,"tag":71,"props":4809,"children":4810},{},[4811],{"type":56,"value":4812},"Confidence scoring guidance:",{"type":51,"tag":149,"props":4814,"children":4815},{},[4816,4826,4835],{"type":51,"tag":103,"props":4817,"children":4818},{},[4819,4824],{"type":51,"tag":71,"props":4820,"children":4821},{},[4822],{"type":56,"value":4823},"Low confidence triggers:",{"type":56,"value":4825}," Missing PR context, ambiguous technical terms, conflicting pattern interpretations, failed resource fetches, domain-specific terminology without clear context",{"type":51,"tag":103,"props":4827,"children":4828},{},[4829,4833],{"type":51,"tag":71,"props":4830,"children":4831},{},[4832],{"type":56,"value":2655},{"type":56,"value":4834}," Partial PR context, standard technical terms, routine pattern fixes with good guidance",{"type":51,"tag":103,"props":4836,"children":4837},{},[4838,4842],{"type":51,"tag":71,"props":4839,"children":4840},{},[4841],{"type":56,"value":2645},{"type":56,"value":4843}," Full context available, canonical guidance loaded, routine formatting\u002Fstructural fixes",{"type":51,"tag":52,"props":4845,"children":4846},{},[4847],{"type":51,"tag":71,"props":4848,"children":4849},{},[4850],{"type":56,"value":4851},"Enhanced confidence methodology:",{"type":51,"tag":149,"props":4853,"children":4854},{},[4855,4865,4875],{"type":51,"tag":103,"props":4856,"children":4857},{},[4858,4863],{"type":51,"tag":71,"props":4859,"children":4860},{},[4861],{"type":56,"value":4862},"Document all uncertainties:",{"type":56,"value":4864}," Explicitly flag each suggestion where multiple interpretations are possible",{"type":51,"tag":103,"props":4866,"children":4867},{},[4868,4873],{"type":51,"tag":71,"props":4869,"children":4870},{},[4871],{"type":56,"value":4872},"Track assumption rationales:",{"type":56,"value":4874}," Always explain why you chose one interpretation over another",{"type":51,"tag":103,"props":4876,"children":4877},{},[4878,4883],{"type":51,"tag":71,"props":4879,"children":4880},{},[4881],{"type":56,"value":4882},"Resource dependency transparency:",{"type":56,"value":4884}," Clearly indicate which suggestions depend on successfully loaded canonical guidance vs fallback patterns",{"type":51,"tag":52,"props":4886,"children":4887},{},[4888,4892],{"type":51,"tag":71,"props":4889,"children":4890},{},[4891],{"type":56,"value":227},{"type":56,"value":4893}," Default behavior is suggest-only. Only apply changes to disk after explicit user confirmation. After writing changes, re-parse YAML to validate the result.",{"type":51,"tag":52,"props":4895,"children":4896},{},[4897,4902,4904,4909],{"type":51,"tag":71,"props":4898,"children":4899},{},[4900],{"type":56,"value":4901},"Sync awareness:",{"type":56,"value":4903}," 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 output. Note which patterns may need updating and suggest checking the canonical source directly at ",{"type":51,"tag":286,"props":4905,"children":4907},{"href":44,"rel":4906},[289],[4908],{"type":56,"value":44},{"type":56,"value":66},{"type":51,"tag":4911,"props":4912,"children":4913},"style",{},[4914],{"type":56,"value":4915},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":4917,"total":4541},[4918,4928,4941,4951,4960,4967,4977],{"slug":4919,"name":4919,"fn":4920,"description":4921,"org":4922,"tags":4923,"stars":23,"repoUrl":24,"updatedAt":4927},"docs-applies-to-tagging","validate applies_to tags in Elastic documentation","Validate and generate applies_to tags in Elastic documentation, including for cumulative docs across versions and deployment types. Use when writing new docs pages, reviewing existing pages for correct applies_to usage, deciding whether to preserve or replace existing version-scoped content, or when content changes lifecycle state (experimental, preview, beta, GA, deprecated, removed).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4924,4925,4926],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"2026-07-12T07:50:42.801473",{"slug":4929,"name":4929,"fn":4930,"description":4931,"org":4932,"tags":4933,"stars":23,"repoUrl":24,"updatedAt":4940},"docs-check-style","check documentation for Elastic style compliance","Check documentation for Elastic style guide compliance using Vale linter output and style rules. Use when writing, editing, or reviewing docs to catch voice, tone, grammar, formatting, accessibility, and word choice issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4934,4937,4938,4939],{"name":4935,"slug":4936,"type":15},"Accessibility","accessibility",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"2026-07-12T07:49:36.112751",{"slug":4942,"name":4942,"fn":4943,"description":4944,"org":4945,"tags":4946,"stars":23,"repoUrl":24,"updatedAt":4950},"docs-content-type-checker","check Elastic documentation content types","Check a docs-content page against Elastic content type guidelines (overview, how-to, tutorial, troubleshooting, changelog), or classify a proposed page idea against the content types before drafting. Use when the user asks to check content type compliance, validate page structure, review a doc against content type standards, or decide which content type a planned page should use.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4947,4948,4949],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"2026-07-12T07:50:36.826563",{"slug":4952,"name":4952,"fn":4953,"description":4954,"org":4955,"tags":4956,"stars":23,"repoUrl":24,"updatedAt":4959},"docs-draft-workflow-docs","draft Elastic Workflows documentation","Draft or update Elastic Workflows documentation pages in explore-analyze\u002Fworkflows\u002F — step references, use cases, how-tos, concepts, and overviews. Use when writing Workflows docs, documenting a step type, turning workflow YAML into documentation, drafting from a doc issue in docs-content or docs-content-internal, or creating a new page under the Workflows docset.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4957,4958],{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},"2026-07-12T07:48:02.16095",{"slug":4,"name":4,"fn":5,"description":6,"org":4961,"tags":4962,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4963,4964,4965,4966],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"name":17,"slug":18,"type":15},{"slug":4968,"name":4968,"fn":4969,"description":4970,"org":4971,"tags":4972,"stars":23,"repoUrl":24,"updatedAt":4976},"docs-flag-jargon-skill","flag Elastic jargon in documentation","Flag Elastic-internal jargon in documentation and suggest plain-language replacements. Use when reviewing, writing, or editing docs to catch terms that external readers would not understand.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4973,4974,4975],{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"2026-07-12T07:49:34.836748",{"slug":4978,"name":4978,"fn":4979,"description":4980,"org":4981,"tags":4982,"stars":23,"repoUrl":24,"updatedAt":4989},"docs-frontmatter-audit","audit Elastic documentation frontmatter","Audit Elastic documentation files for frontmatter completeness and correctness. Checks products, description, and navigation_title fields across a directory. Use when auditing docs metadata, checking frontmatter quality before publishing, or validating a batch of files.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4983,4986,4987,4988],{"name":4984,"slug":4985,"type":15},"Audit","audit",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"2026-07-12T07:49:39.883351",{"items":4991,"total":5160},[4992,5011,5028,5043,5062,5074,5084,5098,5110,5123,5134,5147],{"slug":4993,"name":4993,"fn":4994,"description":4995,"org":4996,"tags":4997,"stars":5008,"repoUrl":5009,"updatedAt":5010},"accessing-benchmark-results","retrieve and analyze Rally benchmark results","Retrieve Rally benchmark results from an external Elasticsearch metrics store. Use to list past races, get a single race's overall (per-task) results, chart a metric's trend across multiple runs, compare two races, or check whether a run converged — e.g. \"show me recent geonames races\", \"what's the service_time trend for nyc_taxis over the last 30 days?\", \"compare these two race-ids\". Applies when datastore.type = elasticsearch is set in ~\u002F.rally\u002Frally.ini.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[4998,5001,5004,5005],{"name":4999,"slug":5000,"type":15},"Analytics","analytics",{"name":5002,"slug":5003,"type":15},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":15},{"name":5006,"slug":5007,"type":15},"Performance","performance",2027,"https:\u002F\u002Fgithub.com\u002Felastic\u002Frally","2026-07-12T07:46:38.54144",{"slug":5012,"name":5012,"fn":5013,"description":5014,"org":5015,"tags":5016,"stars":5008,"repoUrl":5009,"updatedAt":5027},"developing-rally","develop and debug Rally source code","Work on Rally's own codebase, not running benchmarks with it. Use when setting up the dev environment, running Rally's tests or linters, navigating its source, debugging Rally's own code, or making changes to Rally itself.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5017,5020,5021,5024],{"name":5018,"slug":5019,"type":15},"Debugging","debugging",{"name":9,"slug":8,"type":15},{"name":5022,"slug":5023,"type":15},"Engineering","engineering",{"name":5025,"slug":5026,"type":15},"Local Development","local-development","2026-07-12T07:46:35.976807",{"slug":5029,"name":5029,"fn":5030,"description":5031,"org":5032,"tags":5033,"stars":5008,"repoUrl":5009,"updatedAt":5042},"running-benchmarks","run Rally benchmarks against Elasticsearch","Run Rally benchmarks (races) against Elasticsearch — an existing\u002Fexternal cluster or a Rally-provisioned distribution — and read the summary report. Use when running a race (any pipeline, track, challenge, target-hosts, or auth) or when interpreting throughput, latency, and service_time results.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5034,5035,5038,5039],{"name":9,"slug":8,"type":15},{"name":5036,"slug":5037,"type":15},"Elasticsearch","elasticsearch",{"name":5006,"slug":5007,"type":15},{"name":5040,"slug":5041,"type":15},"Testing","testing","2026-07-12T07:46:37.277964",{"slug":5044,"name":5044,"fn":5045,"description":5046,"org":5047,"tags":5048,"stars":5059,"repoUrl":5060,"updatedAt":5061},"cloud-access-management","manage Elastic Cloud organization access","Manage Elastic Cloud organization access: invite users, assign roles to Serverless projects, and create or revoke Cloud API keys. Use when granting, modifying, or auditing user access.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5049,5052,5053,5056],{"name":5050,"slug":5051,"type":15},"Cloud","cloud",{"name":9,"slug":8,"type":15},{"name":5054,"slug":5055,"type":15},"Operations","operations",{"name":5057,"slug":5058,"type":15},"Permissions","permissions",531,"https:\u002F\u002Fgithub.com\u002Felastic\u002Fagent-skills","2026-07-12T07:46:44.946285",{"slug":5063,"name":5063,"fn":5064,"description":5065,"org":5066,"tags":5067,"stars":5059,"repoUrl":5060,"updatedAt":5073},"cloud-create-project","create Elastic Cloud Serverless projects","Creates Elastic Cloud Serverless projects (Elasticsearch, Observability, or Security) via the REST API, saves credentials to file, and bootstraps a scoped Elasticsearch API key. Use when creating a new serverless project, provisioning a search or observability environment, or spinning up a new Elastic Cloud project.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5068,5069,5072],{"name":5050,"slug":5051,"type":15},{"name":5070,"slug":5071,"type":15},"Deployment","deployment",{"name":5036,"slug":5037,"type":15},"2026-07-12T07:46:42.353362",{"slug":5075,"name":5075,"fn":5076,"description":5077,"org":5078,"tags":5079,"stars":5059,"repoUrl":5060,"updatedAt":5083},"cloud-manage-project","manage Elastic Cloud Serverless projects","Manages existing Elastic Cloud Serverless projects: list, get, update, delete, reset credentials, resume, and load saved credentials. Connects to existing projects by resolving endpoints and acquiring scoped Elasticsearch API keys. Use when performing day-2 operations on serverless projects, connecting to an existing project, loading or resetting project credentials, or looking up project details.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5080,5081,5082],{"name":5050,"slug":5051,"type":15},{"name":5036,"slug":5037,"type":15},{"name":5054,"slug":5055,"type":15},"2026-07-12T07:46:41.097412",{"slug":5085,"name":5085,"fn":5086,"description":5087,"org":5088,"tags":5089,"stars":5059,"repoUrl":5060,"updatedAt":5097},"cloud-network-security","manage Elastic Cloud network security","Manage Serverless network security (traffic filters): create, update, and delete IP filters and AWS PrivateLink VPC filters. Use when restricting network access or configuring private connectivity.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5090,5091,5092,5095],{"name":5050,"slug":5051,"type":15},{"name":5036,"slug":5037,"type":15},{"name":5093,"slug":5094,"type":15},"Networking","networking",{"name":5096,"slug":2049,"type":15},"Security","2026-07-12T07:46:43.675992",{"slug":5099,"name":5099,"fn":5100,"description":5101,"org":5102,"tags":5103,"stars":5059,"repoUrl":5060,"updatedAt":5109},"cloud-setup","configure Elastic Cloud authentication","Configures Elastic Cloud authentication and environment defaults. Use when setting up EC_API_KEY, configuring Cloud API access, or when another cloud skill requires credentials.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5104,5107,5108],{"name":5105,"slug":5106,"type":15},"Authentication","authentication",{"name":5050,"slug":5051,"type":15},{"name":5036,"slug":5037,"type":15},"2026-07-12T07:46:39.783105",{"slug":5111,"name":5111,"fn":5112,"description":5113,"org":5114,"tags":5115,"stars":5059,"repoUrl":5060,"updatedAt":5122},"elasticsearch-audit","configure Elasticsearch security audit logs","Enable, configure, and query Elasticsearch security audit logs. Use when the task involves audit logging setup, event filtering, or investigating security incidents like failed logins.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5116,5117,5118,5121],{"name":4984,"slug":4985,"type":15},{"name":5036,"slug":5037,"type":15},{"name":5119,"slug":5120,"type":15},"Logs","logs",{"name":5096,"slug":2049,"type":15},"2026-07-12T07:47:35.092599",{"slug":5124,"name":5124,"fn":5125,"description":5126,"org":5127,"tags":5128,"stars":5059,"repoUrl":5060,"updatedAt":5133},"elasticsearch-authn","configure Elasticsearch authentication realms","Authenticate to Elasticsearch using native, file-based, LDAP\u002FAD, SAML, OIDC, Kerberos, JWT, or certificate realms. Use when connecting with credentials, choosing a realm, or managing API keys. Assumes the target realms are already configured.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5129,5130,5131,5132],{"name":5105,"slug":5106,"type":15},{"name":9,"slug":8,"type":15},{"name":5036,"slug":5037,"type":15},{"name":5096,"slug":2049,"type":15},"2026-07-12T07:47:41.474547",{"slug":5135,"name":5135,"fn":5136,"description":5137,"org":5138,"tags":5139,"stars":5059,"repoUrl":5060,"updatedAt":5146},"elasticsearch-authz","manage Elasticsearch RBAC and security roles","Manage Elasticsearch RBAC: native users, roles, role mappings, document- and field-level security. Use when creating users or roles, assigning privileges, or mapping external realms like LDAP\u002FSAML.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5140,5141,5142,5145],{"name":9,"slug":8,"type":15},{"name":5036,"slug":5037,"type":15},{"name":5143,"slug":5144,"type":15},"RBAC","rbac",{"name":5096,"slug":2049,"type":15},"2026-07-12T07:47:36.394177",{"slug":5148,"name":5148,"fn":5149,"description":5150,"org":5151,"tags":5152,"stars":5059,"repoUrl":5060,"updatedAt":5159},"elasticsearch-esql","query Elasticsearch data with ES|QL","Execute ES|QL (Elasticsearch Query Language) queries, use when the user wants to query Elasticsearch data, analyze logs, aggregate metrics, explore data, or create charts and dashboards from ES|QL results.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[5153,5154,5155,5156],{"name":4999,"slug":5000,"type":15},{"name":5002,"slug":5003,"type":15},{"name":5036,"slug":5037,"type":15},{"name":5157,"slug":5158,"type":15},"SQL","sql","2026-07-12T07:47:40.249533",86]