Markdownlint
Personalised workflow, tools, agents, skills and other stuff in one place
npx -y skills add Perdolique/workflow --skill markdownlintAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 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
Configure, manage, and troubleshoot markdownlint in projects. Use when user wants to setup/install/configure markdownlint, add/remove/modify linting rules, fix markdown validation issues, customize .markdownlint.yaml, update ignore patterns, integrate with tools (Husky, CI), or troubleshoot markdown linting errors. Use even when user mentions markdown formatting problems, quality issues, or style consistency without explicitly saying "markdownlint".
The file declares its own license as Unlicense. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.4 KB, as published. Nobody here has run it
Package manager detection
Before any operation, detect which package manager the project uses:
-
Check for lock files:
pnpm-lock.yaml→ usepnpmyarn.lock→ useyarnpackage-lock.json→ usenpmbun.lockb→ usebun
-
Check
packageManagerfield in package.json:"packageManager": "[email protected]" -
If no indicators, ask the user which package manager they prefer
Throughout this skill, commands use pnpm as examples. Replace with the detected package manager:
pnpm add -D→npm install --save-dev/yarn add -D/bun add -dpnpm run→npm run/yarn run/bun runpnpm install→npm install/yarn install/bun install
Operation selection guide
Identify what the user needs and read the appropriate reference file:
-
Initial Setup → Read references/setup.md
- First time installation
- Creating config files (.markdownlint.yaml, .markdownlintignore)
- Adding npm scripts
- Adding verification to AGENTS.md
- Husky integration
-
Modifying Rules → Read references/rules.md
- Enabling/disabling specific rules
- Configuring rule options (heading-style, ul-style, etc.)
- Understanding rule names and codes (MD###)
-
Updating Ignore Patterns → Read references/ignoring.md
- Adding files/folders to .markdownlintignore
- Gitignore-style pattern syntax
- Verifying ignored files
-
Fixing Violations → Read references/fixing.md
- Understanding error messages
- Auto-fix with --fix flag
- Common violations (MD009, MD012, MD022, MD040, etc.)
- Manual fixes for specific errors
-
Integration Management → Read references/integration.md
- Updating npm scripts
- Modifying Husky hooks
- CI/CD integration (GitHub Actions, GitLab CI)
- VS Code extension setup
-
Troubleshooting → Read references/troubleshooting.md
- Too many errors
- Files not being checked
- Hook failures
- Module not found errors
- Performance issues
Quick reference: Common commands
# Install
pnpm add -D markdownlint markdownlint-cli
# Run linting
pnpm run lint:markdown
# Auto-fix issues
markdownlint '**/*.md' --fix
# Lint specific file
markdownlint README.md
# Lint specific directory
markdownlint 'docs/**/*.md'
Quick reference: Config file basics
.markdownlint.yaml in project root:
$schema: ./node_modules/markdownlint/schema/markdownlint-config-schema.json
# Disable a rule
line-length: false
# Enable a rule
no-duplicate-heading: true
# Configure a rule
heading-style:
style: "atx"
.markdownlintignore in project root (gitignore syntax):
node_modules
dist/
build/
CHANGELOG.md
Key examples
Example 1: Basic setup
User: "Add markdownlint to my project"
Action: Read references/setup.md and follow Steps 1-9 for complete initial setup.
Example 2: Disable annoying rule
User: "Stop complaining about duplicate headings"
Action: Read references/rules.md → Removing rules section. Add no-duplicate-heading: false to .markdownlint.yaml.
Example 3: Fix many errors
User: "I have 50 markdown errors, fix them"
Action: Read references/fixing.md → Auto-fixing section. Run markdownlint '**/*.md' --fix, show diff, handle remaining errors.
Example 4: Ignore folder
User: "Don't lint the dist folder"
Action: Read references/ignoring.md. Add dist/ to .markdownlintignore.
Example 5: Add to CI
User: "Add markdown linting to GitHub Actions"
Action: Read references/integration.mdtions"
Action: Read references/integration.md → CI integration section. Create workflow file with pnpm setup and linting step.
Progressive workflow
For complex requests that span multiple operations:
- Start with the main operation - Read the primary reference file first
- Chain related operations - Read additional reference files as needed
- Verify each step - Run commands to confirm changes work
- Document what was done - Summarize changes for the user
Example: "Set up markdownlint with strict rules and CI"
- Read references/setup.md → complete initial setup
- Read references/rules.md → enable strict rules
- Read references/integration.md → add CI configuration
- Test all steps work together
When to use which reference
User mentions installation, setup, "add markdownlint": → references/setup.md
User mentions specific rules, MD codes, enabling/disabling: → references/rules.md
User mentions ignoring files, excluding folders: → references/ignoring.md
User has errors and wants to fix them: → references/fixing.md
User mentions npm scripts, husky, pre-commit, CI, GitHub Actions: → references/integration.md
User reports issues, things not working, errors: → references/troubleshooting.md
Default configuration philosophy
When setting up markdownlint, use this opinionated default configuration:
$schema: ./node_modules/markdownlint/schema/markdownlint-config-schema.json
line-length: false # Modern editors handle wrapping
Rationale: Start permissive, enable rules gradually. The line-length rule is disabled by default because:
- Modern editors and viewers handle text wrapping automatically
- Fixed line length creates unnecessary friction in most projects
- Semantic issues are more valuable to catch than presentation issues
Only add more rules if user explicitly requests them or if the project needs stricter validation.