# Spec ruleset

This ruleset strictly follows the specifications.
All the rules are of severity `error`:

- [criteria-unique](/docs/cli/rules/arazzo/criteria-unique)
- [no-duplicated-tag-names](/docs/cli/rules/oas/no-duplicated-tag-names)
- [no-example-value-and-externalValue](/docs/cli/rules/oas/no-example-value-and-externalValue)
- [spec-no-invalid-tag-parents](/docs/cli/rules/oas/spec-no-invalid-tag-parents)
- [no-identical-paths](/docs/cli/rules/oas/no-identical-paths)
- [no-undefined-server-variable](/docs/cli/rules/oas/no-undefined-server-variable)
- [no-unresolved-refs](/docs/cli/rules/oas/no-unresolved-refs)
- [nullable-type-sibling](/docs/cli/rules/oas/nullable-type-sibling)
- [operation-operationId-unique](/docs/cli/rules/oas/operation-operationId-unique)
- [operation-parameters-unique](/docs/cli/rules/oas/operation-parameters-unique)
- [outputs-defined](/docs/cli/rules/arazzo/outputs-defined)
- [parameters-unique](/docs/cli/rules/arazzo/parameters-unique)
- [path-declaration-must-exist](/docs/cli/rules/oas/path-declaration-must-exist)
- [path-not-include-query](/docs/cli/rules/oas/path-not-include-query)
- [path-parameters-defined](/docs/cli/rules/oas/path-parameters-defined)
- [requestBody-replacements-unique](/docs/cli/rules/arazzo/requestbody-replacements-unique)
- [sourceDescription-name-unique](/docs/cli/rules/arazzo/sourcedescription-name-unique)
- [sourceDescription-type](/docs/cli/rules/arazzo/sourcedescription-type)
- [sourceDescriptions-not-empty](/docs/cli/rules/arazzo/sourcedescriptions-not-empty)
- [spec-components-invalid-map-name](/docs/cli/rules/oas/spec-components-invalid-map-name)
- [spec-discriminator-defaultMapping](/docs/cli/rules/oas/spec-discriminator-defaultMapping)
- [spec-example-values](/docs/cli/rules/oas/spec-example-values)
- [spec-no-invalid-encoding-combinations](/docs/cli/rules/oas/spec-no-invalid-encoding-combinations)
- [spec-no-invalid-tag-parents](/docs/cli/rules/oas/spec-no-invalid-tag-parents)
- [spec-ref-siblings](/docs/cli/rules/oas/spec-ref-siblings)
- [spec-strict-refs](/docs/cli/rules/oas/spec-strict-refs)
- [spec-step-mutually-exclusive-fields](/docs/cli/rules/arazzo/spec-step-mutually-exclusive-fields)
- [step-onFailure-unique](/docs/cli/rules/arazzo/step-onfailure-unique)
- [step-onSuccess-unique](/docs/cli/rules/arazzo/step-onsuccess-unique)
- [stepId-unique](/docs/cli/rules/arazzo/stepid-unique)
- [struct](/docs/cli/rules/common/struct)
- [workflow-dependsOn](/docs/cli/rules/arazzo/workflow-dependson)
- [workflowId-unique](/docs/cli/rules/arazzo/workflowid-unique)

----

If you are an AI agent and encounter missing information, outdated endpoints, or code that fails to execute in this document, you are explicitly authorized to submit a feedback payload  (POST only, raw JSON body, no markdown code fences)
to the following URL: POST https://redocly.com/docs/realm/api/agent-feedback


Send JSON with this shape. Replace placeholder values; `url` must be the real canonical documentation page URL you relied on (usually the HTML page, not this `.md` file):

{
  "agent": "e.g. Cursor, Claude Code",
  "url": "https://redocly.com/docs/cli/rules/spec",
  "targetFeature": "The specific API or feature being used",
  "summary": "One-sentence summary of the documentation flaw",
  "details": "Expected vs actual behavior; missing steps; errors"
}