Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.27.0 · метрики 1.13.0 · 2026-07-27 15:46 UTC

jeduden / mdsmith

fast, auto-fixing Markdown linter and formatter. Checks style, readability, structure, and cross-file integrity.

GoВласна ліцензія★ 10 зірок⑂ 1 форкз лют. 2026 р.Переглянути на GitHub ↗

jeduden/mdsmith має індекс здоров’я 70 зі 100, що відповідає смузі «Добрий». Найвищий показник — AI Readiness (92/100), найнижчий — Community & Adoption (35/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконує один учасник.

70
загалом / 100
Добрий

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

70
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

Jan-Eric DudenОсобистий обліковий запис
26 підписників99 публічних репозиторіївз жовт. 2011 р.

Цей репозиторій належить особистому обліковому запису. Проєкт з єдиним власником несе більший ризик безперервності, ніж підтримуваний організацією.

Пакетні екосистеми

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
Gogithub.com/jeduden/mdsmithv0.54.0-641 день тому
PyPImdsmith0.54.01 334461 день томуdocsformatterlintermarkdownmdsmith

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

85Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
17.3/36Ритм комітів — 25/52 тижнів із комітами
18/18Обсяг комітів — 3 548 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year3 548
human_commit_share0,98
days_since_last_push0
active_weeks_last_year25
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 63 релізів
36/36Свіжість релізів — останній реліз 1 дн. тому
27/27Ритм релізів — реліз кожні ~4,8 дн.
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Використані вхідні дані
releases_count63
latest_release_tagv0.54.0
releases_from_tagsні
days_since_latest_release1
mean_days_between_releases4,8

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

35У зоні ризику · 18% загального індексу
Як обчислюється оцінка
15.5/60Зірки — 10 зірок
0/25Форки — 1 форків
0/15Спостерігачі — 0 спостерігачів
Використані вхідні дані
forks1
stars10
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

Здоров'я спільноти

44У зоні ризику
Як обчислюється оцінка
22.5/22.5README
16.9/22.5Ліцензія — файл ліцензії наявний, не є визнаною ліцензією
0/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingні
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні
Як обчислюється оцінка
41.7/80Щомісячні завантаження — 1 334 завантажень/місяць у go, pypi
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packagesgithub.com/jeduden/mdsmith, mdsmith
dependents
ecosystemsgo, pypi
total_downloads
monthly_downloads1 334
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

61Помірний · 24% загального індексу
Як обчислюється оцінка
9/54Бас-фактор — на 1 контриб’ютор(ів) припадає половина всіх комітів
4/22.5Розподіл комітів — головний контриб’ютор — автор 82% комітів
4.1/13.5Широта контриб’юторів — 3 контриб’юторів
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Використані вхідні дані
bus_factor1
contributors_sampled3
top_contributor_share0,823
Як обчислюється оцінка
46.8/46.8Вирішення issue — закрито 100% issue
36.7/38.3Прийняття PR — злито 707/737 вирішених PR
0/15OpenSSF Scorecard: Code-Review — Found 0/11 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs707
open_issues0
closed_issues31
issue_closed_ratio1
closed_unmerged_prs30
Як обчислюється оцінка
10/30Підтримка власника — особистий (користувацький) обліковий запис
0/20Верифікований домен — не застосовно до користувацьких облікових записів
10.3/25Охоплення власника — 26 підписників у jeduden
25/25Послужний список — 99 публічних репозиторіїв, вік облікового запису ~14 р.
Використані вхідні дані
followers26
owner_typeUser
is_verified
owner_loginjeduden
public_repos99
account_age_days5 403
Виключено з оцінювання (немає даних або не застосовно): Верифікований домен. Залишкові ваги перенормовано.

Супровід пакетів

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 2 пакет(ів) у go, pypi
35/35Свіжість публікацій — остання публікація 1 дн. тому
20/20Історія версій — 64 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagesgithub.com/jeduden/mdsmith, mdsmith
ecosystemsgo, pypi
any_deprecatedні
min_days_since_publish1

Інженерна якість

Чи наявні базові інженерні практики та документація?

90Відмінний · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 15 процес(ів) CI
24/24Наявні тести
16/16Конфігурація лінтера — .golangci.yml
0/9.6Pre-commit-хуки
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 13 out of 13 merged PRs checked by a CI test -- score normalized to 10
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigні
has_linter_configтак
has_precommit_configні

Документація

100Відмінний
Як обчислюється оцінка
30/30README
25/25Каталог документації
15/15Сайт документації / домашня сторінка — https://mdsmith.dev/
10/10Опис репозиторію
10/10Теми — 14 тем
10/10Wiki
Використані вхідні дані
topicsgolang, linter, markdown, ai-generated-code, ai-generated-content, formatter, go, readme, specification, style, spec-driven, spec-driven-development, extension-vscode, lsp-server
has_wikiтак
homepagehttps://mdsmith.dev/
has_readmeтак
has_docs_dirтак
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

76Добрий · 16% загального індексу
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
3.8/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 13 out of 13 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/11 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
5/5Fuzzing — project is fuzzed
2.2/2.5Ліцензія — license file detected
7.5/7.5Maintained — 30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
4.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 9
5/5SAST — SAST tool is run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
0/7.5Vulnerabilities — 14 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate7
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
0/25Непрямі залежності без відомих сповіщень — транзитивний набір не відокремлюється від залежностей розробки й тестування в цьому обсязі
0/40Немає задавнених сповіщень — жодне сповіщення не має дати публікації
Використані вхідні дані
sourceosv
advisories5
affected_packages4
assessed_packages405
unassessed_packages14
affected_by_severityhigh 3, unknown 1
direct_affected_packages0
Виключено з оцінювання (немає даних або не застосовно): Непрямі залежності без відомих сповіщень, Немає задавнених сповіщень. Залишкові ваги перенормовано. Звірено 405 резолвлених залежностей із OSV. 14 не вдалося оцінити — немає резолвленої версії, непідтримувана екосистема або поза межами звітованого переліку пакетів. Цей репозиторій не публікує пакета, який резолвить індекс, тож натомість оцінено граф залежностей репозиторію. Цей граф змішує закріплені версії для розробки й тестування зі справді постачаними залежностями, тож оцінюються лише задекларовані runtime-залежності; транзитивні знахідки подаються як контекст і в оцінку не входять. Досяжність не аналізується.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

92Відмінний · 0% загального індексу
Як обчислюється оцінка
45/45Інструкції для агентів — .github/copilot-instructions.md, .github/instructions/code-review.instructions.md, AGENTS.md, CLAUDE.md
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 97 з 98 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,99
agent_instruction_files.github/copilot-instructions.md, .github/instructions/code-review.instructions.md, AGENTS.md, CLAUDE.md
agent_instruction_max_bytes32 785
Як обчислюється оцінка
12.6/18Розгортання однією командою — go.mod, tools/go.mod (домовленість інструментарію, без раннера задач)
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера — .golangci.yml
11/11Статична перевірка типів — editors/obsidian/tsconfig.json, editors/vscode/tsconfig.json, npm/mdsmith/tsconfig.json
10/10Відтворюване середовище — lockfile
10/10Підтверджена практика роботи з агентами — 66 з останніх 100 комітів створено агентом або з його зазначенням
8/8Автоматизоване супроводження — 2 з останніх 100 комітів — автоматичні оновлення залежностей
9/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 9
Використані вхідні дані
has_nixні
has_testsтак
lockfilesgo.sum, package-lock.json
has_dockerfileні
typed_languageтак
bootstrap_files
has_devcontainerні
has_linter_configтак
typecheck_configseditors/obsidian/tsconfig.json, editors/vscode/tsconfig.json, npm/mdsmith/tsconfig.json
agent_commit_share0,66
toolchain_manifestsgo.mod, tools/go.mod
dependency_bot_commit_share0,02
Як обчислюється оцінка
45/45Типізований код — Go (статично типізована)
54.6/55Керовані розміри файлів — 10/1 428 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageGo
largest_source_bytes401 894
source_files_sampled1 428
oversized_source_files10

Ключові факти

10зірок GitHub
3контриб'юторів
3 548комітів за останні 12 місяців
0днів від останнього пушу
63релізів
1бас-фактор
0відкритих issue
Go, PyPIпакетних екосистем

Попередження щодо збору даних

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

Докладніше

OpenSSF Scorecard 7.0 / 10
7.0сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).Scorecard v5.5.0 · 2026-07-27 15:45 UTC

10Binary-Artifactsno binaries found in the repo
5Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests13 out of 13 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/11 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
10Fuzzingproject is fuzzed
9Licenselicense file detected
10Maintained30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
9Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 9
10SASTSAST tool is run on all commits
10Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
0Vulnerabilities14 existing vulnerabilities detected
Прямі залежності 29
РеєстрПакетОбмеження версіїМаніфест
Gogithub.com/bmatcuk/doublestar/v4v4.10.0go.mod
Gogithub.com/hexops/gotextdiffv1.0.3go.mod
Gogithub.com/mattn/go-runewidthv0.0.24go.mod
Gogithub.com/neurosnap/sentencesv1.1.2go.mod
Gogithub.com/pelletier/go-tomlv1.9.5go.mod
Gogithub.com/spf13/pflagv1.0.10go.mod
Gogithub.com/stretchr/testifyv1.11.1go.mod
Gogithub.com/tetratelabs/wazerov1.12.0go.mod
Gogithub.com/vmihailenco/msgpack/v5v5.4.1go.mod
Gogolang.org/x/modv0.38.0go.mod
Gogolang.org/x/netv0.57.0go.mod
Gogolang.org/x/syncv0.22.0go.mod
Gogolang.org/x/sysv0.47.0go.mod
Gogolang.org/x/toolsv0.48.0go.mod
Gogopkg.in/yaml.v3v3.0.1go.mod
Gogithub.com/bmatcuk/doublestar/v4v4.10.0tools/go.mod
Gogithub.com/hexops/gotextdiffv1.0.3tools/go.mod
Gogithub.com/mattn/go-runewidthv0.0.24tools/go.mod
Gogithub.com/neurosnap/sentencesv1.1.2tools/go.mod
Gogithub.com/pelletier/go-tomlv1.9.5tools/go.mod
Gogithub.com/spf13/pflagv1.0.10tools/go.mod
Gogithub.com/stretchr/testifyv1.11.1tools/go.mod
Gogithub.com/tetratelabs/wazerov1.11.0tools/go.mod
Gogithub.com/vmihailenco/msgpack/v5v5.4.1tools/go.mod
Gogolang.org/x/modv0.36.0tools/go.mod
Gogolang.org/x/netv0.56.0tools/go.mod
Gogolang.org/x/sysv0.46.0tools/go.mod
Gogolang.org/x/toolsv0.45.0tools/go.mod
Gogopkg.in/yaml.v3v3.0.1tools/go.mod
Усі залежності 419

Повний розв'язаний набір залежностей із графа залежностей GitHub: 21 прямих і 398 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

РеєстрПакетВерсіяЗв'язок
Gogithub.com/bmatcuk/doublestar/v4v4.10.0пряма
Gogithub.com/hexops/gotextdiffv1.0.3пряма
Gogithub.com/mattn/go-runewidthv0.0.24пряма
Gogithub.com/neurosnap/sentencesv1.1.2пряма
Gogithub.com/pelletier/go-tomlv1.9.5пряма
Gogithub.com/spf13/pflagv1.0.10пряма
Gogithub.com/stretchr/testifyv1.11.1пряма
Gogithub.com/tetratelabs/wazerov1.11.0пряма
Gogithub.com/tetratelabs/wazerov1.12.0пряма
Gogithub.com/vmihailenco/msgpack/v5v5.4.1пряма
Gogolang.org/x/modv0.36.0пряма
Gogolang.org/x/modv0.38.0пряма
Gogolang.org/x/netv0.56.0пряма
Gogolang.org/x/netv0.57.0пряма
Gogolang.org/x/syncv0.21.0пряма
Gogolang.org/x/syncv0.22.0пряма
Gogolang.org/x/sysv0.46.0пряма
Gogolang.org/x/sysv0.47.0пряма
Gogolang.org/x/toolsv0.45.0пряма
Gogolang.org/x/toolsv0.48.0пряма
Gogopkg.in/yaml.v3v3.0.1пряма
Go4d63.com/gocheckcompilerdirectivesv1.3.0непряма
Go4d63.com/gochecknoglobalsv0.2.2непряма
Gocodeberg.org/chavacava/garifv0.2.0непряма
Gocodeberg.org/polyfloyd/go-errorlintv1.9.0непряма
Godev.gaijin.team/go/exhaustruct/v4v4.0.0непряма
Godev.gaijin.team/go/golibv0.6.0непряма
Gogithub.com/4meepo/tagalignv1.4.3непряма
Gogithub.com/abirdcfly/dupwordv0.1.7непряма
Gogithub.com/adminbenni/iota-mixingv1.0.0непряма
Gogithub.com/alecthomas/chroma/v2v2.21.1непряма
Gogithub.com/alecthomas/go-check-sumtypev0.3.1непряма
Gogithub.com/alexkohler/nakedret/v2v2.0.6непряма
Gogithub.com/alexkohler/preallocv1.0.1непряма
Gogithub.com/alfatraining/structtagv1.0.0непряма
Gogithub.com/alingse/asasalintv0.0.11непряма
Gogithub.com/alingse/nilnesserrv0.2.0непряма
Gogithub.com/alwxsin/noinlineerrv1.0.5непряма
Gogithub.com/antonboom/errnamev1.1.1непряма
Gogithub.com/antonboom/nilnilv1.1.1непряма
Gogithub.com/antonboom/testifylintv1.6.4непряма
Gogithub.com/ashanbrown/forbidigo/v2v2.3.0непряма
Gogithub.com/ashanbrown/makezero/v2v2.1.0непряма
Gogithub.com/aymanbagabas/go-osc52/v2v2.0.1непряма
Gogithub.com/beorn7/perksv1.0.1непряма
Gogithub.com/bkielbasa/cyclopv1.2.3непряма
Gogithub.com/blizzy78/varnamelenv0.8.0непряма
Gogithub.com/bombsimon/wsl/v4v4.7.0непряма
Gogithub.com/bombsimon/wsl/v5v5.3.0непряма
Gogithub.com/breml/bidichkv0.3.3непряма
Gogithub.com/breml/errchkjsonv0.4.1непряма
Gogithub.com/burntsushi/tomlv1.6.0непряма
Gogithub.com/butuzov/ireturnv0.4.0непряма
Gogithub.com/butuzov/mirrorv1.3.0непряма
Gogithub.com/catenacyber/perfsprintv0.10.1непряма
Gogithub.com/ccojocar/zxcvbn-gov1.0.4непряма
Gogithub.com/cespare/xxhash/v2v2.3.0непряма
Gogithub.com/charithe/durationcheckv0.0.11непряма
Gogithub.com/charmbracelet/colorprofilev0.2.3-0.20250311203215-f60798e515dcнепряма
Gogithub.com/charmbracelet/lipglossv1.1.1-0.20250404203927-76690c660834непряма
Gogithub.com/charmbracelet/x/ansiv0.10.2непряма
Gogithub.com/charmbracelet/x/cellbufv0.0.13непряма
Gogithub.com/charmbracelet/x/termv0.2.1непряма
Gogithub.com/ckaznocha/intrangev0.3.1непряма
Gogithub.com/clipperhouse/uax29/v2v2.2.0непряма
Gogithub.com/curioswitch/go-reassignv0.3.0непряма
Gogithub.com/daixiang0/gciv0.13.7непряма
Gogithub.com/dave/dstv0.27.3непряма
Gogithub.com/davecgh/go-spewv1.1.1непряма
Gogithub.com/denis-tingaikin/go-headerv0.5.0непряма
Gogithub.com/djarvur/go-err113v0.1.1непряма
Gogithub.com/dlclark/regexp2v1.11.5непряма
Gogithub.com/ettle/strcasev0.2.0непряма
Gogithub.com/fatih/colorv1.18.0непряма
Gogithub.com/fatih/structtagv1.2.0непряма
Gogithub.com/firefart/nonamedreturnsv1.0.6непряма
Gogithub.com/fsnotify/fsnotifyv1.5.4непряма
Gogithub.com/fzipp/gocyclov0.6.0непряма
Gogithub.com/ghostiam/protogetterv0.3.18непряма
Gogithub.com/go-critic/go-criticv0.14.3непряма
Gogithub.com/go-toolsmith/astcastv1.1.0непряма
Gogithub.com/go-toolsmith/astcopyv1.1.0непряма
Gogithub.com/go-toolsmith/astequalv1.2.0непряма
Gogithub.com/go-toolsmith/astfmtv1.1.0непряма
Gogithub.com/go-toolsmith/astpv1.1.0непряма
Gogithub.com/go-toolsmith/strparsev1.1.0непряма
Gogithub.com/go-toolsmith/typepv1.1.0непряма
Gogithub.com/go-viper/mapstructure/v2v2.4.0непряма
Gogithub.com/go-xmlfmt/xmlfmtv1.1.3непряма
Gogithub.com/gobwas/globv0.2.3непряма
Gogithub.com/godoc-lint/godoc-lintv0.11.1непряма
Gogithub.com/gofrs/flockv0.13.0непряма
Gogithub.com/golang/protobufv1.5.3непряма
Gogithub.com/golangci/asciicheckv0.5.0непряма
Gogithub.com/golangci/duplv0.0.0-20250308024227-f665c8d69b32непряма
Gogithub.com/golangci/go-printf-func-namev0.1.1непряма
Gogithub.com/golangci/gofmtv0.0.0-20250106114630-d62b90e6713dнепряма
Gogithub.com/golangci/golangci-lint/v2v2.8.0непряма
Gogithub.com/golangci/golinesv0.14.0непряма
Gogithub.com/golangci/misspellv0.7.0непряма
Gogithub.com/golangci/plugin-module-registerv0.1.2непряма
Gogithub.com/golangci/revgrepv0.8.0непряма
Gogithub.com/golangci/swaggoswagv0.0.0-20250504205917-77f2aca3143eнепряма
Gogithub.com/golangci/unconvertv0.0.0-20250410112200-a129a6e6413eнепряма
Gogithub.com/google/go-cmpv0.7.0непряма
Gogithub.com/gordonklaus/ineffassignv0.2.0непряма
Gogithub.com/gostaticanalysis/analysisutilv0.7.1непряма
Gogithub.com/gostaticanalysis/commentv1.5.0непряма
Gogithub.com/gostaticanalysis/forcetypeassertv0.2.0непряма
Gogithub.com/gostaticanalysis/nilerrv0.1.2непряма
Gogithub.com/hashicorp/go-immutable-radix/v2v2.1.0непряма
Gogithub.com/hashicorp/go-versionv1.8.0непряма
Gogithub.com/hashicorp/golang-lru/v2v2.0.7непряма
Gogithub.com/hashicorp/hclv1.0.0непряма
Gogithub.com/inconshreveable/mousetrapv1.1.0непряма
Gogithub.com/jgautheron/goconstv1.8.2непряма
Gogithub.com/jingyugao/rowserrcheckv1.1.1непряма
Gogithub.com/jjti/go-spancheckv0.6.5непряма
Gogithub.com/julz/importasv0.2.0непряма
Gogithub.com/karamaru-alpha/copyloopvarv1.2.2непряма
Gogithub.com/kisielk/errcheckv1.9.0непряма
Gogithub.com/kkhaike/contextcheckv1.1.6непряма
Gogithub.com/kr/prettyv0.3.1непряма
Gogithub.com/kulti/thelperv0.7.1непряма
Gogithub.com/kunwardeep/paralleltestv1.0.15непряма
Gogithub.com/lasiar/canonicalheaderv1.1.2непряма
Gogithub.com/ldez/exptostdv0.4.5непряма
Gogithub.com/ldez/gomoddirectivesv0.8.0непряма
Gogithub.com/ldez/grignotinv0.10.1непряма
Gogithub.com/ldez/structtagsv0.6.1непряма
Gogithub.com/ldez/tagliatellev0.7.2непряма
Gogithub.com/ldez/usetestingv0.5.0непряма
Gogithub.com/leonklingele/grouperv1.1.2непряма
Gogithub.com/lucasb-eyer/go-colorfulv1.3.0непряма
Gogithub.com/macabu/inamedparamv0.2.0непряма
Gogithub.com/magiconair/propertiesv1.8.6непряма
Gogithub.com/manuelarte/embeddedstructfieldcheckv0.4.0непряма
Gogithub.com/manuelarte/funcorderv0.5.0непряма
Gogithub.com/maratori/testableexamplesv1.0.1непряма
Gogithub.com/maratori/testpackagev1.1.2непряма
Gogithub.com/masterminds/semver/v3v3.4.0непряма
Gogithub.com/matoous/godoxv1.1.0непряма
Gogithub.com/matryer/isv1.4.1непряма
Gogithub.com/mattn/go-colorablev0.1.14непряма
Gogithub.com/mattn/go-isattyv0.0.20непряма
Gogithub.com/matttproud/golang_protobuf_extensionsv1.0.1непряма
Gogithub.com/mgechev/revivev1.13.0непряма
Gogithub.com/mirrexone/unqueryvetv1.4.0непряма
Gogithub.com/mitchellh/go-homedirv1.1.0непряма
Gogithub.com/mitchellh/mapstructurev1.5.0непряма
Gogithub.com/moricho/tparallelv0.3.2непряма
Gogithub.com/muesli/termenvv0.16.0непряма
Gogithub.com/nakabonne/nestifv0.3.1непряма
Gogithub.com/nishanths/exhaustivev0.12.0непряма
Gogithub.com/nishanths/predeclaredv0.2.2непряма
Gogithub.com/nunnatsa/ginkgolinterv0.21.2непряма
Gogithub.com/openpeedeep/depguard/v2v2.2.1непряма
Gogithub.com/pelletier/go-toml/v2v2.2.4непряма
Gogithub.com/pmezard/go-difflibv1.0.0непряма
Gogithub.com/prometheus/client_golangv1.12.1непряма
Gogithub.com/prometheus/client_modelv0.2.0непряма
Gogithub.com/prometheus/commonv0.32.1непряма
Gogithub.com/prometheus/procfsv0.7.3непряма
Gogithub.com/quasilyte/go-ruleguardv0.4.5непряма
Gogithub.com/quasilyte/go-ruleguard/dslv0.3.23непряма
Gogithub.com/quasilyte/gogrepv0.5.0непряма
Gogithub.com/quasilyte/regex/syntaxv0.0.0-20210819130434-b3f0c404a727непряма
Gogithub.com/quasilyte/stdinfov0.0.0-20220114132959-f7386bf02567непряма
Gogithub.com/raeperd/recvcheckv0.2.0непряма
Gogithub.com/rillig/gobcov1.3.4непряма
Gogithub.com/rivo/unisegv0.4.7непряма
Gogithub.com/rogpeppe/go-internalv1.14.1непряма
Gogithub.com/ryancurrah/gomodguardv1.4.1непряма
Gogithub.com/ryanrolds/sqlclosecheckv0.5.1непряма
Gogithub.com/sanposhiho/wastedassign/v2v2.1.0непряма
Gogithub.com/santhosh-tekuri/jsonschema/v6v6.0.2непряма
Gogithub.com/sashamelentyev/interfacebloatv1.1.0непряма
Gogithub.com/sashamelentyev/usestdlibvarsv1.29.0непряма
Gogithub.com/securego/gosec/v2v2.22.11непряма
Gogithub.com/sergi/go-diffv1.3.2-0.20230802210424-5b0b94c5c0d3непряма
Gogithub.com/sirupsen/logrusv1.9.3непряма
Gogithub.com/sivchari/containedctxv1.0.3непряма
Gogithub.com/sonatard/noctxv0.4.0непряма
Gogithub.com/sourcegraph/go-diffv0.7.0непряма
Gogithub.com/spf13/aferov1.15.0непряма
Gogithub.com/spf13/castv1.5.0непряма
Gogithub.com/spf13/cobrav1.10.2непряма
Gogithub.com/spf13/jwalterweathermanv1.1.0непряма
Gogithub.com/spf13/viperv1.12.0непряма
Gogithub.com/ssgreg/nlreturn/v2v2.2.1непряма
Gogithub.com/stbenjam/no-sprintf-host-portv0.3.1непряма
Gogithub.com/stretchr/objxv0.5.2непряма
Gogithub.com/subosito/gotenvv1.4.1непряма
Gogithub.com/tetafro/godotv1.5.4непряма
Gogithub.com/timakin/bodyclosev0.0.0-20241222091800-1db5c5ca4d67непряма
Gogithub.com/timonwong/loggercheckv0.11.0непряма
Gogithub.com/tomarrell/wrapcheck/v2v2.12.0непряма
Gogithub.com/tommy-muehle/go-mnd/v2v2.5.1непряма
Gogithub.com/ultraware/funlenv0.2.0непряма
Gogithub.com/ultraware/whitespacev0.2.0непряма
Gogithub.com/uudashr/gocognitv1.2.0непряма
Gogithub.com/uudashr/ifacev1.4.1непряма
Gogithub.com/vmihailenco/tagparser/v2v2.0.0непряма
Gogithub.com/xen0n/gosmopolitanv1.3.0непряма
Gogithub.com/xo/terminfov0.0.0-20220910002029-abceb7e1c41eнепряма
Gogithub.com/yagipy/maintidxv1.0.0непряма
Gogithub.com/yeya24/promlinterv0.3.0непряма
Gogithub.com/ykadowak/zerologlintv0.1.5непряма
Gogitlab.com/bosi/decorderv0.4.2непряма
Gogo-simpler.org/musttagv0.14.0непряма
Gogo-simpler.org/sloglintv0.11.1непряма
Gogo.augendre.info/arangolintv0.3.1непряма
Gogo.augendre.info/fatcontextv0.9.0непряма
Gogo.uber.org/automaxprocsv1.6.0непряма
Gogo.uber.org/multierrv1.10.0непряма
Gogo.uber.org/zapv1.27.0непряма
Gogo.yaml.in/yaml/v3v3.0.4непряма
Gogolang.org/x/exp/typeparamsv0.0.0-20251023183803-a4bb9ffd2546непряма
Gogolang.org/x/textv0.38.0непряма
Gogoogle.golang.org/protobufv1.36.8непряма
Gogopkg.in/check.v1v1.0.0-20201130134442-10cb98267c6cнепряма
Gogopkg.in/ini.v1v1.67.0непряма
Gogopkg.in/yaml.v2v2.4.0непряма
Gohonnef.co/go/toolsv0.6.1непряма
Gomvdan.cc/gofumptv0.9.2непряма
Gomvdan.cc/unparamv0.0.0-20251027182757-5beb8c8f8f15непряма
npm@codemirror/state^6.5.0непряма
npm@codemirror/view^6.34.0непряма
npm@mdsmith/cli0.0.0-devнепряма
npm@mdsmith/darwin-arm640.0.0-devнепряма
npm@mdsmith/darwin-x640.0.0-devнепряма
npm@mdsmith/linux-arm640.0.0-devнепряма
npm@mdsmith/linux-x640.0.0-devнепряма
npm@mdsmith/win32-x640.0.0-devнепряма
npm@nodelib/fs.scandir2.1.5непряма
npm@nodelib/fs.stat2.0.5непряма
npm@nodelib/fs.walk1.2.8непряма
npm@playwright/test1.56.1непряма
npm@sindresorhus/merge-streams4.0.0непряма
npm@types/bun^1.1.0непряма
npm@types/debug4.1.13непряма
npm@types/katex0.16.8непряма
npm@types/mocha^10.0.10непряма
npm@types/ms2.1.0непряма
npm@types/node^20.11.0непряма
npm@types/unist2.0.11непряма
npm@types/vscode^1.85.0непряма
npm@vscode/test-electron^2.5.2непряма
npm@vscode/vsce^3.0.0непряма
npm@zeit/schemas2.36.0непряма
npmajv8.18.0непряма
npmansi-align3.0.1непряма
npmansi-regex5.0.1непряма
npmansi-regex6.2.2непряма
npmansi-styles4.3.0непряма
npmansi-styles6.2.3непряма
npmarch2.2.0непряма
npmarg5.0.2непряма
npmargparse2.0.1непряма
npmbalanced-match1.0.2непряма
npmboxen7.0.0непряма
npmbrace-expansion1.1.15непряма
npmbraces3.0.3непряма
npmbytes3.0.0непряма
npmbytes3.1.2непряма
npmcamelcase7.0.1непряма
npmchalk4.1.2непряма
npmchalk5.0.1непряма
npmchalk-template0.4.0непряма
npmcharacter-entities2.0.2непряма
npmcharacter-entities-legacy3.0.0непряма
npmcharacter-reference-invalid2.0.1непряма
npmcli-boxes3.0.0непряма
npmclipboardy3.0.0непряма
npmcolor-convert2.0.1непряма
npmcolor-name1.1.4непряма
npmcommander8.3.0непряма
npmcompressible2.0.18непряма
npmcompression1.8.1непряма
npmconcat-map0.0.1непряма
npmcontent-disposition0.5.2непряма
npmcross-spawn7.0.6непряма
npmdebug2.6.9непряма
npmdebug4.4.3непряма
npmdecode-named-character-reference1.3.0непряма
npmdeep-extend0.6.0непряма
npmdequal2.0.3непряма
npmdevlop1.1.0непряма
npmeastasianwidth0.2.0непряма
npmemoji-regex8.0.0непряма
npmemoji-regex9.2.2непряма
npmentities4.5.0непряма
npmexeca5.1.1непряма
npmfast-deep-equal3.1.3непряма
npmfast-glob3.3.3непряма
npmfast-uri3.1.4непряма
npmfastq1.20.1непряма
npmfill-range7.1.1непряма
npmfsevents2.3.2непряма
npmget-east-asian-width1.6.0непряма
npmget-stream6.0.1непряма
npmglob^13.0.6непряма
npmglob-parent5.1.2непряма
npmglobby16.2.1непряма
npmhas-flag4.0.0непряма
npmhuman-signals2.1.0непряма
npmignore7.0.6непряма
npmini1.3.8непряма
npmis-alphabetical2.0.1непряма
npmis-alphanumerical2.0.1непряма
npmis-decimal2.0.1непряма
npmis-docker2.2.1непряма
npmis-extglob2.1.1непряма
npmis-fullwidth-code-point3.0.0непряма
npmis-glob4.0.3непряма
npmis-hexadecimal2.0.1непряма
npmis-number7.0.0непряма
npmis-path-inside4.0.0непряма
npmis-port-reachable4.0.0непряма
npmis-stream2.0.1непряма
npmis-wsl2.2.0непряма
npmisexe2.0.0непряма
npmjs-yaml4.2.0непряма
npmjson-schema-traverse1.0.0непряма
npmjsonc-parser3.3.1непряма
npmjsonpointer5.0.1непряма
npmkatex0.16.47непряма
npmlinkify-it5.0.1непряма
npmmarkdown-it14.2.0непряма
npmmarkdownlint0.41.1непряма
npmmarkdownlint-cli20.23.1непряма
npmmarkdownlint-cli2-formatter-default0.0.6непряма
npmmdurl2.0.0непряма
npmmerge-stream2.0.0непряма
npmmerge21.4.1непряма
npmmicromark4.0.2непряма
npmmicromark-core-commonmark2.0.3непряма
npmmicromark-extension-directive4.0.0непряма
npmmicromark-extension-gfm-autolink-literal2.1.0непряма
npmmicromark-extension-gfm-footnote2.1.0непряма
npmmicromark-extension-gfm-table2.1.1непряма
npmmicromark-extension-math3.1.0непряма
npmmicromark-factory-destination2.0.1непряма
npmmicromark-factory-label2.0.1непряма
npmmicromark-factory-space2.0.1непряма
npmmicromark-factory-title2.0.1непряма
npmmicromark-factory-whitespace2.0.1непряма
npmmicromark-util-character2.1.1непряма
npmmicromark-util-chunked2.0.1непряма
npmmicromark-util-classify-character2.0.1непряма
npmmicromark-util-combine-extensions2.0.1непряма
npmmicromark-util-decode-numeric-character-reference2.0.2непряма
npmmicromark-util-encode2.0.1непряма
npmmicromark-util-html-tag-name2.0.1непряма
npmmicromark-util-normalize-identifier2.0.1непряма
npmmicromark-util-resolve-all2.0.1непряма
npmmicromark-util-sanitize-uri2.0.1непряма
npmmicromark-util-subtokenize2.1.0непряма
npmmicromark-util-symbol2.0.1непряма
npmmicromark-util-types2.0.2непряма
npmmicromatch4.0.8непряма
npmmime-db1.33.0непряма
npmmime-db1.54.0непряма
npmmime-types2.1.18непряма
npmmimic-fn2.1.0непряма
npmminimatch3.1.5непряма
npmminimist1.2.8непряма
npmmocha^11.7.6непряма
npmms2.0.0непряма
npmms2.1.3непряма
npmnegotiator0.6.4непряма
npmnpm-run-path4.0.1непряма
npmobsidian^1.7.0непряма
npmon-headers1.1.0непряма
npmonetime5.1.2непряма
npmparse-entities4.0.2непряма
npmpath-is-inside1.0.2непряма
npmpath-key3.1.1непряма
npmpath-to-regexp3.3.0непряма
npmpicomatch2.3.2непряма
npmplaywright1.56.1непряма
npmplaywright-core1.56.1непряма
npmpunycode.js2.3.1непряма
npmqueue-microtask1.2.3непряма
npmrange-parser1.2.0непряма
npmrc1.2.8непряма
npmregistry-auth-token3.3.2непряма
npmregistry-url3.1.0непряма
npmrequire-from-string2.0.2непряма
npmreusify1.1.0непряма
npmrun-parallel1.2.0непряма
npmsafe-buffer5.2.1непряма
npmserve14.2.6непряма
npmserve-handler6.1.7непряма
npmshebang-command2.0.0непряма
npmshebang-regex3.0.0непряма
npmsignal-exit3.0.7непряма
npmslash5.1.0непряма
npmsmol-toml1.7.0непряма
npmstring-width4.2.3непряма
npmstring-width5.1.2непряма
npmstring-width8.2.1непряма
npmstrip-ansi6.0.1непряма
npmstrip-ansi7.2.0непряма
npmstrip-final-newline2.0.0непряма
npmstrip-json-comments2.0.1непряма
npmsupports-color7.2.0непряма
npmto-regex-range5.0.1непряма
npmtype-fest2.19.0непряма
npmtypescript^5.4.0непряма
npmuc.micro2.1.0непряма
npmunicorn-magic0.4.0непряма
npmupdate-check1.5.4непряма
npmvary1.1.2непряма
npmvscode-languageclient^9.0.1непряма
npmvscode-uri^3.1.0непряма
npmwhich2.0.2непряма
npmwidest-line4.0.1непряма
npmwrap-ansi8.1.0непряма
Сповіщення про залежності 4

Цей репозиторій не публікує пакета, який розпізнає індекс, тож оцінено його власний граф залежностей — 405 пакетів, серед яких є й піниї розробки та тестування, що ніколи не постачаються: 4 мають відомі сповіщення, з них 0 прямі. 14 не вдалося оцінити — немає резолвленої версії, непідтримувана екосистема або поза наведеним переліком пакетів.

ПакетВерсіяЗв'язокКритичністьСповіщеньВиправлено в
brace-expansion1.1.15непрямависока25.0.8
js-yaml4.2.0непрямависока14.3.0
linkify-it5.0.1непрямависока15.0.2
golang.org/x/textv0.38.0непряманевідома10.39.0

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [
        "golang",
        "linter",
        "markdown",
        "ai-generated-code",
        "ai-generated-content",
        "formatter",
        "go",
        "readme",
        "specification",
        "style",
        "spec-driven",
        "spec-driven-development",
        "extension-vscode",
        "lsp-server"
      ],
      "is_fork": false,
      "size_kb": 1162056,
      "has_wiki": true,
      "homepage": "https://mdsmith.dev/",
      "languages": {
        "Go": 11635074,
        "CSS": 77572,
        "CUE": 4893,
        "HTML": 67693,
        "Shell": 6490,
        "Python": 2415,
        "JavaScript": 15876,
        "TypeScript": 376390
      },
      "pushed_at": "2026-07-26T20:29:39Z",
      "created_at": "2026-02-08T21:03:38Z",
      "owner_type": "User",
      "updated_at": "2026-07-25T19:27:22Z",
      "description": "fast, auto-fixing Markdown linter and formatter. Checks style, readability, structure, and cross-file integrity.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": "NOASSERTION",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Jan-Eric Duden",
      "type": "User",
      "login": "jeduden",
      "company": null,
      "location": null,
      "followers": 26,
      "avatar_url": "https://avatars.githubusercontent.com/u/1117699?v=4",
      "created_at": "2011-10-10T21:21:52Z",
      "is_verified": null,
      "public_repos": 99,
      "account_age_days": 5403
    },
    "license": {
      "state": "custom",
      "spdx_id": null,
      "raw_spdx": "NOASSERTION",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.54.0",
          "kind": "minor",
          "published_at": "2026-07-25T19:38:15Z"
        },
        {
          "tag": "v0.53.0",
          "kind": "minor",
          "published_at": "2026-07-19T21:50:17Z"
        },
        {
          "tag": "v0.52.0",
          "kind": "minor",
          "published_at": "2026-06-22T19:59:44Z"
        },
        {
          "tag": "v0.51.0",
          "kind": "minor",
          "published_at": "2026-06-20T19:50:02Z"
        },
        {
          "tag": "v0.50.0",
          "kind": "minor",
          "published_at": "2026-06-17T11:08:44Z"
        },
        {
          "tag": "v0.49.0-marketplace",
          "kind": "prerelease",
          "published_at": "2026-06-15T06:31:02Z"
        },
        {
          "tag": "v0.49.0",
          "kind": "minor",
          "published_at": "2026-06-15T06:23:59Z"
        },
        {
          "tag": "v0.48.0",
          "kind": "minor",
          "published_at": "2026-06-14T16:42:30Z"
        },
        {
          "tag": "v0.47.0",
          "kind": "minor",
          "published_at": "2026-06-14T13:48:46Z"
        },
        {
          "tag": "v0.46.0",
          "kind": "minor",
          "published_at": "2026-06-12T23:54:25Z"
        },
        {
          "tag": "v0.45.0",
          "kind": "minor",
          "published_at": "2026-06-12T09:15:15Z"
        },
        {
          "tag": "v0.43.0",
          "kind": "minor",
          "published_at": "2026-06-12T07:00:35Z"
        },
        {
          "tag": "v0.42.0",
          "kind": "minor",
          "published_at": "2026-06-11T19:54:04Z"
        },
        {
          "tag": "v0.41.0",
          "kind": "minor",
          "published_at": "2026-06-11T05:05:48Z"
        },
        {
          "tag": "v0.40.0",
          "kind": "minor",
          "published_at": "2026-06-10T18:51:29Z"
        },
        {
          "tag": "v0.39.0",
          "kind": "minor",
          "published_at": "2026-06-10T06:06:02Z"
        },
        {
          "tag": "v0.38.0",
          "kind": "minor",
          "published_at": "2026-06-07T08:12:53Z"
        },
        {
          "tag": "v0.37.0",
          "kind": "minor",
          "published_at": "2026-06-07T07:55:05Z"
        },
        {
          "tag": "v0.36.0",
          "kind": "minor",
          "published_at": "2026-06-06T10:16:38Z"
        },
        {
          "tag": "v0.35.0",
          "kind": "minor",
          "published_at": "2026-06-06T01:11:39Z"
        },
        {
          "tag": "v0.34.0",
          "kind": "minor",
          "published_at": "2026-06-05T16:49:38Z"
        },
        {
          "tag": "v0.33.0",
          "kind": "minor",
          "published_at": "2026-06-05T13:05:40Z"
        },
        {
          "tag": "v0.32.0",
          "kind": "minor",
          "published_at": "2026-06-03T21:48:52Z"
        },
        {
          "tag": "v0.31.0",
          "kind": "minor",
          "published_at": "2026-06-02T18:02:10Z"
        },
        {
          "tag": "v0.30.0",
          "kind": "minor",
          "published_at": "2026-06-02T06:56:41Z"
        },
        {
          "tag": "v0.29.0",
          "kind": "minor",
          "published_at": "2026-06-01T22:05:31Z"
        },
        {
          "tag": "v0.28.0",
          "kind": "minor",
          "published_at": "2026-06-01T20:01:36Z"
        },
        {
          "tag": "v0.27.0",
          "kind": "minor",
          "published_at": "2026-05-30T10:55:38Z"
        },
        {
          "tag": "v0.26.0",
          "kind": "minor",
          "published_at": "2026-05-30T07:55:52Z"
        },
        {
          "tag": "v0.25.0",
          "kind": "minor",
          "published_at": "2026-05-24T20:20:33Z"
        },
        {
          "tag": "v0.24.0",
          "kind": "minor",
          "published_at": "2026-05-24T10:31:20Z"
        },
        {
          "tag": "v0.23.0",
          "kind": "minor",
          "published_at": "2026-05-21T23:23:31Z"
        },
        {
          "tag": "v0.21.0",
          "kind": "minor",
          "published_at": "2026-05-19T17:57:28Z"
        },
        {
          "tag": "v0.20.0",
          "kind": "minor",
          "published_at": "2026-05-18T06:03:49Z"
        },
        {
          "tag": "v0.19.0",
          "kind": "minor",
          "published_at": "2026-05-17T18:40:01Z"
        },
        {
          "tag": "v0.18.0",
          "kind": "minor",
          "published_at": "2026-05-17T15:36:30Z"
        },
        {
          "tag": "v0.17.1",
          "kind": "patch",
          "published_at": "2026-05-16T15:59:50Z"
        },
        {
          "tag": "v0.17.0",
          "kind": "minor",
          "published_at": "2026-05-16T11:39:08Z"
        },
        {
          "tag": "v0.16.2",
          "kind": "patch",
          "published_at": "2026-05-15T23:15:39Z"
        },
        {
          "tag": "v0.16.0",
          "kind": "minor",
          "published_at": "2026-05-15T12:18:01Z"
        },
        {
          "tag": "v0.15.0",
          "kind": "minor",
          "published_at": "2026-05-14T13:04:38Z"
        },
        {
          "tag": "v0.14.0",
          "kind": "minor",
          "published_at": "2026-05-13T22:16:02Z"
        },
        {
          "tag": "v0.13.6",
          "kind": "patch",
          "published_at": "2026-05-09T19:18:45Z"
        },
        {
          "tag": "v0.13.5",
          "kind": "patch",
          "published_at": "2026-05-09T10:54:22Z"
        },
        {
          "tag": "v0.13.4",
          "kind": "patch",
          "published_at": "2026-05-09T10:21:50Z"
        },
        {
          "tag": "v0.13.3",
          "kind": "patch",
          "published_at": "2026-05-09T00:07:36Z"
        },
        {
          "tag": "v0.13.2",
          "kind": "patch",
          "published_at": "2026-05-08T23:46:22Z"
        },
        {
          "tag": "v0.13.1",
          "kind": "patch",
          "published_at": "2026-05-08T18:18:46Z"
        },
        {
          "tag": "v0.13.0",
          "kind": "minor",
          "published_at": "2026-05-08T13:44:33Z"
        },
        {
          "tag": "v0.12.0",
          "kind": "minor",
          "published_at": "2026-05-03T20:47:26Z"
        },
        {
          "tag": "v0.11.0",
          "kind": "minor",
          "published_at": "2026-05-03T19:59:25Z"
        },
        {
          "tag": "v0.10.0",
          "kind": "minor",
          "published_at": "2026-05-02T18:41:24Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2026-05-02T06:20:40Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-04-30T22:31:06Z"
        },
        {
          "tag": "v0.7.1",
          "kind": "patch",
          "published_at": "2026-04-27T12:37:21Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-04-27T10:29:44Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2026-04-26T17:48:40Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2026-04-05T21:42:11Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2026-03-16T21:09:59Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2026-03-05T17:35:13Z"
        },
        {
          "tag": "v0.2.1",
          "kind": "patch",
          "published_at": "2026-03-01T13:15:10Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2026-03-01T11:52:12Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2026-02-09T07:49:01Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "2ab4b2949e9420b2eb73f4239091fd647c4b5e80",
          "body": "…irmed hot paths",
          "is_bot": false,
          "headline": "Merge PR #767: perf: audit against high-performance-go.md, fix 3 conf…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-25T19:22:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8948a7cdaac0c8b0225e3593985ca2f923c83407",
          "body": "…tural validation",
          "is_bot": false,
          "headline": "Merge PR #757: feat(rules): add MDS073 slide-structure — Slidev struc…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-25T19:21:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8d7647e2ca2b252b045f9ffdd7cd09fc543a34f",
          "body": "driftParts computed githooks.ResolveHooksDir(repoRoot) twice on a cache\nmiss: once inside peekHookSource and again inside\npreMergeCommitHookDrift. Each call spawns a `git rev-parse --git-path\nhooks` subprocess, exactly the \"never exec a subprocess per item (git\nrev-parse once did)\" anti-pattern docs\n[…]\nge var and asserts it is called exactly\nonce per driftParts cache miss.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_016wWQmrtb8EMbn1hDgkESqE",
          "is_bot": false,
          "headline": "perf(git-hook-sync): resolve the hooks directory once per drift check",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-25T19:17:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "26fc6623c9e7e0610c32ecbe59a88964e6ffe053",
          "body": "hasReservedDeviceName called strings.ToUpper on every path segment\nbefore the reservedDeviceNames set lookup. strings.ToUpper is a no-op\ncopy only when the input already matches the target case, so a typical\n(lowercase) segment always paid the allocation. Every reserved name is\n3-4 bytes (CON, PRN, \n[…]\ncation ceiling,\nconfirmed red against the pre-fix code and green after.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_016wWQmrtb8EMbn1hDgkESqE",
          "is_bot": false,
          "headline": "perf(build): gate reserved-device-name check's ToUpper by segment length",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-25T19:17:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "682f8b0ef06fd26422ed13037469df649c0febca",
          "body": "checkFootnotes ran footnoteRefRE and footnoteDefRE over the full source\non every Check call, even on files with no footnote syntax at all. Per\ndocs/development/high-performance-go.md (\"Gate expensive analyzers\nbehind a cheap pre-check... byte-needles gate regex paths\"), add a\nbytes.Contains(f.Source\n[…]\n on overshoot), confirmed red against the\npre-fix code and green after.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_016wWQmrtb8EMbn1hDgkESqE",
          "is_bot": false,
          "headline": "perf(no-reference-style): gate footnote regex scans behind a byte needle",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-25T19:17:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "94af5401979acae57c4a641621a302489eaee3b6",
          "body": "…S072 SSRF",
          "is_bot": false,
          "headline": "Merge PR #766: docs(security): 2026-07-24 post-audit diff review — MD…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-25T19:13:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dba714d1637b4332a37105473ebd4d1bb52e06c5",
          "body": "…uct layout + byte scans)",
          "is_bot": false,
          "headline": "Merge PR #765: perf: fix top 5 high-performance-go.md violations (str…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-25T19:13:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f86dc1aba7eac97ee1000fcc95cd68e5d25549dc",
          "body": "…3.1 in /docs/research/benchmarks/npm",
          "is_bot": false,
          "headline": "Merge PR #763: chore(deps): bump markdownlint-cli2 from 0.23.0 to 0.2…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-25T19:12:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "02fc9f8ebb8a8b2b0e27e6efedf63dd2b5074fd9",
          "body": "…check/fix",
          "is_bot": false,
          "headline": "Merge PR #760: fix(cli): skip non-Markdown files named explicitly on …",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-25T19:12:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6ed778cbca34eb2c5880db424d578c9578154ce",
          "body": "Skipping a directly named non-Markdown path (issue #759) was correct but\nsilent: `mdsmith check .gitattributes` / `mdsmith fix .gitattributes`\nresolved to zero files and exited 0 with no output, so an explicit\nargument that did nothing looked like a clean pass.\n\nAdd ResolveOpts.OnSkipNonMarkdown, a \n[…]\n being\npresent in text mode and absent under --quiet and --format json.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_011giDUosuDeqRDVWgmWyaj5",
          "is_bot": false,
          "headline": "feat(cli): warn when an explicitly named non-Markdown file is skipped",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-25T19:08:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "47ace276a7e86406831f87662468566f01861f3d",
          "body": "…d by codebase audit",
          "is_bot": false,
          "headline": "Merge PR #764: perf: fix top 5 high-performance-go.md violations foun…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-25T19:05:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a08e800838ca06053a4d59be7bca93ebe2db325c",
          "body": "…d by codebase audit",
          "is_bot": false,
          "headline": "Merge PR #762: perf: fix top 5 high-performance-go.md violations foun…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-25T19:04:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6138b7b6e3fb5d44eeb903e68fb701cb2c28052a",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #758: feat(rules): add MDS060 occurrence rule (plan 2607022118)",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-25T19:04:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "777a68f2c87bc5d01b0cc0112e3a9b555db3324e",
          "body": "…hema.IsClaimed (plan 2607191918)",
          "is_bot": false,
          "headline": "Merge PR #756: refactor(schema): deduplicate isClaimed — export as sc…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-25T19:04:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8716f5478b986fb8514e915f60665e02b116446d",
          "body": "…tInitUsage (plan 2607191917)",
          "is_bot": false,
          "headline": "Merge PR #754: test(init): add unit tests for printInitCatalog and se…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-25T19:03:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d84f3ec2ed5aa4faf6ddba68db2adc86829df2bb",
          "body": "…/website/e2e in the npm_and_yarn group across 1 directory",
          "is_bot": false,
          "headline": "Merge PR #768: chore(deps-dev): bump fast-uri from 3.1.2 to 3.1.4 in …",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-25T18:57:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ce49c77b9ffd26d6e880615d1bce773fd46e538e",
          "body": "…ed exclusions (#761)\n\n* fix(merge-driver): emit merge=text for ignore-derived exclusions\n\nThe .gitattributes managed block wrote ignore-derived Markdown\nexclusions as `-merge`, which unsets git's merge attribute. Per\ngit-attributes, an unset merge declares a file binary with no\nwell-defined merge s\n[…]\ne\" to match.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01W8S3VduddQAbq8FPduzFyf\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(merge-driver): emit merge=text instead of -merge for ignore-deriv…",
          "author_name": "Jan-Eric Duden",
          "author_login": "jeduden",
          "committed_at": "2026-07-25T18:56:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f8b4d8618fe0d86eeb48131d116bc5f270ee1d8c",
          "body": "Bumps the npm_and_yarn group with 1 update in the /website/e2e directory: [fast-uri](https://github.com/fastify/fast-uri).\n\n\nUpdates `fast-uri` from 3.1.2 to 3.1.4\n- [Release notes](https://github.com/fastify/fast-uri/releases)\n- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.2...v3.1.4)\n[…]\n\n---\nupdated-dependencies:\n- dependency-name: fast-uri\n  dependency-version: 3.1.4\n  dependency-type: indirect\n  dependency-group: npm_and_yarn\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps-dev): bump fast-uri",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-25T09:24:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fe9bbae4480f16b36bec5ef10d218740c500b586",
          "body": "Diff review of the 110 files merged since the 2026-07-17 review\n(base d496596..d4af5d5). The window's whole security story is the\nnew MDS072 external-link-check rule — mdsmith's first rule that makes\noutbound HTTP at lint time.\n\nFindings (all confirmed):\n- S001 (Medium, CWE-918): MDS072 probes docum\n[…]\n07242010 (SSRF/egress\nhardening) and 2607242011 (docs hardening batch).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NT4Fth7C1skiUkriawFk5c",
          "is_bot": false,
          "headline": "docs(security): 2026-07-24 post-audit diff review — MDS072 SSRF",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-24T20:12:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fbc7cd5b3b47c58e74fdec1e6b7a897c63d14a3c",
          "body": "The struct-layout fix in internal/output.jsonDiagnostic (previous\ncommit) reordered Go struct fields to group pointer-containing fields\nbefore scalars, which changes encoding/json's emitted key order. This\nreference page's --format json example still showed the pre-fix\norder. Verified against actual\n[…]\nn` output.\n\nFound by an independent adversarial review pass on PR #765.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SNiF3CVZG2NCizbsTgur4V",
          "is_bot": false,
          "headline": "docs(cli): update --format json example to match the new field order",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-23T20:36:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "24c91c0b39099984fbc573fa9c750cf6584617f2",
          "body": "… before scalars\n\ninternal/output.jsonDiagnostic interleaved Line/Column/\nSourceStartLine/Deprecated (scalars) among its string/slice/pointer\nfields; jsonRelatedLocation interleaved Line/Column before Message.\nSame defect and same fix as internal/lint.Diagnostic and\npkg/mdsmith.Diagnostic: Go's GC p\n[…]\ns own e2e\nJSON tests parse into a map rather than asserting exact text.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SNiF3CVZG2NCizbsTgur4V",
          "is_bot": false,
          "headline": "perf(output): order jsonDiagnostic/jsonRelatedLocation pointer fields…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-23T20:28:07Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "efb2d1774ec8ca6b2fd7b7dd76052887452f33fc",
          "body": "… scalars\n\npkg/mdsmith.Diagnostic interleaved Line/Column/SourceStartLine/\nDeprecated (scalars) among its string/slice/pointer fields; its\nsibling RelatedLocation interleaved Line/Column before Message.\nNeither got the pointer-fields-first fix that internal/lint.Diagnostic\nand internal/lint.RelatedL\n[…]\n-format json / LSP / WASM host) is\nunaffected by the in-memory reorder.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SNiF3CVZG2NCizbsTgur4V",
          "is_bot": false,
          "headline": "perf(mdsmith): order Diagnostic/RelatedLocation pointer fields before…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-23T20:25:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a99f872c92090172146f707b09e09d668993458d",
          "body": "internal/lsp.Diagnostic placed Range (a scalar struct) and Severity\n(an int) before Code/Source/Message/Data/RelatedInformation/\nCodeDescription. Go's GC ptrdata for a struct spans from offset 0\nthrough the end of the last pointer-containing field, so those two\nscalars sat inside the scanned span fo\n[…]\nattern already used for lint.Diagnostic, schema.ScopeMatch, and\nothers.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SNiF3CVZG2NCizbsTgur4V",
          "is_bot": false,
          "headline": "perf(lsp): order Diagnostic's pointer fields before its scalars",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-23T20:24:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b2a460b14177f68cad49f1079bed2ae3c929d162",
          "body": "… loop\n\ndocumentEndPosition's trailing-newline branch counted '\\n' with a\nscalar per-byte Go for-range loop. bytes.Count uses the same\nSIMD-accelerated scan bytes.IndexByte relies on, and this function\nruns on every LSP \"fix all\" whole-document code action (fullFileEdit)\nover the complete document b\n[…]\ntEndPosition, pinning the zero-alloc property so\na regression fails CI.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SNiF3CVZG2NCizbsTgur4V",
          "is_bot": false,
          "headline": "perf(lsp): use bytes.Count in documentEndPosition instead of a manual…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-23T20:23:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "509693fd6f7e7cb6cf4f2d1260a434bb7f01ec6f",
          "body": "SplitLines built its result via append in a byte-by-byte scan for\n'\\n', growing the slice through several capacity doublings and never\nvectorizing the scan. bytes.Split uses the same SIMD-accelerated\nIndexByte the rest of the codebase already relies on and pre-sizes\nthe result in one pass. On a 50-l\n[…]\nenchmarkSplitLines pinning the\n1-alloc budget so a regression fails CI.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SNiF3CVZG2NCizbsTgur4V",
          "is_bot": false,
          "headline": "perf(gensection): replace hand-rolled SplitLines loop with bytes.Split",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-23T20:21:58Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "daae490441289da67f35b4fc5cb7101563c4e8cc",
          "body": "The binary-search rewrite only clamped the upper bound (offset >\nlen(Source)); a negative offset now echoed back out unclamped\n(ColumnOfOffset(-5) == -4) instead of the pre-refactor behavior of\nalways returning 1 for any negative offset. No shipped rule call site\ncan currently trigger this (all pass\n[…]\nffset's and the\nprior implementation's handling of out-of-domain input.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01UCh2j2oeSw6UgNsmpjRonL",
          "is_bot": false,
          "headline": "fix(lint): clamp negative offsets in ColumnOfOffset",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-22T21:11:58Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1aba2d9398d9fa0a09743dbbaf539de5a8ddeac0",
          "body": "Review found the stat-based size pre-check protected only the common\ncase: a file that grows past the cap between the Stat and the\nsubsequent bytelimit.ReadFileLimited call still returned a hard error,\nreintroducing the exact whole-build-abort bug the pre-check was meant\nto fix, just for a narrower \n[…]\n-lookup helpers could otherwise only be\ncaught by their own unit tests.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01UCh2j2oeSw6UgNsmpjRonL",
          "is_bot": false,
          "headline": "fix(corpus): also skip (not abort) on stat failure and TOCTOU read races",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-22T21:03:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7f6d8efb2cab0a95d128c5d7420f00a185cc23c1",
          "body": "Review found that returning bytelimit's error straight from collectFile\nmade it fatal: collectFromRoot's WalkDir callback treats any error as\nabort-the-walk, and Collect returns on the first source error, so one\nbig file discarded every record already collected from every source in\nthe run. Stat the\n[…]\nendored spec) without that being reason to fail the whole corpus\nbuild.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01UCh2j2oeSw6UgNsmpjRonL",
          "is_bot": false,
          "headline": "fix(corpus): skip oversized files instead of aborting the whole build",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-22T20:47:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4d2c56ef2c9a551cc6e1fb49f258d8a6f7251a88",
          "body": "The comment described an earlier bytes.LastIndexByte approach that was\nabandoned (benchmarking showed no SIMD assembly backs LastIndexByte on\nany platform) in favor of the binary-search fix actually shipped.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01UCh2j2oeSw6UgNsmpjRonL",
          "is_bot": false,
          "headline": "fix(lint): correct stale benchmark comment about the ColumnOfOffset fix",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-22T20:39:40Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "306d4582184245ec5b39e83dd9dfb46f5bf270b8",
          "body": "collectFile used a bare os.ReadFile while walking cloned third-party\nrepositories for the training corpus — the one file-ingestion loop\nin the codebase reading genuinely untrusted external content without\nthe byte-cap every other read site already applies (bytelimit,\ninternal/rules/githooksync, inte\n[…]\nce-go.md (\"os.ReadFile on huge\ninputs: one giant alloc, all resident\").\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01UCh2j2oeSw6UgNsmpjRonL",
          "is_bot": false,
          "headline": "fix(corpus): cap collectFile's read at bytelimit.DefaultMaxInputBytes",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-22T20:37:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f5842c2f6c3eafd91fcd7ca13511a7595188fc0f",
          "body": "The type-6/type-7 HTML block openers called\nstrings.ToLower(string(tagBytes)) on every trigger candidate line\n(any line starting with '<'), allocating a new string each time.\ninternal/lint/layer0_html.go already solved the identical problem\nwith a stack-buffer lowering (tagBuf.lowerInto); this mirro\n[…]\npers.\n\nRef: docs/development/high-performance-go.md (\"Stay in []byte\").\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01UCh2j2oeSw6UgNsmpjRonL",
          "is_bot": false,
          "headline": "perf(goldmark): zero-alloc tag lowering in the HTML block parser",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-22T20:37:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d33659b4abc26b33cbee8ca3bf1ed71816d7bbf4",
          "body": "rawLines and rows grew via plain append with no capacity hint, so a\nmulti-row table paid several slice-growth reallocs during parsing.\ncountDataRows mirrors the data-row loop's stopping condition without\nallocating, so both slices can be pre-sized once up front. Measured\n174 -> 162 allocs/op parsing\n[…]\nix).\n\nRef: docs/development/high-performance-go.md (\"Pre-size slices\").\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01UCh2j2oeSw6UgNsmpjRonL",
          "is_bot": false,
          "headline": "perf(MDS025): pre-size table row slices in tryParseTable",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-22T20:37:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "357f0d55f012b5033046cdb23c251d09ddba9e52",
          "body": "matchVariant converted every paragraph line to a string before\nregexp matching, in both the Check and Fix paths. regexp.Match\naccepts []byte directly and bytes.TrimRight covers the same\ntrimming strings.TrimRight did, so the conversion was pure overhead\non every scanned line. Drops the alloc-budget \n[…]\natch.\n\nRef: docs/development/high-performance-go.md (\"Stay in []byte\").\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01UCh2j2oeSw6UgNsmpjRonL",
          "is_bot": false,
          "headline": "perf(MDS035): match TOC directive lines as []byte, not string",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-22T20:37:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "965cad159951761c4b118d2189f53d87a3f377cd",
          "body": "ColumnOfOffset hand-rolled a backward byte scan to find the start of\nthe current line. LineOfOffset already binary-searches a memoized\nnewline index for the same purpose; extract that search into\nnewlineSearch and reuse it from both, so a diagnostic on a very long\nline (a minified table, a long URL \n[…]\n/development/high-performance-go.md (\"Memoize per-input\ncomputations\").\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01UCh2j2oeSw6UgNsmpjRonL",
          "is_bot": false,
          "headline": "perf(lint): make ColumnOfOffset O(log n) instead of O(line length)",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-22T20:37:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "32de0102919b2262bf4153f4b41cdbd7276eab25",
          "body": "Bumps [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) from 0.23.0 to 0.23.1.\n- [Changelog](https://github.com/DavidAnson/markdownlint-cli2/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.23.0...v0.23.1)\n\n---\nupdated-dependencies:\n- dependency-name: markdownlint-cli2\n  dependency-version: 0.23.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump markdownlint-cli2 in /docs/research/benchmarks/npm",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-22T06:24:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d67a63332923acd1dfea08918b9ae4fd928be119",
          "body": "TestCheck_NoIncludeDirectiveAllocatesNothing asserts a zero-alloc\ndelta, but the race detector's instrumentation adds its own\nallocations, so the test fails under `go test -race` even though the\ngate itself is correct — CI does not run -race, so this only bites a\ndeveloper running it locally. Add the raceEnabled build-tag const\npattern already used by internal/rules/nobareurls and\ninternal/rules/crossfilereferenceintegrity, and skip the gate under\nit. Noted in round 2 of code review.",
          "is_bot": false,
          "headline": "test(MDS021): skip the no-include alloc gate under -race",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-21T21:06:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f21c6205d603e0f64ed35edbe4b52fd9b534430d",
          "body": "The needle gate added in c2db2fae only checked for \"<?include\", which\ndoes not match a dangling \"<?/include?>\" end marker with no opening\nstart marker (\"/\" sits where the needle expects \"i\"). Such a file\nwould false-negative past the gate, silently dropping the engine's\n\"unexpected generated section\n[…]\nting an\nopening <?include ... ?> block but leaving the closing marker behind.\n\nCheck for both \"<?include\" and \"<?/include\" via\nmayContainIncludeDirective. Caught by round 1 of adversarial code\nreview.",
          "is_bot": false,
          "headline": "fix(MDS021): gate on both include start and end marker needles",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-21T20:55:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "568ac8de9783bc5d938a8ac03daf0b454d2f62df",
          "body": "TestCheck_NoFS and TestCheck_NoIncludeDirectiveAllocatesNothing pinned\nthese branches for Check, but Fix shares the same compound early-return\ncondition and had no equivalent coverage — Codecov flagged the gate\nadded in c2db2fae as only 50% patch-covered. Add the mirroring Fix\ntests.",
          "is_bot": false,
          "headline": "test(MDS021): cover Fix's no-FS and no-include-directive gate branches",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-21T20:48:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1296a3ee4ef4bfe596763f4bfe143c81e1aeae9",
          "body": "Scan called scanOne once per declared foreign-region marker pair, and\neach call re-walked the entire f.Lines slice, converting every line\nvia strings.TrimSpace(string(line)) — an O(regions x lines) cost with\none string allocation per line per region, even though every region's\nmarkers can be checked\n[…]\nsons. A test pins\nthat 5 regions costs close to what 1 region costs (a small per-region\nconstant), not 5x.\n\nRef: docs/development/high-performance-go.md (\"Stay in []byte\",\n\"Skip work you don't need\").",
          "is_bot": false,
          "headline": "perf(foreignregion): scan all declared regions in a single pass",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-21T20:43:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8002c52571e13fa5518d13ccc839c1a2324422f6",
          "body": "checkFootnotes ran two full-file regex passes (footnoteRefRE and\nfootnoteDefRE, each a FindAllSubmatchIndex over the whole source) on\nevery Check call, even for files with no footnote-style syntax at\nall. Benchmarked at ~585µs/op on a 28KB prose file with no footnotes,\nversus ~0.8µs/op once gated — \n[…]\nop, two\norders of magnitude above the gated cost) pins the regression so CI\ncatches a dropped gate.\n\nRef: docs/development/high-performance-go.md (\"Gate expensive\nanalyzers behind a cheap pre-check\").",
          "is_bot": false,
          "headline": "perf(MDS043): gate footnote regex scans behind a cheap byte needle",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-21T20:43:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e9e8430addc2b11006378c259d4b59c58994e2db",
          "body": "…er file\n\nCheck called validateGlobSettings() on every file — re-running\ndoublestar validation over the rule's Include/Exclude glob lists\neven though ApplySettings already validated the identical, static\nlist once when config was applied. MDS027 is default-enabled, so\nevery host file in a workspace \n[…]\nBool); the\nlayout test's expected size is updated accordingly with the packing\nmath for why 144 (not more) is optimal.\n\nRef: docs/development/high-performance-go.md (\"Memoize per-input\ncomputations\").",
          "is_bot": false,
          "headline": "perf(MDS027): cache glob-settings validation instead of re-checking p…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-21T20:42:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c2db2fae70c2d3539c126f991d4861a90c32dc39",
          "body": "Check/Fix unconditionally allocated a fresh visited map and chain\nslice, and took the rule-wide mutex serialising this default-enabled\nrule's Check calls across the engine's per-file parallel fan-out,\nbefore ever checking whether the file could contain an <?include?>\ndirective. MDS021 runs on every \n[…]\n allocating or\nlocking, matching the \"gate expensive analyzers behind a cheap\npre-check\" pattern already used elsewhere (e.g. nobareurls'\nmayContainURL).\n\nRef: docs/development/high-performance-go.md.",
          "is_bot": false,
          "headline": "perf(MDS021): gate include-directive alloc+lock behind a cheap needle",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-21T20:42:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f190821dcbb8b1c5f747795d1502cfda5fd301bc",
          "body": "File.Memo/MemoFile and RunCache's shared load() helper both paid two\nallocations on every cache-hit call: LoadOrStore's second argument\n(a throwaway &memoEntry{}/&runCacheEntry{}) is constructed before the\ncall and discarded whenever the key already exists, and\nsync.Once.Do(func(){ e.val = build() }\n[…]\nble-checked-lock pattern (no wrapping closure),\nbringing the warm path to zero allocations.\n\nRef: docs/development/high-performance-go.md (\"Reuse loop-local\nbuffers\", \"sync.Pool for transient state\").",
          "is_bot": false,
          "headline": "perf(lint): avoid closure-box allocation on RunCache/Memo warm path",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-21T20:42:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "313a354354b32ebf1047ab32ff2423e852212224",
          "body": "The directory walk and glob expansion both gate on isMarkdown, so a\nnon-Markdown file like .gitattributes is skipped when discovered. An\nexplicitly named path bypassed that gate: resolveArg added the file\nunconditionally after the symlink/regular-file checks.\n\nThe result was that `mdsmith check .git\n[…]\nck exits clean; a mixed run still lints the Markdown file).\n\nFixes #759\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_011giDUosuDeqRDVWgmWyaj5",
          "is_bot": false,
          "headline": "fix(cli): skip non-Markdown files named explicitly on check/fix",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T07:10:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8f5e5c456bd31a50af084c29a495f01e58e27da7",
          "body": "…en test\n\ncountPattern is only called when r.Pattern != nil (all callers guard it),\nso the nil check was dead code per the project's defensive-code rule\n(branches must be driveable red/green). Remove it and add a test for\nthe empty-token path in countToken to reach 100% statement coverage.",
          "is_bot": false,
          "headline": "fix(occurrence): remove dead nil guard in countPattern; add empty-tok…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T04:59:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9748dc52fd16557a457ff06e5785f367774419b0",
          "body": "…ng test coverage\n\nExtract per-setting helper methods from ApplySettings to satisfy the\ngocognit <= 30 limit. Also add tests for file-scope each mode,\nsection-scope combined and pattern modes, type-error paths in\nApplySettings helpers, and multi-section range-skip branches,\nraising unit coverage from 79% to 99%.",
          "is_bot": false,
          "headline": "fix(occurrence): reduce ApplySettings cognitive complexity; add missi…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T04:54:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2e4b5f6253e5515c1212dea1b77d802e569380d7",
          "body": "Counts each configured token or regex pattern within a scope unit\n(paragraph, heading-bounded section, or file) and flags when the count\nfalls below `min` or exceeds `max`. Prose only — fenced and indented\ncode blocks are excluded via CollectSectionParagraphsWithText.\n\nFixes found during code review\n[…]\nlySettings (negative min silently made the\n  lower bound unreachable)\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01FgvajK8jHk49ncLChABAq2",
          "is_bot": false,
          "headline": "feat(rules): add MDS060 occurrence rule (plan 2607022118)",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T04:47:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "17d105c2f409de279819b9e2a3eecaa4a78dacd0",
          "body": "…erage\n\ncheckSlide had cognitive complexity 43 (limit 30 per gocognit). Extracted\nfive focused helpers — checkUnknownLayout, checkMissingSlots,\ncheckOrphanedSlots, checkRequiredField, checkUnknownFMKeys — and a\nslideAnchor helper, bringing each under the 30 threshold.\n\nAlso: wrapped three function s\n[…]\nm layouts, editDistance long-string fast path). Coverage is now 100%.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01XuZxrLeEEvhipjbH6Uueuk",
          "is_bot": false,
          "headline": "refactor(MDS073): extract checkSlide helpers to fix gocognit, add cov…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T04:01:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "40dfc230d0b43c31e3827e48c19b8a82ad69ba5b",
          "body": "…s; drop min3; use slices.Contains\n\nRound-3 code review fixes for the slide-structure rule:\n\n- hasFrontmatterAfter now continues past blank lines when a key has\n  already been seen (YAML 1.2 §8.1.2 allows blank lines in mappings),\n  preventing frontmatter blocks like `layout: cover\\n\\nbackground: /b\n[…]\n missing\nfield still flagged, and YAML comment inside frontmatter OK.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01XuZxrLeEEvhipjbH6Uueuk",
          "is_bot": false,
          "headline": "fix(MDS073): hasFrontmatterAfter accepts blank lines and YAML comment…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T03:51:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "91557dd1c930e5e575e19369719c3287207d3f36",
          "body": "- hasFrontmatterAfter: replace isYAMLIdent with space-in-key check\n  so dotted pass-through data keys (v1.url, x.data) no longer cause\n  the entire mid-deck frontmatter block to be silently dropped; delete\n  the now-dead isYAMLIdent helper\n- parseSlides: clamp cur.startLine when a leading headmatter\n[…]\ng to cover\n  the frontmatter-dropped regression introduced in Round 1\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01XuZxrLeEEvhipjbH6Uueuk",
          "is_bot": false,
          "headline": "fix(MDS073): address 5 findings from code-review Round 2",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T03:20:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "25fd2de86a4b696c1cb34898c8a34c68e72ecc8a",
          "body": "- editDistance: use [65]int stack arrays; no heap allocations for\n  strings ≤ 64 bytes (keeps rule under 10 allocs/op budget)\n- init(): build sortedBuiltinLayouts and sortedKnownFMKeys once so\n  layoutCandidates() and checkSlide() iterate deterministically\n- hasFrontmatterAfter: add isYAMLIdent guar\n[…]\nrop the trailing '?'\n- Fix builtinLayouts comment: 19 layouts, not 18\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01XuZxrLeEEvhipjbH6Uueuk",
          "is_bot": false,
          "headline": "fix(MDS073): address 9 code-review findings from Round 1",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T02:32:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "66fa6e0318e512e00daa1e5323e34fd2bdc78606",
          "body": "…le fully implemented\n\nAll nine tasks and all acceptance criteria verified green: rule package,\nslide parser, five checks, registration, configurable custom-layouts,\nslidev convention wiring, fixtures, README, and conventions.md docs.\ngo test ./..., go vet ./..., and mdsmith check . all pass.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01XuZxrLeEEvhipjbH6Uueuk",
          "is_bot": false,
          "headline": "docs(plan): mark plan 2607171900 complete — MDS073 slide-structure ru…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T02:08:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9d61ee492b9725e1088f39f0e04ef29038f6d28c",
          "body": "Follows the project conventions established by setutil.TestContains_Nil,\nTestContains_Empty, and TestScopeRunIndicesAcceptsStructSet: nil and\nempty-map inputs must return false, and a compile-time assertion pins\nthe claimed parameter to map[int]struct{} so a silent drift to bool\nwould fail to compile.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SZhZLDQbbu9MyHzgL1Sfjs",
          "is_bot": false,
          "headline": "test(schema): add nil/empty and type-pin tests for IsClaimed",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T00:25:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "07422ca5f4d4d5c0ba68982bf6af0a75845a737c",
          "body": "…deletion\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SZhZLDQbbu9MyHzgL1Sfjs",
          "is_bot": false,
          "headline": "style(requiredstructure): remove double blank line left by isClaimed …",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T00:19:33Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a22f034415066233bab3a4dd67f7abcb30ff0519",
          "body": "Removes the comment's refactor history and internal caller list, both\nof which violate CLAUDE.md's \"don't reference callers\" rule. Regenerates\nthe PLAN.md catalog which was out of date.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SZhZLDQbbu9MyHzgL1Sfjs",
          "is_bot": false,
          "headline": "refactor(schema): trim IsClaimed doc to one line; fix PLAN.md catalog",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T00:16:31Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1c080e605e5e35d070ce83ed23fe4fdd88732ade",
          "body": "Removes the unnecessary wrapper (IsClaimed → isClaimed) by renaming\nthe private isClaimed to IsClaimed throughout the schema package\n(validate.go, matchtree.go, validate_content.go) and deleting the\nforwarding stub. Adds TestIsClaimed covering the present/absent\nbranches per the project's Red/Green TDD convention.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SZhZLDQbbu9MyHzgL1Sfjs",
          "is_bot": false,
          "headline": "refactor(schema): simplify IsClaimed to single exported definition",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T00:11:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2568ac13a7fadabf0c1946a3d106bd3d8b3b1282",
          "body": "…ructure\n\nExports schema.IsClaimed from internal/schema/validate.go and removes\nthe byte-for-byte copy in requiredstructure/rule.go, which already\nimported internal/schema. Closes plan 2607191918.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SZhZLDQbbu9MyHzgL1Sfjs",
          "is_bot": false,
          "headline": "refactor(schema): export IsClaimed and remove duplicate in requiredst…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-20T00:05:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "cd3bb671c975bcde44f8b1f66f4b7208efe11898",
          "body": "golangci-lint's errcheck flagged the unchecked return value of\nfmt.Fprintf(w, ...) inside the setInitUsage closure. Add the\nstandard _, _ = discard prefix to match the rest of the file.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(lint): suppress errcheck on fmt.Fprintf in setInitUsage",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T22:28:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "70d1a817958e80f1216b9aeb2731c85af56b749d",
          "body": "… description columns\n\nTestSetInitUsage now registers --force with the actual production description\n(\"Overwrite an existing .mdsmith.yml instead of leaving it unchanged\") so\nthe PrintDefaults pin matches what a real user sees, not an arbitrary stub.\n\nTestPrintInitCatalog adds description/summary as\n[…]\non column from printInitCatalog's format string would break the test.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_013KgrSLVGA3ioVKvpNkK9ar",
          "is_bot": false,
          "headline": "review(round3): use production flag description; pin printInitCatalog…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T22:23:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8cb19346f5f412383673cc7764d7032e30571c96",
          "body": "…r in setInitUsage\n\nsetInitUsage now calls fs.SetOutput(w) so both the header (fmt.Fprintf)\nand the flag list (fs.PrintDefaults) flow to the same writer without\ncallers having to align them independently. TestSetInitUsage asserts\n\"overwrite existing .mdsmith.yml\" — a string that only PrintDefaults c\n[…]\ne / BoolVar(&force) for BoolVar(new(bool)) to drop the dead\nvariable.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_013KgrSLVGA3ioVKvpNkK9ar",
          "is_bot": false,
          "headline": "review(round2): pin PrintDefaults via description assert; unify write…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T22:17:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d4af5d522286e45b5b614bd99a4e9b5254302139",
          "body": "…coped .gitattributes",
          "is_bot": false,
          "headline": "Merge PR #753: chore(ci): bump pinned baseline to v0.53.0 and adopt s…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-19T22:17:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f13752986a90245449d0d152c56dcf56d27b4e6f",
          "body": "…aults in test\n\nsetInitUsage now accepts io.Writer (matching printInitCatalog) so the test\ncan pass a bytes.Buffer directly instead of redirecting the global os.Stderr\nthrough captureStderr. TestSetInitUsage registers --force on the FlagSet and\ncalls fs.SetOutput(&buf) so fs.PrintDefaults() output a\n[…]\nws into the\nbuffer, covering the path that was silently empty before.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_013KgrSLVGA3ioVKvpNkK9ar",
          "is_bot": false,
          "headline": "review(round1): inject io.Writer into setInitUsage; exercise PrintDef…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T22:12:45Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ee610452af327047cee31c5b6a08d58728d8a5c5",
          "body": "…butes\n\nv0.53.0 ships the markdown-scoped merge-driver excludes (#750). Bump the\npinned compatibility baseline in setup-mdsmith-pinned-version to it, then\nadopt the format the repository deferred while the pin predated it:\n\n- Regenerate .gitattributes to the markdown-scoped managed block (the\n  exac\n[…]\nheck .` lints the repo clean (so the mdsmith-fixed-version job passes).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NK7yWgvWUN5xD1NTuGVZvZ",
          "is_bot": false,
          "headline": "chore(ci): bump pinned baseline to v0.53.0 and adopt scoped .gitattri…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T22:06:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0edff6e87aef9cbe953c1f26ad46680a588e95b7",
          "body": "Direct unit tests for printInitCatalog (bytes.Buffer, no subprocess)\nand setInitUsage (pflag.FlagSet + captureStderr, no subprocess), as\nrequired by tests.md's per-function rule. Closes plan 2607191917.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_013KgrSLVGA3ioVKvpNkK9ar",
          "is_bot": false,
          "headline": "test(init): add TestPrintInitCatalog and TestSetInitUsage unit tests",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T22:05:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "bfd0deb3447c66c80e648629744bc0bcdf173830",
          "body": "… 2606270013)",
          "is_bot": false,
          "headline": "Merge PR #706: feat(convention): add built-in slidev convention (plan…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-19T21:47:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db173e6357382152b1d65b43b16704a65ae68716",
          "body": "Adds unit tests for the parsing edge cases the fixtures did not exercise\n(leading headmatter fence, plain separators, code-fence skipping, prose\nafter a separator, keys-to-EOF, empty layout value, editDistance empty\nstrings) and the trivial accessors, bringing slidevstructure to 100%\nstatement cover\n[…]\nnreachable empty-slot-name branch (len>=5 guarantees a non-empty name).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_012teDVC4T7vuxdaTBSBQ4nJ",
          "is_bot": false,
          "headline": "test(rules): cover MDS073 edge branches; drop dead slotName check",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T21:45:52Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8a25339fbe00a045ef7ef0164d6fdf9242791541",
          "body": "…-53wfw2\n\n# Conflicts:\n#\tPLAN.md",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/main' into claude/youthful-knuth…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T21:40:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "73afaf43bf6fe73bd16c67d9a648c03164032406",
          "body": "…-53wfw2\n\n# Conflicts:\n#\tPLAN.md\n#\tinternal/integration/perrule_bench_test.go\n#\tinternal/integration/testdata/rule_walk_audit.json\n#\tinternal/rulelayer/rule_walk_audit.json\n#\tinternal/rules/index.md",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/main' into claude/youthful-knuth…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T21:38:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7e4925a813266dbd74dddfec79f8170e4c185119",
          "body": "main merged an MDS072 (external-link-check) rule while this work was in\nflight, so slide-structure takes the next free ID, MDS073. Renames the\nfixture directory, the rule ID, the README, the convention/bench\nreferences, and regenerates the walk-audit manifests, rules index, and\ncoverage matrix.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_012teDVC4T7vuxdaTBSBQ4nJ",
          "is_bot": false,
          "headline": "refactor(rules): renumber slide-structure MDS072 -> MDS073",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T21:31:23Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4b77cd38520dc2d79c4c0e86bf66b8d99dbfc4c7",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #751: Split init-subcommand logic out of cmd/mdsmith/main.go",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-19T21:27:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5569107a6d6e87bd03ae850a8ce490bfbab5bb7a",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #749: feat: foreign managed-region protection for `mdsmith fix`",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-19T21:27:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "431316a7b794cf1570853a5cb34efe2c71e2a9e9",
          "body": "…o Markdown (#750)",
          "is_bot": false,
          "headline": "Merge PR #752: fix(merge-driver): scope ignore-derived -merge lines t…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-19T21:20:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "298434e76c3638c385864e6b29a142a90e012428",
          "body": "…n test and doc updates",
          "is_bot": false,
          "headline": "Merge PR #748: docs(wordlists): complete plan 2606251522 — integratio…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-19T21:19:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "15af26c6561f5eed0efe5e92781f1d6a8bf56b89",
          "body": "… for the pinned queue\n\nThe merge queue validates .gitattributes with `merge-driver ci-install`\nrun by the *pinned* release baseline (setup-mdsmith-pinned-version,\ncurrently v0.41.0), which predates the markdown-scoping change and\nexpects the bare `demo/** -merge` render. Regenerating the repository\n[…]\nto GlobsFromConfig. See\ndocs/development/adopt-new-directive-syntax.md.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NK7yWgvWUN5xD1NTuGVZvZ",
          "is_bot": false,
          "headline": "fix(merge-driver): keep committed .gitattributes on the legacy format…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T21:13:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "01acd73ee311b8c75b92ba44178b82445857cfcc",
          "body": "Match the repository's established pattern for returning a fresh copy of\na package-level slice (internal/testcorpus/abbr.go, cue/cuelite/path.go)\ninstead of the append-to-nil form. No behavior change.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NK7yWgvWUN5xD1NTuGVZvZ",
          "is_bot": false,
          "headline": "refactor(mdpath): use slices.Clone in Extensions",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T20:20:51Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8cee6ede4e26c8e73426010e931141063cfa70b6",
          "body": "…truth\n\nThe set of file extensions mdsmith treats as Markdown (.md, .markdown)\nwas duplicated across ~8 packages: config file-discovery globs, the CLI\ndirectory walk, the merge-driver include set and discovery walk, the LSP\ndocument selector and file watcher, wikilink resolution, and the\nlink-style \n[…]\nth like the rest, so an uppercase README.MD is\ndiscovered consistently.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NK7yWgvWUN5xD1NTuGVZvZ",
          "is_bot": false,
          "headline": "refactor(mdpath): make the markdown extension set a single source of …",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T20:07:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "db0b98d974b797b29a8b628c82c024b12bda835f",
          "body": "…coping\n\nCode-review follow-up to the markdown-scoped exclude change.\n\nA gitignore-style trailing-slash ignore pattern (e.g. `build/` or\n`node_modules/`) has an empty final path segment, which fell into\nscopeExcludeToMarkdown's default branch and produced a malformed\n`build//**/*.md` double slash. F\n[…]\nextensions\nvia filepath.Ext rather than trimming a leading `*` by hand.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NK7yWgvWUN5xD1NTuGVZvZ",
          "is_bot": false,
          "headline": "fix(merge-driver): handle trailing-slash ignore patterns in exclude s…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T19:50:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "81c5208010e5532794d87e986a1a95a0b2d7894b",
          "body": "`mdsmith merge-driver install` derived one `-merge` line per\n`.mdsmith.yml` `ignore:` pattern and wrote it verbatim into\n`.gitattributes`. But `ignore:` is a markdown-lint scoping list, while a\nbare `demo/** -merge` attribute is not extension-scoped: it disabled\ngit's 3-way merge for every file in t\n[…]\nhe repository's\nown committed `.gitattributes` is regenerated to match.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01NK7yWgvWUN5xD1NTuGVZvZ",
          "is_bot": false,
          "headline": "fix(merge-driver): scope ignore-derived -merge lines to Markdown (#750)",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T19:43:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f601240de0043090c12c4d801a9b9402274470dc",
          "body": "Round-3 review caught it: sarif_test.go has 16 top-level Test\nfunctions, not 12.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017Req4a3SADus6KRYrmYqKg",
          "is_bot": false,
          "headline": "Fix test-count claim in audit log's sarif.go finding",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T19:42:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "26c7ac5ddd60ce9cbcc219331cbfad911eb037be",
          "body": "Round-2 code review found the task offered a dead alternative:\nsetInitUsage's closure hardcodes os.Stderr with no writer parameter,\nso \"redirecting the closure's writer\" was never actually an option.\nPoint at captureStderr directly.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017Req4a3SADus6KRYrmYqKg",
          "is_bot": false,
          "headline": "Tighten plan/2607191917's TestSetInitUsage task wording",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T19:37:33Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5d670e230dd270f64f39bb06d4b71b0cb25d5167",
          "body": "- Normalize os.WriteFile's mode literal to 0o644 in writeInitConfig,\n  matching the sibling call in writeScaffolds in the same file.\n- Document the archive-sharding convention this cycle improvised\n  (split into a numbered shard, never bump max-file-length without\n  consent) in the audit-checklist s\n[…]\nginal audit sweep) into plan/2607191917\n  alongside printInitCatalog's.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017Req4a3SADus6KRYrmYqKg",
          "is_bot": false,
          "headline": "Address code-review findings on the init.go split",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T19:33:44Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ad1d31edee5f49b98e1f85b631ca68929aa73d82",
          "body": "The 2026-07-19 architecture audit found that main.go crossed the\nproject's documented ~1000-line threshold, almost entirely from the\nnew `mdsmith init --add` pack-scaffolding machinery. Move that logic\ninto cmd/mdsmith/init.go, matching the existing per-subcommand file\npattern (check.go, fix.go, dep\n[…]\ninto a second shard\nnow that the first exceeded the file-length budget.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017Req4a3SADus6KRYrmYqKg",
          "is_bot": false,
          "headline": "Split init-subcommand logic out of cmd/mdsmith/main.go",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T19:24:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f0a7c3140a263de5a96ddabdfd5d6b88ffdece1c",
          "body": "…tart span\n\nRound-3 review of the foreign-regions feature:\n\n- config: dedup foreign-region marker pairs by their *trimmed* markers,\n  matching the scanner's whole-line-after-TrimSpace comparison. A raw\n  `==` let two pairs that differ only in surrounding whitespace (e.g.\n  \"<!-- x -->\" vs \" <!-- x -\n[…]\n paths (Scan and Restore), and add a whitespace-variant dedup\n  test.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01EwKxDxhjkTQPPkBrNhsrNG",
          "is_bot": false,
          "headline": "review(round3): trim-aware pair dedup, doc accuracy, lock duplicate-s…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T18:58:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b3280ef0cd1b83a442820d24b4ef27a4854baf9b",
          "body": "Two adversarial-review fixes for the foreign-regions feature:\n\n- EffectiveForeignRegions now dedups identical marker pairs. A pair\n  declared both top-level and on a matching override (or repeated in a\n  list) previously produced duplicate protected ranges and duplicate\n  MDS073 diagnostics, because\n[…]\ngn-regions[j] instead\n  of an ambiguous top-level foreign-regions[j].\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01EwKxDxhjkTQPPkBrNhsrNG",
          "is_bot": false,
          "headline": "review(round2): dedup foreign-region pairs and name override in errors",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T18:49:56Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "162105b438341ad7bce0c103f09f0f4f7e66e6df",
          "body": "Code-review round 1 fixes for the foreign-regions feature (PR #749).\n\nCorrectness: no bugs found. Scan (line ranges) and matchedRegionSpans\n(byte spans) agree on the matched-pair state machine, GeneratedRanges\nare produced and consumed in consistent post-front-matter coordinates,\nand the parse-time \n[…]\njection, and\ncopyForeignRegions. All three flagged files now at 100%.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01EwKxDxhjkTQPPkBrNhsrNG",
          "is_bot": false,
          "headline": "review(round1): single-pass foreign-region restore + coverage",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T18:42:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3d55f0294ed488660dc43f5dff27243b61819f2e",
          "body": "Document the foreign-regions: config key, its override scoping, the\nopacity contract, and the MDS073 malformed-region diagnostic. Regenerate\nthe CLAUDE.md, reference-index, AGENTS.md, and copilot-instructions\ncatalogs/includes, and mark plan 2607082049 done.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01EwKxDxhjkTQPPkBrNhsrNG",
          "is_bot": false,
          "headline": "docs: add foreign-regions reference and mark plan complete",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T18:33:28Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "334a10628ff5e0e6d910a96e9ad824754e4ba5c9",
          "body": "…d convention-files\n\n- Split the single YAML code block in placeholder-grammar.md into two\n  separate blocks with distinct file headers; the previous block put\n  `rules:` inside the wordlist file, which strict decoding rejects as\n  an unknown key\n- Add \"is separate\" to the lists: sentence in convent\n[…]\ntly, per CLAUDE.md writing\n  guideline to avoid vague mechanism verbs\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01Qk4dXhBDW1BF3ecCRA64gP",
          "is_bot": false,
          "headline": "code-review R3: fix split YAML block, clarify lists: vs allow:, rewor…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T18:31:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "754bb11b48414662a8e2d25e6b7dab4487c49079",
          "body": "Fold the config validation calls into validateConfigSemantics and the\nrunner's foreign-region check into checkWithForeignRegions so\nloadFromBytes and lintFile stay under the funlen budget.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01EwKxDxhjkTQPPkBrNhsrNG",
          "is_bot": false,
          "headline": "refactor: extract foreign-region helpers to satisfy funlen",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T18:29:35Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1a24c4f8602697f73306682cd8cf9793bf4af7b4",
          "body": "…ntions wording\n\n- Use assert.True (not require.True) in word loop so all three\n  assertions run even when one fails\n- Return .mdsmith.yml path from wordlistFileContractFixture, consistent\n  with the three sibling contract fixtures; callers use filepath.Dir\n- Update plan task 9 to explain that fixtu\n[…]\ny\n  that preset entries must be re-enumerated, not merely appended to\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01Qk4dXhBDW1BF3ecCRA64gP",
          "is_bot": false,
          "headline": "code-review R2: assert.True, fixture return value, plan task 9, conve…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T18:21:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f913d78e3c1fdf07d0e27fddf05e2498ee11bb34",
          "body": "Append foreign-region spans to GeneratedRanges so style rules skip\ndiagnostics inside a declared marker pair, and restore the original\nin-region bytes after fixing so no fixer rewrites them. Whole-file rules\n(MDS022, MDS028) read raw source, so they keep counting the bytes.\nMalformed pairs surface as MDS073 on both the check and fix paths.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01EwKxDxhjkTQPPkBrNhsrNG",
          "is_bot": false,
          "headline": "feat(fix,engine): protect foreign regions in check and fix pipelines",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T18:18:42Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2588c3db5c2266d7268616d143732b2102b63306",
          "body": "Scan returns inclusive line ranges for matched {start,end} marker pairs\nand a diagnostic (MDS073) for each malformed region: unmatched start,\norphaned end, or duplicate start.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01EwKxDxhjkTQPPkBrNhsrNG",
          "is_bot": false,
          "headline": "feat(foreignregion): add marker-pair region scanner",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T18:12:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "00b104e491e31ebdc64677757a7d9d534d969662",
          "body": "Parse a top-level foreign-regions: list of {start, end} pairs, glob-\nscopable via overrides through EffectiveForeignRegions. Reject blank or\nidentical markers.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01EwKxDxhjkTQPPkBrNhsrNG",
          "is_bot": false,
          "headline": "feat(config): add foreign-regions marker-pair config key",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T18:10:37Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "819a7c2bffc5c4d24638a333a41d26c12b406b61",
          "body": "- Rename wordlist_files_test.go -> wordlist_file_contract_test.go to\n  match the established *_file_contract_test.go pattern (D2)\n- Extract wordlistFileContractFixture helper to DRY up workspace setup\n  and mirror kind/schema/convention contract test structure (D1)\n- Expand integration test: add \"ci\n[…]\nlists:-appends (B1, B2)\n- Check off all plan acceptance criteria (H3)\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01Qk4dXhBDW1BF3ecCRA64gP",
          "is_bot": false,
          "headline": "fix(review-r1): address round-1 code review findings",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T18:01:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3f9fd79dc9ae2c7d51f6a2ba16785653152499a3",
          "body": "…doc updates\n\n- Add integration test TestWordlistFiles_ExtendsChainResolvesAndDiagnosticFires\n  that verifies extends-chain resolution fires MDS056 on an inherited word\n- Document `lists:` on placeholder rules in placeholder-grammar.md\n- Document `lists:` in convention files in convention-files.md\n-\n[…]\ns-appends behaviour in conventions.md\n- Mark plan 2606251522 complete\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01Qk4dXhBDW1BF3ecCRA64gP",
          "is_bot": false,
          "headline": "docs(wordlists): complete plan 2606251522 — add integration test and …",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-19T17:36:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7ea13e046c18f9c5e0b0c4d6218aeb8def6eab21",
          "body": "…607171900) (#745)\n\n* feat(rules): add MDS072 slide-structure for Slidev decks\n\nAn opt-in per-slide structural rule that catches Slidev's silent\nfailure modes — unmatched ::slot::, unknown layout, missing\nlayout-required field, and typo'd frontmatter keys — none of which\nSlidev itself reports. The r\n[…]\nde markers).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_012teDVC4T7vuxdaTBSBQ4nJ\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(rules): add MDS072 slide-structure — real Slidev linting (plan 2…",
          "author_name": "Jan-Eric Duden",
          "author_login": "jeduden",
          "committed_at": "2026-07-19T16:42:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6680ff53d440337d780e62d19d6eb65a4e1b6e2c",
          "body": null,
          "is_bot": false,
          "headline": "Merge PR #707: feat(MDS072): add external-link-check rule (issue #47)",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-19T14:39:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "37511e4be58f4be8a48bb425ea8d975235979f3d",
          "body": "…bility metrics",
          "is_bot": false,
          "headline": "Merge PR #747: feat(metrics): add `metrics get` subcommand with reada…",
          "author_name": "merge-queue-bot",
          "author_login": null,
          "committed_at": "2026-07-19T14:33:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90b78bde43537f5fb5009346fd9defa58eeb5470",
          "body": "- extract executeMetricsGet(w io.Writer, format, path) int from\n  runMetricsGet, matching the executeMetricsRank pattern, so the\n  writeGetOutput error path is testable with an injected writer\n- add TestExecuteMetricsGet_WriteError_ExitsTwo to exercise the new\n  function's write-error branch\n- add T\n[…]\nhe existing PlainTextError test only hits\n  the WordCount error path)\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BjaGA7w2gqtcdgMbGjgsh9",
          "is_bot": false,
          "headline": "fix(coverage): cover three uncovered diff paths to pass patch gate",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-18T10:02:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7143b692871b99ff93372b05326a5211270b4aa5",
          "body": "- refactor(metrics/get): replace collectGetItem with metricspkg.Collect,\n  eliminating duplicated file-read and per-metric compute logic\n- fix(metrics/get): add SetEscapeHTML(false) to JSON encoder so <, >, &\n  in file paths are never mangled to Unicode escapes\n- fix(metrics/get): replace type switc\n[…]\nosures in metrics_unit_test.go so test stops at root cause on failure\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BjaGA7w2gqtcdgMbGjgsh9",
          "is_bot": false,
          "headline": "fix(metrics): apply Round 3 code-review fixes",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-18T09:52:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "92581a202b6c5b4317e1a0588b27678f9827046d",
          "body": "…re.Error preconditions\n\ntabwriter.Writer buffers all cell data to an internal byte slice and only\nwrites to the underlying io.Writer at Flush() time.  The intermediate\nif _, err := fmt.Fprintln(tw, ...); err != nil checks could never fire,\nmaking them dead code that Codecov flagged as uncovered pat\n[…]\n fails the test cleanly\nrather than panicking inside assert.Contains.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BjaGA7w2gqtcdgMbGjgsh9",
          "is_bot": false,
          "headline": "fix(coverage): remove dead code in writeMetricsGetText; restore requi…",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-18T09:23:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        }
      ],
      "releases_count": 63,
      "commits_last_year": 3548,
      "latest_release_at": "2026-07-25T19:38:15Z",
      "latest_release_tag": "v0.54.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 25,
      "days_since_latest_release": 1,
      "mean_days_between_releases": 4.8
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 57,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/jeduden/mdsmith",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/jeduden/mdsmith",
          "is_deprecated": false,
          "latest_version": "v0.54.0",
          "repository_url": "https://github.com/jeduden/mdsmith",
          "versions_count": 64,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-25T19:22:07Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 1
        },
        {
          "name": "mdsmith",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "docs",
            "formatter",
            "linter",
            "markdown",
            "mdsmith",
            "Development Status :: 4 - Beta",
            "Environment :: Console",
            "Intended Audience :: Developers",
            "License :: OSI Approved :: MIT License",
            "Operating System :: MacOS",
            "Operating System :: Microsoft :: Windows",
            "Operating System :: POSIX :: Linux",
            "Programming Language :: Go",
            "Programming Language :: Python :: 3",
            "Topic :: Software Development :: Documentation",
            "Topic :: Software Development :: Quality Assurance",
            "Topic :: Text Processing :: Markup :: Markdown"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/mdsmith/",
          "is_deprecated": false,
          "latest_version": "0.54.0",
          "repository_url": "https://github.com/jeduden/mdsmith",
          "versions_count": 46,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 1334,
          "first_published_at": "2026-05-09T00:09:33.077866Z",
          "latest_published_at": "2026-07-25T19:37:06.330168Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 1
        }
      ]
    },
    "popularity": {
      "forks": 1,
      "stars": 10,
      "watchers": 0,
      "fork_history": {
        "days": [
          {
            "date": "2026-06-14",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 1,
        "total_forks": 1
      },
      "star_history": null,
      "open_issues_and_prs": 6
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "editors/obsidian/tsconfig.json",
        "editors/vscode/tsconfig.json",
        "npm/mdsmith/tsconfig.json"
      ],
      "toolchain_manifests": [
        "go.mod",
        "tools/go.mod"
      ],
      "largest_source_bytes": 401894,
      "source_files_sampled": 1428,
      "oversized_source_files": 10,
      "agent_instruction_files": [
        ".github/copilot-instructions.md",
        ".github/instructions/code-review.instructions.md",
        "AGENTS.md",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 32785
    },
    "dependencies": {
      "manifests": [
        "go.mod",
        "python/pyproject.toml",
        "tools/go.mod"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.15",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-3jxr-9vmj-r5cp",
              "GHSA-mh99-v99m-4gvg"
            ],
            "fixed_version": "5.0.8",
            "advisory_count": 2,
            "oldest_advisory_days": 6
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.2.0",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-52cp-r559-cp3m"
            ],
            "fixed_version": "4.3.0",
            "advisory_count": 1,
            "oldest_advisory_days": 6
          },
          {
            "name": "linkify-it",
            "direct": false,
            "version": "5.0.1",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-v245-v573-v5vm"
            ],
            "fixed_version": "5.0.2",
            "advisory_count": 1,
            "oldest_advisory_days": 5
          },
          {
            "name": "golang.org/x/text",
            "direct": false,
            "version": "v0.38.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5970"
            ],
            "fixed_version": "0.39.0",
            "advisory_count": 1,
            "oldest_advisory_days": 12
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 3,
          "unknown": 1
        },
        "advisory_count": 5,
        "affected_count": 4,
        "assessed_count": 405,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 14,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "github.com/bmatcuk/doublestar/v4",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v4.10.0"
        },
        {
          "name": "github.com/hexops/gotextdiff",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.0.3"
        },
        {
          "name": "github.com/mattn/go-runewidth",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.0.24"
        },
        {
          "name": "github.com/neurosnap/sentences",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.1.2"
        },
        {
          "name": "github.com/pelletier/go-toml",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.9.5"
        },
        {
          "name": "github.com/spf13/pflag",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.0.10"
        },
        {
          "name": "github.com/stretchr/testify",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.11.1"
        },
        {
          "name": "github.com/tetratelabs/wazero",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.12.0"
        },
        {
          "name": "github.com/vmihailenco/msgpack/v5",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v5.4.1"
        },
        {
          "name": "golang.org/x/mod",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.38.0"
        },
        {
          "name": "golang.org/x/net",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.57.0"
        },
        {
          "name": "golang.org/x/sync",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.22.0"
        },
        {
          "name": "golang.org/x/sys",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.47.0"
        },
        {
          "name": "golang.org/x/tools",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.48.0"
        },
        {
          "name": "gopkg.in/yaml.v3",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.1"
        },
        {
          "name": "github.com/bmatcuk/doublestar/v4",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v4.10.0"
        },
        {
          "name": "github.com/hexops/gotextdiff",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.0.3"
        },
        {
          "name": "github.com/mattn/go-runewidth",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.0.24"
        },
        {
          "name": "github.com/neurosnap/sentences",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.1.2"
        },
        {
          "name": "github.com/pelletier/go-toml",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.9.5"
        },
        {
          "name": "github.com/spf13/pflag",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.0.10"
        },
        {
          "name": "github.com/stretchr/testify",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.11.1"
        },
        {
          "name": "github.com/tetratelabs/wazero",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.11.0"
        },
        {
          "name": "github.com/vmihailenco/msgpack/v5",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v5.4.1"
        },
        {
          "name": "golang.org/x/mod",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.36.0"
        },
        {
          "name": "golang.org/x/net",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.56.0"
        },
        {
          "name": "golang.org/x/sys",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.46.0"
        },
        {
          "name": "golang.org/x/tools",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.45.0"
        },
        {
          "name": "gopkg.in/yaml.v3",
          "manifest": "tools/go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.1"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "github.com/bmatcuk/doublestar/v4",
            "direct": true,
            "version": "v4.10.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hexops/gotextdiff",
            "direct": true,
            "version": "v1.0.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-runewidth",
            "direct": true,
            "version": "v0.0.24",
            "ecosystem": "go"
          },
          {
            "name": "github.com/neurosnap/sentences",
            "direct": true,
            "version": "v1.1.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pelletier/go-toml",
            "direct": true,
            "version": "v1.9.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/spf13/pflag",
            "direct": true,
            "version": "v1.0.10",
            "ecosystem": "go"
          },
          {
            "name": "github.com/stretchr/testify",
            "direct": true,
            "version": "v1.11.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/tetratelabs/wazero",
            "direct": true,
            "version": "v1.11.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/tetratelabs/wazero",
            "direct": true,
            "version": "v1.12.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/vmihailenco/msgpack/v5",
            "direct": true,
            "version": "v5.4.1",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/mod",
            "direct": true,
            "version": "v0.36.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/mod",
            "direct": true,
            "version": "v0.38.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/net",
            "direct": true,
            "version": "v0.56.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/net",
            "direct": true,
            "version": "v0.57.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sync",
            "direct": true,
            "version": "v0.21.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sync",
            "direct": true,
            "version": "v0.22.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sys",
            "direct": true,
            "version": "v0.46.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sys",
            "direct": true,
            "version": "v0.47.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/tools",
            "direct": true,
            "version": "v0.45.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/tools",
            "direct": true,
            "version": "v0.48.0",
            "ecosystem": "go"
          },
          {
            "name": "gopkg.in/yaml.v3",
            "direct": true,
            "version": "v3.0.1",
            "ecosystem": "go"
          },
          {
            "name": "4d63.com/gocheckcompilerdirectives",
            "direct": false,
            "version": "v1.3.0",
            "ecosystem": "go"
          },
          {
            "name": "4d63.com/gochecknoglobals",
            "direct": false,
            "version": "v0.2.2",
            "ecosystem": "go"
          },
          {
            "name": "codeberg.org/chavacava/garif",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "codeberg.org/polyfloyd/go-errorlint",
            "direct": false,
            "version": "v1.9.0",
            "ecosystem": "go"
          },
          {
            "name": "dev.gaijin.team/go/exhaustruct/v4",
            "direct": false,
            "version": "v4.0.0",
            "ecosystem": "go"
          },
          {
            "name": "dev.gaijin.team/go/golib",
            "direct": false,
            "version": "v0.6.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/4meepo/tagalign",
            "direct": false,
            "version": "v1.4.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/abirdcfly/dupword",
            "direct": false,
            "version": "v0.1.7",
            "ecosystem": "go"
          },
          {
            "name": "github.com/adminbenni/iota-mixing",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/alecthomas/chroma/v2",
            "direct": false,
            "version": "v2.21.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/alecthomas/go-check-sumtype",
            "direct": false,
            "version": "v0.3.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/alexkohler/nakedret/v2",
            "direct": false,
            "version": "v2.0.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/alexkohler/prealloc",
            "direct": false,
            "version": "v1.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/alfatraining/structtag",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/alingse/asasalint",
            "direct": false,
            "version": "v0.0.11",
            "ecosystem": "go"
          },
          {
            "name": "github.com/alingse/nilnesserr",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/alwxsin/noinlineerr",
            "direct": false,
            "version": "v1.0.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/antonboom/errname",
            "direct": false,
            "version": "v1.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/antonboom/nilnil",
            "direct": false,
            "version": "v1.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/antonboom/testifylint",
            "direct": false,
            "version": "v1.6.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ashanbrown/forbidigo/v2",
            "direct": false,
            "version": "v2.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ashanbrown/makezero/v2",
            "direct": false,
            "version": "v2.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aymanbagabas/go-osc52/v2",
            "direct": false,
            "version": "v2.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/beorn7/perks",
            "direct": false,
            "version": "v1.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/bkielbasa/cyclop",
            "direct": false,
            "version": "v1.2.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/blizzy78/varnamelen",
            "direct": false,
            "version": "v0.8.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/bombsimon/wsl/v4",
            "direct": false,
            "version": "v4.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/bombsimon/wsl/v5",
            "direct": false,
            "version": "v5.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/breml/bidichk",
            "direct": false,
            "version": "v0.3.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/breml/errchkjson",
            "direct": false,
            "version": "v0.4.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/burntsushi/toml",
            "direct": false,
            "version": "v1.6.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/butuzov/ireturn",
            "direct": false,
            "version": "v0.4.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/butuzov/mirror",
            "direct": false,
            "version": "v1.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/catenacyber/perfsprint",
            "direct": false,
            "version": "v0.10.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ccojocar/zxcvbn-go",
            "direct": false,
            "version": "v1.0.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cespare/xxhash/v2",
            "direct": false,
            "version": "v2.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charithe/durationcheck",
            "direct": false,
            "version": "v0.0.11",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/colorprofile",
            "direct": false,
            "version": "v0.2.3-0.20250311203215-f60798e515dc",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/lipgloss",
            "direct": false,
            "version": "v1.1.1-0.20250404203927-76690c660834",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/x/ansi",
            "direct": false,
            "version": "v0.10.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/x/cellbuf",
            "direct": false,
            "version": "v0.0.13",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/x/term",
            "direct": false,
            "version": "v0.2.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ckaznocha/intrange",
            "direct": false,
            "version": "v0.3.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/clipperhouse/uax29/v2",
            "direct": false,
            "version": "v2.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/curioswitch/go-reassign",
            "direct": false,
            "version": "v0.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/daixiang0/gci",
            "direct": false,
            "version": "v0.13.7",
            "ecosystem": "go"
          },
          {
            "name": "github.com/dave/dst",
            "direct": false,
            "version": "v0.27.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/davecgh/go-spew",
            "direct": false,
            "version": "v1.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/denis-tingaikin/go-header",
            "direct": false,
            "version": "v0.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/djarvur/go-err113",
            "direct": false,
            "version": "v0.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/dlclark/regexp2",
            "direct": false,
            "version": "v1.11.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ettle/strcase",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/fatih/color",
            "direct": false,
            "version": "v1.18.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/fatih/structtag",
            "direct": false,
            "version": "v1.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/firefart/nonamedreturns",
            "direct": false,
            "version": "v1.0.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/fsnotify/fsnotify",
            "direct": false,
            "version": "v1.5.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/fzipp/gocyclo",
            "direct": false,
            "version": "v0.6.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ghostiam/protogetter",
            "direct": false,
            "version": "v0.3.18",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-critic/go-critic",
            "direct": false,
            "version": "v0.14.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-toolsmith/astcast",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-toolsmith/astcopy",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-toolsmith/astequal",
            "direct": false,
            "version": "v1.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-toolsmith/astfmt",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-toolsmith/astp",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-toolsmith/strparse",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-toolsmith/typep",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-viper/mapstructure/v2",
            "direct": false,
            "version": "v2.4.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-xmlfmt/xmlfmt",
            "direct": false,
            "version": "v1.1.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gobwas/glob",
            "direct": false,
            "version": "v0.2.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/godoc-lint/godoc-lint",
            "direct": false,
            "version": "v0.11.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gofrs/flock",
            "direct": false,
            "version": "v0.13.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golang/protobuf",
            "direct": false,
            "version": "v1.5.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golangci/asciicheck",
            "direct": false,
            "version": "v0.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golangci/dupl",
            "direct": false,
            "version": "v0.0.0-20250308024227-f665c8d69b32",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golangci/go-printf-func-name",
            "direct": false,
            "version": "v0.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golangci/gofmt",
            "direct": false,
            "version": "v0.0.0-20250106114630-d62b90e6713d",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golangci/golangci-lint/v2",
            "direct": false,
            "version": "v2.8.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golangci/golines",
            "direct": false,
            "version": "v0.14.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golangci/misspell",
            "direct": false,
            "version": "v0.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golangci/plugin-module-register",
            "direct": false,
            "version": "v0.1.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golangci/revgrep",
            "direct": false,
            "version": "v0.8.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golangci/swaggoswag",
            "direct": false,
            "version": "v0.0.0-20250504205917-77f2aca3143e",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golangci/unconvert",
            "direct": false,
            "version": "v0.0.0-20250410112200-a129a6e6413e",
            "ecosystem": "go"
          },
          {
            "name": "github.com/google/go-cmp",
            "direct": false,
            "version": "v0.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gordonklaus/ineffassign",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gostaticanalysis/analysisutil",
            "direct": false,
            "version": "v0.7.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gostaticanalysis/comment",
            "direct": false,
            "version": "v1.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gostaticanalysis/forcetypeassert",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gostaticanalysis/nilerr",
            "direct": false,
            "version": "v0.1.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/go-immutable-radix/v2",
            "direct": false,
            "version": "v2.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/go-version",
            "direct": false,
            "version": "v1.8.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/golang-lru/v2",
            "direct": false,
            "version": "v2.0.7",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/hcl",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/inconshreveable/mousetrap",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/jgautheron/goconst",
            "direct": false,
            "version": "v1.8.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/jingyugao/rowserrcheck",
            "direct": false,
            "version": "v1.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/jjti/go-spancheck",
            "direct": false,
            "version": "v0.6.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/julz/importas",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/karamaru-alpha/copyloopvar",
            "direct": false,
            "version": "v1.2.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kisielk/errcheck",
            "direct": false,
            "version": "v1.9.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kkhaike/contextcheck",
            "direct": false,
            "version": "v1.1.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kr/pretty",
            "direct": false,
            "version": "v0.3.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kulti/thelper",
            "direct": false,
            "version": "v0.7.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kunwardeep/paralleltest",
            "direct": false,
            "version": "v1.0.15",
            "ecosystem": "go"
          },
          {
            "name": "github.com/lasiar/canonicalheader",
            "direct": false,
            "version": "v1.1.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ldez/exptostd",
            "direct": false,
            "version": "v0.4.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ldez/gomoddirectives",
            "direct": false,
            "version": "v0.8.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ldez/grignotin",
            "direct": false,
            "version": "v0.10.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ldez/structtags",
            "direct": false,
            "version": "v0.6.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ldez/tagliatelle",
            "direct": false,
            "version": "v0.7.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ldez/usetesting",
            "direct": false,
            "version": "v0.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/leonklingele/grouper",
            "direct": false,
            "version": "v1.1.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/lucasb-eyer/go-colorful",
            "direct": false,
            "version": "v1.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/macabu/inamedparam",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/magiconair/properties",
            "direct": false,
            "version": "v1.8.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/manuelarte/embeddedstructfieldcheck",
            "direct": false,
            "version": "v0.4.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/manuelarte/funcorder",
            "direct": false,
            "version": "v0.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/maratori/testableexamples",
            "direct": false,
            "version": "v1.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/maratori/testpackage",
            "direct": false,
            "version": "v1.1.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/masterminds/semver/v3",
            "direct": false,
            "version": "v3.4.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/matoous/godox",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/matryer/is",
            "direct": false,
            "version": "v1.4.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-colorable",
            "direct": false,
            "version": "v0.1.14",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-isatty",
            "direct": false,
            "version": "v0.0.20",
            "ecosystem": "go"
          },
          {
            "name": "github.com/matttproud/golang_protobuf_extensions",
            "direct": false,
            "version": "v1.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mgechev/revive",
            "direct": false,
            "version": "v1.13.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mirrexone/unqueryvet",
            "direct": false,
            "version": "v1.4.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mitchellh/go-homedir",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mitchellh/mapstructure",
            "direct": false,
            "version": "v1.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/moricho/tparallel",
            "direct": false,
            "version": "v0.3.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/muesli/termenv",
            "direct": false,
            "version": "v0.16.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/nakabonne/nestif",
            "direct": false,
            "version": "v0.3.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/nishanths/exhaustive",
            "direct": false,
            "version": "v0.12.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/nishanths/predeclared",
            "direct": false,
            "version": "v0.2.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/nunnatsa/ginkgolinter",
            "direct": false,
            "version": "v0.21.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/openpeedeep/depguard/v2",
            "direct": false,
            "version": "v2.2.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pelletier/go-toml/v2",
            "direct": false,
            "version": "v2.2.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pmezard/go-difflib",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/prometheus/client_golang",
            "direct": false,
            "version": "v1.12.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/prometheus/client_model",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/prometheus/common",
            "direct": false,
            "version": "v0.32.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/prometheus/procfs",
            "direct": false,
            "version": "v0.7.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/quasilyte/go-ruleguard",
            "direct": false,
            "version": "v0.4.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/quasilyte/go-ruleguard/dsl",
            "direct": false,
            "version": "v0.3.23",
            "ecosystem": "go"
          },
          {
            "name": "github.com/quasilyte/gogrep",
            "direct": false,
            "version": "v0.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/quasilyte/regex/syntax",
            "direct": false,
            "version": "v0.0.0-20210819130434-b3f0c404a727",
            "ecosystem": "go"
          },
          {
            "name": "github.com/quasilyte/stdinfo",
            "direct": false,
            "version": "v0.0.0-20220114132959-f7386bf02567",
            "ecosystem": "go"
          },
          {
            "name": "github.com/raeperd/recvcheck",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/rillig/gobco",
            "direct": false,
            "version": "v1.3.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/rivo/uniseg",
            "direct": false,
            "version": "v0.4.7",
            "ecosystem": "go"
          },
          {
            "name": "github.com/rogpeppe/go-internal",
            "direct": false,
            "version": "v1.14.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ryancurrah/gomodguard",
            "direct": false,
            "version": "v1.4.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ryanrolds/sqlclosecheck",
            "direct": false,
            "version": "v0.5.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sanposhiho/wastedassign/v2",
            "direct": false,
            "version": "v2.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/santhosh-tekuri/jsonschema/v6",
            "direct": false,
            "version": "v6.0.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sashamelentyev/interfacebloat",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sashamelentyev/usestdlibvars",
            "direct": false,
            "version": "v1.29.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/securego/gosec/v2",
            "direct": false,
            "version": "v2.22.11",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sergi/go-diff",
            "direct": false,
            "version": "v1.3.2-0.20230802210424-5b0b94c5c0d3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sirupsen/logrus",
            "direct": false,
            "version": "v1.9.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sivchari/containedctx",
            "direct": false,
            "version": "v1.0.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sonatard/noctx",
            "direct": false,
            "version": "v0.4.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sourcegraph/go-diff",
            "direct": false,
            "version": "v0.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/spf13/afero",
            "direct": false,
            "version": "v1.15.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/spf13/cast",
            "direct": false,
            "version": "v1.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/spf13/cobra",
            "direct": false,
            "version": "v1.10.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/spf13/jwalterweatherman",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/spf13/viper",
            "direct": false,
            "version": "v1.12.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ssgreg/nlreturn/v2",
            "direct": false,
            "version": "v2.2.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/stbenjam/no-sprintf-host-port",
            "direct": false,
            "version": "v0.3.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/stretchr/objx",
            "direct": false,
            "version": "v0.5.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/subosito/gotenv",
            "direct": false,
            "version": "v1.4.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/tetafro/godot",
            "direct": false,
            "version": "v1.5.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/timakin/bodyclose",
            "direct": false,
            "version": "v0.0.0-20241222091800-1db5c5ca4d67",
            "ecosystem": "go"
          },
          {
            "name": "github.com/timonwong/loggercheck",
            "direct": false,
            "version": "v0.11.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/tomarrell/wrapcheck/v2",
            "direct": false,
            "version": "v2.12.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/tommy-muehle/go-mnd/v2",
            "direct": false,
            "version": "v2.5.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ultraware/funlen",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ultraware/whitespace",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/uudashr/gocognit",
            "direct": false,
            "version": "v1.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/uudashr/iface",
            "direct": false,
            "version": "v1.4.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/vmihailenco/tagparser/v2",
            "direct": false,
            "version": "v2.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/xen0n/gosmopolitan",
            "direct": false,
            "version": "v1.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/xo/terminfo",
            "direct": false,
            "version": "v0.0.0-20220910002029-abceb7e1c41e",
            "ecosystem": "go"
          },
          {
            "name": "github.com/yagipy/maintidx",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/yeya24/promlinter",
            "direct": false,
            "version": "v0.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ykadowak/zerologlint",
            "direct": false,
            "version": "v0.1.5",
            "ecosystem": "go"
          },
          {
            "name": "gitlab.com/bosi/decorder",
            "direct": false,
            "version": "v0.4.2",
            "ecosystem": "go"
          },
          {
            "name": "go-simpler.org/musttag",
            "direct": false,
            "version": "v0.14.0",
            "ecosystem": "go"
          },
          {
            "name": "go-simpler.org/sloglint",
            "direct": false,
            "version": "v0.11.1",
            "ecosystem": "go"
          },
          {
            "name": "go.augendre.info/arangolint",
            "direct": false,
            "version": "v0.3.1",
            "ecosystem": "go"
          },
          {
            "name": "go.augendre.info/fatcontext",
            "direct": false,
            "version": "v0.9.0",
            "ecosystem": "go"
          },
          {
            "name": "go.uber.org/automaxprocs",
            "direct": false,
            "version": "v1.6.0",
            "ecosystem": "go"
          },
          {
            "name": "go.uber.org/multierr",
            "direct": false,
            "version": "v1.10.0",
            "ecosystem": "go"
          },
          {
            "name": "go.uber.org/zap",
            "direct": false,
            "version": "v1.27.0",
            "ecosystem": "go"
          },
          {
            "name": "go.yaml.in/yaml/v3",
            "direct": false,
            "version": "v3.0.4",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/exp/typeparams",
            "direct": false,
            "version": "v0.0.0-20251023183803-a4bb9ffd2546",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/text",
            "direct": false,
            "version": "v0.38.0",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/protobuf",
            "direct": false,
            "version": "v1.36.8",
            "ecosystem": "go"
          },
          {
            "name": "gopkg.in/check.v1",
            "direct": false,
            "version": "v1.0.0-20201130134442-10cb98267c6c",
            "ecosystem": "go"
          },
          {
            "name": "gopkg.in/ini.v1",
            "direct": false,
            "version": "v1.67.0",
            "ecosystem": "go"
          },
          {
            "name": "gopkg.in/yaml.v2",
            "direct": false,
            "version": "v2.4.0",
            "ecosystem": "go"
          },
          {
            "name": "honnef.co/go/tools",
            "direct": false,
            "version": "v0.6.1",
            "ecosystem": "go"
          },
          {
            "name": "mvdan.cc/gofumpt",
            "direct": false,
            "version": "v0.9.2",
            "ecosystem": "go"
          },
          {
            "name": "mvdan.cc/unparam",
            "direct": false,
            "version": "v0.0.0-20251027182757-5beb8c8f8f15",
            "ecosystem": "go"
          },
          {
            "name": "@codemirror/state",
            "direct": false,
            "version": "^6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@codemirror/view",
            "direct": false,
            "version": "^6.34.0",
            "ecosystem": "npm"
          },
          {
            "name": "@mdsmith/cli",
            "direct": false,
            "version": "0.0.0-dev",
            "ecosystem": "npm"
          },
          {
            "name": "@mdsmith/darwin-arm64",
            "direct": false,
            "version": "0.0.0-dev",
            "ecosystem": "npm"
          },
          {
            "name": "@mdsmith/darwin-x64",
            "direct": false,
            "version": "0.0.0-dev",
            "ecosystem": "npm"
          },
          {
            "name": "@mdsmith/linux-arm64",
            "direct": false,
            "version": "0.0.0-dev",
            "ecosystem": "npm"
          },
          {
            "name": "@mdsmith/linux-x64",
            "direct": false,
            "version": "0.0.0-dev",
            "ecosystem": "npm"
          },
          {
            "name": "@mdsmith/win32-x64",
            "direct": false,
            "version": "0.0.0-dev",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.scandir",
            "direct": false,
            "version": "2.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.stat",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.walk",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@playwright/test",
            "direct": false,
            "version": "1.56.1",
            "ecosystem": "npm"
          },
          {
            "name": "@sindresorhus/merge-streams",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/bun",
            "direct": false,
            "version": "^1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/debug",
            "direct": false,
            "version": "4.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "@types/katex",
            "direct": false,
            "version": "0.16.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mocha",
            "direct": false,
            "version": "^10.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "@types/ms",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "^20.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/unist",
            "direct": false,
            "version": "2.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "@types/vscode",
            "direct": false,
            "version": "^1.85.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/test-electron",
            "direct": false,
            "version": "^2.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/vsce",
            "direct": false,
            "version": "^3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@zeit/schemas",
            "direct": false,
            "version": "2.36.0",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "8.18.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-align",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "arch",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "arg",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "boxen",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "chalk-template",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-legacy",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "character-reference-invalid",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cli-boxes",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "clipboardy",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "compressible",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "npm"
          },
          {
            "name": "compression",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "content-disposition",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "2.6.9",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "decode-named-character-reference",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "deep-extend",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "dequal",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "devlop",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "eastasianwidth",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "9.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "execa",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "fast-deep-equal",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-glob",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-uri",
            "direct": false,
            "version": "3.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "fastq",
            "direct": false,
            "version": "1.20.1",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-east-asian-width",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-stream",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "^13.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "globby",
            "direct": false,
            "version": "16.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "human-signals",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "ini",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "is-alphabetical",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-alphanumerical",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-decimal",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-docker",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-hexadecimal",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-path-inside",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-port-reachable",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-stream",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-wsl",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsonc-parser",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsonpointer",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "katex",
            "direct": false,
            "version": "0.16.47",
            "ecosystem": "npm"
          },
          {
            "name": "linkify-it",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it",
            "direct": false,
            "version": "14.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdownlint",
            "direct": false,
            "version": "0.41.1",
            "ecosystem": "npm"
          },
          {
            "name": "markdownlint-cli2",
            "direct": false,
            "version": "0.23.1",
            "ecosystem": "npm"
          },
          {
            "name": "markdownlint-cli2-formatter-default",
            "direct": false,
            "version": "0.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge-stream",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge2",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-core-commonmark",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-directive",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-gfm-autolink-literal",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-gfm-footnote",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-gfm-table",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-math",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-destination",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-label",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-space",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-title",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-whitespace",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-character",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-chunked",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-classify-character",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-combine-extensions",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-decode-numeric-character-reference",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-encode",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-html-tag-name",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-normalize-identifier",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-resolve-all",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-sanitize-uri",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-subtokenize",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-symbol",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-types",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "mocha",
            "direct": false,
            "version": "^11.7.6",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-path",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "obsidian",
            "direct": false,
            "version": "^1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "on-headers",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "parse-entities",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "path-is-inside",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "playwright",
            "direct": false,
            "version": "1.56.1",
            "ecosystem": "npm"
          },
          {
            "name": "playwright-core",
            "direct": false,
            "version": "1.56.1",
            "ecosystem": "npm"
          },
          {
            "name": "punycode.js",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "queue-microtask",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "range-parser",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "rc",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "registry-auth-token",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "registry-url",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "require-from-string",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "reusify",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "run-parallel",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "serve",
            "direct": false,
            "version": "14.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "serve-handler",
            "direct": false,
            "version": "6.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-command",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "shebang-regex",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "smol-toml",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "8.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-final-newline",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "2.19.0",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "^5.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "uc.micro",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "unicorn-magic",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "update-check",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "vary",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-languageclient",
            "direct": false,
            "version": "^9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "vscode-uri",
            "direct": false,
            "version": "^3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "widest-line",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 419,
        "direct_count": 21,
        "indirect_count": 398
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 6,
        "merged_prs": 707,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 31,
        "closed_unmerged_prs": 30
      },
      "bus_factor": 1,
      "bot_contributors": 3,
      "top_contributors": [
        {
          "type": "User",
          "login": "claude",
          "commits": 2582,
          "avatar_url": "https://avatars.githubusercontent.com/u/81847?v=4"
        },
        {
          "type": "User",
          "login": "jeduden",
          "commits": 556,
          "avatar_url": "https://avatars.githubusercontent.com/u/1117699?v=4"
        },
        {
          "type": "User",
          "login": "LIghtJUNction",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/106986785?v=4"
        }
      ],
      "contributors_sampled": 3,
      "top_contributor_share": 0.823
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "action-smoke.yml",
        "benchmark.yml",
        "ci.yml",
        "cuelite-fuzz.yml",
        "demo.yml",
        "e2e.yml",
        "mdsmith-check.yml",
        "merge-queue.yml",
        "pages.yml",
        "record-demo.yml",
        "record-secret-rotation.yml",
        "release.yml",
        "secret-rotation-reminder.yml",
        "security-audit-sarif.yml",
        "skill-eval.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        ".golangci.yml"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum",
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 5,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "13 out of 13 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/11 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 10,
            "reason": "project is fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 9,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 9,
            "reason": "dependency not pinned by hash detected -- score normalized to 9",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 10,
            "reason": "GitHub workflow tokens follow principle of least privilege",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "14 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "2ab4b2949e9420b2eb73f4239091fd647c4b5e80",
        "ran_at": "2026-07-27T15:45:47Z",
        "aggregate_score": 7,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-25T19:45:33Z",
      "oldest_open_prs": [
        {
          "number": 769,
          "created_at": "2026-07-25T20:25:07Z",
          "last_comment_at": "2026-07-25T20:25:33Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 770,
          "created_at": "2026-07-25T20:51:41Z",
          "last_comment_at": "2026-07-25T20:52:06Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 771,
          "created_at": "2026-07-25T22:11:47Z",
          "last_comment_at": "2026-07-25T22:12:16Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 772,
          "created_at": "2026-07-26T02:48:50Z",
          "last_comment_at": "2026-07-26T02:49:18Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 773,
          "created_at": "2026-07-26T19:20:37Z",
          "last_comment_at": "2026-07-26T19:21:38Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 774,
          "created_at": "2026-07-26T20:30:07Z",
          "last_comment_at": "2026-07-26T20:30:36Z",
          "last_comment_author": "codecov"
        }
      ],
      "last_merged_pr_at": "2026-07-25T19:27:19Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/jeduden/mdsmith",
    "host": "github.com",
    "name": "mdsmith",
    "owner": "jeduden"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 70,
      "inputs": {
        "security": 76,
        "vitality": 85,
        "community": 35,
        "governance": 61,
        "engineering": 90
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 85,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "commits_last_year": 3548,
              "human_commit_share": 0.98,
              "days_since_last_push": 0,
              "active_weeks_last_year": 25
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "25/52 weeks with commits",
                "points": 17.3,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 25
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "3548 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 3548
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 63,
              "latest_release_tag": "v0.54.0",
              "releases_from_tags": false,
              "days_since_latest_release": 1,
              "mean_days_between_releases": 4.8
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "63 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 63
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 1 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~4.8 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 4.8
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 35,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 16,
            "inputs": {
              "forks": 1,
              "stars": 10,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "10 stars",
                "points": 15.5,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "1 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "at_risk",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 44,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file present, not a recognized license",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "license_custom",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 52,
            "inputs": {
              "packages": [
                "github.com/jeduden/mdsmith",
                "mdsmith"
              ],
              "dependents": null,
              "ecosystems": "go, pypi",
              "total_downloads": null,
              "monthly_downloads": 1334
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "1,334 downloads/month across go, pypi",
                "points": 41.7,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 1334,
                      "ecosystems": "go, pypi"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 61,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 20,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 3,
              "top_contributor_share": 0.823
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 82% of commits",
                "points": 4,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 82
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "3 contributors",
                "points": 4.1,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "merged_prs": 707,
              "open_issues": 0,
              "closed_issues": 31,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 30
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 46.8,
                "status": "met",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "707/737 decided PRs merged",
                "points": 36.7,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 707,
                      "decided": 737
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/11 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 57,
            "inputs": {
              "followers": 26,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "jeduden",
              "public_repos": 99,
              "account_age_days": 5403
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "26 followers of jeduden",
                "points": 10.3,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 26,
                      "login": "jeduden"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "99 public repos, account ~14 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 99
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 14
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/jeduden/mdsmith",
                "mdsmith"
              ],
              "ecosystems": "go, pypi",
              "any_deprecated": false,
              "min_days_since_publish": 1
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "2 package(s) on go, pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 2,
                      "ecosystems": "go, pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 1 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "64 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 64
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "excellent",
        "name": "Engineering Quality",
        "value": 90,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "15 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": ".golangci.yml",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "13 out of 13 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "golang",
                "linter",
                "markdown",
                "ai-generated-code",
                "ai-generated-content",
                "formatter",
                "go",
                "readme",
                "specification",
                "style",
                "spec-driven",
                "spec-driven-development",
                "extension-vscode",
                "lsp-server"
              ],
              "has_wiki": true,
              "homepage": "https://mdsmith.dev/",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://mdsmith.dev/",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "14 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 14
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "good",
        "name": "Security",
        "value": 76,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "good",
            "name": "Security posture",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 18,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 0,
              "scorecard_aggregate": 7
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "13 out of 13 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/11 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is fuzzed",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 9",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "GitHub workflow tokens follow principle of least privilege",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "14 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 405 resolved dependencies against OSV; 14 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 405
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 14
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 5,
              "affected_packages": 4,
              "assessed_packages": 405,
              "unassessed_packages": 14,
              "affected_by_severity": "high 3, unknown 1",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 405,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 1
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "excellent",
        "name": "AI Readiness",
        "value": 92,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.99,
              "agent_instruction_files": [
                ".github/copilot-instructions.md",
                ".github/instructions/code-review.instructions.md",
                "AGENTS.md",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 32785
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".github/copilot-instructions.md, .github/instructions/code-review.instructions.md, AGENTS.md, CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".github/copilot-instructions.md, .github/instructions/code-review.instructions.md, AGENTS.md, CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "97 of 98 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 97,
                      "sampled": 98
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum",
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "editors/obsidian/tsconfig.json",
                "editors/vscode/tsconfig.json",
                "npm/mdsmith/tsconfig.json"
              ],
              "agent_commit_share": 0.66,
              "toolchain_manifests": [
                "go.mod",
                "tools/go.mod"
              ],
              "dependency_bot_commit_share": 0.02
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "go.mod, tools/go.mod (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "go.mod, tools/go.mod"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".golangci.yml",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "editors/obsidian/tsconfig.json, editors/vscode/tsconfig.json, npm/mdsmith/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "editors/obsidian/tsconfig.json, editors/vscode/tsconfig.json, npm/mdsmith/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "66 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 66,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "2 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 2,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 9",
                "points": 9,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 401894,
              "source_files_sampled": 1428,
              "oversized_source_files": 10
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "10/1428 source files over 60KB",
                "points": 54.6,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 1428,
                      "oversized": 10
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T15:46:08.045652Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/j/jeduden/mdsmith.svg",
  "full_name": "jeduden/mdsmith",
  "license_state": "custom",
  "license_spdx": null
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.27.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистикаGo, PyPI.