| MD001 | Heading skips a level (## → ####) | Add missing intermediate level |
| MD003 | Setext-style heading (===, ---) | Convert to ATX (# H1, ## H2) |
| MD004 | Mixed list markers (-, *, +) | Standardise to - |
| MD005 | Sibling list items at different indent depths | Align to same indent level |
| MD007 | Nested list indent ≠ 2 spaces per level | Re-indent to 2-space increments |
| MD009 | Trailing whitespace | Strip trailing spaces |
| MD010 | Hard tab \t | Replace with spaces (2 for lists, 4 for code alignment) |
| MD011 | Reversed link (text)[url] | Swap to [text](url) |
| MD012 | Two or more consecutive blank lines | Collapse to one blank line |
| MD013 | Heading > 100 chars, or body/list-item/code-block line > 500 chars (tables exempt) | Shorten the heading; wrap body text at a word boundary if it ever hits 500 |
| MD014 | $-prefixed commands in code block with no output shown | Remove $ prefixes |
| MD018 | No space after # in heading | Add space: # Heading |
| MD019 | Multiple spaces after # in heading | Reduce to one space |
| MD022 | Heading not preceded or followed by blank line | Insert blank lines around heading |
| MD023 | Heading indented (leading spaces) | Remove leading spaces |
| MD024 | Duplicate sibling heading (same level, no higher-level between them) | Rename one to be distinct |
| MD025 | More than one # heading in file | Demote extras to ## |
| MD026 | Disabled in this repo — trailing punctuation in headings is allowed | — |
| MD027 | Multiple spaces after > in blockquote | Reduce to one space |
| MD029 | Ordered list item numbers are not sequential (e.g. 1, 3, 4 or gap after code block) | Renumber sequentially: 1. 2. 3. — never skip, never repeat |
| MD030 | More than one space after list marker | Normalise to one space |
| MD031 | No blank line before/after fenced code block | Insert missing blank lines |
| MD032 | List not surrounded by blank lines | Insert blank lines before first and after last item |
| MD033 | Disabled in this repo — all inline HTML is allowed | — |
| MD034 | Bare URL not wrapped | Wrap: <https://…> or [label](url) |
| MD035 | Mixed horizontal rule styles | Standardise to --- |
| MD036 | Lone **text** or _text_ used as fake heading | Replace with proper heading |
| MD037 | Spaces inside emphasis markers * text * | Remove inner spaces |
| MD038 | Spaces inside code span ` value ` | Remove inner spaces |
| MD039 | Spaces inside link text [ text ](url) | Remove inner spaces |
| MD040 | Fenced code block has no language identifier | Add language (bash, yaml, json, text, etc.) |
| MD041 | File does not start with a top-level heading (not overridden in this repo — tool default applies) | Add an H1 as the first line, or restructure so the first line is a heading |
| MD042 | Empty link target [text]() | Add URL or remove link |
| MD045 | Image with no alt text ![]() | Add descriptive alt text |
| MD046 | 4-space indented code block | Replace with fenced block |
| MD047 | File does not end with a single newline | Ensure exactly one trailing \n |
| MD048 | Tilde fence ~~~ | Replace with backtick fence |
| MD049 | Mixed emphasis styles * and _ | Standardise to * |
| MD050 | Mixed strong styles ** and __ | Standardise to ** |
| MD051 | Link fragment #anchor does not match any heading | Correct to existing heading slug |
| MD053 | Unused reference-style link definition | Remove unused definition |
| MD055 | Inconsistent table pipe style | Always include leading and trailing | |
| MD056 | Table row has wrong cell count | Add/remove cells to match header |
| MD058 | Table not surrounded by blank lines | Insert blank lines before and after table |