跳转到内容

CTX-001 占位符检测

验证章节正文是否为空,或是否仅由 TODO / TBD / WIP 等占位符构成。检测到时会报告为 warning。默认占位符为 TBD / TODO / WIP / FIXME / N/A,单字符连字符(- / / )也会被视为「无内容」。

在填充文档模板的过程中,可能将 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 时会覆盖默认值。如果希望「也检测中文的 未定」,需要将默认中使用的值也明确重新列出。