aiskillstore/markdown
>
This is a copy. The original lives at comeonoliver/markdown.
npx skills add https://github.com/aiskillstore/marketplace --skill markdown
Automated markdown validation and fixing using markdownlint-cli2.
1. Run auto-fix → markdownlint-cli2 --fix <file>
2. Check remaining → markdownlint-cli2 <file>
3. Fix manually → str_replace for structural issues
4. Verify → markdownlint-cli2 <file> (should show 0 errors)
Expected results: Auto-fix resolves 70-90% of issues. Remaining 3-5
issues require manual correction.
# Auto-fix single file
markdownlint-cli2 --fix document.md
# Check file
markdownlint-cli2 document.md
# Multiple files
markdownlint-cli2 --fix file1.md file2.md
# All markdown in directory
markdownlint-cli2 --fix "**/*.md"
# With custom config
markdownlint-cli2 --config .markdownlint.json document.md
# Uploaded files
markdownlint-cli2 --fix /mnt/user-data/uploads/document.md
# Working directory
markdownlint-cli2 --fix /home/claude/document.md
# Output to user
cp /path/to/fixed.md /mnt/user-data/outputs/
Auto-fix cannot resolve these issues - they need Claude's judgment:
Why: Requires understanding document hierarchy
Fix: Convert extra H1s to appropriate level
# Main Title
# Second Title → Change to: ## Second Title
Why: Requires determining author intent
Fix: Replace bold/italic with proper header
**Section Title** → Change to: ## Section Title
Why: Requires deciding where to break content
Fix: Wrap at natural points (spaces, punctuation)
This is a very long line exceeding 80 characters that needs wrapping.
↓
This is a very long line exceeding 80 characters that needs
wrapping.
Exception: URLs typically exempt
Why: Requires structural decision
Fix: Add H1 at start or restructure
# 1. Auto-fix
markdownlint-cli2 --fix /mnt/user-data/uploads/document.md
# 2. Check remaining
markdownlint-cli2 /mnt/user-data/uploads/document.md
# Output: "Summary: 3 error(s)"
# Lists specific errors like "MD025/single-title Multiple top-level headings"
# 3. Manual fixes (example)
str_replace "# Extra Title" → "## Extra Title"
# 4. Verify
markdownlint-cli2 /mnt/user-data/uploads/document.md
# Output: "Summary: 0 error(s)"
# 5. Output
cp /mnt/user-data/uploads/document.md /mnt/user-data/outputs/
create_file /home/claude/doc.md "content..."
markdownlint-cli2 --fix /home/claude/doc.md
markdownlint-cli2 /home/claude/doc.md
# Fix remaining issues if any
cp /home/claude/doc.md /mnt/user-data/outputs/
Create .markdownlint.json to customize rules:
{
"default": true,
"MD013": { "line_length": 120 },
"MD033": false
}
Common adjustments:
"MD013": false - Disable line length checking"MD013": { "line_length": 120 } - Increase limit to 120"MD013": { "code_blocks": false } - Exclude code blocks"MD033": false - Allow HTML"MD041": false - Don't require first line headerConfig file search order:
.markdownlint-cli2.jsonc.markdownlint-cli2.yaml.markdownlint.jsonc / .markdownlint.json.markdownlint.yaml / .markdownlint.ymlProvide clear summary of fixes:
✅ Markdown linting complete!
Initial: 18 errors
After auto-fix: 4 errors
Manual fixes:
• MD025: Converted 2 H1 headers to H2
• MD036: Replaced bold with proper header
• MD013: Wrapped long line
Final: 0 errors
Before auto-fix:
After auto-fix:
# Multiple H1s - analyze structure first
# If sections: convert to H2
str_replace "# Introduction" → "## Introduction"
# If subsections: convert to H3
str_replace "# Details" → "### Details"
# Emphasis as headers - determine appropriate level
str_replace "**Important**" → "## Important"
str_replace "_Note_" → "### Note"
# Long lines - break at natural points
# After conjunctions: and, but, or
# After punctuation: , . ;
# Preserve URLs on single line
Auto-fix not working:
# Check file exists
view /path/to/file.md
# Verify permissions
ls -l /path/to/file.md
# Use absolute path
markdownlint-cli2 --fix /full/path/to/file.md
Too many errors after auto-fix:
# Create relaxed config
echo '{"MD013": false, "MD041": false}' > .markdownlint.json
markdownlint-cli2 --config .markdownlint.json --fix file.md
Specific rule causing issues:
"MD013": false"MD013": { "line_length": 120 }Skip linting when:
Use custom config to disable problematic rules.
Most common rules Claude will encounter:
Full rule documentation: <https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md>
Take aiskillstore/markdown from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.