REF-001 リンク切れ
Markdown 内の相対リンク([text](./file.md) の形式)が、実在するファイルを指していることを検証します。リンク先が存在しない場合は error になります。アンカーフラグメント(#section)はリンク先ファイル判定からは除外され、その妥当性は REF-005 アンカー の責務です。
ファイルのリネーム・削除・移動でリンクが壊れるのは、Markdown を運用するうえで最も頻繁に起きる劣化です。AI 生成では存在しないファイルへのリンクが混入することもあります。リンク切れがあっても markdownlint も CI もパスしてしまうため、機械的な検出が必要です。
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
exclude | string[] | — | リンク先の検証から除外するパスの glob 配列 |
siteRouter | object | — | SSG の routed URL(例: /docs/x/)を実ファイルに解決する設定 |
オプション全体を省略しても動作します。exclude は外部のドキュメントや生成物のように、include の対象外だが意図的に存在しないファイルを参照する場合に使います。
siteRouter — SSG の routed URL 対応
Section titled “siteRouter — SSG の routed URL 対応”通常 REF-001 は ./file.md のような相対リンクを file system path として解決しますが、Astro Starlight などの SSG が生成する routed URL(/docs/x/ や /ja/docs/x/)はそのままでは file path として存在しないため、siteRouter を指定しないと broken link と判定されます。
| サブフィールド | 型 | 必須 | 説明 |
|---|---|---|---|
preset | string | — | 既知の SSG プリセット。現在は "starlight" のみ対応 |
contentDir | string | ✓ | コンテンツディレクトリ(例: "packages/site/src/content/docs") |
defaultLocale | string | — | デフォルトロケール。Starlight の prefix なし root ロケールには "root" を指定 |
locales | string[] | — | サポートするロケールのリスト(例: ["root", "ja", "ko", "zh"]) |
urlPrefix | string | — | (preset を使わない汎用設定) URL から取り除くプレフィックス |
indexFile | string | — | 最初に試す index ファイル名(既定: "index.md") |
Starlight (i18n) の例:
{ "rule": "ref001", "options": { "siteRouter": { "preset": "starlight", "contentDir": "packages/site/src/content/docs", "defaultLocale": "root", "locales": ["root", "ja", "ko", "zh"] } }}/docs/get-started/ は <contentDir>/docs/get-started/index.md か <contentDir>/docs/get-started.md に解決されます。/ja/docs/get-started/ は <contentDir>/ja/docs/get-started/index.md に解決されます。
汎用設定(preset なし)の例:
{ "rule": "ref001", "options": { "siteRouter": { "contentDir": "src/pages", "urlPrefix": "/wiki", "indexFile": "README.md" } }}/wiki/some-page/ は src/pages/some-page/README.md に解決されます。
詳細は [アーキテクチャ](./architecture.md) を参照してください。./architecture.md が存在しない場合、違反になります。
docs/overview.md line 1 error Link target "./architecture.md" does not exist REF-001詳細は [アーキテクチャ](./architecture.md) を参照してください。リンク先ファイル architecture.md を作成するか、リンクを正しいパスに修正します。
{ "rule": "ref001", "options": { "exclude": ["generated/**/*.md"] }}- REF-005 アンカー — リンク先ファイル内のアンカー(
#section)が存在するかの検証 - REF-006 画像参照 — リンクではなく画像参照(
)の検証 - STR-001 ファイル存在 — 個別リンクではなくプロジェクトレベルでのファイル存在の検証