Fonte única de verdade para formatação e linting de arquivos
.mdno projeto SetupVibe.
All .md files in this repository must conform to the rules defined here. The /markdown-format skill enforces these rules on every file created or modified.
This project uses markdownlint as the linting engine. Install it via:
# CLI (Node.js)
npm install -g markdownlint-cli
# Run against all Markdown files
markdownlint "**/*.md" --ignore node_modulesThe canonical configuration lives in .markdownlint.json at the project root. Every rule below maps directly to a markdownlint rule ID.
{
"default": true,
"MD001": true,
"MD003": { "style": "atx" },
"MD004": { "style": "dash" },
"MD009": true,
"MD010": true,
"MD012": { "maximum": 1 },
"MD013": false,
"MD022": true,
"MD023": true,
"MD024": false,
"MD025": true,
"MD031": true,
"MD032": true,
"MD033": true,
"MD034": true,
"MD040": true,
"MD041": false,
"MD047": true,
"MD049": { "style": "asterisk" },
"MD050": { "style": "asterisk" }
}Heading levels must only increment by one at a time. Never skip from H1 to H3.
Wrong:
# Title
### SectionCorrect:
# Title
## Section
### SubsectionUse the ATX style (# prefix) for all headings. Do not use setext-style underlines.
Wrong:
Title
=====
Section
-------Correct:
# Title
## SectionUse hyphens - as list markers for all unordered lists. Do not use * or +.
Wrong:
* Item one
+ Item twoCorrect:
- Item one
- Item twoLines must not end with trailing whitespace. Remove all trailing spaces before committing.
Use spaces, never tab characters, for indentation in Markdown files.
At most one consecutive blank line is allowed anywhere in the file.
Wrong:
Paragraph one.
Paragraph two.Correct:
Paragraph one.
Paragraph two.Line length is not enforced in this project. Write lines at whatever length aids readability.
Every heading must have exactly one blank line before it and one blank line after it.
Wrong:
## Section One
Content here.
## Section TwoCorrect:
## Section One
Content here.
## Section TwoHeadings must not be indented. They must begin at column 1.
Wrong:
## Indented HeadingCorrect:
## Heading at Left MarginEach file must have exactly one H1 heading. Do not repeat H1.
Fenced code blocks must be surrounded by one blank line before and after.
Wrong:
Some text.
```bash
echo hello
```
More text.Correct:
Some text.
```bash
echo hello
```
More text.Lists must be surrounded by one blank line before and after.
Wrong:
Intro text.
- Item one
- Item two
Following text.Correct:
Intro text.
- Item one
- Item two
Following text.Do not use HTML tags inside Markdown. Use native Markdown equivalents instead.
| Instead of | Use |
|---|---|
<br> |
Two trailing spaces or blank line |
<b>text</b> |
**text** |
<i>text</i> |
*text* |
<code>text</code> |
`text` |
<hr> |
--- |
Wrap all URLs in link syntax. Bare URLs are forbidden.
Wrong:
See https://example.com for details.Correct:
See [example.com](https://example.com) for details.Every fenced code block must include a language identifier for syntax highlighting.
Wrong:
```
apt-get install curl
```Correct:
```bash
apt-get install curl
```Common language identifiers used in this project:
| Language | Identifier |
|---|---|
| Shell / Bash | bash |
| Zsh | zsh |
| JavaScript | js |
| JSON | json |
| Markdown | markdown |
| Plain text / output | text |
Every Markdown file must end with exactly one newline character. Do not leave the file with no trailing newline or with multiple trailing blank lines.
Use *text* for emphasis and **text** for strong. Do not use underscores.
Wrong:
_italic_ and __bold__Correct:
*italic* and **bold**Tables must follow these formatting requirements:
- Always include a header row and a separator row.
- The separator row must use
---(at least three dashes) in each column. - Align columns with pipes
|for readability in raw format. - No trailing spaces inside cells.
Correct example:
| Tool | Purpose | Platform |
| --- | --- | --- |
| Docker | Container runtime | Linux, macOS |
| Homebrew | Package manager | macOS, Linux |When linking between documentation files, use relative paths. Verify that the target file exists relative to the source file's location.
Example — from docs/desktop/pt-br/README.md linking to a config file:
[tmux config](../../../conf/tmux-desktop.conf)Documentation files in docs/ should begin with an H1 and a blockquote describing the content and version:
# Guide Title
> Short description — v0.41.6The /markdown-format skill is the automated enforcer of all rules defined here. It must be invoked at the end of every task that creates or modifies .md files.
Any CI pipeline or pre-commit hook running markdownlint against this project uses .markdownlint.json as the configuration source, which corresponds directly to the rules in this document.