Skip to main content

dev-markdown-lint

Check and fix markdown formatting issues with markdownlint-cli2

Aller à l'installation

Informations de source

Dépôt
Nebulavenus/forge-gpu
Dernière activité de la source
1 mars 2026 à 21:31
Langue détectée de SKILL.md
anglais
Étoiles
38
Forks
7

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
dev-markdown-lint
description
Check and fix markdown formatting issues with markdownlint-cli2
argument-hint
[--fix]
disable-model-invocation
false
Check markdown files for formatting and style issues using markdownlint-cli2. **When to use this skill:** - Before committing changes to markdown files - After creating or updating lessons, READMEs, or documentation - When CI markdown linting checks fail - To ensure consistent markdown style across the project **AI auto-invocation:** The model should automatically invoke this skill: - **After creating/updating markdown files** — Run `npx markdownlint-cli2 "**/*.md"` to check - **Before git commits touching markdown** — Verify no linting errors - **If errors found** — Attempt auto-fix with `--fix` flag first, then fix remaining errors manually - **Always verify after fixes** — Re-run to ensure all errors resolved ## Arguments - `--fix` (optional): Automatically fix auto-fixable issues If no arguments provided, runs in check-only mode. ## What it does 1. **Check mode** (default): Reports errors without modifying files 2. **Fix mode** (`--fix`): Automatically fixes issues like: - Missing blank lines around headings - Inconsistent list formatting - Trailing whitespace - Some language tag issues (if the content type is obvious) **Note:** Not all errors are auto-fixable. Some require manual intervention (like choosing the right language tag for a code block). ## Configuration The project uses `.markdownlint-cli2.jsonc` for configuration: **Strict rules (must follow):** - **MD040**: Code blocks MUST have language tags (`` ```text ``, `` ```c ``, `` ```bash ``, etc.) - **MD060**: Tables must have consistent column alignment **Lenient rules:** - Line length (MD013): Disabled — lessons need flexibility - Blank lines (MD031/MD032): Lenient — formatting varies by context - Duplicate headings (MD024): Allowed at different levels - HTML (MD033): Allowed when needed for formatting **CRITICAL — Configuration is non-negotiable:** - **NEVER** disable or remove lint rules to make errors pass - **NEVER** relax existing rules (e.g., turning MD040 from error to warning) - **NEVER** modify `.markdownlint-cli2.jsonc` to bypass validation - **NEVER** remove or disable the CI workflow (`.github/workflows/markdown-lint.yml`) If linting fails, fix the markdown — do not weaken the linter. Quality checks protect learning quality for all users. ## Common errors and fixes ### MD040: Missing language tag on code block **Error:** ```text README.md:45 MD040/fenced-code-language Fenced code blocks should have a language specified ``` **Problem:** Code block missing language identifier: ````text ``` some code here ``` ```` **Fix:** Add appropriate language tag: ````text ```c some code here ``` ```` **Common tags:** - `bash` — Shell commands, scripts - `c` — C code - `text` — Plain text, output, diagrams, directory trees - `markdown` — Markdown examples - `cmake` — CMake files - `hlsl` — Shader code **Nested code blocks:** When showing a code block inside a code block (like in documentation), use 4 backticks for the outer fence: `````text ````markdown # Example ```c code here ``` ```` ````` ### MD060: Table columns should have consistent alignment **Error:** ```text README.md:80 MD060/table-column-count Table row column count ``` **Problem:** Table rows have different numbers of columns, or alignment is inconsistent. **Fix:** Ensure all rows have the same number of columns: ```markdown | Header 1 | Header 2 | Header 3 | |----------|----------|----------| | Cell 1 | Cell 2 | Cell 3 | | Cell 4 | Cell 5 | Cell 6 | ``` ## Running the skill ### Check for errors ```bash /dev-markdown-lint ``` Or manually: ```bash npx markdownlint-cli2 "**/*.md" ``` ### Auto-fix issues ```bash /dev-markdown-lint --fix ``` Or manually: ```bash npx markdownlint-cli2 --fix "**/*.md" ``` ## Workflow ### Before committing Always run markdown linting before creating a commit with markdown changes: ```bash npx markdownlint-cli2 "**/*.md" ``` If errors are found: 1. Try auto-fix: `npx markdownlint-cli2 --fix "**/*.md"` 2. Review remaining errors and fix manually 3. Re-run to verify: `npx markdownlint-cli2 "**/*.md"` ### In CI The `.github/workflows/markdown-lint.yml` workflow runs automatically on: - Pull requests touching markdown files - Pushes to main with markdown changes If CI fails, run the linter locally to see the errors. ## Implementation When this skill is invoked: 1. **Parse arguments:** - Check if `--fix` flag is present - Default to check-only mode 2. **Run markdownlint-cli2:** ```bash npx markdownlint-cli2 [--fix] "**/*.md" ``` 3. **Interpret results:** - Exit code 0: All files pass ✓ - Exit code 1: Errors found 4. **Report to user:** - If errors found: List them with file:line and error code - Suggest fixes for common errors (MD040, MD060) - If `--fix` was used, report what was auto-fixed - Show command to re-run manually if needed 5. **Next steps:** - If errors remain after auto-fix, guide user to fix manually - Suggest running the skill again to verify fixes ## Tips - **Always add language tags** to code blocks — it improves readability and syntax highlighting - **Use `text` for non-code blocks** like output, diagrams, directory trees - **Nested code blocks** require different fence lengths (outer uses 4+ backticks) - **Run before committing** to catch issues early - **Auto-fix first** then handle remaining errors manually - **Check the config** (`.markdownlint-cli2.jsonc`) to understand which rules are enabled ## Example output **All files pass:** ```text markdownlint-cli2 v0.20.0 (markdownlint v0.40.0) Finding: **/*.md Linting: 20 file(s) Summary: 0 error(s) ``` **Errors found:** ```text markdownlint-cli2 v0.20.0 (markdownlint v0.40.0) Finding: **/*.md Linting: 20 file(s) README.md:45 MD040/fenced-code-language Fenced code blocks should have a language specified lessons/math/01-vectors/README.md:180 MD040/fenced-code-language Fenced code blocks should have a language specified common/math/DESIGN.md:85 MD040/fenced-code-language Fenced code blocks should have a language specified Summary: 3 error(s) ``` ## Related documentation - [markdownlint rules](https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md) - Project config: `.markdownlint-cli2.jsonc` - CI workflow: `.github/workflows/markdown-lint.yml` - CLAUDE.md section on markdown linting
Voir sur GitHub