コンテンツにスキップ

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・GitHub アノテーションのレポーターに対応しています。

オートフィックス

--fix / --fix-dry-run が、安全で一意な修正が可能な違反を機械的に修復します — 誤字ったステータス、不正な形式の日付、片側だけの supersedes リンクなど。

段階的な導入

一時的な例外にはインラインの madr-lint-disable 抑制コメントを、既存の違反には ベースラインファイルでスナップショットを取り、新規の違反だけを CI で失敗させられます。

Terminal window
# scaffold a config — detects your ADR directory and MADR version
npx madr-lint init
# lint the ADRs in your configured adrDir (default: docs/adr)
npx madr-lint
# or point it at explicit paths
npx madr-lint docs/adr
# auto-repair what's mechanically fixable
npx madr-lint --fix
# 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 を実行するには はじめる へ、 オプションの全体像を知るには 設定 へ進んでください。

AI エージェントやコーディングアシスタントとの連携を構築していますか? このドキュメントの機械可読なインデックスは llms.txt を、一度のフェッチで全文を読み込むには llms-full.txt をご覧ください(いずれも英語のみです)。