documentationUrl: https://spotlight-rules.com/spec/
functions:
- digitalocean-ensurePropertiesExample
- microcks-aas-verify-mocks
- microcks-oas-verify-mocks
- trimble-check-description-for-all-error-responses
- trimble-check-description-for-all-success-responses
- trimble-check-for-path-parameter
- trimble-check-for-response-in-every-request
- trimble-operation-summary-description
functionsDir: ./functions
rules:
  openapi-channel-parameter-require-examples:
    title: Channel Parameter Require Examples
    reference: https://spotlight-rules.com/spec/rules/openapi/channel-parameter-require-examples/
    description: Parameter must have examples.
    message: Parameter must have examples
    severity: info
    given: $.channels.*.parameters.*.schema
    then:
      field: examples
      function: truthy
    formats:
    - aas2
    tags:
    - format:openapi
    - spec:channels
    - spec:parameters
    - spec:schemas
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''channel-parameter-require-examples''
      (Channel Parameter Require Examples). Requirement: Parameter must have examples. To fix: Ensure `examples` is present
      and non-empty at each matching location. This rule is evaluated at the JSONPath `$.channels.*.parameters.*.schema` —
      inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies the
      rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-component-message-require-examples:
    title: Component Message Require Examples
    reference: https://spotlight-rules.com/spec/rules/openapi/component-message-require-examples/
    description: Message must have examples.
    message: Message must have examples
    severity: info
    given: $.components.messages.*
    then:
      field: examples
      function: truthy
    formats:
    - aas3
    tags:
    - format:openapi
    - spec:messages
    - spec:components
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''component-message-require-examples''
      (Component Message Require Examples). Requirement: Message must have examples. To fix: Ensure `examples` is present
      and non-empty at each matching location. This rule is evaluated at the JSONPath `$.components.messages.*` — inspect
      every location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule,
      leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return
      only the complete corrected document, with no commentary.'
  openapi-document-cache-control-parameter:
    title: Document Cache Control Parameter
    reference: https://spotlight-rules.com/spec/rules/openapi/document-cache-control-parameter/
    description: 'Cache usage SHOULD be extensively detailed in the `description` property to avoid data leaks or the usage
      of stale data. This rule should ensure in some way that the api provider documented extensively the cache usage to avoid
      data leaks or usage of stale data. For now this ruleset tests: * the presence of following keywords in the `description`:
      `max-age`, `private`, `no-store`, `no-cache`. * that one and only one between Expires and Cache-Control is used. `Cache-Control`
      and `Expires` should not be used in conjuction, because `Cache-Control` overrides `Expires` when `max-age` is set. Instead
      if neither `Cache-Control` or `Expires` are set, clients MAY use euristic cache like described in RFC7234.'
    message: Cache usage SHOULD be documented when used.
    severity: info
    given: $..[parameters][?(@.in == "header" && @.name.match(/Cache-Control/i))]
    then:
    - field: description
      function: truthy
    - field: description
      function: pattern
      functionOptions:
        match: .*(max-age|private|no-store|no-cache).*
    formats:
    - oas3
    tags:
    - format:openapi
    - spec:parameters
    - spec:headers
    - topic:caching
    - experience:documentation
    - experience:reliability
    - experience:performance
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''document-cache-control-parameter''
      (Document Cache Control Parameter). Requirement: Cache usage SHOULD be extensively detailed in the `description` property
      to avoid data leaks or the usage of stale data. This rule should ensure in some way that the api provider documented
      extensively the cache usage to avoid data leaks or usage of stale data. For now this ruleset tests: * the presence of
      following keywords in the `description`: `max-age`, `private`, `no-store`, `no-cache`. * that one and only one between
      Expires and Cache-Control is used. `Cache-Control` and `Expires` should not be used in conjuction, because `Cache-Control`
      overrides `Expires` when `max-age` is set. Instead if neither `Cache-Control` or `Expires` are set, clients MAY use
      euristic cache like described in RFC7234. To fix: Ensure `description` is present and non-empty at each matching location.
      Also: Ensure `description` matches the regular expression `.*(max-age|private|no-store|no-cache).*`; rewrite any value
      that does not. This rule is evaluated at the JSONPath `$..[parameters][?(@.in == "header" && @.name.match(/Cache-Control/i))]`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-document-cache-response-header:
    title: Document Cache Response Header
    reference: https://spotlight-rules.com/spec/rules/openapi/document-cache-response-header/
    description: 'Cache usage SHOULD be extensively detailed in the `description` property to avoid data leaks or the usage
      of stale data. This rule should ensure in some way that the api provider documented extensively the cache usage to avoid
      data leaks or usage of stale data. For now this ruleset tests: * the presence of following keywords in the `description`:
      `max-age`, `private`, `no-store`, `no-cache`. * that one and only one between Expires and Cache-Control is used. `Cache-Control`
      and `Expires` should not be used in conjuction, because `Cache-Control` overrides `Expires` when `max-age` is set. Instead
      if neither `Cache-Control` or `Expires` are set, clients MAY use euristic cache like described in RFC7234.'
    message: Cache usage in responses SHOULD be documented in Cache-Control and/or Expires. {{error}}
    severity: info
    given: $.[responses][?(@property[0] == "2" )][headers].[?(@property.match(/Cache-Control|Expires/i))]]
    then:
    - field: description
      function: truthy
    - field: description
      function: pattern
      functionOptions:
        match: .*(max-age|private|no-store|no-cache).*
    formats:
    - oas3
    tags:
    - format:openapi
    - spec:responses
    - spec:headers
    - topic:caching
    - experience:documentation
    - experience:reliability
    - experience:performance
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''document-cache-response-header''
      (Document Cache Response Header). Requirement: Cache usage SHOULD be extensively detailed in the `description` property
      to avoid data leaks or the usage of stale data. This rule should ensure in some way that the api provider documented
      extensively the cache usage to avoid data leaks or usage of stale data. For now this ruleset tests: * the presence of
      following keywords in the `description`: `max-age`, `private`, `no-store`, `no-cache`. * that one and only one between
      Expires and Cache-Control is used. `Cache-Control` and `Expires` should not be used in conjuction, because `Cache-Control`
      overrides `Expires` when `max-age` is set. Instead if neither `Cache-Control` or `Expires` are set, clients MAY use
      euristic cache like described in RFC7234. To fix: Ensure `description` is present and non-empty at each matching location.
      Also: Ensure `description` matches the regular expression `.*(max-age|private|no-store|no-cache).*`; rewrite any value
      that does not. This rule is evaluated at the JSONPath `$.[responses][?(@property[0] == "2" )][headers].[?(@property.match(/Cache-Control|Expires/i))]]`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-document-require-external-docs:
    title: Document Require External Docs
    reference: https://spotlight-rules.com/spec/rules/openapi/document-require-external-docs/
    description: Defining external documentation provides a link to detailed API guides, tutorials, and reference material
      beyond the OpenAPI spec. Analysis shows 57.1% of APIs include external docs.
    message: External Docs MUST Be Defined
    severity: info
    given: $
    then:
      field: externalDocs
      function: truthy
    tags:
    - format:openapi
    - spec:document
    - experience:documentation
    - experience:discoverability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''document-require-external-docs''
      (Document Require External Docs). Requirement: Defining external documentation provides a link to detailed API guides,
      tutorials, and reference material beyond the OpenAPI spec. Analysis shows 57.1% of APIs include external docs. To fix:
      Ensure `externalDocs` is present and non-empty at each matching location. Make the smallest change that satisfies the
      rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-document-require-realistic-examples:
    title: Document Require Realistic Examples
    reference: https://spotlight-rules.com/spec/rules/openapi/document-require-realistic-examples/
    description: API design SHOULD include real-like examples for request and response definitions.
    message: The {{property}} SHOULD include a real-like example. Add realistic examples to improve API usability.
    severity: info
    given: $..[?(@.example || @.examples)]
    then:
      field: example
      function: truthy
    formats:
    - oas3
    tags:
    - format:openapi
    - spec:examples
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''document-require-realistic-examples''
      (Document Require Realistic Examples). Requirement: API design SHOULD include real-like examples for request and response
      definitions. To fix: Ensure `example` is present and non-empty at each matching location. This rule is evaluated at
      the JSONPath `$..[?(@.example || @.examples)]` — inspect every location it matches and correct only what violates the
      rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-header-require-examples:
    title: Header Require Examples
    reference: https://spotlight-rules.com/spec/rules/openapi/header-require-examples/
    description: Headers must include examples.
    message: '{{description}}; missing {{property}}'
    severity: info
    given: $..headers.*
    then:
      function: digitalocean-ensurePropertiesExample
    tags:
    - format:openapi
    - spec:headers
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''header-require-examples''
      (Header Require Examples). Requirement: Headers must include examples. This rule is evaluated at the JSONPath `$..headers.*`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-info-contact-require-email:
    title: Info Contact Require Email
    reference: https://spotlight-rules.com/spec/rules/openapi/info-contact-require-email/
    description: Having a contact email address associated with the technical contract ensures that anyone who comes across
      the API has someone to email and get more information.
    message: Info MUST Have Contact Email
    severity: info
    given: $.info.contact
    then:
      field: email
      function: truthy
    tags:
    - format:openapi
    - spec:info
    - experience:discoverability
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-contact-require-email''
      (Info Contact Require Email). Requirement: Having a contact email address associated with the technical contract ensures
      that anyone who comes across the API has someone to email and get more information. To fix: Ensure `email` is present
      and non-empty at each matching location. This rule is evaluated at the JSONPath `$.info.contact` — inspect every location
      it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return only the complete
      corrected document, with no commentary.'
  openapi-info-contact-require-name:
    title: Info Contact Require Name
    reference: https://spotlight-rules.com/spec/rules/openapi/info-contact-require-name/
    description: Having a contact name associated with the technical contract ensures that anyone who comes across the API
      knows who to contact.
    message: Info MUST Have Contact Name
    severity: info
    given: $.info.contact
    then:
      field: name
      function: truthy
    tags:
    - format:openapi
    - spec:info
    - experience:discoverability
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-contact-require-name''
      (Info Contact Require Name). Requirement: Having a contact name associated with the technical contract ensures that
      anyone who comes across the API knows who to contact. To fix: Ensure `name` is present and non-empty at each matching
      location. This rule is evaluated at the JSONPath `$.info.contact` — inspect every location it matches and correct only
      what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments,
      and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no
      commentary.'
  openapi-info-contact-require-url:
    title: Info Contact Require URL
    reference: https://spotlight-rules.com/spec/rules/openapi/info-contact-require-url/
    description: Having a contact url associated with the technical contract ensures that anyone who comes across the API
      knows where to go to contact someone.
    message: Info MUST Have Contact URL
    severity: info
    given: $.info.contact
    then:
      field: url
      function: truthy
    tags:
    - format:openapi
    - spec:info
    - experience:discoverability
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-contact-require-url''
      (Info Contact Require URL). Requirement: Having a contact url associated with the technical contract ensures that anyone
      who comes across the API knows where to go to contact someone. To fix: Ensure `url` is present and non-empty at each
      matching location. This rule is evaluated at the JSONPath `$.info.contact` — inspect every location it matches and correct
      only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order,
      comments, and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected document,
      with no commentary.'
  openapi-info-description-length-limit:
    title: Info Description Length Limit
    reference: https://spotlight-rules.com/spec/rules/openapi/info-description-length-limit/
    description: Having a restriction on the length of the API description expressed as the OpenAPI info description helps
      provide constraints for consumers when adding a description, and keeps portals, landing pages, documentation, and discovery
      results more consistent.
    message: Info description MUST be less than 500 characters.
    severity: info
    given: $.info
    then:
      field: description
      function: length
      functionOptions:
        max: 500
    tags:
    - format:openapi
    - spec:info
    - experience:documentation
    - experience:consistency
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-description-length-limit''
      (Info Description Length Limit). Requirement: Having a restriction on the length of the API description expressed as
      the OpenAPI info description helps provide constraints for consumers when adding a description, and keeps portals, landing
      pages, documentation, and discovery results more consistent. To fix: Ensure the length of `description` is at most 500.
      This rule is evaluated at the JSONPath `$.info` — inspect every location it matches and correct only what violates the
      rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-info-description-no-eval-tag:
    title: Info Description No Eval Tag
    reference: https://spotlight-rules.com/spec/rules/openapi/info-description-no-eval-tag/
    description: Eval functions MUST not be included in the description of an API, keeping descriptions to just the text that
      is needed, and relying on the rest of the OpenAPI to describe what is possible.
    message: Info Description MUST NOT Have Eval Tag
    severity: info
    given: $.info
    then:
      field: description
      function: pattern
      functionOptions:
        notMatch: ^\b(<eval)\b
    tags:
    - format:openapi
    - spec:info
    - experience:security
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-description-no-eval-tag''
      (Info Description No Eval Tag). Requirement: Eval functions MUST not be included in the description of an API, keeping
      descriptions to just the text that is needed, and relying on the rest of the OpenAPI to describe what is possible. To
      fix: Ensure `description` does NOT match the regular expression `^\b(<eval)\b`; rename or rewrite any value that does.
      This rule is evaluated at the JSONPath `$.info` — inspect every location it matches and correct only what violates the
      rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-info-description-no-script-tag:
    title: Info Description No Script Tag
    reference: https://spotlight-rules.com/spec/rules/openapi/info-description-no-script-tag/
    description: Script tags MUST not be included in the description of an API, keeping descriptions to just the text that
      is needed, and relying on the rest of the OpenAPI to describe what is possible.
    message: Info Description MUST NOT Have Script Tag
    severity: info
    given: $.info
    then:
      field: description
      function: pattern
      functionOptions:
        notMatch: ^\b(<script)\b
    tags:
    - format:openapi
    - spec:info
    - experience:security
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-description-no-script-tag''
      (Info Description No Script Tag). Requirement: Script tags MUST not be included in the description of an API, keeping
      descriptions to just the text that is needed, and relying on the rest of the OpenAPI to describe what is possible. To
      fix: Ensure `description` does NOT match the regular expression `^\b(<script)\b`; rename or rewrite any value that does.
      This rule is evaluated at the JSONPath `$.info` — inspect every location it matches and correct only what violates the
      rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-info-license-require-name:
    title: Info License Require Name
    reference: https://spotlight-rules.com/spec/rules/openapi/info-license-require-name/
    description: The license object should include a name property identifying the license type, such as Apache 2.0, MIT,
      or a proprietary license.
    message: Info License MUST Have Name
    severity: info
    given: $.info.license
    then:
      field: name
      function: truthy
    tags:
    - format:openapi
    - spec:info
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-license-require-name''
      (Info License Require Name). Requirement: The license object should include a name property identifying the license
      type, such as Apache 2.0, MIT, or a proprietary license. To fix: Ensure `name` is present and non-empty at each matching
      location. This rule is evaluated at the JSONPath `$.info.license` — inspect every location it matches and correct only
      what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments,
      and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no
      commentary.'
  openapi-info-license-require-url:
    title: Info License Require URL
    reference: https://spotlight-rules.com/spec/rules/openapi/info-license-require-url/
    description: The license object should include a URL linking to the full license text so API consumers can review the
      terms.
    message: Info License MUST Have URL
    severity: info
    given: $.info.license
    then:
      field: url
      function: truthy
    tags:
    - format:openapi
    - spec:info
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-license-require-url''
      (Info License Require URL). Requirement: The license object should include a URL linking to the full license text so
      API consumers can review the terms. To fix: Ensure `url` is present and non-empty at each matching location. This rule
      is evaluated at the JSONPath `$.info.license` — inspect every location it matches and correct only what violates the
      rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-info-require-contact-2:
    title: Info Require Contact 2
    reference: https://spotlight-rules.com/spec/rules/openapi/info-require-contact-2/
    description: Having a contact object associated with the technical contract ensures that anyone who comes across the API
      has someone to contact and get more information.
    message: Info MUST Have Contact Object
    severity: info
    given: $.info
    then:
      field: contact
      function: truthy
    tags:
    - format:openapi
    - spec:info
    - experience:discoverability
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-require-contact-2'' (Info
      Require Contact 2). Requirement: Having a contact object associated with the technical contract ensures that anyone
      who comes across the API has someone to contact and get more information. To fix: Ensure `contact` is present and non-empty
      at each matching location. This rule is evaluated at the JSONPath `$.info` — inspect every location it matches and correct
      only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order,
      comments, and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected document,
      with no commentary.'
  openapi-info-require-description:
    title: Info Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/info-require-description/
    description: Info section is missing a description.
    message: Info section is missing a description.
    severity: info
    given: $.info
    then:
      field: description
      function: truthy
    formats:
    - oas3
    - oas3_1
    tags:
    - format:openapi
    - spec:info
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-require-description''
      (Info Require Description). Requirement: Info section is missing a description. To fix: Ensure `description` is present
      and non-empty at each matching location. This rule is evaluated at the JSONPath `$.info` — inspect every location it
      matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return only the complete
      corrected document, with no commentary.'
  openapi-info-require-license:
    title: Info Require License
    reference: https://spotlight-rules.com/spec/rules/openapi/info-require-license/
    description: Having a license defined in the info object clarifies the terms under which the API can be used. Analysis
      shows only 44.4% of APIs define a license, but it is essential for API governance and compliance.
    message: Info MUST Have License
    severity: info
    given: $.info
    then:
      field: license
      function: truthy
    tags:
    - format:openapi
    - spec:info
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-require-license'' (Info
      Require License). Requirement: Having a license defined in the info object clarifies the terms under which the API can
      be used. Analysis shows only 44.4% of APIs define a license, but it is essential for API governance and compliance.
      To fix: Ensure `license` is present and non-empty at each matching location. This rule is evaluated at the JSONPath
      `$.info` — inspect every location it matches and correct only what violates the rule. Make the smallest change that
      satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-info-require-summary:
    title: Info Require Summary
    reference: https://spotlight-rules.com/spec/rules/openapi/info-require-summary/
    description: 'The `#/info/x-summary` can be used to specify a brief, one-liner description of your API: this is very useful
      for catalog purposes (eg. this can be shown as your API subtitle in catalogs and developer portals). In OAS3.1 you can
      use the standard `#/info/summary` field.'
    message: 'API MUST have an one-liner #/info/x-summary field containing a brief description.'
    severity: info
    given: $
    then:
      field: info.x-summary
      function: truthy
    formats:
    - oas3
    tags:
    - format:openapi
    - spec:document
    - experience:documentation
    - experience:discoverability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-require-summary'' (Info
      Require Summary). Requirement: The `#/info/x-summary` can be used to specify a brief, one-liner description of your
      API: this is very useful for catalog purposes (eg. this can be shown as your API subtitle in catalogs and developer
      portals). In OAS3.1 you can use the standard `#/info/summary` field. To fix: Ensure `info.x-summary` is present and
      non-empty at each matching location. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected
      document, with no commentary.'
  openapi-info-require-terms-of-service:
    title: Info Require Terms Of Service
    reference: https://spotlight-rules.com/spec/rules/openapi/info-require-terms-of-service/
    description: API MUST reference the URL of the Terms of Service in `#/info/termsOfService`.
    message: 'API MUST reference the URL of the Terms of Service  in #/info/termsOfService.'
    severity: info
    given: $
    then:
      field: info.termsOfService
      function: truthy
    formats:
    - oas3
    tags:
    - format:openapi
    - spec:document
    - experience:documentation
    - experience:governance
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-require-terms-of-service''
      (Info Require Terms Of Service). Requirement: API MUST reference the URL of the Terms of Service in `#/info/termsOfService`.
      To fix: Ensure `info.termsOfService` is present and non-empty at each matching location. Make the smallest change that
      satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-info-require-title:
    title: Info Require Title
    reference: https://spotlight-rules.com/spec/rules/openapi/info-require-title/
    description: Having a intuitive and helpful title for your API using the OpenAPI info title is the first impression you
      will make on the consumers of your API.
    message: Info MUST Have Title
    severity: info
    given: $.info
    then:
      field: title
      function: truthy
    tags:
    - format:openapi
    - spec:info
    - experience:documentation
    - experience:discoverability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-require-title'' (Info
      Require Title). Requirement: Having a intuitive and helpful title for your API using the OpenAPI info title is the first
      impression you will make on the consumers of your API. To fix: Ensure `title` is present and non-empty at each matching
      location. This rule is evaluated at the JSONPath `$.info` — inspect every location it matches and correct only what
      violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments,
      and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no
      commentary.'
  openapi-info-title-max-length:
    title: Info Title Max Length
    reference: https://spotlight-rules.com/spec/rules/openapi/info-title-max-length/
    description: Having a limitation on the length of the title for your API helps provide constraints for teams naming it,
      but also keep consistent with other APIs from across teams.
    message: Info Title MUST Be Less Than 50 Characters
    severity: info
    given: $.info
    then:
      field: title
      function: length
      functionOptions:
        max: 50
    tags:
    - format:openapi
    - spec:info
    - experience:consistency
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''info-title-max-length'' (Info
      Title Max Length). Requirement: Having a limitation on the length of the title for your API helps provide constraints
      for teams naming it, but also keep consistent with other APIs from across teams. To fix: Ensure the length of `title`
      is at most 50. This rule is evaluated at the JSONPath `$.info` — inspect every location it matches and correct only
      what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments,
      and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no
      commentary.'
  openapi-message-examples-form-complete-mocks:
    title: Message Examples Form Complete Mocks
    reference: https://spotlight-rules.com/spec/rules/openapi/message-examples-form-complete-mocks/
    description: Message example must match params examples to form full mocks.
    message: '{{error}}'
    severity: info
    given: $.channels.*
    then:
      function: microcks-aas-verify-mocks
    formats:
    - aas2
    tags:
    - format:openapi
    - spec:channels
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''message-examples-form-complete-mocks''
      (Message Examples Form Complete Mocks). Requirement: Message example must match params examples to form full mocks.
      This rule is evaluated at the JSONPath `$.channels.*` — inspect every location it matches and correct only what violates
      the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-message-require-examples:
    title: Message Require Examples
    reference: https://spotlight-rules.com/spec/rules/openapi/message-require-examples/
    description: Message must have examples.
    message: Message must have examples
    severity: info
    given: $.channels.*.[publish,subscribe].message
    then:
      field: examples
      function: truthy
    formats:
    - aas2
    tags:
    - format:openapi
    - spec:channels
    - spec:messages
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''message-require-examples''
      (Message Require Examples). Requirement: Message must have examples. To fix: Ensure `examples` is present and non-empty
      at each matching location. This rule is evaluated at the JSONPath `$.channels.*.[publish,subscribe].message` — inspect
      every location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule,
      leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return
      only the complete corrected document, with no commentary.'
  openapi-operation-deprecated-require-description:
    title: Operation Deprecated Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/operation-deprecated-require-description/
    description: Deprecated operations should have a description explaining the deprecation and the migration path / successor.
    message: Deprecated operation should describe the deprecation and successor.
    given: $.paths[*][?(@ && @.deprecated == true)]
    severity: info
    then:
      field: description
      function: truthy
    tags:
    - format:openapi
    - spec:paths
    - topic:deprecation
    - experience:versioning
    - experience:documentation
    - experience:governance
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''operation-deprecated-require-description''
      (Operation Deprecated Require Description). Requirement: Deprecated operations should have a description explaining
      the deprecation and the migration path / successor. To fix: Ensure `description` is present and non-empty at each matching
      location. This rule is evaluated at the JSONPath `$.paths[*][?(@ && @.deprecated == true)]` — inspect every location
      it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return only the complete
      corrected document, with no commentary.'
  openapi-operation-description-max-length:
    title: Operation Description Max Length
    reference: https://spotlight-rules.com/spec/rules/openapi/operation-description-max-length/
    severity: info
    description: Having a length limitation for each description of each API operation helps apply constraints to how you
      describe your APIs, while helping drive consistency across APIs when it comes to search, documentation, and other ways
      an API is made available.
    message: Operation Description MUST Be Less Than 250 Characters
    given: $.paths.*[get,post,patch,put,delete]
    then:
    - field: description
      function: length
      functionOptions:
        max: 250
    tags:
    - format:openapi
    - spec:paths
    - spec:operations
    - experience:documentation
    - experience:consistency
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''operation-description-max-length''
      (Operation Description Max Length). Requirement: Having a length limitation for each description of each API operation
      helps apply constraints to how you describe your APIs, while helping drive consistency across APIs when it comes to
      search, documentation, and other ways an API is made available. To fix: Ensure the length of `description` is at most
      250. This rule is evaluated at the JSONPath `$.paths.*[get,post,patch,put,delete]` — inspect every location it matches
      and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected
      document, with no commentary.'
  openapi-operation-examples-form-complete-mocks:
    title: Operation Examples Form Complete Mocks
    reference: https://spotlight-rules.com/spec/rules/openapi/operation-examples-form-complete-mocks/
    description: Response example must match required params examples to form full mocks.
    message: '{{error}}'
    severity: info
    given: $.paths.*.*
    then:
      function: microcks-oas-verify-mocks
    formats:
    - oas3
    tags:
    - format:openapi
    - spec:paths
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''operation-examples-form-complete-mocks''
      (Operation Examples Form Complete Mocks). Requirement: Response example must match required params examples to form
      full mocks. This rule is evaluated at the JSONPath `$.paths.*.*` — inspect every location it matches and correct only
      what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments,
      and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no
      commentary.'
  openapi-operation-require-description:
    title: Operation Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/operation-require-description/
    description: Having a paragraph or two description of each API operation helps API consumers understand what is possible
      with each API request.
    message: Operation MUST Have Description
    severity: info
    given: $.paths.*[get,post,patch,put,delete]
    then:
    - field: description
      function: truthy
    tags:
    - format:openapi
    - spec:paths
    - spec:operations
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''operation-require-description''
      (Operation Require Description). Requirement: Having a paragraph or two description of each API operation helps API
      consumers understand what is possible with each API request. To fix: Ensure `description` is present and non-empty at
      each matching location. This rule is evaluated at the JSONPath `$.paths.*[get,post,patch,put,delete]` — inspect every
      location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave
      all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return only
      the complete corrected document, with no commentary.'
  openapi-operation-require-response:
    title: Operation Require Response
    reference: https://spotlight-rules.com/spec/rules/openapi/operation-require-response/
    description: Check if every request has their respective responses.
    message: '{{error}}'
    severity: info
    given: $.paths.*
    then:
      function: trimble-check-for-response-in-every-request
    tags:
    - format:openapi
    - spec:paths
    - experience:documentation
    - experience:consistency
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''operation-require-response''
      (Operation Require Response). Requirement: Check if every request has their respective responses. This rule is evaluated
      at the JSONPath `$.paths.*` — inspect every location it matches and correct only what violates the rule. Make the smallest
      change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep
      the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-operation-require-summary:
    title: Operation Require Summary
    reference: https://spotlight-rules.com/spec/rules/openapi/operation-require-summary/
    description: Having short and intuitive summary for each API operation helps API consumers understand what is possible
      with each API request.
    message: Operation MUST Have a Summary
    severity: info
    given: $.paths.*[get,post,patch,put,delete]
    then:
    - field: summary
      function: truthy
    tags:
    - format:openapi
    - spec:paths
    - spec:operations
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''operation-require-summary''
      (Operation Require Summary). Requirement: Having short and intuitive summary for each API operation helps API consumers
      understand what is possible with each API request. To fix: Ensure `summary` is present and non-empty at each matching
      location. This rule is evaluated at the JSONPath `$.paths.*[get,post,patch,put,delete]` — inspect every location it
      matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return only the complete
      corrected document, with no commentary.'
  openapi-operation-require-tag:
    title: Operation Require Tag
    reference: https://spotlight-rules.com/spec/rules/openapi/operation-require-tag/
    description: Having tags applied to each API operations helps organize and group APIs in portals, documentation, search,
      and other ways in which APIs are made available.
    message: Operations MUST Have Tags
    severity: info
    given: $.paths.*[get,post,patch,put,delete]
    then:
    - field: tags
      function: truthy
    tags:
    - format:openapi
    - spec:paths
    - spec:operations
    - experience:discoverability
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''operation-require-tag'' (Operation
      Require Tag). Requirement: Having tags applied to each API operations helps organize and group APIs in portals, documentation,
      search, and other ways in which APIs are made available. To fix: Ensure `tags` is present and non-empty at each matching
      location. This rule is evaluated at the JSONPath `$.paths.*[get,post,patch,put,delete]` — inspect every location it
      matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return only the complete
      corrected document, with no commentary.'
  openapi-operation-summary-description-differ:
    title: Operation Summary Description Differ
    reference: https://spotlight-rules.com/spec/rules/openapi/operation-summary-description-differ/
    description: Operation summaries and description should not match.
    message: '{{error}}'
    severity: info
    given:
    - $.paths[*].[get,post,put,patch,delete]
    then:
      function: trimble-operation-summary-description
    formats:
    - oas3
    tags:
    - format:openapi
    - spec:paths
    - spec:operations
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''operation-summary-description-differ''
      (Operation Summary Description Differ). Requirement: Operation summaries and description should not match. This rule
      is evaluated at the JSONPath `$.paths[*].[get,post,put,patch,delete]` — inspect every location it matches and correct
      only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order,
      comments, and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected document,
      with no commentary.'
  openapi-operation-summary-max-length:
    title: Operation Summary Max Length
    reference: https://spotlight-rules.com/spec/rules/openapi/operation-summary-max-length/
    severity: info
    description: Apply length constraints to the operation summary helps keep them consistent for publishing in documentation.
    message: Operation Summary MUST Be Less Than 50 Characters
    given: $.paths.*[get,post,patch,put,delete]
    then:
    - field: summary
      function: length
      functionOptions:
        max: 50
    tags:
    - format:openapi
    - spec:paths
    - spec:operations
    - experience:documentation
    - experience:consistency
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''operation-summary-max-length''
      (Operation Summary Max Length). Requirement: Apply length constraints to the operation summary helps keep them consistent
      for publishing in documentation. To fix: Ensure the length of `summary` is at most 50. This rule is evaluated at the
      JSONPath `$.paths.*[get,post,patch,put,delete]` — inspect every location it matches and correct only what violates the
      rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-operation-summary-no-period:
    title: Operation Summary No Period
    reference: https://spotlight-rules.com/spec/rules/openapi/operation-summary-no-period/
    description: Operation summaries should not have a period, keeping the primary summary for each API as consistent as possible
      for publishing in documentation.
    message: Operation MUST Not Have a Period.
    severity: info
    given: $.paths[*][*].summary
    then:
      function: pattern
      functionOptions:
        notMatch: \.$
    tags:
    - format:openapi
    - spec:paths
    - experience:consistency
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''operation-summary-no-period''
      (Operation Summary No Period). Requirement: Operation summaries should not have a period, keeping the primary summary
      for each API as consistent as possible for publishing in documentation. To fix: Ensure the targeted value does NOT match
      the regular expression `\.$`; rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.paths[*][*].summary`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-parameter-deprecated-require-description:
    title: Parameter Deprecated Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/parameter-deprecated-require-description/
    description: Deprecated parameters should have a description explaining the deprecation and what to use instead.
    message: Deprecated parameter should describe the deprecation.
    given: $..parameters[?(@ && @.deprecated == true)]
    severity: info
    then:
      field: description
      function: truthy
    tags:
    - format:openapi
    - spec:parameters
    - topic:deprecation
    - experience:versioning
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''parameter-deprecated-require-description''
      (Parameter Deprecated Require Description). Requirement: Deprecated parameters should have a description explaining
      the deprecation and what to use instead. To fix: Ensure `description` is present and non-empty at each matching location.
      This rule is evaluated at the JSONPath `$..parameters[?(@ && @.deprecated == true)]` — inspect every location it matches
      and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected
      document, with no commentary.'
  openapi-parameter-description-max-length:
    title: Parameter Description Max Length
    reference: https://spotlight-rules.com/spec/rules/openapi/parameter-description-max-length/
    severity: info
    description: Limiting the length of parameters description forces us to be more concise in how we describe each parameter,
      while keeping our documentation and other ways descriptions show up in discovery and portals more consistent.
    message: Parameters Description MUST Be Less Than 500 Characters
    given: $.components.parameters.*
    then:
      field: summary
      function: length
      functionOptions:
        max: 500
    tags:
    - format:openapi
    - spec:parameters
    - spec:components
    - experience:documentation
    - experience:consistency
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''parameter-description-max-length''
      (Parameter Description Max Length). Requirement: Limiting the length of parameters description forces us to be more
      concise in how we describe each parameter, while keeping our documentation and other ways descriptions show up in discovery
      and portals more consistent. To fix: Ensure the length of `summary` is at most 500. This rule is evaluated at the JSONPath
      `$.components.parameters.*` — inspect every location it matches and correct only what violates the rule. Make the smallest
      change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep
      the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-parameter-optional-include-examples:
    title: Parameter Optional Include Examples
    reference: https://spotlight-rules.com/spec/rules/openapi/parameter-optional-include-examples/
    description: Optional param should have examples.
    message: Optional param should have examples
    severity: info
    given: $..parameters[?(@ && @.required != true)]
    then:
      field: examples
      function: truthy
    formats:
    - oas3
    tags:
    - format:openapi
    - spec:parameters
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''parameter-optional-include-examples''
      (Parameter Optional Include Examples). Requirement: Optional param should have examples. To fix: Ensure `examples` is
      present and non-empty at each matching location. This rule is evaluated at the JSONPath `$..parameters[?(@ && @.required
      != true)]` — inspect every location it matches and correct only what violates the rule. Make the smallest change that
      satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-parameter-require-description:
    title: Parameter Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/parameter-require-description/
    severity: info
    description: Having a parameters description provides more depth to what a parameter does and will be displayed via documentation,
      and other tooling used across the API lifecycle.
    message: Parameters MUST Have a Description
    given: $.paths.*.*.parameters.*
    then:
      field: description
      function: truthy
    tags:
    - format:openapi
    - spec:paths
    - spec:parameters
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''parameter-require-description''
      (Parameter Require Description). Requirement: Having a parameters description provides more depth to what a parameter
      does and will be displayed via documentation, and other tooling used across the API lifecycle. To fix: Ensure `description`
      is present and non-empty at each matching location. This rule is evaluated at the JSONPath `$.paths.*.*.parameters.*`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-parameter-require-examples:
    title: Parameter Require Examples
    reference: https://spotlight-rules.com/spec/rules/openapi/parameter-require-examples/
    description: Parameters must include examples.
    message: '{{description}}; missing {{property}}'
    severity: info
    given: $..parameters.*
    then:
      function: xor
      functionOptions:
        properties:
        - example
        - examples
    tags:
    - format:openapi
    - spec:parameters
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''parameter-require-examples''
      (Parameter Require Examples). Requirement: Parameters must include examples. To fix: Include exactly one of: example,
      examples. This rule is evaluated at the JSONPath `$..parameters.*` — inspect every location it matches and correct only
      what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments,
      and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no
      commentary.'
  openapi-parameter-require-in:
    title: Parameter Require In
    reference: https://spotlight-rules.com/spec/rules/openapi/parameter-require-in/
    severity: info
    description: Providing an in property for parameters gets explicit about whether a parameter is in the path, query, or
      a header, making it clear to consumers where they can configure their request.
    message: Parameters In Property MUST Be Set
    given: $.components.parameters.*
    then:
      field: in
      function: truthy
    tags:
    - format:openapi
    - spec:parameters
    - spec:components
    - experience:data-modeling
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''parameter-require-in'' (Parameter
      Require In). Requirement: Providing an in property for parameters gets explicit about whether a parameter is in the
      path, query, or a header, making it clear to consumers where they can configure their request. To fix: Ensure `in` is
      present and non-empty at each matching location. This rule is evaluated at the JSONPath `$.components.parameters.*`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-parameter-require-name:
    title: Parameter Require Name
    reference: https://spotlight-rules.com/spec/rules/openapi/parameter-require-name/
    description: Providing a simple, intuitive, and consistent names for your parameters helps make it easier for API consumers
      to understand how they are able to configure their API requests.
    message: Parameters MUST Have a Name
    severity: info
    given: $.components.parameters.*
    then:
      field: name
      function: truthy
    tags:
    - format:openapi
    - spec:parameters
    - spec:components
    - experience:naming
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''parameter-require-name'' (Parameter
      Require Name). Requirement: Providing a simple, intuitive, and consistent names for your parameters helps make it easier
      for API consumers to understand how they are able to configure their API requests. To fix: Ensure `name` is present
      and non-empty at each matching location. This rule is evaluated at the JSONPath `$.components.parameters.*` — inspect
      every location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule,
      leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return
      only the complete corrected document, with no commentary.'
  openapi-parameter-require-required-flag:
    title: Parameter Require Required Flag
    reference: https://spotlight-rules.com/spec/rules/openapi/parameter-require-required-flag/
    description: Providrequiredg an required property for parameters gets explicit about whether a parameter is required the
      path, query, or a header, making it clear to consumers where they can configure their request.
    message: Parameters Required Property MUST Be Set
    severity: info
    given: $.components.parameters.*
    then:
      field: required
      function: truthy
    tags:
    - format:openapi
    - spec:parameters
    - spec:components
    - experience:data-modeling
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''parameter-require-required-flag''
      (Parameter Require Required Flag). Requirement: Providrequiredg an required property for parameters gets explicit about
      whether a parameter is required the path, query, or a header, making it clear to consumers where they can configure
      their request. To fix: Ensure `required` is present and non-empty at each matching location. This rule is evaluated
      at the JSONPath `$.components.parameters.*` — inspect every location it matches and correct only what violates the rule.
      Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged,
      and keep the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-parameter-require-schema:
    title: Parameter Require Schema
    reference: https://spotlight-rules.com/spec/rules/openapi/parameter-require-schema/
    severity: info
    description: Parameters must always possess a schema to help define the format and shape of the parameter, setting expections
      with consumers about what should be passed in.
    message: Parameters MUST Have Schema
    given: $.components.parameters.*
    then:
      field: schema
      function: truthy
    tags:
    - format:openapi
    - spec:parameters
    - spec:components
    - experience:data-modeling
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''parameter-require-schema''
      (Parameter Require Schema). Requirement: Parameters must always possess a schema to help define the format and shape
      of the parameter, setting expections with consumers about what should be passed in. To fix: Ensure `schema` is present
      and non-empty at each matching location. This rule is evaluated at the JSONPath `$.components.parameters.*` — inspect
      every location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule,
      leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return
      only the complete corrected document, with no commentary.'
  openapi-parameter-required-require-examples:
    title: Parameter Required Require Examples
    reference: https://spotlight-rules.com/spec/rules/openapi/parameter-required-require-examples/
    description: Required param must have examples.
    message: Required param must have examples
    severity: info
    given: $..parameters[?(@ && @.required == true)]
    then:
      field: examples
      function: truthy
    formats:
    - oas3
    tags:
    - format:openapi
    - spec:parameters
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''parameter-required-require-examples''
      (Parameter Required Require Examples). Requirement: Required param must have examples. To fix: Ensure `examples` is
      present and non-empty at each matching location. This rule is evaluated at the JSONPath `$..parameters[?(@ && @.required
      == true)]` — inspect every location it matches and correct only what violates the rule. Make the smallest change that
      satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-path-params-declared-in-block:
    title: Path Params Declared In Block
    reference: https://spotlight-rules.com/spec/rules/openapi/path-params-declared-in-block/
    description: Check for the path parameter in the parameter block.
    message: '{{error}}'
    severity: info
    given: $.paths
    then:
      function: trimble-check-for-path-parameter
    tags:
    - format:openapi
    - spec:paths
    - experience:consistency
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''path-params-declared-in-block''
      (Path Params Declared In Block). Requirement: Check for the path parameter in the parameter block. This rule is evaluated
      at the JSONPath `$.paths.` — inspect every location it matches and correct only what violates the rule. Make the smallest
      change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep
      the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-path-success-response-require-description:
    title: Path Success Response Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/path-success-response-require-description/
    description: Check if the response description is appropriate for all requests.
    message: '{{error}}'
    severity: info
    given: $.paths.*
    then:
      function: trimble-check-description-for-all-success-responses
    tags:
    - format:openapi
    - spec:paths
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''path-success-response-require-description''
      (Path Success Response Require Description). Requirement: Check if the response description is appropriate for all requests.
      This rule is evaluated at the JSONPath `$.paths.*.` — inspect every location it matches and correct only what violates
      the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-request-content-require-examples:
    title: Request Content Require Examples
    reference: https://spotlight-rules.com/spec/rules/openapi/request-content-require-examples/
    description: Request with content must have examples.
    message: Request with content must have examples
    severity: info
    given: $.paths..requestBody..content.*
    then:
      field: examples
      function: truthy
    formats:
    - oas3
    tags:
    - format:openapi
    - spec:paths
    - spec:request-body
    - spec:media-types
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''request-content-require-examples''
      (Request Content Require Examples). Requirement: Request with content must have examples. To fix: Ensure `examples`
      is present and non-empty at each matching location. This rule is evaluated at the JSONPath `$.paths..requestBody..content.*`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-response-400-require-body:
    title: Response 400 Require Body
    reference: https://spotlight-rules.com/spec/rules/openapi/response-400-require-body/
    description: All 400 responses must include a response body.
    message: All 400 responses must include a response body.
    severity: info
    given:
    - $.paths.*.*.responses['400']
    then:
      field: content
      function: truthy
    formats:
    - oas3
    tags:
    - format:openapi
    - spec:paths
    - spec:responses
    - experience:error-handling
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''response-400-require-body''
      (Response 400 Require Body). Requirement: All 400 responses must include a response body. To fix: Ensure `content` is
      present and non-empty at each matching location. This rule is evaluated at the JSONPath `$.paths.*.*.responses[''400'']`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-response-content-require-examples:
    title: Response Content Require Examples
    reference: https://spotlight-rules.com/spec/rules/openapi/response-content-require-examples/
    description: Response with content must have examples.
    message: Response with content must have examples
    severity: info
    given: $.paths..responses..content.*
    then:
      field: examples
      function: truthy
    formats:
    - oas3
    tags:
    - format:openapi
    - spec:paths
    - spec:responses
    - spec:media-types
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''response-content-require-examples''
      (Response Content Require Examples). Requirement: Response with content must have examples. To fix: Ensure `examples`
      is present and non-empty at each matching location. This rule is evaluated at the JSONPath `$.paths..responses..content.*`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-response-define-401:
    title: Response Define 401
    reference: https://spotlight-rules.com/spec/rules/openapi/response-define-401/
    description: Responses should contain common response - 401 (unauthorized).
    message: '{{description}}. Missing {{property}}'
    severity: info
    given: $.paths..responses
    then:
      field: '401'
      function: truthy
    tags:
    - format:openapi
    - spec:paths
    - spec:responses
    - experience:error-handling
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''response-define-401'' (Response
      Define 401). Requirement: Responses should contain common response - 401 (unauthorized). To fix: Ensure `401` is present
      and non-empty at each matching location. This rule is evaluated at the JSONPath `$.paths..responses` — inspect every
      location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave
      all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return only
      the complete corrected document, with no commentary.'
  openapi-response-define-404:
    title: Response Define 404
    reference: https://spotlight-rules.com/spec/rules/openapi/response-define-404/
    description: Responses should contain common response - 404 (not found).
    message: '{{description}}. Missing {{property}}'
    severity: info
    given: $.paths[?(@property.match(/.*\/{.*}.*/))]..responses
    then:
      field: '404'
      function: truthy
    tags:
    - format:openapi
    - spec:paths
    - spec:responses
    - experience:error-handling
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''response-define-404'' (Response
      Define 404). Requirement: Responses should contain common response - 404 (not found). To fix: Ensure `404` is present
      and non-empty at each matching location. This rule is evaluated at the JSONPath `$.paths[?(@property.match(/.*\/{.*}.*/))]..responses`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-response-error-require-description:
    title: Response Error Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/response-error-require-description/
    description: Check if the response description is appropriate for all requests.
    message: '{{error}}'
    severity: info
    given: $.paths.*.*.responses
    then:
      function: trimble-check-description-for-all-error-responses
    tags:
    - format:openapi
    - spec:paths
    - spec:responses
    - experience:documentation
    - experience:error-handling
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''response-error-require-description''
      (Response Error Require Description). Requirement: Check if the response description is appropriate for all requests.
      This rule is evaluated at the JSONPath `$.paths.*.*.responses.` — inspect every location it matches and correct only
      what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments,
      and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no
      commentary.'
  openapi-response-include-ratelimit-header:
    title: Response Include Ratelimit Header
    reference: https://spotlight-rules.com/spec/rules/openapi/response-include-ratelimit-header/
    description: Response must include ratelimit-x headers.
    message: '{{description}}; missing {{property}}'
    severity: info
    given: $..responses.*
    then:
    - field: headers.ratelimit-limit
      function: truthy
    - field: headers.ratelimit-remaining
      function: truthy
    - field: headers.ratelimit-reset
      function: truthy
    tags:
    - format:openapi
    - spec:responses
    - topic:rate-limiting
    - experience:reliability
    - experience:documentation
    - experience:performance
    - owasp:api4
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''response-include-ratelimit-header''
      (Response Include Ratelimit Header). Requirement: Response must include ratelimit-x headers. To fix: Ensure `headers.ratelimit-limit`
      is present and non-empty at each matching location. Also: Ensure `headers.ratelimit-remaining` is present and non-empty
      at each matching location. Also: Ensure `headers.ratelimit-reset` is present and non-empty at each matching location.
      This rule is evaluated at the JSONPath `$..responses.*` — inspect every location it matches and correct only what violates
      the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-schema-deprecated-property-require-description:
    title: Schema Deprecated Property Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/schema-deprecated-property-require-description/
    description: Deprecated schema properties should have a description explaining the deprecation and the replacement field.
    message: Deprecated property should describe the deprecation.
    given: $..properties[?(@ && @.deprecated == true)]
    severity: info
    then:
      field: description
      function: truthy
    tags:
    - format:openapi
    - spec:schemas
    - topic:deprecation
    - experience:versioning
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''schema-deprecated-property-require-description''
      (Schema Deprecated Property Require Description). Requirement: Deprecated schema properties should have a description
      explaining the deprecation and the replacement field. To fix: Ensure `description` is present and non-empty at each
      matching location. This rule is evaluated at the JSONPath `$..properties[?(@ && @.deprecated == true)]` — inspect every
      location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave
      all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return only
      the complete corrected document, with no commentary.'
  openapi-schema-description-max-length:
    title: Schema Description Max Length
    reference: https://spotlight-rules.com/spec/rules/openapi/schema-description-max-length/
    description: Schema should have a length limit applied, restricting how long schema descriptions can be, helping keep
      them concise and consistent.
    message: Schema Description MUST be Less Than 250 Characters
    severity: info
    given: $.components.schemas.*
    then:
      field: description
      function: length
      functionOptions:
        max: 250
    tags:
    - format:openapi
    - spec:schemas
    - spec:components
    - experience:documentation
    - experience:consistency
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''schema-description-max-length''
      (Schema Description Max Length). Requirement: Schema should have a length limit applied, restricting how long schema
      descriptions can be, helping keep them concise and consistent. To fix: Ensure the length of `description` is at most
      250. This rule is evaluated at the JSONPath `$.components.schemas.*` — inspect every location it matches and correct
      only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order,
      comments, and formatting unchanged, and keep the document valid OpenAPI. Return only the complete corrected document,
      with no commentary.'
  openapi-schema-property-description-max-length:
    title: Schema Property Description Max Length
    reference: https://spotlight-rules.com/spec/rules/openapi/schema-property-description-max-length/
    description: Schema property descriptions should have a length limit applied, applying constraints to writing descriptions,
      and keeping consistent across APIs.
    message: Schema Properties Description MUST Have 250 Characters
    severity: info
    given: $.components.schemas.*.properties[?(@.type == 'string')]
    then:
      field: description
      function: length
      functionOptions:
        max: 250
    tags:
    - format:openapi
    - spec:schemas
    - spec:components
    - experience:documentation
    - experience:consistency
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''schema-property-description-max-length''
      (Schema Property Description Max Length). Requirement: Schema property descriptions should have a length limit applied,
      applying constraints to writing descriptions, and keeping consistent across APIs. To fix: Ensure the length of `description`
      is at most 250. This rule is evaluated at the JSONPath `$.components.schemas.*.properties[?(@.type == ''string'')]`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-schema-property-require-description:
    title: Schema Property Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/schema-property-require-description/
    description: Schema properties should have descriptions that provide a narrative of the property contains, and how it
      can be used.
    message: Schema Properties MUST Have Description
    severity: info
    given: $.components.schemas.*.properties[?(@.type == 'string')]
    then:
      field: description
      function: truthy
    tags:
    - format:openapi
    - spec:schemas
    - spec:components
    - experience:documentation
    - experience:data-modeling
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''schema-property-require-description''
      (Schema Property Require Description). Requirement: Schema properties should have descriptions that provide a narrative
      of the property contains, and how it can be used. To fix: Ensure `description` is present and non-empty at each matching
      location. This rule is evaluated at the JSONPath `$.components.schemas.*.properties[?(@.type == ''string'')]` — inspect
      every location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule,
      leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI. Return
      only the complete corrected document, with no commentary.'
  openapi-schema-property-require-examples:
    title: Schema Property Require Examples
    reference: https://spotlight-rules.com/spec/rules/openapi/schema-property-require-examples/
    description: Object properties must include examples.
    message: '{{description}}; {{property}}'
    severity: info
    given: $..properties..properties.*
    then:
      function: digitalocean-ensurePropertiesExample
    tags:
    - format:openapi
    - spec:schemas
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''schema-property-require-examples''
      (Schema Property Require Examples). Requirement: Object properties must include examples. This rule is evaluated at
      the JSONPath `$..properties..properties.*` — inspect every location it matches and correct only what violates the rule.
      Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged,
      and keep the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-schema-require-description:
    title: Schema Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/schema-require-description/
    description: Schema should have descriptions that provide a narrative of what a schema object is for, and how it can be
      used, leaving examples to demonstrate what can actually be expected.
    message: Schema MUST Have a Description.
    severity: info
    given: $.components.schemas.*
    then:
      field: description
      function: truthy
    tags:
    - format:openapi
    - spec:schemas
    - spec:components
    - experience:documentation
    - experience:data-modeling
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''schema-require-description''
      (Schema Require Description). Requirement: Schema should have descriptions that provide a narrative of what a schema
      object is for, and how it can be used, leaving examples to demonstrate what can actually be expected. To fix: Ensure
      `description` is present and non-empty at each matching location. This rule is evaluated at the JSONPath `$.components.schemas.*`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-schema-require-info-object:
    title: Schema Require Info Object
    reference: https://spotlight-rules.com/spec/rules/openapi/schema-require-info-object/
    description: Having an info object provides much of the metadata needed for the collection of APIs described in an OpenAPI.
    message: Info Object MUST Exist
    severity: info
    given: $
    then:
      field: info
      function: truthy
    tags:
    - format:openapi
    - spec:document
    - experience:documentation
    - experience:governance
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''schema-require-info-object''
      (Schema Require Info Object). Requirement: Having an info object provides much of the metadata needed for the collection
      of APIs described in an OpenAPI. To fix: Ensure `info` is present and non-empty at each matching location. Make the
      smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged,
      and keep the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-security-jwt-scheme-require-description:
    title: Security JWT Scheme Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/security-jwt-scheme-require-description/
    severity: info
    description: 'Json Web Tokens RFC7519 is a compact, URL-safe means of representing claims to be transferred between two
      parties. JWT can be enclosed in encrypted or signed tokens like JWS and JWE. The [JOSE IANA registry](https://www.iana.org/assignments/jose/jose.xhtml)
      provides algorithms information. RFC8725 describes common pitfalls in the JWx specifications and in their implementations,
      such as: - the ability to ignore algorithms, eg. `{"alg": "none"}`; - using insecure algorithms like `RSASSA-PKCS1-v1_5`
      eg. `{"alg": "RS256"}`. An API using JWT should explicit in the `description` that the implementation conforms to RFC8725.
      ``` components: securitySchemes: JWTBearer: type: http scheme: bearer bearerFormat: JWT description: |- A bearer token
      in the format of a JWS and conformato to the specifications included in RFC8725. ```.'
    message: JWT usage should be detailed in `description` {{error}}.
    given:
    - $.[securitySchemes][?(@.bearerFormat=="jwt" || @.bearerFormat=="JWT")]
    then:
    - field: description
      function: truthy
    - field: description
      function: pattern
      functionOptions:
        match: .*RFC8725.*
    tags:
    - owasp:api2
    - format:openapi
    - spec:security
    - experience:security
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''security-jwt-scheme-require-description''
      (Security JWT Scheme Require Description). Requirement: Json Web Tokens RFC7519 is a compact, URL-safe means of representing
      claims to be transferred between two parties. JWT can be enclosed in encrypted or signed tokens like JWS and JWE. The
      [JOSE IANA registry](https://www.iana.org/assignments/jose/jose.xhtml) provides algorithms information. RFC8725 describes
      common pitfalls in the JWx specifications and in their implementations, such as: - the ability to ignore algorithms,
      eg. `{"alg": "none"}`; - using insecure algorithms like `RSASSA-PKCS1-v1_5` eg. `{"alg": "RS256"}`. An API using JWT
      should explicit in the `description` that the implementation conforms to RFC8725. ``` components: securitySchemes: JWTBearer:
      type: http scheme: bearer bearerFormat: JWT description: |- A bearer token in the format of a JWS and conformato to
      the specifications included in RFC8725. ```. To fix: Ensure `description` is present and non-empty at each matching
      location. Also: Ensure `description` matches the regular expression `.*RFC8725.*`; rewrite any value that does not.
      Guidance: JWT usage should be detailed in `description`. This rule is evaluated at the JSONPath `$.[securitySchemes][?(@.bearerFormat=="jwt"
      || @.bearerFormat=="JWT")]` — inspect every location it matches and correct only what violates the rule. Make the smallest
      change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep
      the document valid OpenAPI. Return only the complete corrected document, with no commentary.'
  openapi-security-oauth-scheme-require-description:
    title: Security OAuth Scheme Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/security-oauth-scheme-require-description/
    severity: info
    description: 'Json Web Tokens RFC7519 is a compact, URL-safe means of representing claims to be transferred between two
      parties. JWT can be enclosed in encrypted or signed tokens like JWS and JWE. The [JOSE IANA registry](https://www.iana.org/assignments/jose/jose.xhtml)
      provides algorithms information. RFC8725 describes common pitfalls in the JWx specifications and in their implementations,
      such as: - the ability to ignore algorithms, eg. `{"alg": "none"}`; - using insecure algorithms like `RSASSA-PKCS1-v1_5`
      eg. `{"alg": "RS256"}`. An API using JWT should explicit in the `description` that the implementation conforms to RFC8725.
      ``` components: securitySchemes: JWTBearer: type: http scheme: bearer bearerFormat: JWT description: |- A bearer token
      in the format of a JWS and conformato to the specifications included in RFC8725. ```.'
    message: JWT usage should be detailed in `description` {{error}}.
    given:
    - $.[securitySchemes][?(@.type=="oauth2")]
    then:
    - field: description
      function: truthy
    - field: description
      function: pattern
      functionOptions:
        match: .*RFC8725.*
    tags:
    - owasp:api2
    - format:openapi
    - spec:security
    - experience:security
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''security-oauth-scheme-require-description''
      (Security OAuth Scheme Require Description). Requirement: Json Web Tokens RFC7519 is a compact, URL-safe means of representing
      claims to be transferred between two parties. JWT can be enclosed in encrypted or signed tokens like JWS and JWE. The
      [JOSE IANA registry](https://www.iana.org/assignments/jose/jose.xhtml) provides algorithms information. RFC8725 describes
      common pitfalls in the JWx specifications and in their implementations, such as: - the ability to ignore algorithms,
      eg. `{"alg": "none"}`; - using insecure algorithms like `RSASSA-PKCS1-v1_5` eg. `{"alg": "RS256"}`. An API using JWT
      should explicit in the `description` that the implementation conforms to RFC8725. ``` components: securitySchemes: JWTBearer:
      type: http scheme: bearer bearerFormat: JWT description: |- A bearer token in the format of a JWS and conformato to
      the specifications included in RFC8725. ```. To fix: Ensure `description` is present and non-empty at each matching
      location. Also: Ensure `description` matches the regular expression `.*RFC8725.*`; rewrite any value that does not.
      Guidance: JWT usage should be detailed in `description`. This rule is evaluated at the JSONPath `$.[securitySchemes][?(@.type=="oauth2")]`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  openapi-server-require-description:
    title: Server Require Description
    reference: https://spotlight-rules.com/spec/rules/openapi/server-require-description/
    description: Servers must have a description.
    message: Server {{path}} must have a description.
    severity: info
    given:
    - $.servers[*]
    - $.paths..servers
    then:
      field: description
      function: truthy
    tags:
    - format:openapi
    - spec:servers
    - spec:paths
    - experience:documentation
    prompt: 'You are editing an OpenAPI document to satisfy the Spotlight API governance rule ''server-require-description''
      (Server Require Description). Requirement: Servers must have a description. To fix: Ensure `description` is present
      and non-empty at each matching location. This rule is evaluated at the JSONPath `$.servers[*] | $.paths..servers` —
      inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies the
      rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid OpenAPI.
      Return only the complete corrected document, with no commentary.'
  apis-json-api-contact-include-email:
    title: API Contact Include Email
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-contact-include-email/
    description: The contact object in an APIs.json file allows for referencing the email address of a person or group. This
      property provides a convenient way for users to seek support for an API, using email as the default method to reach
      the team managing the API in production.
    message: API contact COULD have email.
    severity: info
    given: $.apis.*.contact.*
    then:
      field: email
      function: truthy
    tags:
    - format:apis-json
    - spec:apis
    - experience:documentation
    - experience:discoverability
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-contact-include-email''
      (API Contact Include Email). Requirement: The contact object in an APIs.json file allows for referencing the email address
      of a person or group. This property provides a convenient way for users to seek support for an API, using email as the
      default method to reach the team managing the API in production. To fix: Ensure `email` is present and non-empty at
      each matching location. This rule is evaluated at the JSONPath `$.apis.*.contact.*` — inspect every location it matches
      and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected
      document, with no commentary.'
  apis-json-api-contact-include-full-name:
    title: API Contact Include Full Name
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-contact-include-full-name/
    description: The contact object in an APIs.json file includes a full name (FN) property, which specifies the formatted
      text corresponding to the contact name in the vCard for an API. This provides a quick and clear way to assign a person,
      group, or other point of contact to an API for addressing questions and providing support.
    message: Contact Could Have FN
    severity: info
    given: $.apis.*.contact.*
    then:
      field: FN
      function: truthy
    tags:
    - format:apis-json
    - spec:apis
    - experience:documentation
    - experience:discoverability
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-contact-include-full-name''
      (API Contact Include Full Name). Requirement: The contact object in an APIs.json file includes a full name (FN) property,
      which specifies the formatted text corresponding to the contact name in the vCard for an API. This provides a quick
      and clear way to assign a person, group, or other point of contact to an API for addressing questions and providing
      support. To fix: Ensure `FN` is present and non-empty at each matching location. This rule is evaluated at the JSONPath
      `$.apis.*.contact.*` — inspect every location it matches and correct only what violates the rule. Make the smallest
      change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep
      the document valid APIs.json. Return only the complete corrected document, with no commentary.'
  apis-json-api-include-about-page:
    title: API Include About Page
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-include-about-page/
    description: This property ensures provides a reference to an about page, either for the company, organization, or government
      agency behind an API, or specifically about the domain, team, and the APIs they produce.
    message: Has About
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(about|About)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:documentation
    - experience:discoverability
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-include-about-page''
      (API Include About Page). Requirement: This property ensures provides a reference to an about page, either for the company,
      organization, or government agency behind an API, or specifically about the domain, team, and the APIs they produce.
      To fix: Ensure `type` does NOT match the regular expression `\b(about|About)\b`; rename or rewrite any value that does.
      This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and
      correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected
      document, with no commentary.'
  apis-json-api-include-contact:
    title: API Include Contact
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-include-contact/
    description: The contact object in an APIs.json file allows for associating a vCard that represents an individual or organizational
      entity. It includes common contact information such as a name, email, or other references, offering a standardized method
      for providing support for an API.
    message: API COULD have a contact.
    severity: info
    given: $.apis.*
    then:
      field: contact
      function: truthy
    tags:
    - format:apis-json
    - spec:apis
    - experience:discoverability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-include-contact'' (API
      Include Contact). Requirement: The contact object in an APIs.json file allows for associating a vCard that represents
      an individual or organizational entity. It includes common contact information such as a name, email, or other references,
      offering a standardized method for providing support for an API. To fix: Ensure `contact` is present and non-empty at
      each matching location. This rule is evaluated at the JSONPath `$.apis.*` — inspect every location it matches and correct
      only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order,
      comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected document,
      with no commentary.'
  apis-json-api-property-require-road-map:
    title: API Property Require Road Map
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-property-require-road-map/
    description: This property ensures there is a reference to the road map for an API or for the entire API operations within
      domain, line of business, or teams.
    message: Has a Road Map
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(api-road-map|road-map|Roadmap|Road Map|RoadMap)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:discoverability
    - experience:documentation
    - experience:governance
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-property-require-road-map''
      (API Property Require Road Map). Requirement: This property ensures there is a reference to the road map for an API
      or for the entire API operations within domain, line of business, or teams. To fix: Ensure `type` does NOT match the
      regular expression `\b(api-road-map|road-map|Roadmap|Road Map|RoadMap)\b`; rename or rewrite any value that does. This
      rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and correct
      only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order,
      comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected document,
      with no commentary.'
  apis-json-api-property-require-sandbox:
    title: API Property Require Sandbox
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-property-require-sandbox/
    description: This property ensures that an API has a reference to a sandbox for individual APIs or as part of common properties,
      providing sandbox, synthetic data, and mock servers for use in making test requests.
    message: Has a Blog
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(sandbox|Sandbox)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:usability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-property-require-sandbox''
      (API Property Require Sandbox). Requirement: This property ensures that an API has a reference to a sandbox for individual
      APIs or as part of common properties, providing sandbox, synthetic data, and mock servers for use in making test requests.
      To fix: Ensure `type` does NOT match the regular expression `\b(sandbox|Sandbox)\b`; rename or rewrite any value that
      does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches
      and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected
      document, with no commentary.'
  apis-json-api-property-require-security-page:
    title: API Property Require Security Page
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-property-require-security-page/
    description: This property ensures there is a URL to the security page, providing details about how security is handled
      for an API.
    message: Has Security Path
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(Security|SecurityTesting)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:security
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-property-require-security-page''
      (API Property Require Security Page). Requirement: This property ensures there is a URL to the security page, providing
      details about how security is handled for an API. To fix: Ensure `type` does NOT match the regular expression `\b(Security|SecurityTesting)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` —
      inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies the
      rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid APIs.json.
      Return only the complete corrected document, with no commentary.'
  apis-json-api-property-require-support-email:
    title: API Property Require Support Email
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-property-require-support-email/
    description: This property ensures that an API has email support, providing a valid email address that can be used to
      get API support.
    message: Has Support Email
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(support-email|SupportEmail)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:usability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-property-require-support-email''
      (API Property Require Support Email). Requirement: This property ensures that an API has email support, providing a
      valid email address that can be used to get API support. To fix: Ensure `type` does NOT match the regular expression
      `\b(support-email|SupportEmail)\b`; rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.*
      | $.common.*` — inspect every location it matches and correct only what violates the rule. Make the smallest change
      that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid APIs.json. Return only the complete corrected document, with no commentary.'
  apis-json-api-property-require-support-issues-url:
    title: API Property Require Support Issues URL
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-property-require-support-issues-url/
    description: This property ensures that there are Git issues available to support an API, using the issues capability
      of GitHub, GitLab, or Bitbucket to support API consumers.
    message: Has Support Issues URL
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(SupportIssues|SupportGitHubIssues)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:usability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-property-require-support-issues-url''
      (API Property Require Support Issues URL). Requirement: This property ensures that there are Git issues available to
      support an API, using the issues capability of GitHub, GitLab, or Bitbucket to support API consumers. To fix: Ensure
      `type` does NOT match the regular expression `\b(SupportIssues|SupportGitHubIssues)\b`; rename or rewrite any value
      that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches
      and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected
      document, with no commentary.'
  apis-json-api-property-require-support-page:
    title: API Property Require Support Page
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-property-require-support-page/
    description: This property ensures that there is a support page available for an API, providing direct and in-direct support
      opportunities for each API or for entire API platform.
    message: Has Support Page
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(support|Support)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:usability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-property-require-support-page''
      (API Property Require Support Page). Requirement: This property ensures that there is a support page available for an
      API, providing direct and in-direct support opportunities for each API or for entire API platform. To fix: Ensure `type`
      does NOT match the regular expression `\b(support|Support)\b`; rename or rewrite any value that does. This rule is evaluated
      at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and correct only what violates
      the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid APIs.json. Return only the complete corrected document, with no commentary.'
  apis-json-api-property-require-team:
    title: API Property Require Team
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-property-require-team/
    description: This property ensures that there is a reference to the team behind an API, providing a reference to business
      and engineering stakeholders.
    message: Has a Team Defined
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(team|teams|Team|Teams)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-property-require-team''
      (API Property Require Team). Requirement: This property ensures that there is a reference to the team behind an API,
      providing a reference to business and engineering stakeholders. To fix: Ensure `type` does NOT match the regular expression
      `\b(team|teams|Team|Teams)\b`; rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.*
      | $.common.*` — inspect every location it matches and correct only what violates the rule. Make the smallest change
      that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid APIs.json. Return only the complete corrected document, with no commentary.'
  apis-json-api-property-require-terms-of-service:
    title: API Property Require Terms Of Service
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-property-require-terms-of-service/
    description: This property ensures that an API has a reference to a terms of service, covering the legal side of using
      an API.
    message: Has an API Terms of Service
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(api-terms-of-service|terms-of-service|Terms of Service|TOS|TermsOfService)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-property-require-terms-of-service''
      (API Property Require Terms Of Service). Requirement: This property ensures that an API has a reference to a terms of
      service, covering the legal side of using an API. To fix: Ensure `type` does NOT match the regular expression `\b(api-terms-of-service|terms-of-service|Terms
      of Service|TOS|TermsOfService)\b`; rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.*
      | $.common.*` — inspect every location it matches and correct only what violates the rule. Make the smallest change
      that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid APIs.json. Return only the complete corrected document, with no commentary.'
  apis-json-api-property-require-use-cases:
    title: API Property Require Use Cases
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-property-require-use-cases/
    description: This property ensures there is a reference to the use cases for an API, helping align an API with the who,
      what, how, and why of putting an API to work.
    message: Has Use Cases
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(UseCases)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:documentation
    - experience:discoverability
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-property-require-use-cases''
      (API Property Require Use Cases). Requirement: This property ensures there is a reference to the use cases for an API,
      helping align an API with the who, what, how, and why of putting an API to work. To fix: Ensure `type` does NOT match
      the regular expression `\b(UseCases)\b`; rename or rewrite any value that does. This rule is evaluated at the JSONPath
      `$.apis.*.properties.* | $.common.*` — inspect every location it matches and correct only what violates the rule. Make
      the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged,
      and keep the document valid APIs.json. Return only the complete corrected document, with no commentary.'
  apis-json-api-property-skill-require-versioning:
    title: API Property Require Versioning
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-property-skill-require-versioning/
    description: This property ensures there is a reference to how APIs are versioned, providing a single place where teams
      can learn about how change is communicated.
    message: Has Versioning for API
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(versions|Versions|Versioning|versioning)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:versioning
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-property-skill-require-versioning''
      (API Property Require Versioning). Requirement: This property ensures there is a reference to how APIs are versioned,
      providing a single place where teams can learn about how change is communicated. To fix: Ensure `type` does NOT match
      the regular expression `\b(versions|Versions|Versioning|versioning)\b`; rename or rewrite any value that does. This
      rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and correct
      only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order,
      comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected document,
      with no commentary.'
  apis-json-api-property-require-video:
    title: API Property Require Video
    reference: https://spotlight-rules.com/spec/rules/apis-json/api-property-require-video/
    description: This property ensures there is a reference to a video page or channel for an API.
    message: Has Videos for API
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(videos|Videos)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:documentation
    - experience:discoverability
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''api-property-require-video''
      (API Property Require Video). Requirement: This property ensures there is a reference to a video page or channel for
      an API. To fix: Ensure `type` does NOT match the regular expression `\b(videos|Videos)\b`; rename or rewrite any value
      that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches
      and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected
      document, with no commentary.'
  apis-json-document-include-business-impact-canvas:
    title: Document Include Business Impact Canvas
    reference: https://spotlight-rules.com/spec/rules/apis-json/document-include-business-impact-canvas/
    description: This ensures that an API has had the APIOps Business Impact Canvas applied to the API, requiring that the
      canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.
    message: Has APIOps Cycles Business Impact Canvas
    severity: info
    given:
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(APIOpsBusinessImpactCanvas)\b
    tags:
    - format:apis-json
    - spec:collection
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''document-include-business-impact-canvas''
      (Document Include Business Impact Canvas). Requirement: This ensures that an API has had the APIOps Business Impact
      Canvas applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index
      for the API, helping with discovery and governance. To fix: Ensure `type` does NOT match the regular expression `\b(APIOpsBusinessImpactCanvas)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.common.*` — inspect every location
      it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete
      corrected document, with no commentary.'
  apis-json-document-include-business-model-canvas:
    title: Document Include Business Model Canvas
    reference: https://spotlight-rules.com/spec/rules/apis-json/document-include-business-model-canvas/
    description: This ensures that an API has had the APIOps Business Model Canvas applied to the API, requiring that the
      canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.
    message: Has APIOps Cycles Business Model Canvas
    severity: info
    given:
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(APIOpsBusinessModelCanvas)\b
    tags:
    - format:apis-json
    - spec:collection
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''document-include-business-model-canvas''
      (Document Include Business Model Canvas). Requirement: This ensures that an API has had the APIOps Business Model Canvas
      applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for
      the API, helping with discovery and governance. To fix: Ensure `type` does NOT match the regular expression `\b(APIOpsBusinessModelCanvas)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.common.*` — inspect every location
      it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete
      corrected document, with no commentary.'
  apis-json-document-include-capacity-canvas:
    title: Document Include Capacity Canvas
    reference: https://spotlight-rules.com/spec/rules/apis-json/document-include-capacity-canvas/
    description: This ensures that an API has had the APIOps Capacity Canvas applied to the API, requiring that the canvas
      is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.
    message: Has APIOps Cycles Capacity Canvas
    severity: info
    given:
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(APIOpsCapacityCanvas)\b
    tags:
    - format:apis-json
    - spec:collection
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''document-include-capacity-canvas''
      (Document Include Capacity Canvas). Requirement: This ensures that an API has had the APIOps Capacity Canvas applied
      to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API,
      helping with discovery and governance. To fix: Ensure `type` does NOT match the regular expression `\b(APIOpsCapacityCanvas)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.common.*` — inspect every location
      it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete
      corrected document, with no commentary.'
  apis-json-document-include-customer-journey-canvas:
    title: Document Include Customer Journey Canvas
    reference: https://spotlight-rules.com/spec/rules/apis-json/document-include-customer-journey-canvas/
    description: This ensures that an API has had the APIOps Customer Journey Canvas applied to the API, requiring that the
      canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.
    message: Has APIOps Cycles Customer Journey Canvas
    severity: info
    given:
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(APIOpsCustomerJourneyCanvas)\b
    tags:
    - format:apis-json
    - spec:collection
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''document-include-customer-journey-canvas''
      (Document Include Customer Journey Canvas). Requirement: This ensures that an API has had the APIOps Customer Journey
      Canvas applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index
      for the API, helping with discovery and governance. To fix: Ensure `type` does NOT match the regular expression `\b(APIOpsCustomerJourneyCanvas)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.common.*` — inspect every location
      it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete
      corrected document, with no commentary.'
  apis-json-document-include-domain-canvas:
    title: Document Include Domain Canvas
    reference: https://spotlight-rules.com/spec/rules/apis-json/document-include-domain-canvas/
    description: This ensures that an API has had the APIOps Domain Canvas applied to the API, requiring that the canvas is
      present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.
    message: Has APIOps Cycles Domain Canvas
    severity: info
    given:
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(APIOpsDomainCanvas)\b
    tags:
    - format:apis-json
    - spec:collection
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''document-include-domain-canvas''
      (Document Include Domain Canvas). Requirement: This ensures that an API has had the APIOps Domain Canvas applied to
      the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping
      with discovery and governance. To fix: Ensure `type` does NOT match the regular expression `\b(APIOpsDomainCanvas)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.common.*` — inspect every location
      it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete
      corrected document, with no commentary.'
  apis-json-document-include-event-canvas:
    title: Document Include Event Canvas
    reference: https://spotlight-rules.com/spec/rules/apis-json/document-include-event-canvas/
    description: This ensures that an API has had the APIOps Event Canvas applied to the API, requiring that the canvas is
      present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.
    message: Has APIOps Cycles Event Canvas
    severity: info
    given:
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(APIOpsEventCanvas)\b
    tags:
    - format:apis-json
    - spec:collection
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''document-include-event-canvas''
      (Document Include Event Canvas). Requirement: This ensures that an API has had the APIOps Event Canvas applied to the
      API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping
      with discovery and governance. To fix: Ensure `type` does NOT match the regular expression `\b(APIOpsEventCanvas)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.common.*` — inspect every location
      it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete
      corrected document, with no commentary.'
  apis-json-document-include-locations-canvas:
    title: Document Include Locations Canvas
    reference: https://spotlight-rules.com/spec/rules/apis-json/document-include-locations-canvas/
    description: This ensures that an API has had the APIOps Locations Canvas applied to the API, requiring that the canvas
      is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.
    message: Has APIOps Cycles Locations Canvas
    severity: info
    given:
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(APIOpsLocationsCanvas)\b
    tags:
    - format:apis-json
    - spec:collection
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''document-include-locations-canvas''
      (Document Include Locations Canvas). Requirement: This ensures that an API has had the APIOps Locations Canvas applied
      to the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API,
      helping with discovery and governance. To fix: Ensure `type` does NOT match the regular expression `\b(APIOpsLocationsCanvas)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.common.*` — inspect every location
      it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete
      corrected document, with no commentary.'
  apis-json-document-include-rest-canvas:
    title: Document Include Rest Canvas
    reference: https://spotlight-rules.com/spec/rules/apis-json/document-include-rest-canvas/
    description: This ensures that an API has had the APIOps Locations Canvas applied to the API, requiring that the canvas
      is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.
    message: Has APIOps Cycles Locations Canvas
    severity: info
    given:
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(APIOpsRestCanvas)\b
    tags:
    - format:apis-json
    - spec:collection
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''document-include-rest-canvas''
      (Document Include Rest Canvas). Requirement: This ensures that an API has had the APIOps Locations Canvas applied to
      the API, requiring that the canvas is present in the repository and registered in the APIs.json index for the API, helping
      with discovery and governance. To fix: Ensure `type` does NOT match the regular expression `\b(APIOpsRestCanvas)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.common.*` — inspect every location
      it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete
      corrected document, with no commentary.'
  apis-json-document-include-value-proposition-canvas:
    title: Document Include Value Proposition Canvas
    reference: https://spotlight-rules.com/spec/rules/apis-json/document-include-value-proposition-canvas/
    description: This ensures that an API has had the APIOps Value Proposition Canvas applied to the API, requiring that the
      canvas is present in the repository and registered in the APIs.json index for the API, helping with discovery and governance.
    message: Has APIOps Cycles Value Proposition Canvas
    severity: info
    given:
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(APIOpsValuePropositionCanvas)\b
    tags:
    - format:apis-json
    - spec:collection
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''document-include-value-proposition-canvas''
      (Document Include Value Proposition Canvas). Requirement: This ensures that an API has had the APIOps Value Proposition
      Canvas applied to the API, requiring that the canvas is present in the repository and registered in the APIs.json index
      for the API, helping with discovery and governance. To fix: Ensure `type` does NOT match the regular expression `\b(APIOpsValuePropositionCanvas)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.common.*` — inspect every location
      it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete
      corrected document, with no commentary.'
  apis-json-schema-include-api-plan:
    title: Schema Include API Plan
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-api-plan/
    description: This property provides a link to the dedicated plans page that applies to an API, providing information about
      access tiers, rate limits, and features available for an API as part of a wider API business plan.
    message: Has API Plans
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(api-plans|Plans)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:usability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-api-plan''
      (Schema Include API Plan). Requirement: This property provides a link to the dedicated plans page that applies to an
      API, providing information about access tiers, rate limits, and features available for an API as part of a wider API
      business plan. To fix: Ensure `type` does NOT match the regular expression `\b(api-plans|Plans)\b`; rename or rewrite
      any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location
      it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete
      corrected document, with no commentary.'
  apis-json-schema-include-authentication-page:
    title: Schema Include Authentication Page
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-authentication-page/
    description: This property ensures that there is a human readable authentication page available that will provide what
      type of authentication is used and how it can be applied, as well as any services or tooling that API consumers can
      use to troubleshoot authentication with APIs.
    message: Has Authentication
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(Authentication)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:security
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-authentication-page''
      (Schema Include Authentication Page). Requirement: This property ensures that there is a human readable authentication
      page available that will provide what type of authentication is used and how it can be applied, as well as any services
      or tooling that API consumers can use to troubleshoot authentication with APIs. To fix: Ensure `type` does NOT match
      the regular expression `\b(Authentication)\b`; rename or rewrite any value that does. This rule is evaluated at the
      JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and correct only what violates the
      rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid APIs.json. Return only the complete corrected document, with no commentary.'
  apis-json-schema-include-blog:
    title: Schema Include Blog
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-blog/
    description: This property ensures that an API has a reference to a blog where anyone can find updates and other stories
      that will help keep API consumers and other stakeholders up to speed on what is happening with an API, and the larger
      operations.
    message: Has a Blog
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(blog|Blogs)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:documentation
    - experience:discoverability
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-blog'' (Schema
      Include Blog). Requirement: This property ensures that an API has a reference to a blog where anyone can find updates
      and other stories that will help keep API consumers and other stakeholders up to speed on what is happening with an
      API, and the larger operations. To fix: Ensure `type` does NOT match the regular expression `\b(blog|Blogs)\b`; rename
      or rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect
      every location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule,
      leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return
      only the complete corrected document, with no commentary.'
  apis-json-schema-include-blog-feed:
    title: Schema Include Blog Feed
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-blog-feed/
    description: This property ensures that blogs in support of APIs have an Atom or RSS feed of posts, allowing for the syndication
      of updates and information around individual APIs and the operations around them.
    message: Has a Blog Feed
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(blog-feed|BlogFeeds)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:documentation
    - experience:discoverability
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-blog-feed''
      (Schema Include Blog Feed). Requirement: This property ensures that blogs in support of APIs have an Atom or RSS feed
      of posts, allowing for the syndication of updates and information around individual APIs and the operations around them.
      To fix: Ensure `type` does NOT match the regular expression `\b(blog-feed|BlogFeeds)\b`; rename or rewrite any value
      that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches
      and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected
      document, with no commentary.'
  apis-json-schema-include-change-log:
    title: Schema Include Change Log
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-change-log/
    description: This property ensures that than an individual API or API operations possesses a change log that catalogs
      all the changes that have occurred in a recent time frame, with historical and version information available if possible.
    message: Has Change Log
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(api-change-log|change-log|Change Log|Changelog|ChangeLog)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:versioning
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-change-log''
      (Schema Include Change Log). Requirement: This property ensures that than an individual API or API operations possesses
      a change log that catalogs all the changes that have occurred in a recent time frame, with historical and version information
      available if possible. To fix: Ensure `type` does NOT match the regular expression `\b(api-change-log|change-log|Change
      Log|Changelog|ChangeLog)\b`; rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.*
      | $.common.*` — inspect every location it matches and correct only what violates the rule. Make the smallest change
      that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid APIs.json. Return only the complete corrected document, with no commentary.'
  apis-json-schema-include-documentation:
    title: Schema Include Documentation
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-documentation/
    description: This property ensures that there is documentation published for an API, and API consumers will have a set
      of human-readable instructions for onboarding and integrating with HTTP APIs in their applications.
    message: Has Documentation
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(documentation|Documentation)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-documentation''
      (Schema Include Documentation). Requirement: This property ensures that there is documentation published for an API,
      and API consumers will have a set of human-readable instructions for onboarding and integrating with HTTP APIs in their
      applications. To fix: Ensure `type` does NOT match the regular expression `\b(documentation|Documentation)\b`; rename
      or rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect
      every location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule,
      leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return
      only the complete corrected document, with no commentary.'
  apis-json-schema-include-examples:
    title: Schema Include Examples
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-examples/
    description: This property ensures that an API has a reference to a examples for individual APIs or as part of common
      properties, providing examples and synthentic data that can be used for APIs.
    message: Has a Blog
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(examples|Examples)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-examples''
      (Schema Include Examples). Requirement: This property ensures that an API has a reference to a examples for individual
      APIs or as part of common properties, providing examples and synthentic data that can be used for APIs. To fix: Ensure
      `type` does NOT match the regular expression `\b(examples|Examples)\b`; rename or rewrite any value that does. This
      rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and correct
      only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order,
      comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected document,
      with no commentary.'
  apis-json-schema-include-feedback-email:
    title: Schema Include Feedback Email
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-feedback-email/
    description: This property ensures that there is an email available for API consumers to provide feedback.
    message: Has Feedback Email
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(feedback-email|FeedbackEmail)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:usability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-feedback-email''
      (Schema Include Feedback Email). Requirement: This property ensures that there is an email available for API consumers
      to provide feedback. To fix: Ensure `type` does NOT match the regular expression `\b(feedback-email|FeedbackEmail)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` —
      inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies the
      rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid APIs.json.
      Return only the complete corrected document, with no commentary.'
  apis-json-schema-include-feedback-issues-url:
    title: Schema Include Feedback Issues URL
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-feedback-issues-url/
    description: This property ensures there is a URL to Git issues specifically for providing feedback.
    message: Has Feedback Issues URL
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(FeedbackIssues|FeedbackGitHubIssues)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:usability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-feedback-issues-url''
      (Schema Include Feedback Issues URL). Requirement: This property ensures there is a URL to Git issues specifically for
      providing feedback. To fix: Ensure `type` does NOT match the regular expression `\b(FeedbackIssues|FeedbackGitHubIssues)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` —
      inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies the
      rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid APIs.json.
      Return only the complete corrected document, with no commentary.'
  apis-json-schema-include-getting-started:
    title: Schema Include Getting Started
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-getting-started/
    description: This property ensures that there is a getting started link available, providing a reference for API consumers
      to get started with an API is as few steps as possible.
    message: Has Getting Started
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(GettingStarted)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:documentation
    - experience:usability
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-getting-started''
      (Schema Include Getting Started). Requirement: This property ensures that there is a getting started link available,
      providing a reference for API consumers to get started with an API is as few steps as possible. To fix: Ensure `type`
      does NOT match the regular expression `\b(GettingStarted)\b`; rename or rewrite any value that does. This rule is evaluated
      at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and correct only what violates
      the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid APIs.json. Return only the complete corrected document, with no commentary.'
  apis-json-schema-include-github-organization:
    title: Schema Include Github Organization
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-github-organization/
    description: This property ensures that an API is associated with GitHub organization, providing the URL to where you
      can engage with the operations surrounding an API.
    message: Has a GitHub Organization
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(github-organization|GitHubOrganization)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:discoverability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-github-organization''
      (Schema Include Github Organization). Requirement: This property ensures that an API is associated with GitHub organization,
      providing the URL to where you can engage with the operations surrounding an API. To fix: Ensure `type` does NOT match
      the regular expression `\b(github-organization|GitHubOrganization)\b`; rename or rewrite any value that does. This rule
      is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and correct only
      what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments,
      and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected document, with no
      commentary.'
  apis-json-schema-include-github-repository:
    title: Schema Include Github Repository
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-github-repository/
    description: This property ensures that an API possess a reference to a dedicated GitHub repository that is used to manage
      the Open, but also possible server and client code.
    message: Has a GitHub Repository
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(github-repository|GitHubRepository)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:discoverability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-github-repository''
      (Schema Include Github Repository). Requirement: This property ensures that an API possess a reference to a dedicated
      GitHub repository that is used to manage the Open, but also possible server and client code. To fix: Ensure `type` does
      NOT match the regular expression `\b(github-repository|GitHubRepository)\b`; rename or rewrite any value that does.
      This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and
      correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected
      document, with no commentary.'
  apis-json-schema-include-insomnia-collection:
    title: Schema Include Insomnia Collection
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-insomnia-collection/
    description: This property defines an Insomnia collection available for each API, providing executable artifacts that
      can be used in the Insomnia client for making calls, and executing automation workflows.
    message: Has Insomnia Collection
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(RunInInsomnia)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:usability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-insomnia-collection''
      (Schema Include Insomnia Collection). Requirement: This property defines an Insomnia collection available for each API,
      providing executable artifacts that can be used in the Insomnia client for making calls, and executing automation workflows.
      To fix: Ensure `type` does NOT match the regular expression `\b(RunInInsomnia)\b`; rename or rewrite any value that
      does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches
      and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected
      document, with no commentary.'
  apis-json-schema-include-interface-license:
    title: Schema Include Interface License
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-interface-license/
    description: This property ensures that an API Commons interface license exists for an API, providing a machine-readable
      reference for an API, as well as data, backend, and front-end code.
    message: Has Interface License
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(api-license|License|license|InterfaceLicense)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-interface-license''
      (Schema Include Interface License). Requirement: This property ensures that an API Commons interface license exists
      for an API, providing a machine-readable reference for an API, as well as data, backend, and front-end code. To fix:
      Ensure `type` does NOT match the regular expression `\b(api-license|License|license|InterfaceLicense)\b`; rename or
      rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every
      location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave
      all unrelated content, key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return
      only the complete corrected document, with no commentary.'
  apis-json-schema-include-mock-server:
    title: Schema Include Mock Server
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-mock-server/
    description: This property ensures that an API has a reference to a mock servers for individual APIs or as part of common
      properties, providing mocked deployments of an API that can be used for making test API calls.
    message: Has a Mock Server
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(mocks|Mocks|MockServers)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:usability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-mock-server''
      (Schema Include Mock Server). Requirement: This property ensures that an API has a reference to a mock servers for individual
      APIs or as part of common properties, providing mocked deployments of an API that can be used for making test API calls.
      To fix: Ensure `type` does NOT match the regular expression `\b(mocks|Mocks|MockServers)\b`; rename or rewrite any value
      that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches
      and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected
      document, with no commentary.'
  apis-json-schema-include-openapi-definition:
    title: Schema Include Openapi Definition
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-openapi-definition/
    description: This property ensures that there is an OpenAPI present for an API, providing the technical contract that
      describes the surface area of an API.
    message: Has An OpenAPI
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(openapi|OpenAPI)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:documentation
    - experience:discoverability
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-openapi-definition''
      (Schema Include Openapi Definition). Requirement: This property ensures that there is an OpenAPI present for an API,
      providing the technical contract that describes the surface area of an API. To fix: Ensure `type` does NOT match the
      regular expression `\b(openapi|OpenAPI)\b`; rename or rewrite any value that does. This rule is evaluated at the JSONPath
      `$.apis.*.properties.* | $.common.*` — inspect every location it matches and correct only what violates the rule. Make
      the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged,
      and keep the document valid APIs.json. Return only the complete corrected document, with no commentary.'
  apis-json-schema-include-performance-testing:
    title: Schema Include Performance Testing
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-performance-testing/
    description: This property ensures that an API has performance testing in place, providing a URL to the performance testing,
      dashboard, or other resource.
    message: Has API Performance
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(Performance|PerformanceTesting)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:reliability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-performance-testing''
      (Schema Include Performance Testing). Requirement: This property ensures that an API has performance testing in place,
      providing a URL to the performance testing, dashboard, or other resource. To fix: Ensure `type` does NOT match the regular
      expression `\b(Performance|PerformanceTesting)\b`; rename or rewrite any value that does. This rule is evaluated at
      the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and correct only what violates
      the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid APIs.json. Return only the complete corrected document, with no commentary.'
  apis-json-schema-include-postman-collection:
    title: Schema Include Postman Collection
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-postman-collection/
    description: This property ensures that an API has at least one Postman Collection associated with it, providing automation,
      tests, and other executable derivatives of an APIs OpenAPI.
    message: Has a Postman Collection
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(PostmanCollection)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:usability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-postman-collection''
      (Schema Include Postman Collection). Requirement: This property ensures that an API has at least one Postman Collection
      associated with it, providing automation, tests, and other executable derivatives of an APIs OpenAPI. To fix: Ensure
      `type` does NOT match the regular expression `\b(PostmanCollection)\b`; rename or rewrite any value that does. This
      rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and correct
      only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order,
      comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected document,
      with no commentary.'
  apis-json-schema-include-pricing:
    title: Schema Include Pricing
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-pricing/
    description: This property provides a link to a pricing page that applies to an API, providing a breakdown of the costs
      associated with using an API.
    message: Has Pricing
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(Pricing)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:usability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-pricing''
      (Schema Include Pricing). Requirement: This property provides a link to a pricing page that applies to an API, providing
      a breakdown of the costs associated with using an API. To fix: Ensure `type` does NOT match the regular expression `\b(Pricing)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` —
      inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies the
      rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid APIs.json.
      Return only the complete corrected document, with no commentary.'
  apis-json-schema-include-privacy-policy:
    title: Schema Include Privacy Policy
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-privacy-policy/
    description: This property provides a link to the privacy policy for an API, providing the legal details of how privacy
      is approached for each API.
    message: Has an API Privacy Policy
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(api-privacy-policy|privacy-policy|Privacy|Privacy Policy|PrivacyPolicy)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:governance
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-privacy-policy''
      (Schema Include Privacy Policy). Requirement: This property provides a link to the privacy policy for an API, providing
      the legal details of how privacy is approached for each API. To fix: Ensure `type` does NOT match the regular expression
      `\b(api-privacy-policy|privacy-policy|Privacy|Privacy Policy|PrivacyPolicy)\b`; rename or rewrite any value that does.
      This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and
      correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected
      document, with no commentary.'
  apis-json-schema-include-questions-issues-url:
    title: Schema Include Questions Issues URL
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-questions-issues-url/
    description: This property ensures that an API has a dedicated link to Git issues for asking questions.
    message: Has Questions Issues URL
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(QuestionsIssues|QuestionsGitHubIssues)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:usability
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-questions-issues-url''
      (Schema Include Questions Issues URL). Requirement: This property ensures that an API has a dedicated link to Git issues
      for asking questions. To fix: Ensure `type` does NOT match the regular expression `\b(QuestionsIssues|QuestionsGitHubIssues)\b`;
      rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` —
      inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies the
      rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid APIs.json.
      Return only the complete corrected document, with no commentary.'
  apis-json-schema-include-rate-limit-reference:
    title: Schema Include Rate Limit Reference
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-rate-limit-reference/
    description: This property ensures there is an API rate limits reference associated with API, ensuring the rate limits
      applied to an API are clearly communicated.
    message: Has an API Terms of Services
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(rate-limits|RateLimits|Rate Limits)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - topic:rate-limiting
    - experience:reliability
    - experience:documentation
    - experience:performance
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-rate-limit-reference''
      (Schema Include Rate Limit Reference). Requirement: This property ensures there is an API rate limits reference associated
      with API, ensuring the rate limits applied to an API are clearly communicated. To fix: Ensure `type` does NOT match
      the regular expression `\b(rate-limits|RateLimits|Rate Limits)\b`; rename or rewrite any value that does. This rule
      is evaluated at the JSONPath `$.apis.*.properties.* | $.common.*` — inspect every location it matches and correct only
      what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments,
      and formatting unchanged, and keep the document valid APIs.json. Return only the complete corrected document, with no
      commentary.'
  apis-json-schema-include-version-comparison:
    title: Schema Include Version Comparison
    reference: https://spotlight-rules.com/spec/rules/apis-json/schema-include-version-comparison/
    description: This property ensures that an API has the ability to compare two different versions of an API and see what
      the difference are between them.
    message: Has an API Comparison
    severity: info
    given:
    - $.apis.*.properties.*
    - $.common.*
    then:
    - field: type
      function: pattern
      functionOptions:
        notMatch: \b(compare|Compare)\b
    tags:
    - format:apis-json
    - spec:apis
    - spec:properties
    - experience:versioning
    - experience:documentation
    prompt: 'You are editing an APIs.json document to satisfy the Spotlight API governance rule ''schema-include-version-comparison''
      (Schema Include Version Comparison). Requirement: This property ensures that an API has the ability to compare two different
      versions of an API and see what the difference are between them. To fix: Ensure `type` does NOT match the regular expression
      `\b(compare|Compare)\b`; rename or rewrite any value that does. This rule is evaluated at the JSONPath `$.apis.*.properties.*
      | $.common.*` — inspect every location it matches and correct only what violates the rule. Make the smallest change
      that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid APIs.json. Return only the complete corrected document, with no commentary.'
  asyncapi-channel-asyncapi-require-description:
    title: Channel Asyncapi Require Description
    reference: https://spotlight-rules.com/spec/rules/asyncapi/channel-asyncapi-require-description/
    description: Channels should have a description of the messages they carry.
    message: Channel should have a description.
    given: $.channels[*]
    severity: info
    then:
      field: description
      function: truthy
    tags:
    - format:asyncapi
    - spec:channels
    - experience:documentation
    prompt: 'You are editing an AsyncAPI document to satisfy the Spotlight API governance rule ''channel-asyncapi-require-description''
      (Channel Asyncapi Require Description). Requirement: Channels should have a description of the messages they carry.
      To fix: Ensure `description` is present and non-empty at each matching location. This rule is evaluated at the JSONPath
      `$.channels[*]` — inspect every location it matches and correct only what violates the rule. Make the smallest change
      that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid AsyncAPI. Return only the complete corrected document, with no commentary.'
  asyncapi-component-asyncapi-message-require-name:
    title: Component Asyncapi Message Require Name
    reference: https://spotlight-rules.com/spec/rules/asyncapi/component-asyncapi-message-require-name/
    description: Messages should declare a name.
    message: Message should declare a name.
    given: $.components.messages[*]
    severity: info
    then:
      field: name
      function: truthy
    tags:
    - format:asyncapi
    - spec:components
    - experience:documentation
    - experience:consistency
    prompt: 'You are editing an AsyncAPI document to satisfy the Spotlight API governance rule ''component-asyncapi-message-require-name''
      (Component Asyncapi Message Require Name). Requirement: Messages should declare a name. To fix: Ensure `name` is present
      and non-empty at each matching location. This rule is evaluated at the JSONPath `$.components.messages[*]` — inspect
      every location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule,
      leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid AsyncAPI. Return
      only the complete corrected document, with no commentary.'
  asyncapi-component-asyncapi-message-require-title:
    title: Component Asyncapi Message Require Title
    reference: https://spotlight-rules.com/spec/rules/asyncapi/component-asyncapi-message-require-title/
    description: Messages should declare a human-readable title.
    message: Message should declare a title.
    given: $.components.messages[*]
    severity: info
    then:
      field: title
      function: truthy
    tags:
    - format:asyncapi
    - spec:components
    - experience:documentation
    prompt: 'You are editing an AsyncAPI document to satisfy the Spotlight API governance rule ''component-asyncapi-message-require-title''
      (Component Asyncapi Message Require Title). Requirement: Messages should declare a human-readable title. To fix: Ensure
      `title` is present and non-empty at each matching location. This rule is evaluated at the JSONPath `$.components.messages[*]`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid AsyncAPI.
      Return only the complete corrected document, with no commentary.'
  asyncapi-info-asyncapi-require-title:
    title: Info Asyncapi Require Title
    reference: https://spotlight-rules.com/spec/rules/asyncapi/info-asyncapi-require-title/
    description: The API should declare an info.title.
    message: AsyncAPI info should have a title.
    given: $.info
    severity: info
    then:
      field: title
      function: truthy
    tags:
    - format:asyncapi
    - spec:info
    - experience:documentation
    prompt: 'You are editing an AsyncAPI document to satisfy the Spotlight API governance rule ''info-asyncapi-require-title''
      (Info Asyncapi Require Title). Requirement: The API should declare an info.title. To fix: Ensure `title` is present
      and non-empty at each matching location. This rule is evaluated at the JSONPath `$.info` — inspect every location it
      matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid AsyncAPI. Return only the complete
      corrected document, with no commentary.'
  asyncapi-operation-asyncapi-require-summary:
    title: Operation Asyncapi Require Summary
    reference: https://spotlight-rules.com/spec/rules/asyncapi/operation-asyncapi-require-summary/
    description: Operations should have a short summary.
    message: Operation should have a summary.
    given: $.operations[*]
    severity: info
    then:
      field: summary
      function: truthy
    tags:
    - format:asyncapi
    - spec:operations
    - experience:documentation
    prompt: 'You are editing an AsyncAPI document to satisfy the Spotlight API governance rule ''operation-asyncapi-require-summary''
      (Operation Asyncapi Require Summary). Requirement: Operations should have a short summary. To fix: Ensure `summary`
      is present and non-empty at each matching location. This rule is evaluated at the JSONPath `$.operations[*]` — inspect
      every location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule,
      leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid AsyncAPI. Return
      only the complete corrected document, with no commentary.'
  asyncapi-operation-asyncapi-require-tag:
    title: Operation Asyncapi Require Tag
    reference: https://spotlight-rules.com/spec/rules/asyncapi/operation-asyncapi-require-tag/
    description: Operations should declare tags for grouping.
    message: Operation should declare tags.
    given: $.operations[*]
    severity: info
    then:
      field: tags
      function: truthy
    tags:
    - format:asyncapi
    - spec:operations
    - experience:documentation
    - experience:discoverability
    prompt: 'You are editing an AsyncAPI document to satisfy the Spotlight API governance rule ''operation-asyncapi-require-tag''
      (Operation Asyncapi Require Tag). Requirement: Operations should declare tags for grouping. To fix: Ensure `tags` is
      present and non-empty at each matching location. This rule is evaluated at the JSONPath `$.operations[*]` — inspect
      every location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule,
      leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid AsyncAPI. Return
      only the complete corrected document, with no commentary.'
  asyncapi-schema-asyncapi-property-require-description:
    title: Schema Asyncapi Property Require Description
    reference: https://spotlight-rules.com/spec/rules/asyncapi/schema-asyncapi-property-require-description/
    description: Schema properties should be documented with a description.
    message: Schema property should have a description.
    given: $.components.schemas[*].properties[*]
    severity: info
    then:
      field: description
      function: truthy
    tags:
    - format:asyncapi
    - spec:components
    - experience:documentation
    prompt: 'You are editing an AsyncAPI document to satisfy the Spotlight API governance rule ''schema-asyncapi-property-require-description''
      (Schema Asyncapi Property Require Description). Requirement: Schema properties should be documented with a description.
      To fix: Ensure `description` is present and non-empty at each matching location. This rule is evaluated at the JSONPath
      `$.components.schemas[*].properties[*]` — inspect every location it matches and correct only what violates the rule.
      Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged,
      and keep the document valid AsyncAPI. Return only the complete corrected document, with no commentary.'
  asyncapi-server-asyncapi-require-description:
    title: Server Asyncapi Require Description
    reference: https://spotlight-rules.com/spec/rules/asyncapi/server-asyncapi-require-description/
    description: Servers should have a description identifying the environment/broker.
    message: Server should have a description.
    given: $.servers[*]
    severity: info
    then:
      field: description
      function: truthy
    tags:
    - format:asyncapi
    - spec:servers
    - experience:documentation
    prompt: 'You are editing an AsyncAPI document to satisfy the Spotlight API governance rule ''server-asyncapi-require-description''
      (Server Asyncapi Require Description). Requirement: Servers should have a description identifying the environment/broker.
      To fix: Ensure `description` is present and non-empty at each matching location. This rule is evaluated at the JSONPath
      `$.servers[*]` — inspect every location it matches and correct only what violates the rule. Make the smallest change
      that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid AsyncAPI. Return only the complete corrected document, with no commentary.'
  arazzo-info-arazzo-require-title:
    title: Info Arazzo Require Title
    reference: https://spotlight-rules.com/spec/rules/arazzo/info-arazzo-require-title/
    description: The Arazzo description should declare an info.title.
    message: Arazzo info should have a title.
    given: $.info
    severity: info
    then:
      field: title
      function: truthy
    tags:
    - format:arazzo
    - spec:info
    - experience:documentation
    prompt: 'You are editing an Arazzo document to satisfy the Spotlight API governance rule ''info-arazzo-require-title''
      (Info Arazzo Require Title). Requirement: The Arazzo description should declare an info.title. To fix: Ensure `title`
      is present and non-empty at each matching location. This rule is evaluated at the JSONPath `$.info` — inspect every
      location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave
      all unrelated content, key order, comments, and formatting unchanged, and keep the document valid Arazzo. Return only
      the complete corrected document, with no commentary.'
  arazzo-source-arazzo-description-require-name:
    title: Source Arazzo Description Require Name
    reference: https://spotlight-rules.com/spec/rules/arazzo/source-arazzo-description-require-name/
    description: Each source description should declare a name used to reference it from steps.
    message: Source description should have a name.
    given: $.sourceDescriptions[*]
    severity: info
    then:
      field: name
      function: truthy
    tags:
    - format:arazzo
    - spec:source-descriptions
    - experience:consistency
    - experience:documentation
    prompt: 'You are editing an Arazzo document to satisfy the Spotlight API governance rule ''source-arazzo-description-require-name''
      (Source Arazzo Description Require Name). Requirement: Each source description should declare a name used to reference
      it from steps. To fix: Ensure `name` is present and non-empty at each matching location. This rule is evaluated at the
      JSONPath `$.sourceDescriptions[*]` — inspect every location it matches and correct only what violates the rule. Make
      the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged,
      and keep the document valid Arazzo. Return only the complete corrected document, with no commentary.'
  json-schema-document-require-description:
    title: Document Require Description
    reference: https://spotlight-rules.com/spec/rules/json-schema/document-require-description/
    description: The `description` property should be present.
    message: description should be present
    severity: info
    given: $
    then:
      field: description
      function: truthy
    tags:
    - format:jsonschema
    - spec:schemas
    - experience:documentation
    - experience:data-modeling
    prompt: 'You are editing a JSON Schema document to satisfy the Spotlight API governance rule ''document-require-description''
      (Document Require Description). Requirement: The `description` property should be present. To fix: Ensure `description`
      is present and non-empty at each matching location. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid JSON Schema. Return only the complete
      corrected document, with no commentary.'
  json-schema-document-require-title:
    title: Document Require Title
    reference: https://spotlight-rules.com/spec/rules/json-schema/document-require-title/
    description: The `title` property should be present.
    message: title should be present
    severity: info
    given: $
    then:
      field: title
      function: truthy
    tags:
    - format:jsonschema
    - spec:schemas
    - experience:documentation
    - experience:data-modeling
    prompt: 'You are editing a JSON Schema document to satisfy the Spotlight API governance rule ''document-require-title''
      (Document Require Title). Requirement: The `title` property should be present. To fix: Ensure `title` is present and
      non-empty at each matching location. Make the smallest change that satisfies the rule, leave all unrelated content,
      key order, comments, and formatting unchanged, and keep the document valid JSON Schema. Return only the complete corrected
      document, with no commentary.'
  json-schema-schema-property-require-description:
    title: Schema Property Require Description
    reference: https://spotlight-rules.com/spec/rules/json-schema/schema-property-require-description/
    description: The `description` property of each property should be present.
    message: description should be present
    severity: info
    given: $.properties[*]
    then:
      field: description
      function: truthy
    tags:
    - format:jsonschema
    - spec:properties
    - experience:documentation
    - experience:data-modeling
    prompt: 'You are editing a JSON Schema document to satisfy the Spotlight API governance rule ''schema-property-require-description''
      (Schema Property Require Description). Requirement: The `description` property of each property should be present. To
      fix: Ensure `description` is present and non-empty at each matching location. This rule is evaluated at the JSONPath
      `$.properties[*]` — inspect every location it matches and correct only what violates the rule. Make the smallest change
      that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid JSON Schema. Return only the complete corrected document, with no commentary.'
  json-structure-schema-json-structure-property-require-description:
    title: Schema JSON Structure Property Require Description
    reference: https://spotlight-rules.com/spec/rules/json-structure/schema-json-structure-property-require-description/
    description: Properties should be documented with a description.
    message: Property should have a description.
    given: $.properties[*]
    severity: info
    then:
      field: description
      function: truthy
    tags:
    - format:json-structure
    - spec:schemas
    - experience:documentation
    prompt: 'You are editing a JSON Structure document to satisfy the Spotlight API governance rule ''schema-json-structure-property-require-description''
      (Schema JSON Structure Property Require Description). Requirement: Properties should be documented with a description.
      To fix: Ensure `description` is present and non-empty at each matching location. This rule is evaluated at the JSONPath
      `$.properties[*]` — inspect every location it matches and correct only what violates the rule. Make the smallest change
      that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document
      valid JSON Structure. Return only the complete corrected document, with no commentary.'
  mcp-document-mcp-description-meaningful:
    title: Document MCP Description Meaningful
    reference: https://spotlight-rules.com/spec/rules/mcp/document-mcp-description-meaningful/
    description: The server description should be specific (at least 40 characters) so agents can decide when to use it.
    message: MCP description should be at least 40 characters.
    given: $.description
    severity: info
    then:
      function: schema
      functionOptions:
        schema:
          type: string
          minLength: 40
    tags:
    - format:mcp
    - spec:document
    - experience:discoverability
    - experience:documentation
    prompt: 'You are editing a MCP document to satisfy the Spotlight API governance rule ''document-mcp-description-meaningful''
      (Document MCP Description Meaningful). Requirement: The server description should be specific (at least 40 characters)
      so agents can decide when to use it. To fix: Adjust the targeted value so it conforms to the schema this rule requires.
      This rule is evaluated at the JSONPath `$.description` — inspect every location it matches and correct only what violates
      the rule. Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting
      unchanged, and keep the document valid MCP. Return only the complete corrected document, with no commentary.'
  mcp-document-require-description:
    title: Document Require Description
    reference: https://spotlight-rules.com/spec/rules/mcp/document-require-description/
    description: The `description` property should be present.
    message: description should be present
    severity: info
    given: $
    then:
      field: description
      function: truthy
    tags:
    - format:mcp
    - spec:servers
    - experience:documentation
    - experience:data-modeling
    prompt: 'You are editing a MCP document to satisfy the Spotlight API governance rule ''document-require-description''
      (Document Require Description). Requirement: The `description` property should be present. To fix: Ensure `description`
      is present and non-empty at each matching location. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid MCP. Return only the complete corrected
      document, with no commentary.'
  mcp-document-require-instructions:
    title: Document Require Instructions
    reference: https://spotlight-rules.com/spec/rules/mcp/document-require-instructions/
    description: The `instructions` property should be present.
    message: instructions should be present
    severity: info
    given: $
    then:
      field: instructions
      function: truthy
    tags:
    - format:mcp
    - spec:servers
    - experience:documentation
    - experience:usability
    prompt: 'You are editing a MCP document to satisfy the Spotlight API governance rule ''document-require-instructions''
      (Document Require Instructions). Requirement: The `instructions` property should be present. To fix: Ensure `instructions`
      is present and non-empty at each matching location. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid MCP. Return only the complete corrected
      document, with no commentary.'
  plans-document-require-description:
    title: Document Require Description
    reference: https://spotlight-rules.com/spec/rules/plans/document-require-description/
    description: The `description` property should be present.
    message: description should be present
    severity: info
    given: $
    then:
      field: description
      function: truthy
    tags:
    - format:plans
    - spec:document
    - experience:documentation
    - experience:governance
    prompt: 'You are editing a Plans document to satisfy the Spotlight API governance rule ''document-require-description''
      (Document Require Description). Requirement: The `description` property should be present. To fix: Ensure `description`
      is present and non-empty at each matching location. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid Plans. Return only the complete
      corrected document, with no commentary.'
  plans-plan-features-non-empty:
    title: Plan Features Non Empty
    reference: https://spotlight-rules.com/spec/rules/plans/plan-features-non-empty/
    description: If a plan lists features, the list should not be empty.
    message: Plan features should not be empty.
    given: $.plans[*].features
    severity: info
    then:
      function: schema
      functionOptions:
        schema:
          type: array
          minItems: 1
    tags:
    - format:plans
    - spec:plans
    - experience:documentation
    prompt: 'You are editing a Plans document to satisfy the Spotlight API governance rule ''plan-features-non-empty'' (Plan
      Features Non Empty). Requirement: If a plan lists features, the list should not be empty. To fix: Adjust the targeted
      value so it conforms to the schema this rule requires. This rule is evaluated at the JSONPath `$.plans[*].features`
      — inspect every location it matches and correct only what violates the rule. Make the smallest change that satisfies
      the rule, leave all unrelated content, key order, comments, and formatting unchanged, and keep the document valid Plans.
      Return only the complete corrected document, with no commentary.'
  plans-plan-require-description:
    title: Plan Require Description
    reference: https://spotlight-rules.com/spec/rules/plans/plan-require-description/
    description: The `description` property of each plan should be present.
    message: description should be present
    severity: info
    given: $.plans[*]
    then:
      field: description
      function: truthy
    tags:
    - format:plans
    - spec:plans
    - experience:documentation
    - experience:usability
    prompt: 'You are editing a Plans document to satisfy the Spotlight API governance rule ''plan-require-description'' (Plan
      Require Description). Requirement: The `description` property of each plan should be present. To fix: Ensure `description`
      is present and non-empty at each matching location. This rule is evaluated at the JSONPath `$.plans[*]` — inspect every
      location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave
      all unrelated content, key order, comments, and formatting unchanged, and keep the document valid Plans. Return only
      the complete corrected document, with no commentary.'
  plans-plan-require-features:
    title: Plan Require Features
    reference: https://spotlight-rules.com/spec/rules/plans/plan-require-features/
    description: The `features` property of each plan should be present.
    message: features should be present
    severity: info
    given: $.plans[*]
    then:
      field: features
      function: truthy
    tags:
    - format:plans
    - spec:plans
    - experience:usability
    - experience:documentation
    prompt: 'You are editing a Plans document to satisfy the Spotlight API governance rule ''plan-require-features'' (Plan
      Require Features). Requirement: The `features` property of each plan should be present. To fix: Ensure `features` is
      present and non-empty at each matching location. This rule is evaluated at the JSONPath `$.plans[*]` — inspect every
      location it matches and correct only what violates the rule. Make the smallest change that satisfies the rule, leave
      all unrelated content, key order, comments, and formatting unchanged, and keep the document valid Plans. Return only
      the complete corrected document, with no commentary.'
  rate-limits-document-require-description:
    title: Document Require Description
    reference: https://spotlight-rules.com/spec/rules/rate-limits/document-require-description/
    description: The `description` property should be present.
    message: description should be present
    severity: info
    given: $
    then:
      field: description
      function: truthy
    tags:
    - format:rate-limits
    - spec:document
    - experience:documentation
    - experience:governance
    prompt: 'You are editing a Rate Limits document to satisfy the Spotlight API governance rule ''document-require-description''
      (Document Require Description). Requirement: The `description` property should be present. To fix: Ensure `description`
      is present and non-empty at each matching location. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid Rate Limits. Return only the complete
      corrected document, with no commentary.'
  finops-document-finops-require-description:
    title: Document FinOps Require Description
    reference: https://spotlight-rules.com/spec/rules/finops/document-finops-require-description/
    description: The `description` property should be present.
    message: description should be present
    severity: info
    given: $
    then:
      field: description
      function: truthy
    tags:
    - format:finops
    - spec:document
    - experience:documentation
    - experience:governance
    prompt: 'You are editing a FinOps document to satisfy the Spotlight API governance rule ''document-finops-require-description''
      (Document FinOps Require Description). Requirement: The `description` property should be present. To fix: Ensure `description`
      is present and non-empty at each matching location. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid FinOps. Return only the complete
      corrected document, with no commentary.'
  agent-skill-skill-body-present:
    title: Skill Body Present
    reference: https://spotlight-rules.com/spec/rules/agent-skill/skill-body-present/
    description: A skill must have body content, not just frontmatter — the body is the instruction set the agent actually
      follows.
    message: A skill must have body content.
    severity: info
    given: $.words
    then:
      function: schema
      functionOptions:
        schema:
          type: integer
          minimum: 1
    tags:
    - format:agent-skill
    - spec:body
    - experience:documentation
    - experience:reliability
    prompt: 'You are editing an Agent Skill document to satisfy the Spotlight API governance rule ''skill-body-present'' (Skill
      Body Present). Requirement: A skill must have body content, not just frontmatter — the body is the instruction set the
      agent actually follows. To fix: Adjust the targeted value so it conforms to the schema this rule requires. This rule
      is evaluated at the JSONPath `$.words` — inspect every location it matches and correct only what violates the rule.
      Make the smallest change that satisfies the rule, leave all unrelated content, key order, comments, and formatting unchanged,
      and keep the document valid Agent Skill. Return only the complete corrected document, with no commentary.'
  agent-skill-skill-has-examples-section:
    title: Skill Has Examples Section
    reference: https://spotlight-rules.com/spec/rules/agent-skill/skill-has-examples-section/
    description: A skill body should show concrete examples under an Examples section so agents and humans can see how it
      is meant to be invoked.
    message: Skill body should have an "Examples" section.
    severity: info
    given: $
    then:
      function: headingPresent
      functionOptions:
        name: Examples
    tags:
    - format:agent-skill
    - spec:body
    - experience:documentation
    prompt: 'You are editing an Agent Skill document to satisfy the Spotlight API governance rule ''skill-has-examples-section''
      (Skill Has Examples Section). Requirement: A skill body should show concrete examples under an Examples section so agents
      and humans can see how it is meant to be invoked. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid Agent Skill. Return only the complete
      corrected document, with no commentary.'
  agent-skill-skill-has-usage-section:
    title: Skill Has Usage Section
    reference: https://spotlight-rules.com/spec/rules/agent-skill/skill-has-usage-section/
    description: A skill body should document how to use it under a Usage section, so both humans and agents can see how it
      is meant to be invoked.
    message: Skill body should have a "Usage" section.
    severity: info
    given: $
    then:
      function: headingPresent
      functionOptions:
        name: Usage
    tags:
    - format:agent-skill
    - spec:body
    - experience:documentation
    prompt: 'You are editing an Agent Skill document to satisfy the Spotlight API governance rule ''skill-has-usage-section''
      (Skill Has Usage Section). Requirement: A skill body should document how to use it under a Usage section, so both humans
      and agents can see how it is meant to be invoked. Make the smallest change that satisfies the rule, leave all unrelated
      content, key order, comments, and formatting unchanged, and keep the document valid Agent Skill. Return only the complete
      corrected document, with no commentary.'
