ルール策定前に書かれた設計ドキュメント7点を、以降の基準点として そのままの状態で記録する。CLAUDE.md のルール1〜4は未適用。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdLT5x5ka5y6CaWLeE3EKb
65 lines
3.5 KiB
Markdown
65 lines
3.5 KiB
Markdown
---
|
|
name: doc-lint
|
|
description: ドキュメントがCLAUDE.mdの運用ルール1〜4に沿っているか検査する。推測タグと未確認事項の対応漏れ、journalへのリンク、比較表の混入などを検出する。
|
|
argument-hint: [ファイル...]
|
|
---
|
|
|
|
# ドキュメントのルール違反を検査する
|
|
|
|
機械的に判定できる項目はスクリプトで検出し、判断が要る項目だけ目視で見る。
|
|
**検出して報告するだけで、勝手に直さない。** 修正は内容を確認してもらってから。
|
|
|
|
## 1. スクリプトを走らせる
|
|
|
|
```
|
|
python .claude/skills/doc-lint/doc-lint.py [ファイル...]
|
|
```
|
|
|
|
引数なしで直下の `*.md` と `journal/*.md` を全部見る。ERROR があれば終了コード 1。
|
|
|
|
検出する項目:
|
|
|
|
| 種別 | 内容 |
|
|
|---|---|
|
|
| ERROR | 本文の `[推測:P-n]` に対応する `## 未確認事項` の項目がない |
|
|
| ERROR | `## 未確認事項` の項目に `- 格上げ条件:` の行がない |
|
|
| ERROR | `## 未確認事項` のIDが重複している |
|
|
| ERROR | journal へのリンク / journal から他ファイルへのリンク |
|
|
| ERROR | `## 検討済み・非採用` の項目が journal ファイル名を参照していない |
|
|
| ERROR | journal のファイル名が `YYYY-MM-DD-<topic>.md` 形式でない |
|
|
| WARN | `## 検討済み・非採用` が5件を超えた |
|
|
| WARN | journal の冒頭20行に結論が見当たらない |
|
|
| WARN | メインドキュメントに比較表・優先度評価・却下案の記述らしきもの |
|
|
|
|
**本文タグのない `## 未確認事項` の項目はエラーにしない。** 「まだ本文に書けない未解決の問い」として正当。
|
|
|
|
WARN の散文検出は当たりが粗い。取りこぼしも誤検出もあるので、出た/出ないを結論にしない。
|
|
|
|
## 2. スクリプトで見られない項目を確認する
|
|
|
|
こちらが本体。ファイルを読んで判断する。
|
|
|
|
- **「なぜBではないのか」が理由として残っていないか。**
|
|
却下理由ではなく、現在効いている制約として書かれているか。
|
|
- ✗ `階層構造はKLEが非対応なので諦めた`
|
|
- ○ `階層クラスターはKLE JSONに出力しない(KLE互換性の制約)`
|
|
- **裏取りしていない記述にタグが付いていないか。** 検査項目の中で最も重要で、
|
|
機械では判定できない。「〜できるはず」「〜と考えられる」「実現可能」で実際に試していない
|
|
記述を探し、`[推測:P-n]` が付いているか確認する。
|
|
- **同じ事実が複数ドキュメントに複製されていないか。** 片方だけ古くなる。
|
|
- **journal の冒頭20行で、結論と選択肢が分かるか。** 見出しの有無ではなく中身を読む。
|
|
- **コミット規約**(必要なら `git log --oneline` を見る)
|
|
- 1コミット1決定になっているか
|
|
- journal を伴う決定のメッセージに `Journal:` 行があるか
|
|
|
|
## 3. 報告する
|
|
|
|
ERROR / WARN / 目視で見つけたもの を分けて出す。
|
|
修正案は出してよいが、適用は確認を取ってから。事実関係の誤りを見つけた場合も、直さず指摘する。
|
|
|
|
## 注意
|
|
|
|
- 運用ルール策定前に書かれた既存ドキュメントは、まだルール1〜4が適用されていない。
|
|
WARN が大量に出るのは想定内で、再編(`/restructure-doc`)のタイミングで解消する。
|
|
再編前のファイルの WARN を個別に直そうとしない。
|