콘텐츠로 이동

CTX-001 플레이스홀더 검출

섹션의 본문이 비어 있거나, TODO / TBD / WIP 같은 플레이스홀더만으로 구성되어 있지 않은지를 검증합니다. 검출되면 warning 으로 보고됩니다. 기본 플레이스홀더는 TBD / TODO / WIP / FIXME / N/A이며, 하이픈 1글자(- / / )도 「내용 없음」 으로 검출됩니다.

문서의 템플릿을 채워 가는 도중에 TODO: 나중에 작성 이나 TBD를 남긴 채 다른 작업으로 옮기고 잊어버리는 경우가 있습니다. AI에게 초안을 작성시킨 직후의 드래프트에도 이런 종류의 플레이스홀더가 섞이기 쉽습니다. Markdown으로서는 valid이기 때문에 markdownlint도 CI도 그냥 지나가지만, 문서로서는 미완성입니다. 이 규칙은 그런 “놓치기 쉬운 미완성 부분” 을 검출합니다.

필드 타입 필수 설명
section string 검증 대상을 특정 섹션으로 한정(제목 텍스트의 완전 일치)
placeholders string[] 플레이스홀더로 취급할 문자열의 배열. 지정하면 기본값을 덮어쓴다 (추가가 아님)
files string 이 규칙을 적용할 파일의 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를 지정하는 경우는 기본값을 덮어씁니다. 「한국어의 미정도 검출하고 싶다」 와 같은 경우는, 기본으로 사용할 값도 명시적으로 다시 열거할 필요가 있습니다.