コンテンツにスキップ

REF-004 ゾーン依存

ゾーン(zonesDir 配下のサブディレクトリ)をまたぐ Markdown リンクが、リンク元ゾーンの overview.md の依存セクションで明示的に宣言されていることを検証します。宣言されていないクロスゾーン参照は error で報告されます。

ドキュメントを auth/ payment/ notification/ のようなゾーン(責務単位のディレクトリ)に分けて管理すると、ゾーン間の依存関係が暗黙のリンクとして増えていきます。本来は「authpayment には依存しない」という設計意図があっても、リンクは自由に書けるためいつの間にか増えていきます。このルールは「ゾーン間の依存は overview.md の依存セクションに必ず宣言する」というルールを強制し、設計意図とドキュメント構造を一致させます。

フィールド必須説明
zonesDirstringゾーンが配置されているディレクトリのパス
dependencySectionstring依存を宣言するセクションの見出し(既定値: Dependencies

zonesDir 直下の各サブディレクトリが 1 つのゾーンとして扱われます。各ゾーンには overview.md が存在し、そこに dependencySection で指定した見出しがあること、その配下のテーブルに依存先のゾーン名が並んでいることを期待します。

docs/zones/auth/overview.md:
# Auth zone
## Dependencies
| Zone |
| ---- |
docs/zones/auth/login.md:
詳細は [課金ロジック](../payment/charge.md) を参照してください。

auth/login.md から payment ゾーンへのリンクがありますが、auth/overview.mdDependencies セクションに payment が宣言されていないため違反になります。

docs/zones/auth/login.md
line 1 error Cross-zone reference to "payment" zone, but "payment" is not listed in the "Dependencies" section of auth/overview.md REF-004

依存を overview.md に明示的に追加します。

docs/zones/auth/overview.md:
# Auth zone
## Dependencies
| Zone |
| ------- |
| payment |

不要な依存だった場合は、リンクを除去するか、依存元ゾーンを再検討します。

{
"rule": "ref004",
"options": {
"zonesDir": "docs/zones",
"dependencySection": "Dependencies"
}
}