コンテンツにスキップ

CTX-001 プレースホルダ検出

セクションの本文が空、または TODO / TBD / WIP のようなプレースホルダだけで構成されていないかを検証します。検出されると warning で報告されます。デフォルトのプレースホルダは TBD / TODO / WIP / FIXME / N/A で、ハイフン 1 文字(- / / )も「中身なし」として検出されます。

ドキュメントのテンプレートを埋めていく途中で TODO: あとで書くTBD を残したまま、別の作業に移って忘れてしまうことがあります。AI に下書きを書かせた直後のドラフトにもこの種のプレースホルダは混入しがちです。Markdown としては valid なので markdownlint も CI も素通りしますが、ドキュメントとしては未完成です。このルールはそうした “見落とされやすい未完成箇所” を検出します。

フィールド必須説明
sectionstring検証対象を特定セクションだけに絞る(見出しテキストの完全一致)
placeholdersstring[]プレースホルダとして扱う文字列の配列。指定すると デフォルト値を上書き する(追加ではない)
filesstringこのルールを適用するファイルの glob

判定は大文字・小文字を区別せず、本文を trim した結果がプレースホルダ全体と一致するかを見ます。本文中に TODO という単語が混じっているだけでは検出されません。

## 概要
このドキュメントは...
## 設計方針
TBD
## 影響範囲
-

設計方針 がプレースホルダ TBD だけ、影響範囲- のみで中身なしと判定され、それぞれ違反になります。

docs/design.md
line 7 warning Section "設計方針" contains only placeholder "TBD" CTX-001
line 11 warning Section "影響範囲" contains only placeholder "-" CTX-001

セクション本文が完全に空の場合は次のメッセージで報告されます。

docs/design.md
line 7 warning Section "設計方針" has no content CTX-001
## 概要
このドキュメントは...
## 設計方針
新しい認証フローでは OAuth 2.0 を採用し、既存のセッションベース認証から段階的に移行する。
## 影響範囲
`packages/auth` 配下の全モジュールに影響する。
{
"rule": "ctx001",
"options": {
"section": "設計方針",
"placeholders": ["TBD", "TODO", "未定"],
"files": "**/adr/*.md"
}
}

placeholders を指定する場合はデフォルトを上書きします。「日本語の 未定 も検出したい」 ようなときは、デフォルトで使う値も明示的に列挙し直す必要があります。