Doc-Rot
ユーザーの言語で回答すること。技術用語、コマンド、パス、チェックIDはそのまま維持すること。
時間経過により無効になったドキュメントコンテンツを見つけ出せ。確定した劣化を報告し、単に古いだけのものは「疑い」として保留せよ。
パラメータ
- SCOPE: 指定されたファイル(デフォルト)| 今回のセッションで触れたドキュメントファイル | リポジトリ全体のドキュメント —
.md/.mdx/.markdown/.rst/.txt/.adoc/.asciidoc/.org(20ファイル超の場合は最初に確認)。 - TIER: Quick = 機械的な経年マーカーのみ(ほぼ無料)· Full = 意味的な陳腐化判断(有料)。デフォルトは
.coalledger.jsonのquickVsFullによる。Fullは常に別途同意が必要。
経年マーカー(機械的層 — 決定論的検出)
| マーカー | シグナル |
|---|---|
| バージョン文字列 | ドキュメントがプロジェクトの現在のバージョンより古いバージョンに言及している(バージョンの真実の情報源、例:マニフェストと比較) |
| 日付スタンプ | 「最終更新日」/ 再検証期限 / 確認日が遠い過去または既に過ぎている |
| 未対応タスクマーカー | 存続の兆候がないTODO / FIXME / 「近日公開」/「未対応」 |
| 古いバッジ | 静的ステータス/バージョンバッジがリポジトリの状態と矛盾している |
検出は決定論的だが、マーカーが劣化(ROT)を意味するかどうかは別問題 — アーカイブ文書の古い日付は問題ないが、インストールガイドの古い日付は問題である。
方法
- Quick: 表に従って経年マーカーを収集する。古い ≠ 劣化:マーカーだけでは「疑い」に留まる。
- Full: 各マーカーをコンテキスト内で判断し、日付のない劣化も調査する — 変更された表面への指示、後続のドキュメントに取って代わられた主張(ライブドキュメント間の純粋な矛盾はドキュメント一貫性の問題であり、劣化は時間軸の問題)。
- 確定前に確認: 現在の状態がドキュメントと矛盾する場合のみ「確定」とする(バージョンの情報源が新しいバージョンを名指ししている、参照された表面が存在しない)。推測されたものはすべて「疑い」に留める。
- コンテキストに基づく重大度(固定マップではない): その後
severityFloorを尊重する。劣化したインストール/セキュリティ手順(読者が従うもの)はHIGH-CRITICAL。古いバッジやバージョン言及はMEDIUM。アーカイブドキュメントの古い日付はLOW。
エスカレーション境界
主張が過去に真実だったかどうかはドキュメント根拠付けの役割であり、リスクの高い主張の形式的検証は、そのスキルがインストールされている場合、CoalBoard(/coalboard)にエスカレーションする。このカナリアは「時間がそれを壊したか」という問いだけに答える。
出力
| # | パス:行 | マーカー | 証拠(現在の状態) | 重大度 | 修正 |
確定テーブルのみ。「疑い」(古いが未証明)は別リストとして、メインテーブルには含めない。
報告: ReportFindingsが呼び出し可能な場合はそれを呼び出す — file/lineはマーカー自身の行でなければならず、言い換えてはならない。解決できない行は最善の推測を報告し、要約で不正確と明記し、決して除外しない。重大度は上記のコンテキストベースのルールに従いsummaryにプレフィックス(例:[HIGH] …)として付けられ、最も重大なものから順に並べ、「疑い」(古いが未証明)はverdict: PLAUSIBLEとする。その後のチャットには要約行のみ(件数 · 疑いリスト · 32件超えの超過分)+修正メニューを持ち越し、言い換えはしない。呼び出し不可の場合 → 上記テーブルをそのまま使う。「修正を適用」クリック = 以下の安全な修正クラスへの同意(明確な現在値の更新のみ)、Fixモードと組み合わせ、迂回しない。修正ラウンド後、同じ発見をoutcome: fixed/skipped/no_change_neededとともに再報告する。
修正モード(選択制)
対話セッションでの報告後、質問ツールを使って必ずこのメニューを提示する(発見がゼロかユーザーが不在の場合のみスキップ)。ライブドキュメントに自動修正してはならない。
- 安全な修正を適用: 現在の値が明確な更新のみ(バージョン文字列をマニフェストのものに更新、ユーザー確認済みの日付を更新、ユーザー確認済みの期限切れTODOを削除)。各修正:チェックポイント(gitリポジトリではgit stash/commit、それ以外はファイルを別にコピー — gitの存在を仮定しない)→ 適用 → 変更行の再読み取り。
- 自分で選択: 発見を一覧表示。ユーザーが選択する。
- 報告のみ: 変更せず終了。
絶対に自動修正してはならない:置き換えられた手順の書き換え(コンテンツ決定)、セクションの削除、現在の真実を検証していないもの。
多言語
経年マーカーは言語に依存しない(バージョン、日付、バッジはどの散文言語でも同じように見える。日付フォーマットは異なる — 構造で解析し、英語の月名に依存しない)。意味的判断は、適切に処理できない言語に対しては低信頼度フラグに低下し、誤警報は出さない。
問題報告
このカナリアが誤動作した場合、ユーザーがレビューした要約とともに https://github.com/TheColliery/CoalLedger/issues に報告を提案する — 自動送信はしない。