{"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/v2/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/v2/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/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-32","__idx":2},"children":["Minimal ruleset: OpenAPI 3.2"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  no-ambiguous-paths: warn\n  no-empty-servers: warn\n  no-enum-type-mismatch: warn\n  no-identical-paths: warn\n  no-invalid-media-type-examples: warn\n  no-path-trailing-slash: warn\n  no-required-schema-properties-undefined: warn\n  no-schema-type-mismatch: warn\n  no-server-example.com: warn\n  no-server-trailing-slash: error\n  no-server-variables-empty-enum: error\n  no-unresolved-refs: error\n  no-unused-components: warn\n  no-undefined-server-variable: warn\n  operation-2xx-response: warn\n  operation-operationId: warn\n  operation-operationId-unique: warn\n  operation-operationId-url-safe: warn\n  operation-parameters-unique: warn\n  operation-summary: warn\n  path-declaration-must-exist: warn\n  path-not-include-query: warn\n  path-parameters-defined: warn\n  security-defined: warn\n  spec-components-invalid-map-name: warn\n  spec-no-invalid-encoding-combinations: warn\n  spec-no-invalid-tag-parents: warn\n  struct: error\n  tag-description: warn\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-ruleset-openapi-31","__idx":3},"children":["Minimal ruleset: OpenAPI 3.1"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  no-ambiguous-paths: warn\n  no-empty-servers: warn\n  no-enum-type-mismatch: warn\n  no-example-value-and-externalValue: warn\n  no-identical-paths: warn\n  no-invalid-media-type-examples: warn\n  no-path-trailing-slash: warn\n  no-required-schema-properties-undefined: warn\n  no-schema-type-mismatch: warn\n  no-server-example.com: warn\n  no-server-trailing-slash: error\n  no-server-variables-empty-enum: error\n  no-unresolved-refs: error\n  no-unused-components: warn\n  no-undefined-server-variable: warn\n  operation-2xx-response: warn\n  operation-operationId: warn\n  operation-operationId-unique: warn\n  operation-operationId-url-safe: warn\n  operation-parameters-unique: warn\n  operation-summary: warn\n  path-declaration-must-exist: warn\n  path-not-include-query: warn\n  path-parameters-defined: warn\n  security-defined: warn\n  spec-components-invalid-map-name: warn\n  struct: error\n  tag-description: warn\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-ruleset-openapi-30","__idx":4},"children":["Minimal ruleset: OpenAPI 3.0"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  no-ambiguous-paths: warn\n  no-empty-servers: warn\n  no-enum-type-mismatch: warn\n  no-example-value-and-externalValue: warn\n  no-identical-paths: warn\n  no-invalid-media-type-examples: warn\n  no-path-trailing-slash: warn\n  no-required-schema-properties-undefined: warn\n  no-schema-type-mismatch: warn\n  no-server-example.com: warn\n  no-server-trailing-slash: error\n  no-server-variables-empty-enum: error\n  no-unresolved-refs: error\n  no-unused-components: warn\n  no-undefined-server-variable: warn\n  nullable-type-sibling: warn\n  operation-2xx-response: warn\n  operation-operationId: warn\n  operation-operationId-unique: warn\n  operation-operationId-url-safe: warn\n  operation-parameters-unique: warn\n  operation-summary: warn\n  path-declaration-must-exist: warn\n  path-not-include-query: warn\n  path-parameters-defined: warn\n  security-defined: warn\n  spec-components-invalid-map-name: warn\n  struct: error\n  tag-description: warn\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-ruleset-openapi-20","__idx":5},"children":["Minimal ruleset: OpenAPI 2.0"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  no-ambiguous-paths: warn\n  no-enum-type-mismatch: warn\n  no-identical-paths: warn\n  no-path-trailing-slash: warn\n  no-required-schema-properties-undefined: warn\n  no-schema-type-mismatch: warn\n  no-unresolved-refs: error\n  operation-2xx-response: warn\n  operation-operationId: warn\n  operation-operationId-unique: warn\n  operation-operationId-url-safe: warn\n  operation-parameters-unique: warn\n  operation-summary: warn\n  path-declaration-must-exist: warn\n  path-not-include-query: warn\n  path-parameters-defined: warn\n  security-defined: warn\n  struct: error\n  tag-description: warn\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-ruleset-asyncapi-30-asyncapi-31-asyncapi-26","__idx":6},"children":["Minimal ruleset: AsyncAPI 3.0, AsyncAPI 3.1, AsyncAPI 2.6"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  no-enum-type-mismatch: warn\n  no-required-schema-properties-undefined: warn\n  no-schema-type-mismatch: warn\n  operation-operationId: warn\n  security-defined: warn\n  struct: error\n  tag-description: warn\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"minimal-ruleset-arazzo-10-arazzo-11","__idx":7},"children":["Minimal ruleset: Arazzo 1.0, Arazzo 1.1"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  no-enum-type-mismatch: warn\n  no-required-schema-properties-undefined: warn\n  no-schema-type-mismatch: warn\n  spec-step-mutually-exclusive-fields: warn\n  stepId-unique: error\n  struct: error\n  workflowId-unique: error\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-32","__idx":9},"children":["Recommended ruleset: OpenAPI 3.2"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  info-license: warn\n  info-license-strict: warn\n  no-ambiguous-paths: warn\n  no-duplicated-enum-values: warn\n  no-duplicated-tag-names: warn\n  no-empty-servers: error\n  no-enum-type-mismatch: error\n  no-identical-paths: error\n  no-illogical-composition-keywords: warn\n  no-invalid-media-type-examples: warn\n  no-invalid-parameter-examples: warn\n  no-invalid-schema-examples: warn\n  no-mixed-number-range-constraints: warn\n  no-path-trailing-slash: error\n  no-required-schema-properties-undefined: warn\n  no-schema-type-mismatch: error\n  no-server-example.com: warn\n  no-server-trailing-slash: error\n  no-server-variables-empty-enum: error\n  no-unresolved-refs: error\n  no-unsafe-markdown: warn\n  no-unused-components: warn\n  no-undefined-server-variable: error\n  operation-2xx-response: warn\n  operation-4xx-response: warn\n  operation-operationId: warn\n  operation-operationId-unique: error\n  operation-operationId-url-safe: error\n  operation-parameters-unique: error\n  operation-summary: error\n  path-declaration-must-exist: error\n  path-not-include-query: error\n  path-parameters-defined: error\n  path-params-defined: error\n  security-defined: error\n  security-scopes-defined: warn\n  spec-components-invalid-map-name: error\n  spec-discriminator-defaultMapping: warn\n  spec-example-values: error\n  spec-no-invalid-encoding-combinations: error\n  spec-no-invalid-tag-parents: error\n  spec-ref-siblings: warn\n  struct: error\n  tag-description: warn\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-ruleset-openapi-31","__idx":10},"children":["Recommended ruleset: OpenAPI 3.1"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  info-license: warn\n  info-license-strict: warn\n  no-ambiguous-paths: warn\n  no-duplicated-enum-values: warn\n  no-duplicated-tag-names: warn\n  no-empty-servers: error\n  no-enum-type-mismatch: error\n  no-example-value-and-externalValue: error\n  no-identical-paths: error\n  no-illogical-composition-keywords: warn\n  no-invalid-media-type-examples: warn\n  no-invalid-parameter-examples: warn\n  no-invalid-schema-examples: warn\n  no-mixed-number-range-constraints: warn\n  no-path-trailing-slash: error\n  no-required-schema-properties-undefined: warn\n  no-schema-type-mismatch: error\n  no-server-example.com: warn\n  no-server-trailing-slash: error\n  no-server-variables-empty-enum: error\n  no-unresolved-refs: error\n  no-unsafe-markdown: warn\n  no-unused-components: warn\n  no-undefined-server-variable: error\n  operation-2xx-response: warn\n  operation-4xx-response: warn\n  operation-operationId: warn\n  operation-operationId-unique: error\n  operation-operationId-url-safe: error\n  operation-parameters-unique: error\n  operation-summary: error\n  path-declaration-must-exist: error\n  path-not-include-query: error\n  path-parameters-defined: error\n  path-params-defined: error\n  security-defined: error\n  security-scopes-defined: warn\n  spec-components-invalid-map-name: error\n  spec-ref-siblings: warn\n  struct: error\n  tag-description: warn\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-ruleset-openapi-30","__idx":11},"children":["Recommended ruleset: OpenAPI 3.0"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  info-license: warn\n  info-license-strict: warn\n  no-ambiguous-paths: warn\n  no-duplicated-enum-values: warn\n  no-duplicated-tag-names: warn\n  no-empty-servers: error\n  no-enum-type-mismatch: error\n  no-example-value-and-externalValue: error\n  no-identical-paths: error\n  no-illogical-composition-keywords: warn\n  no-invalid-media-type-examples: warn\n  no-invalid-parameter-examples: warn\n  no-invalid-schema-examples: warn\n  no-path-trailing-slash: error\n  no-required-schema-properties-undefined: warn\n  no-schema-type-mismatch: error\n  no-server-example.com: warn\n  no-server-trailing-slash: error\n  no-server-variables-empty-enum: error\n  no-unresolved-refs: error\n  no-unsafe-markdown: warn\n  no-unused-components: warn\n  no-undefined-server-variable: error\n  nullable-type-sibling: error\n  operation-2xx-response: warn\n  operation-4xx-response: warn\n  operation-operationId: warn\n  operation-operationId-unique: error\n  operation-operationId-url-safe: error\n  operation-parameters-unique: error\n  operation-summary: error\n  path-declaration-must-exist: error\n  path-not-include-query: error\n  path-parameters-defined: error\n  path-params-defined: error\n  security-defined: error\n  security-scopes-defined: warn\n  spec-components-invalid-map-name: error\n  spec-ref-siblings: warn\n  struct: error\n  tag-description: warn\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-ruleset-openapi-20","__idx":12},"children":["Recommended ruleset: OpenAPI 2.0"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  info-license: warn\n  info-license-strict: warn\n  no-ambiguous-paths: warn\n  no-duplicated-enum-values: warn\n  no-duplicated-tag-names: warn\n  no-enum-type-mismatch: error\n  no-identical-paths: error\n  no-invalid-parameter-examples: warn\n  no-invalid-schema-examples: warn\n  no-path-trailing-slash: error\n  no-required-schema-properties-undefined: warn\n  no-schema-type-mismatch: error\n  no-unresolved-refs: error\n  no-unsafe-markdown: warn\n  operation-2xx-response: warn\n  operation-4xx-response: warn\n  operation-operationId: warn\n  operation-operationId-unique: error\n  operation-operationId-url-safe: error\n  operation-parameters-unique: error\n  operation-summary: error\n  path-declaration-must-exist: error\n  path-not-include-query: error\n  path-parameters-defined: error\n  path-params-defined: error\n  security-defined: error\n  security-scopes-defined: warn\n  spec-ref-siblings: warn\n  struct: error\n  tag-description: warn\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-ruleset-asyncapi-30-asyncapi-31-asyncapi-26","__idx":13},"children":["Recommended ruleset: AsyncAPI 3.0, AsyncAPI 3.1, AsyncAPI 2.6"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  info-license-strict: warn\n  no-duplicated-enum-values: warn\n  no-duplicated-tag-names: warn\n  no-enum-type-mismatch: error\n  no-mixed-number-range-constraints: warn\n  no-required-schema-properties-undefined: warn\n  no-schema-type-mismatch: error\n  no-unsafe-markdown: warn\n  operation-operationId: warn\n  security-defined: error\n  security-scopes-defined: warn\n  spec-ref-siblings: warn\n  struct: error\n  tag-description: warn\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-ruleset-arazzo-10-arazzo-11","__idx":14},"children":["Recommended ruleset: Arazzo 1.0, Arazzo 1.1"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"rules:\n  criteria-unique: warn\n  no-duplicated-enum-values: warn\n  no-enum-type-mismatch: error\n  no-mixed-number-range-constraints: warn\n  no-required-schema-properties-undefined: warn\n  no-schema-type-mismatch: error\n  no-unsafe-markdown: warn\n  outputs-defined: warn\n  parameters-unique: error\n  requestBody-replacements-unique: warn\n  sourceDescription-name-unique: error\n  sourceDescription-type: error\n  sourceDescriptions-not-empty: error\n  spec-step-mutually-exclusive-fields: error\n  step-onFailure-unique: warn\n  step-onSuccess-unique: warn\n  stepId-unique: error\n  struct: error\n  workflow-dependsOn: error\n  workflowId-unique: error\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/v2/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/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/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":"2026-08-26T10:56:59.000Z"}