コンテンツにスキップ

madr-lint

MADR(Markdown Architectural Decision Records)向けの高速で設定可能なリンターです。

madr-lint は、あなたの MADR ファイルがチームの 拠り所とする規約に従っているかをチェックします。必須セクション、有効なステータス、 ISO‑8601 の日付、ファイル名フォーマット、そして番号の一意性やリンク切れがないことといった ファイル間の整合性まで検証します。

MADR v2 / v3 / v4 対応

YAML frontmatter(v3/v4) v2 の本文リストメタデータの両方を読み取ります。 太字(- **Status**:)と正規のプレーン形式(* Status:)の両方の書き方に対応しています。 バージョンを明示的に指定することも、自動検出に任せることもできます。

ESLint 風のルール

名前付きルール(madr/required-sections など)を error / warn / off の 重大度で指定でき、ルールごとのオプションは JSON Schema で検証されます。

ファイル単位とファイル間

高速なファイル単位のチェック(セクション、ステータス、日付、ファイル名)に加え、 番号の一意性、supersedes グラフ、リンク切れを検査するプロジェクトルールを備えています。

CLI・ライブラリ・Action

コマンドラインから実行したり、プログラムから呼び出したり、GitHub Action として CI に組み込んだりできます。text・JSON・SARIF のレポーターに対応しています。

Terminal window
# lint the ADRs in your configured adrDir (default: docs/adr)
npx madr-lint
# or point it at explicit paths
npx madr-lint docs/adr
# machine-readable output for CI
npx madr-lint --format sarif
madr-lint.config.ts
import { defineConfig } from 'madr-lint';
export default defineConfig({
extends: ['madr-lint:recommended'],
madrVersion: 'auto',
adrDir: 'docs/adr',
rules: {
'madr/filename-format': ['error', { pattern: '^[0-9]{4}-.+\\.md$' }],
'madr/no-numbering-gap': 'off',
},
});

インストールして最初の lint を実行するには はじめる へ、 オプションの全体像を知るには 設定 へ進んでください。