markdown-formattinglisted
Install: claude install-skill pavelzaitsau/copydesk
# Markdown formatting
Markdown has no single specification. GitHub Flavored Markdown, CommonMark and every editor's own parser disagree at the edges. The disagreement is silent: the document looks right where you wrote it, and collapses somewhere else.
The rules here are the intersection that renders the same in every common parser. They match the markdownlint defaults, so a document that follows them also passes the gate.
Wording is a separate concern. Sentence rules, structure and vocabulary live in the `technical-writing` skill.
## Blank lines decide almost everything
Most broken Markdown is a missing blank line. A parser needs the blank line to know a block ended; without it, the next block is swallowed into the previous paragraph.
Surround every block-level element with a blank line: headings, lists, fenced code, tables, blockquotes and horizontal rules.
Broken:
```markdown
## Setup
Run the installer.
- download it
- run it
~~~
npm install
~~~
| Step | Time |
| --- | --- |
```
Correct:
```markdown
## Setup
Run the installer.
- download it
- run it
| Step | Time |
| --- | --- |
| download | 1 min |
```
The exceptions are the start and the end of the file, where there is nothing to separate from.
## Headings
- One `#` heading per document, first line of the file. It is the title.
- Descend one level at a time. A `##` never jumps to `####`; the reader and every table-of-contents generator use the levels to build a tree.
- ATX style only: `## Heading`, one sp