Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 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.

GoEigene Lizenz★ 10 Sterne⑂ 1 Forkseit Feb. 2026Auf GitHub ansehen ↗

jeduden/mdsmith erreicht einen Gesundheitsindex von 70 von 100 und liegt damit im Bereich Gut. Am stärksten schneidet es bei AI Readiness (92/100) ab, am schwächsten bei Community & Adoption (35/100). Zuletzt heute aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

70
gesamt / 100
Gut

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

70
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Eigentümerschaft

Jan-Eric DudenPersönliches Konto
26 Follower99 öffentliche Reposseit Okt. 2011

Dieses Repository gehört einem persönlichen Konto. Ein Projekt mit nur einem Eigentümer trägt ein höheres Kontinuitätsrisiko als ein organisationsgetragenes.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
Gogithub.com/jeduden/mdsmithv0.54.0-64vor 1 Tag
PyPImdsmith0.54.01.33446vor 1 Tagdocsformatterlintermarkdownmdsmith

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

85Exzellent · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
17.3/36Commit-Rhythmus — 25/52 Wochen mit Commits
18/18Commit-Volumen — 3.548 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year3.548
human_commit_share0,98
days_since_last_push0
active_weeks_last_year25
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 63 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 1 Tagen
27/27Release-Rhythmus — ein Release etwa alle 4,8 Tage
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Verwendete Eingangsdaten
releases_count63
latest_release_tagv0.54.0
releases_from_tagsnein
days_since_latest_release1
mean_days_between_releases4,8

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

35Gefährdet · 18 % des Gesamtindex
Wie die Bewertung erfolgt
15.5/60Stars — 10 Stars
0/25Forks — 1 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks1
stars10
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
16.9/22.5Lizenz — Lizenzdatei vorhanden, keine anerkannte Lizenz
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
41.7/80Downloads pro Monat — 1.334 Downloads/Monat über go, pypi
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packagesgithub.com/jeduden/mdsmith, mdsmith
dependents
ecosystemsgo, pypi
total_downloads
monthly_downloads1.334
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

61Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
4/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 82 % der Commits
4.1/13.5Breite der Beitragenden — 3 Beitragende
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Verwendete Eingangsdaten
bus_factor1
contributors_sampled3
top_contributor_share0,823
Wie die Bewertung erfolgt
46.8/46.8Issue-Lösungsquote — 100 % der Issues geschlossen
36.7/38.3PR-Annahme — 707/737 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/11 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs707
open_issues0
closed_issues31
issue_closed_ratio1
closed_unmerged_prs30
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
10.3/25Reichweite des Inhabers — 26 Follower von jeduden
25/25Kontohistorie — 99 öffentliche Repos, Kontoalter ca. 14 Jahre
Verwendete Eingangsdaten
followers26
owner_typeUser
is_verified
owner_loginjeduden
public_repos99
account_age_days5.403
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 2 Paket(e) auf go, pypi
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 1 Tagen
20/20Versionshistorie — 64 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesgithub.com/jeduden/mdsmith, mdsmith
ecosystemsgo, pypi
any_deprecatednein
min_days_since_publish1

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

90Exzellent · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 15 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration — .golangci.yml
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 13 out of 13 merged PRs checked by a CI test -- score normalized to 10
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_configja
has_precommit_confignein

Dokumentation

100Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://mdsmith.dev/
10/10Repository-Beschreibung
10/10Topics — 14 Topics
10/10Wiki
Verwendete Eingangsdaten
topicsgolang, linter, markdown, ai-generated-code, ai-generated-content, formatter, go, readme, specification, style, spec-driven, spec-driven-development, extension-vscode, lsp-server
has_wikija
homepagehttps://mdsmith.dev/
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

76Gut · 16 % des Gesamtindex
Wie die Bewertung erfolgt
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.5Lizenz — 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
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate7
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
0/25Indirekte Abhängigkeiten ohne bekannte Advisories — transitive Menge in diesem Bereich nicht von Entwicklungs- und Test-Abhängigkeiten trennbar
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories5
affected_packages4
assessed_packages405
unassessed_packages14
affected_by_severityhigh 3, unknown 1
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Indirekte Abhängigkeiten ohne bekannte Advisories, Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. 405 aufgelöste Abhängigkeiten wurden mit OSV abgeglichen. 14 konnten nicht bewertet werden — keine aufgelöste Version, ein nicht unterstütztes Ökosystem oder außerhalb der ausgewiesenen Paketliste. Dieses Repository veröffentlicht kein Paket, das der Index auflöst; bewertet wurde daher der Abhängigkeitsgraph des Repositorys. Dieser Graph vermischt Entwicklungs- und Test-Pins mit ausgelieferten Abhängigkeiten, daher werden nur die deklarierten Laufzeit-Abhängigkeiten bewertet; transitive Befunde werden als Kontext ausgewiesen und fließen nicht in die Bewertung ein. Erreichbarkeit wird nicht analysiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

92Exzellent · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — .github/copilot-instructions.md, .github/instructions/code-review.instructions.md, AGENTS.md, CLAUDE.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 97 von 98 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
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
Wie die Bewertung erfolgt
12.6/18Bootstrap mit einem Befehl — go.mod, tools/go.mod (Toolchain-Konvention, kein Task-Runner)
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — .golangci.yml
11/11Statische Typprüfung — editors/obsidian/tsconfig.json, editors/vscode/tsconfig.json, npm/mdsmith/tsconfig.json
10/10Reproduzierbare Umgebung — lockfile
10/10Belegte Agentenpraxis — 66 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
8/8Automatisierte Wartung — 2 der letzten 100 Commits sind automatisierte Abhängigkeits-Updates
9/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 9
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesgo.sum, package-lock.json
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_configja
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
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — Go (statisch typisiert)
54.6/55Handhabbare Dateigrößen — 10/1.428 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageGo
largest_source_bytes401.894
source_files_sampled1.428
oversized_source_files10

Eckdaten

10GitHub-Sterne
3Mitwirkende
3.548Commits, letzte 12 Monate
0Tage seit letztem Push
63Releases
1Bus-Faktor
0offene Issues
Go, PyPIPaket-Ökosysteme

Warnungen zur Datenerhebung

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

Weitere Details

OpenSSF Scorecard 7.0 / 10
7.0Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).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
Direkte Abhängigkeiten 29
RegistryPaketVersionsvorgabeManifest
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
Alle Abhängigkeiten 419

Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 21 direkte und 398 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.

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

Dieses Repository veröffentlicht kein vom Index auflösbares Paket, daher wurde sein eigener Abhängigkeitsgraph bewertet – 405 Pakete, darunter auch Entwicklungs- und Test-Pins, die nie ausgeliefert werden: 4 tragen bekannte Advisories, davon 0 direkte. 14 konnten nicht bewertet werden – keine aufgelöste Version, ein nicht unterstütztes Ökosystem, oder außerhalb der ausgewiesenen Paketliste.

PaketVersionBeziehungSchweregradAdvisoriesBehoben in
brace-expansion1.1.15indirekthoch25.0.8
js-yaml4.2.0indirekthoch14.3.0
linkify-it5.0.1indirekthoch15.0.2
golang.org/x/textv0.38.0indirektunbekannt10.39.0

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "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
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.13.0, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte StatistikenGo, PyPI.