コンテンツにスキップ

はじめる

madr-lintMADR(Markdown Architectural Decision Records)向けのリンターです。ADR の構造、ステータス値、 日付、ファイル名、そしてファイル間の整合性を検証します。

開発依存としてインストールします。

Terminal window
# npm
npm install --save-dev madr-lint
# pnpm
pnpm add -D madr-lint
# yarn
yarn add -D madr-lint

Node.js 22 以降が必要です。

インストールせずに実行することもできます。

Terminal window
npx madr-lint --help

デフォルトでは、madr-lintadrDir として設定されたディレクトリ (デフォルト: docs/adr)を lint します。

Terminal window
npx madr-lint

または、明示的にファイルやディレクトリを指定することもできます。ディレクトリは .md ファイルを再帰的に検索します。

Terminal window
npx madr-lint docs/adr docs/decisions/0007-use-x.md

出力例:

docs/adr/0003-use-postgres.md
error madr/status-enum Status "decided" is not one of: proposed,rejected,accepted,deprecated,superseded by ...
error madr/required-sections Missing required section: "Consequences"
2 errors

初期状態では、ルールが設定されていない場合、CLI は madr-lint:recommended プリセットにフォールバックします。これを明示的にする(そしてカスタマイズを始める) には、設定ファイルを作成します。

madr-lint.config.ts
import { defineConfig } from 'madr-lint';
export default defineConfig({
extends: ['madr-lint:recommended'],
adrDir: 'docs/adr',
});

すべてのオプションについては 設定 を、ルールの完全な リファレンスについては ルール を参照してください。

madr-lint は CI に適しています。

終了コード意味
0エラーなし(警告は出力される場合があります)
11 件以上の error 重大度の診断
2設定の問題(例: 無効なルールオプション、未知の --format
  • 設定 — 設定ファイル、プリセット、ルールごとのオプション
  • CLI — すべてのコマンドラインフラグ
  • GitHub Action — CI での実行
  • ルール — 各ルールがチェックする内容とそのオプション