agentleFS
vladimiracunadev-createvladimiracunadev-create/claude-skills-toolkit/skills/md-lint-fix/SKILL.md

md-lint-fix

Skill1 starsChanged 11 days agoMITView on GitHub

Detecta y auto-corrige errores de markdownlint-cli2 en archivos .md modificados antes de commit/push. Resuelve MD024 con contexto del heading padre, MD040 infiriendo idioma del bloque, y MD031/32/34/28/27/22/26/29/30/09/12/047 vía --fix. Reporta los que requieren criterio humano (MD025, MD042, MD051). Úsalo cuando el usuario diga "arregla el lint MD", "corrige los markdown", "limpia los .md", "fix markdownlint", o proactivamente después de editar archivos .md. Trabaja sobre Path.cwd() — funciona en cualquier repo.

  • Installs packages
  • Commits and pushes

1 other project uses a version of this, 1 of them edited.

Adopted by

Most recently taken up by

The file

Files
SKILL.md

md-lint-fix

Detecta, auto-corrige y reporta errores markdownlint en archivos .md modificados — antes de cualquier git commit o git push.

Alcance y permisos

Capacidades del scriptshell · file_read · file_write
Qué tocaLee y reescribe los *.md modificados del repo e invoca markdownlint-cli2@0.24.0.
Qué nunca tocaNo toca ficheros que el diff no incluya, y las reglas que exigen criterio (MD025, MD042, MD051) las reporta sin tocar.
Herramientas retiradasWebFetch, WebSearch

No declara allowed-tools, y es deliberado: ese campo preaprueba herramientas —se salta la confirmación durante el turno que invoca el skill— en vez de limitarlas. Declararlo aquí no acotaría nada: quitaría la confirmación del usuario. disallowed-tools sí retira herramientas del pool mientras el skill está activo, y ahí es donde se acota de verdad.

Reescribe ficheros del repo.


IMPORTANTE — Cómo funciona desde cualquier repositorio

El script vive en ~/.claude/skills/md-lint-fix/fix-md-lint.py pero usa Path.cwd() como raíz de trabajo. Esto significa que trabaja siempre en el directorio donde estás parado, no en portfolio-pages.

Desde cualquier repo, el comando es:

# Archivos .md modificados según git (uso normal pre-push)
python ~/.claude/skills/md-lint-fix/fix-md-lint.py

# Todos los .md del repo actual
python ~/.claude/skills/md-lint-fix/fix-md-lint.py --all

# Solo diagnóstico sin modificar nada
python ~/.claude/skills/md-lint-fix/fix-md-lint.py --dry-run

El script detecta el repo actual desde Path.cwd() — no importa desde qué carpeta se llame el script.


Cuándo usar este skill

  • El usuario menciona errores MD031, MD034, MD040, MD032, MD024, MD028
  • Antes de hacer commit/push con archivos .md modificados
  • Después de crear o editar skills, docs o cualquier archivo markdown
  • El usuario dice "arregla el lint", "corrige los markdown", "limpia los MD"

Errores que resuelve automáticamente

CódigoDescripciónSolución
MD024Duplicate headingsScript propio — añade contexto del heading padre
MD040Fenced code block without languageScript propio — infiere lenguaje por contenido
MD031Blank lines around fenced code blocksAuto-fix (--fix)
MD032Lists surrounded by blank linesAuto-fix (--fix)
MD034Bare URL usedAuto-fix (--fix) — envuelve en <>
MD028Blank line inside blockquoteAuto-fix (--fix)
MD027Multiple spaces after blockquoteAuto-fix (--fix)
MD022Headings not surrounded by blank linesAuto-fix (--fix)
MD026Trailing punctuation in headingAuto-fix (--fix)
MD029Ordered list item prefixAuto-fix (--fix)
MD030Spaces after list markersAuto-fix (--fix)
MD009Trailing spacesAuto-fix (--fix)
MD012Multiple consecutive blank linesAuto-fix (--fix)
MD047Single trailing newlineAuto-fix (--fix)

No resuelve automáticamente (requieren criterio humano):

  • MD025 — múltiples headings H1 (implica reestructura)
  • MD014 — $ antes de comandos shell (decisión de estilo)
  • MD042 — enlaces vacíos (requiere URL real)
  • MD051 — fragmentos de enlace rotos (requiere verificar ancla)
  • MD013 — line length (desactivado en la mayoría de proyectos)
  • MD033 — inline HTML (depende de config del proyecto)

Requisito en el repo destino

El repo donde se ejecute debe tener markdownlint-cli2 disponible. Recomendado: pnpm (postinstall bloqueado por defecto + cuarentena de 24 h sobre versiones nuevas — ver docs/supply-chain-security.md).

La versión va fijada, no flotante: pnpm add -D markdownlint-cli2 sin versión instala lo último publicado, así que una release comprometida entra sola y además el conteo de errores cambia bajo tus pies cuando el linter cambia de criterio.

# Verificar si está instalado
pnpm exec markdownlint-cli2 --version   # o: npx markdownlint-cli2@0.24.0 --version

# Instalar en el repo (recomendado)
pnpm add -D markdownlint-cli2@0.24.0

# Alternativas — válidas pero con menos defensas por defecto contra ataques tipo Shai-Hulud:
#   yarn add -D markdownlint-cli2@0.24.0
#   npm  install --save-dev --ignore-scripts markdownlint-cli2@0.24.0

Si el repo no tiene markdownlint-cli2, pnpm dlx markdownlint-cli2@0.24.0 (o npx markdownlint-cli2@0.24.0) lo descargará automáticamente.


Flujo de ejecución del script

  1. Detecta .md en scope (modificados o todos según flag)
  2. Escanea con markdownlint-cli2 y cuenta errores iniciales
  3. Corrige MD024: añade contexto del heading padre para desambiguar
  4. Corrige MD040: infiere lenguaje del bloque (bash/python/json/yaml/hcl/etc.)
  5. Auto-fix con markdownlint-cli2 --fix (14 reglas)
  6. Verifica y reporta errores restantes agrupados por código de regla

Referencia de reglas

Documentación oficial: https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.