wastech-mdlint

Дэтэрмінаваны лінтынг Markdown, які чытаюць вашы агенты.

  • Адкрыты код
  • Актыўна развіваецца
  • MIT

wastech-mdlint – гэта CLI і бібліятэка на TypeScript, якія правяраюць Markdown-кантэкст у вашым рэпазіторыі, ад AGENTS.md і CLAUDE.md да дрэва дакументацыі. Кожная праверка выконваецца лакальна, без сеткавых запытаў і без мадэлі ў цыкле, таму адны і тыя ж файлы заўсёды даюць адзін і той жа вынік.

Адкрыць рэпазіторыйАдкрыць на npm

Чаму ён тут

Добрая праца агентаў часткова залежыць ад парадку ў файлах, якія яны чытаюць, і гэты інструмент я напісаў якраз для гэтага. Ён працуе і лакальна, і ў CI, і я выкарыстоўваю яго ў сваіх прадуктах, сярод іх Wastime і гэты сайт. Працоўную канфігурацыю можна адкрыць у публічным рэпазіторыі wastech-orchestrator.

Праблема

Файлы, якія чытаюць вашы агенты, змяняюцца разам з кодам, і калі іх нішто не правярае, спасылкі перастаюць працаваць пасля пераносу файла, а кантэкстныя файлы разрастаюцца звыш таго аб’ёму, які мадэль добра чытае. Ніводзін тэст пры гэтым не падае, таму першай прыкметай можа стаць тое, што агент працуе горш, і гэта лёгка спісаць на мадэль.

Рашэнне

wastech-mdlint ставіцца да Markdown для агентаў як да зыходнага кода. У ім 22 убудаваныя правілы, ад мэтаў спасылак да абавязковых слупкоў табліц, і правілы бюджэту, якія абмяжоўваюць памер кантэксту. Уласныя правілы апісваюцца канфігурацыяй з закрытага набору праверак, таму ў вашым CI не выконваецца адвольны код.

  • Калі канфігурацыя ўключае правілы, праверка ў CI або пры лакальным запуску падае на бітых унутраных спасылках і табліцах, што раз’ехаліся.
  • Бюджэт токенаў на кантэкст становіцца абмежаваннем, якое можа праверыць CI.
  • Уласныя правілы – гэта проста даныя, таму іх запуск у чужым CI не выконвае ніякага кода.

Ключавыя магчымасці

  • 22 убудаваныя правілыКатэгорыі для табліц, раздзелаў і структуры, спасылак, якасці змесціва і цэласнасці графа.
  • Гігіена кантэксту для LLMБюджэты ў байтах, радках і токенах, а таксама бюджэт eager-імпартаў для кантэкстных файлаў.
  • Дэкларатыўныя ўласныя правілыЗакрыты слоўнік праверак, з якіх правілы збіраюцца ў канфігурацыі, без перазборкі і без выканання кода ў вашым CI.

Прыклады запуску

wastech-mdlint lint .broken.md 3:11 error Link target "missing.md" does not resolve to a file. REF-001✖ 1 problem (1 error, 0 warnings)
Вывад wastech-mdlint 0.2.2 на фікстуры з бітай спасылкай з яго ўласнага набору тэстаў.
wastech-mdlint graph .nodes: 8edges: 7cycles: 1entry points (3): design.md index.md orphan.mdtop hubs: (none: no document has 3 or more incoming references)cycles: cycle-a.md -> cycle-b.md -> cycle-a.mdclusters: cluster 1 (5 files): design.md glossary.md guide.md index.md requirements.md cluster 2 (2 files): cycle-a.md cycle-b.md cluster 3 (1 files): orphan.mdreading order (6): design.md index.md glossary.md guide.md orphan.md requirements.mdall 2 documents below sit in a cycle.excluded from reading order (2): cycle-a.md cycle-b.mdcoverage: nodes: 8 edges: 7 files outside corpus (1): appendix.md
Вывад wastech-mdlint 0.2.2 на фікстуры графа з яго ўласнага набору тэстаў. У ёй спецыяльна закладзены цыкл спасылак, які мусіць злавіць справаздача.

Для каго

  • Каманды, якія падтрымліваюць вялікі аб’ём дакументацыі і кантэксту для агентаў.
  • Усе, хто трымае ў рэпазіторыі CLAUDE.md / AGENTS.md / SKILL.md.

Стэк

Мова
  • TypeScript
Асяроддзе выканання
  • Node.js 24 LTS
Структура
  • Манарэпазіторый на npm workspaces
  • TypeScript project references
Інтэграцыя з ШІ
  • Model Context Protocol (stdio)

Усталяванне

npm install --save-dev @wastech-mdlint/clinpx wastech-mdlint initnpx wastech-mdlint lint .
Патрэбны Node.js 24.17 або навейшы. Без канфігурацыі лінтар не запускае ніводнага правіла, таму першай ідзе каманда init. Яна скануе вашы дакументы, складае набор правілаў і запісвае яго пасля вашага пацвярджэння.

Абмежаванні

  • Знешнія HTTP-спасылкі не правяраюцца, дзякуючы гэтаму кожны запуск застаецца лакальным і дэтэрмінаваным.
  • Уласныя правілы задаюцца толькі данымі, без канфігурацый на TypeScript або JavaScript і без плагінаў з карыстальніцкім кодам.
  • Граф кантэксту будуецца нанова пры кожным запуску, інкрэментальнага кэша пакуль няма.

Хочаце такія ж праверкі ў рэпазіторыі вашай каманды?

Напісаць мне