{"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"ruleset-templates","__idx":0},"children":["Ruleset templates"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Redocly CLI includes some default rulesets to get you started quickly."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To edit/adjust the rules you use in your own projects, ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v1/rules/configure-rules"},"children":["configure your rules"]}," accordingly to override any settings from the original ruleset."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On this page, each ruleset is included for each of the supported API description formats."," ","You can use this information for your own reference, or copy/paste them in order to use ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v1/configuration/apis"},"children":["separate configuration for each API"]},"."," ","Consult the format-specific sections below, each code sample is formatted to be included in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redocly.yaml"]}," directly."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["More information and examples for individual rules can be found in the ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v1/rules/built-in-rules"},"children":["built-in rules documentation"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"minimal-rulesets","__idx":1},"children":["Minimal rulesets"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The minimal rulesets are a decent baseline that you can use to selective enable more rules or extend rulesets from."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-ruleset-openapi-31","__idx":2},"children":["Minimal ruleset: OpenAPI 3.1"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  info-contact: off\n  info-license: off\n  info-license-url: off\n  info-license-strict: off\n  tag-description: warn\n  tags-alphabetical: off\n  parameter-description: off\n  no-path-trailing-slash: warn\n  no-identical-paths: warn\n  no-ambiguous-paths: warn\n  path-declaration-must-exist: warn\n  path-not-include-query: warn\n  path-parameters-defined: warn\n  operation-description: off\n  operation-2xx-response: warn\n  operation-4xx-response: off\n  operation-operationId: warn\n  operation-summary: warn\n  operation-operationId-unique: warn\n  operation-parameters-unique: warn\n  operation-tag-defined: off\n  security-defined: warn\n  operation-operationId-url-safe: warn\n  operation-singular-tag: off\n  no-unresolved-refs: error\n  no-enum-type-mismatch: warn\n  paths-kebab-case: off\n  struct: error\n  spec-strict-refs: off\n  no-http-verbs-in-paths: off\n  no-invalid-parameter-examples: off\n  no-invalid-schema-examples: off\n  path-excludes-patterns: off\n  path-http-verbs-order: off\n  path-params-defined: off\n  required-string-property-missing-min-length: off\n  response-contains-header: off\n  path-segment-plural: off\n  scalar-property-missing-example: off\n  no-required-schema-properties-undefined: off\n  no-invalid-media-type-examples: warn\n  no-server-example.com: warn\n  no-server-trailing-slash: error\n  no-empty-servers: warn\n  no-example-value-and-externalValue: warn\n  no-unused-components: warn\n  no-undefined-server-variable: warn\n  no-server-variables-empty-enum: error\n  spec-components-invalid-map-name: warn\n  boolean-parameter-prefixes: off\n  component-name-unique: off\n  operation-4xx-problem-details-rfc7807: off\n  request-mime-type: off\n  response-contains-property: off\n  response-mime-type: off\n  array-parameter-serialization: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-ruleset-openapi-30","__idx":3},"children":["Minimal ruleset: OpenAPI 3.0"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  info-contact: off\n  info-license: off\n  info-license-url: off\n  info-license-strict: off\n  tag-description: warn\n  tags-alphabetical: off\n  parameter-description: off\n  no-path-trailing-slash: warn\n  no-identical-paths: warn\n  no-ambiguous-paths: warn\n  path-declaration-must-exist: warn\n  path-not-include-query: warn\n  path-parameters-defined: warn\n  operation-description: off\n  operation-2xx-response: warn\n  operation-4xx-response: off\n  operation-operationId: warn\n  operation-summary: warn\n  operation-operationId-unique: warn\n  operation-parameters-unique: warn\n  operation-tag-defined: off\n  security-defined: warn\n  operation-operationId-url-safe: warn\n  operation-singular-tag: off\n  no-unresolved-refs: error\n  no-enum-type-mismatch: warn\n  paths-kebab-case: off\n  struct: error\n  spec-strict-refs: off\n  no-http-verbs-in-paths: off\n  no-invalid-parameter-examples: off\n  no-invalid-schema-examples: off\n  path-excludes-patterns: off\n  path-http-verbs-order: off\n  path-params-defined: off\n  required-string-property-missing-min-length: off\n  response-contains-header: off\n  path-segment-plural: off\n  scalar-property-missing-example: off\n  no-required-schema-properties-undefined: off\n  no-invalid-media-type-examples: warn\n  no-server-example.com: warn\n  no-server-trailing-slash: error\n  no-empty-servers: warn\n  no-example-value-and-externalValue: warn\n  no-unused-components: warn\n  no-undefined-server-variable: warn\n  no-server-variables-empty-enum: error\n  spec-components-invalid-map-name: warn\n  boolean-parameter-prefixes: off\n  component-name-unique: off\n  operation-4xx-problem-details-rfc7807: off\n  request-mime-type: off\n  response-contains-property: off\n  response-mime-type: off\n  array-parameter-serialization: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-ruleset-openapi-20","__idx":4},"children":["Minimal ruleset: OpenAPI 2.0"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  info-contact: off\n  info-license: off\n  info-license-url: off\n  info-license-strict: off\n  tag-description: warn\n  tags-alphabetical: off\n  parameter-description: off\n  no-path-trailing-slash: warn\n  no-identical-paths: warn\n  no-ambiguous-paths: warn\n  path-declaration-must-exist: warn\n  path-not-include-query: warn\n  path-parameters-defined: warn\n  operation-description: off\n  operation-2xx-response: warn\n  operation-4xx-response: off\n  operation-operationId: warn\n  operation-summary: warn\n  operation-operationId-unique: warn\n  operation-parameters-unique: warn\n  operation-tag-defined: off\n  security-defined: warn\n  operation-operationId-url-safe: warn\n  operation-singular-tag: off\n  no-unresolved-refs: error\n  no-enum-type-mismatch: warn\n  paths-kebab-case: off\n  struct: error\n  spec-strict-refs: off\n  no-http-verbs-in-paths: off\n  no-invalid-parameter-examples: off\n  no-invalid-schema-examples: off\n  path-excludes-patterns: off\n  path-http-verbs-order: off\n  path-params-defined: off\n  required-string-property-missing-min-length: off\n  response-contains-header: off\n  path-segment-plural: off\n  scalar-property-missing-example: off\n  no-required-schema-properties-undefined: off\n  boolean-parameter-prefixes: off\n  request-mime-type: off\n  response-contains-property: off\n  response-mime-type: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-ruleset-asyncapi-30","__idx":5},"children":["Minimal ruleset: AsyncAPI 3.0"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  struct: error\n  info-contact: off\n  info-license-strict: off\n  operation-operationId: warn\n  tag-description: warn\n  tags-alphabetical: off\n  channels-kebab-case: off\n  no-channel-trailing-slash: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-ruleset-asyncapi-26","__idx":6},"children":["Minimal ruleset: AsyncAPI 2.6"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  struct: error\n  info-contact: off\n  info-license-strict: off\n  operation-operationId: warn\n  tag-description: warn\n  tags-alphabetical: off\n  channels-kebab-case: off\n  no-channel-trailing-slash: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-ruleset-arazzo-10","__idx":7},"children":["Minimal ruleset: Arazzo 1.0"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  struct: error\n  sourceDescription-type: off\n  workflowId-unique: error\n  stepId-unique: error\n  sourceDescription-name-unique: off\n  workflow-dependsOn: off\n  parameters-unique: off\n  step-onSuccess-unique: off\n  step-onFailure-unique: off\n  respect-supported-versions: off\n  requestBody-replacements-unique: off\n  no-criteria-xpath: off\n  no-actions-type-end: off\n  criteria-unique: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"recommended-rulesets","__idx":8},"children":["Recommended rulesets"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The default behavior is to use a recommended ruleset."," ","The recommended rulesets for each format are listed below."," ","There is also a \"recommended-strict\" ruleset which is identical but with all ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warn"]}," settings changed to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-ruleset-openapi-31","__idx":9},"children":["Recommended ruleset: OpenAPI 3.1"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  info-contact: off\n  info-license: warn\n  info-license-url: off\n  info-license-strict: warn\n  tag-description: warn\n  tags-alphabetical: off\n  parameter-description: off\n  no-path-trailing-slash: error\n  no-identical-paths: error\n  no-ambiguous-paths: warn\n  path-declaration-must-exist: error\n  path-not-include-query: error\n  path-parameters-defined: error\n  operation-description: off\n  operation-2xx-response: warn\n  operation-4xx-response: warn\n  operation-operationId: warn\n  operation-summary: error\n  operation-operationId-unique: error\n  operation-operationId-url-safe: error\n  operation-parameters-unique: error\n  operation-tag-defined: off\n  security-defined: error\n  operation-singular-tag: off\n  no-unresolved-refs: error\n  no-enum-type-mismatch: error\n  paths-kebab-case: off\n  struct: error\n  spec-strict-refs: off\n  no-http-verbs-in-paths: off\n  no-invalid-parameter-examples: off\n  no-invalid-schema-examples: off\n  path-excludes-patterns: off\n  path-http-verbs-order: off\n  path-params-defined: off\n  path-segment-plural: off\n  required-string-property-missing-min-length: off\n  response-contains-header: off\n  scalar-property-missing-example: off\n  no-required-schema-properties-undefined: off\n  no-invalid-media-type-examples: warn\n  no-server-example.com: warn\n  no-server-trailing-slash: error\n  no-empty-servers: error\n  no-example-value-and-externalValue: error\n  no-unused-components: warn\n  no-undefined-server-variable: error\n  no-server-variables-empty-enum: error\n  spec-components-invalid-map-name: error\n  boolean-parameter-prefixes: off\n  component-name-unique: off\n  operation-4xx-problem-details-rfc7807: off\n  request-mime-type: off\n  response-contains-property: off\n  response-mime-type: off\n  array-parameter-serialization: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-ruleset-openapi-30","__idx":10},"children":["Recommended ruleset: OpenAPI 3.0"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  info-contact: off\n  info-license: warn\n  info-license-url: off\n  info-license-strict: warn\n  tag-description: warn\n  tags-alphabetical: off\n  parameter-description: off\n  no-path-trailing-slash: error\n  no-identical-paths: error\n  no-ambiguous-paths: warn\n  path-declaration-must-exist: error\n  path-not-include-query: error\n  path-parameters-defined: error\n  operation-description: off\n  operation-2xx-response: warn\n  operation-4xx-response: warn\n  operation-operationId: warn\n  operation-summary: error\n  operation-operationId-unique: error\n  operation-operationId-url-safe: error\n  operation-parameters-unique: error\n  operation-tag-defined: off\n  security-defined: error\n  operation-singular-tag: off\n  no-unresolved-refs: error\n  no-enum-type-mismatch: error\n  paths-kebab-case: off\n  struct: error\n  spec-strict-refs: off\n  no-http-verbs-in-paths: off\n  no-invalid-parameter-examples: off\n  no-invalid-schema-examples: off\n  path-excludes-patterns: off\n  path-http-verbs-order: off\n  path-params-defined: off\n  path-segment-plural: off\n  required-string-property-missing-min-length: off\n  response-contains-header: off\n  scalar-property-missing-example: off\n  no-required-schema-properties-undefined: off\n  no-invalid-media-type-examples: warn\n  no-server-example.com: warn\n  no-server-trailing-slash: error\n  no-empty-servers: error\n  no-example-value-and-externalValue: error\n  no-unused-components: warn\n  no-undefined-server-variable: error\n  no-server-variables-empty-enum: error\n  spec-components-invalid-map-name: error\n  boolean-parameter-prefixes: off\n  component-name-unique: off\n  operation-4xx-problem-details-rfc7807: off\n  request-mime-type: off\n  response-contains-property: off\n  response-mime-type: off\n  array-parameter-serialization: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-ruleset-openapi-20","__idx":11},"children":["Recommended ruleset: OpenAPI 2.0"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  info-contact: off\n  info-license: warn\n  info-license-url: off\n  info-license-strict: warn\n  tag-description: warn\n  tags-alphabetical: off\n  parameter-description: off\n  no-path-trailing-slash: error\n  no-identical-paths: error\n  no-ambiguous-paths: warn\n  path-declaration-must-exist: error\n  path-not-include-query: error\n  path-parameters-defined: error\n  operation-description: off\n  operation-2xx-response: warn\n  operation-4xx-response: warn\n  operation-operationId: warn\n  operation-summary: error\n  operation-operationId-unique: error\n  operation-operationId-url-safe: error\n  operation-parameters-unique: error\n  operation-tag-defined: off\n  security-defined: error\n  operation-singular-tag: off\n  no-unresolved-refs: error\n  no-enum-type-mismatch: error\n  paths-kebab-case: off\n  struct: error\n  spec-strict-refs: off\n  no-http-verbs-in-paths: off\n  no-invalid-parameter-examples: off\n  no-invalid-schema-examples: off\n  path-excludes-patterns: off\n  path-http-verbs-order: off\n  path-params-defined: off\n  path-segment-plural: off\n  required-string-property-missing-min-length: off\n  response-contains-header: off\n  scalar-property-missing-example: off\n  no-required-schema-properties-undefined: off\n  boolean-parameter-prefixes: off\n  request-mime-type: off\n  response-contains-property: off\n  response-mime-type: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-ruleset-asyncapi-30","__idx":12},"children":["Recommended ruleset: AsyncAPI 3.0"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  struct: error\n  info-contact: off\n  info-license-strict: warn\n  operation-operationId: warn\n  tag-description: warn\n  tags-alphabetical: off\n  channels-kebab-case: off\n  no-channel-trailing-slash: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-ruleset-asyncapi-26","__idx":13},"children":["Recommended ruleset: AsyncAPI 2.6"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  struct: error\n  info-contact: off\n  info-license-strict: warn\n  operation-operationId: warn\n  tag-description: warn\n  tags-alphabetical: off\n  channels-kebab-case: off\n  no-channel-trailing-slash: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-ruleset-arazzo-10","__idx":14},"children":["Recommended ruleset: Arazzo 1.0"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  struct: error\n  sourceDescription-type: error\n  workflowId-unique: error\n  stepId-unique: error\n  sourceDescription-name-unique: error\n  workflow-dependsOn: error\n  parameters-unique: error\n  step-onSuccess-unique: warn\n  step-onFailure-unique: warn\n  respect-supported-versions: off\n  requestBody-replacements-unique: warn\n  no-criteria-xpath: off\n  no-actions-type-end: warn\n  criteria-unique: warn\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"resources","__idx":15},"children":["Resources"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Learn about ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v1/api-standards"},"children":["API governance"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["More information and examples for individual rules can be found in the ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v1/rules/built-in-rules"},"children":["built-in rules documentation"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add your own ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v1/rules/configurable-rules"},"children":["configurable rules"]}," if there's anything you need that isn't already provided as a built in rule."]}]}]},"frontmatter":{},"tagList":[],"title":"Ruleset templates","lastModified":"2025-10-03T17:03:33.000Z"}