コンテンツにスキップ

REF-005 アンカー

Markdown リンクに含まれるアンカーフラグメント(./file.md#section#section# 以降)が、対象ファイル内の実在する見出しを指していることを検証します。一致する見出しが無い場合は error で報告されます。アンカーは GitHub と同じ slug 生成規則で見出しから生成されます。

セクションの見出しテキストを変更すると、それを指しているアンカーリンクは静かに壊れます。リンク先ファイル自体は存在するため REF-001 リンク切れ には引っかかりません。AI 生成のドキュメントでは存在しないアンカーが混入することもあります。アンカーの妥当性は、リンクの存在検証だけでは検出できないため、別ルールとして必要です。

フィールド必須説明
filesstringこのルールを適用するファイルの glob

オプション全体を省略しても動作します。

docs/architecture.md:
## システム構成
...
docs/overview.md:
詳細は [システム概要](./architecture.md#システム概要) を参照してください。

./architecture.md には ## システム構成 はありますが ## システム概要 はないため違反になります。

docs/overview.md
line 1 error Anchor "#システム概要" does not match any heading in ./architecture.md REF-005

存在する見出し名にリンクを揃えます。

docs/overview.md:
詳細は [システム構成](./architecture.md#システム構成) を参照してください。
{
"rule": "ref005",
"options": {
"files": "docs/**/*.md"
}
}