@@ -238,35 +238,46 @@ private string GenerateYaml(ChangelogData data, ChangelogConfiguration config)
238238 ? "\n # It can be one of:\n " + string . Join ( "\n " , config . AvailableSubtypes . Select ( s => $ "# - { s } ") )
239239 : string . Empty ;
240240
241+ // Build lifecycles list
242+ var lifecyclesList = string . Join ( "\n " , config . AvailableLifecycles . Select ( l => $ "# - { l } ") ) ;
243+
241244 // Add schema comments using raw string literal
242245 var result = $ """
243- ##### Automated fields #####
246+ ##### Required fields #####
244247
245- # These fields are likely generated when the changelog is created and unlikely to require edits
248+ # title: A required string that is a short, user-facing headline (Max 80 characters)
246249
247- # pr: An optional string that contains the pull request number
248- # issues: An optional array of strings that contain URLs for issues that are relevant to the PR
249250 # type: A required string that contains the type of change
250251 # It can be one of:
251252 { typesList }
252- # subtype: An optional string that applies only to breaking changes { subtypesList }
253+
253254 # products: A required array of objects that denote the affected products
254255 # Each product object contains:
255- # - product: A required string with a predefined product ID
256- # - target: An optional string with the target version or date
257- # - lifecycle: An optional string (preview, beta, ga)
258- # areas: An optional array of strings that denotes the parts/components/services affected
259256
260- ##### Non-automated fields #####
257+ # - product: A required string with a valid product ID, defined in https://github.com/elastic/docs-builder/blob/main/config/products.yml
258+ # target: An optional string with the target version or date
259+ # lifecycle: An optional string for new features or enhancements that have a specific availability.
260+ # It can be one of:
261+ { lifecyclesList }
261262
262- # These fields might be generated when the changelog is created but are likely to require edits
263+ ##### Optional fields #####
263264
264- # title: A required string that is a short, user-facing headline (Max 80 characters)
265- # description: An optional string that provides additional information (Max 600 characters)
266- # impact: An optional string that describes how the user's environment is affected
267- # action: An optional string that describes what users must do to mitigate
268- # feature-id: An optional string to associate with a unique feature flag
269- # highlight: An optional boolean for items that should be included in release highlights
265+ # action: An optional string that describes what users must do to mitigate the impact of a breaking change or known issue.
266+
267+ # areas: An optional array of strings that denotes the parts/components/services of the product that are affected.
268+
269+ # description: An optional string that provides additional information (Max 600 characters).
270+
271+ # feature-id: An optional string to associate a feature or enhanceent with a unique feature flag.
272+
273+ # highlight: An optional boolean for items that should be included in release highlights or the UI to draw user attention.
274+
275+ # impact: An optional string that describes how the user's environment is affected by a breaking change or known issue.
276+
277+ # issues: An optional array of strings that contain the issues that are relevant to the PR
278+
279+ # pr: An optional string that contains the pull request number
280+ # subtype: An optional string that applies only to breaking changes{ subtypesList }
270281
271282 { yaml }
272283 """ ;
0 commit comments