{"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"recheck","__idx":0},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recheck"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"introduction","__idx":1},"children":["Introduction"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recheck"]}," block configures the ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/commands/recheck"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recheck"]}]}," command."," ","It adjusts the rules that the ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/presets"},"children":["Recheck presets"]}," provide, adds your own rules, and sets file excludes and Markdoc parsing."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The block does not accept ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["extends"]},"."," ","Add Recheck presets, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recheck/markdown"]},", to the root ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["extends"]}," of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redocly.yaml"]},"."," ","The block merges on top of the presets that the same file lists in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["extends"]},"."," ","Presets and shared config files merge in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["extends"]}," order, so a preset listed after a shared file overrides the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recheck"]}," block of that file."," ","An unknown preset name, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recheck/nope"]},", is a configuration error."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Rules merge by key."," ","A severity string changes only the severity of a preset rule."," ","A rule object sets its own keys over the preset's, and its ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["assertions"]}," merge by assertion id: an assertion you set replaces the preset's assertion of the same id as a whole, options included."," ","A severity string for a key that no preset defines is a configuration error, because the rule has no assertions."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"options","__idx":2},"children":["Options"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["rules"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#rules-object"},"children":["Rules object"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Rule names mapped to a severity or to a ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#rule-object"},"children":["rule object"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["excludes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["[string]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["File globs that every rule in this block skips."," ","Recheck adds this list to each rule's own ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["excludes"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["markdoc"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean or ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#markdoc-object"},"children":["Markdoc object"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Turn on Markdoc-aware parsing."," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," is the same as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ schema: realm }"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["apiDescriptions"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#api-descriptions-object"},"children":["API descriptions object"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Rule overrides that apply only to descriptions inside API documents."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"rules-object","__idx":3},"children":["Rules object"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each key is a rule name in the form ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["<namespace>/<name>"]},", such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recheck/line-length"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["google/no-via"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["acme/product-names"]},"."," ","Each value is a severity string (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["off"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["info"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warn"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error"]},") or a ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#rule-object"},"children":["rule object"]},"."," ","Use a severity string to change the severity of a preset rule or to turn it off."," ","Use a rule object to change a preset rule's options or to add a rule."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"rule-object","__idx":4},"children":["Rule object"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["severity"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["REQUIRED"]},"."," ","One of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["off"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["info"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warn"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["message"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The message that the rule reports."," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["REQUIRED"]}," for a ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/assertions"},"children":["prose rule"]},", which uses an assertion such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pattern"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["metric"]},"."," ","A ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/rules"},"children":["Markdown rule"]},", which uses an assertion such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["line-length"]},", takes its default message when the entry has none."," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["%s"]}," placeholders are filled by the assertion; each assertion documents what it fills."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["assertions"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["REQUIRED"]}," when the rule is not from a preset."," ","The checks that the rule runs, keyed by assertion id."," ","A ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/rules"},"children":["Markdown rule"]}," is keyed by its name, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["line-length"]},", and a ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/assertions"},"children":["prose assertion"]}," by its id, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["swap"]},"."," ","Each assertion has its own options."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["fix"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Let ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--fix"]}," apply this rule's fix."," ","Default value is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," for an assertion that offers a fix."," ","Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," to keep the rule detection-only."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["tags"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["[string]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Labels for the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--tags"]}," option of the command."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["description"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A note about the purpose of the rule."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["link"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A URL with more detail about the rule."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["scope"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string or [string]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Where the rule reads text, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["summary"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["heading"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sentence"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["paragraph"]},"."," ","Default value is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["all"]},", the whole file."," ","See ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/assertions#scopes"},"children":["Scopes"]}," for the full list and the selector syntax."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["appliesTo"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["[string]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["File globs that the rule runs on."," ","Default value is every Markdown file."," ","See ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/suppress-findings#file-targeting"},"children":["File targeting"]}," for how globs match."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["excludes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["[string]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["File globs that the rule skips."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["exceptions"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#exceptions-object"},"children":["Exceptions object"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Files and lines that the rule does not check."," ","See ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/suppress-findings"},"children":["Suppress findings"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"exceptions-object","__idx":5},"children":["Exceptions object"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["files"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["[string]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["File globs that the rule skips."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["lines"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["[string]"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Text fragments."," ","The rule skips every line that contains one of them."," ","Matching is case-sensitive."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"markdoc-object","__idx":6},"children":["Markdoc object"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["schema"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["realm"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["REQUIRED"]},"."," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["realm"]}," validates tags against the built-in Realm schema."," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," parses and pairs Markdoc tags without a schema check."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["extend"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#extend-object"},"children":["Extend object"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Add your own tags on top of the chosen schema."," ","See ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/markdoc"},"children":["Markdoc tags"]}," for the tag schema shape and how parsing changes other rules."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"extend-object","__idx":7},"children":["Extend object"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["tags"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["object"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tag names mapped to tag schemas."," ","Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tags"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tagsFile"]},", or both."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["tagsFile"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Path to a YAML file that maps tag names to tag schemas, relative to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redocly.yaml"]},"."," ","Inline ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tags"]}," win over the file."," ","The ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/commands/recheck#generate-a-markdoc-tag-schema"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--generate-markdoc-schema"]}]}," action writes this file from a theme module."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"api-descriptions-object","__idx":8},"children":["API descriptions object"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["rules"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"#rules-object"},"children":["Rules object"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Overrides for rules that are in effect."," ","A severity string changes the severity."," ","A rule object changes the fields it lists."," ","A name that is not in effect is a configuration error."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Any other key is a configuration error."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"examples","__idx":9},"children":["Examples"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"adjust-preset-rules","__idx":10},"children":["Adjust preset rules"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"extends:\n  - recheck/markdown\n  - recheck/markdoc\nrecheck:\n  excludes:\n    - CHANGELOG.md\n  markdoc: true\n  rules:\n    recheck/line-length: off\n    recheck/no-duplicate-heading:\n      severity: warn\n      assertions:\n        no-duplicate-heading:\n          siblingsOnly: true\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This config adds two presets in the root ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["extends"]},"."," ","The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recheck"]}," block skips ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CHANGELOG.md"]}," for every rule, turns on Markdoc-aware parsing, turns off one rule, and changes the severity and one option of another."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"add-a-prose-rule","__idx":11},"children":["Add a prose rule"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"extends:\n  - recheck/markdown\n  - recheck/prose\nrecheck:\n  rules:\n    recheck/readability-floor:\n      severity: warn\n      message: 'Readability (%s) is %s; expected between %s and %s.'\n      appliesTo:\n        - 'docs/guides/**'\n      assertions:\n        metric:\n          formula: flesch-reading-ease\n          min: 30\n    acme/no-via:\n      severity: warn\n      scope: sentence\n      message: 'Use \"through\" or \"by using\" instead of \"via\".'\n      link: https://example.com/style-guide#via\n      assertions:\n        pattern:\n          ignoreCase: true\n          tokens:\n            - '\\bvia\\b'\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The first rule reads a readability score for the guides only."," ","The second reports a banned word in every sentence, under the project's own ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["acme/"]}," namespace."," ","The ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/assertions"},"children":["Prose rules"]}," page lists every assertion and its options."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"share-recheck-configuration-between-projects","__idx":12},"children":["Share Recheck configuration between projects"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A shared configuration file can carry both presets and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recheck"]}," block:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"# https://example.com/redocly-shared.yaml\nextends:\n  - recheck/markdown\n  - recheck/prose\nrecheck:\n  rules:\n    recheck/line-length: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"# redocly.yaml\nextends:\n  - https://example.com/redocly-shared.yaml\nrecheck:\n  rules:\n    recheck/capitalization: error\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The root file's block merges last, so it can tighten or relax what the shared file set."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"adjust-rules-for-api-descriptions","__idx":13},"children":["Adjust rules for API descriptions"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"extends:\n  - recheck/markdown\napis:\n  museum:\n    root: ./openapi.yaml\nrecheck:\n  apiDescriptions:\n    rules:\n      recheck/line-length: off\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The command lints the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["description"]}," fields of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["openapi.yaml"]},"."," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["apiDescriptions.rules"]}," turns off line-length checks inside those descriptions and leaves the page rules as they are."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-options","__idx":14},"children":["Related options"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/configuration/reference/extends"},"children":["extends"]}," lists the Recheck presets at the root of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redocly.yaml"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/configuration/reference/rules"},"children":["rules"]}," configures API linting rules, which are separate from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recheck.rules"]},"."]}]},{"$$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":["Command reference for ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/commands/recheck"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recheck"]}]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck"},"children":["Markdown and prose linting"]},", ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/presets"},"children":["Presets"]},", ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/rules"},"children":["Markdown rules"]},", ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/assertions"},"children":["Prose rules"]},", ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/markdoc"},"children":["Markdoc tags"]},", and ",{"$$mdtype":"Tag","name":"Link","attributes":{"href":"/docs/cli/v2/recheck/suppress-findings"},"children":["Suppress findings"]},"."]}]}]},"frontmatter":{},"tagList":["table"],"title":"recheck","lastModified":"2026-10-06T14:45:09.000Z"}