Lint clean markdown
Skill fabioc-aloha/Alex_Skill_Mall/plugins/documentation/lint-clean-markdown
284 curated plugins for AI assistants across 16 categories: security, Azure, documentation, code quality, cloud infrastructure, and more. Works with GitHub Copilot. Drop into .github/skills/local/ and go.
npx -y skills add fabioc-aloha/Alex_Skill_Mall --skill lint-clean-markdownAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Write markdown that passes linting on first attempt by internalizing common rules.
SKILL.md
3.3 KB, 802 tokens by cl100k_base, as published. Nobody here has run it
Lint-Clean Markdown Skill
Write markdown that passes linting on first attempt by internalizing common rules.
Purpose
Eliminate the edit-lint-fix cycle by writing markdown correctly the first time. This skill encodes the most common markdown lint rules as muscle memory.
The Golden Rule
When in doubt: Add a blank line.
90% of markdown lint errors are missing blank lines. Lists, code blocks, and headings all need breathing room.
Core Rules Quick Reference
| Rule | Code | Pattern | Mnemonic |
|---|---|---|---|
| Blank lines around lists | MD032 | \n- item\n- item\n | "Lists breathe" |
| Blank lines around fences | MD031 | \n```code```\n | "Code breathes" |
| Blank line before headings | MD022 | text\n\n## Head | "Headers breathe" |
| Use dash for lists | MD004 | - not * or + | "Dash dash dash" |
| No trailing whitespace | MD009 | No spaces at line end | "Clean endings" |
| Single final newline | MD047 | One \n at EOF | "One newline" |
| Language on fences | MD040 | ```js not ``` | "Name your code" |
| Consistent fence style | MD046 | Use ``` not indent | "Fences only" |
| No bold as heading | MD036 | Use ## not **text** | "Headers are headers" |
| Table separator spacing | MD060 | Space around pipes | "Tables breathe too" |
Rule Details
MD032: Blank Lines Around Lists
❌ Wrong: Text immediately before/after list
✅ Correct: Blank line before first - AND after last -
**Why**:
- Reason one
- Reason two
**Result**: Something
MD031: Blank Lines Around Code Blocks
❌ Wrong: Text touching the fence markers
✅ Correct: Blank line before opening ``` AND after closing ```
MD022: Blank Lines Before Headings
❌ Wrong: Some text.\n## Heading
✅ Correct: Some text.\n\n## Heading
MD004: Use Dash for Unordered Lists
❌ Wrong: * item or + item
✅ Correct: - item
MD040: Specify Language on Fenced Code
❌ Wrong: ``` (no language)
✅ Correct: ```javascript or ```text or ```markdown
Mermaid-Specific Rules
Template Blocks Use text
When showing a template/pattern (not a renderable diagram), use ```text instead of ```mermaid.
Why: Mermaid parser will fail on placeholder text like [DIAGRAM_TYPE].
Diagram Type Required
Nested Code Block Problem
You cannot nest fenced code blocks in markdown.
When documenting code block rules (like this skill), use:
- Inline code for short examples:
```js - Descriptions instead of showing wrong examples
- Single examples showing only the correct form
This skill itself demonstrates the solution.
Pre-Write Mental Checklist
Before writing markdown, plan for:
- ☐ Will I have lists? → Remember blank lines around them
- ☐ Will I have code blocks? → Remember blank lines around them
- ☐ Will I show "wrong" examples? → Can't nest fences, describe instead
- ☐ Will I have tables? → Need
| ---- |separator row - ☐ Will I have mermaid? → Need diagram type after init