このプロジェクトについて
CoalLedgerは、AIコーディングエージェントを対象としたドキュメント品質管理ツールであり、作者によって「ドキュメント版のCoalMine」と表現されています。これは、依存関係ゼロのフック、単一ソースの設定スキーマ、同意ベースの課金、自動編集の禁止という共通のドクトリンを持つ小型アドオンスイート群(CoalMine, CoalTipple, CoalBoard, CoalHearth, CoalFace, CoalWash)であるTheCollieryの一員です。CoalLedgerは単体で、または他のツールと共にインストールして利用できます。
その前提は、コードにはリンターやテスト、CIが存在する一方で、ドキュメントの多くは「希望」に頼っているということです。コードから乖離したREADME、対応元と一致しなくなった翻訳、リンク切れのインストール手順や古いバージョンバッジなどは、読者が信頼し続けてしまう「静かな失敗」です。CoalLedgerは、README、仕様書、レポート、翻訳などのあらゆるドキュメントをスキャンし、レンダリング結果と主張内容を比較します。
以下の7つのカナリア(検知機能)があり、それぞれ異なる失敗モードを検出します:
1. doc-grounding:正解ソース(コード、データ、原文、現実)と一致しない主張を検出。複数のソースからリアルタイムで検証し、オフライン時は「未検証」に下げます。
2. doc-standard:そのドキュメント形式の標準に対する不備(必須セクションの欠落や、未記載の公開APIなど)を検出。
3. doc-rot:古いバージョン、日付、バッジ、放置されたTODO、時代遅れの手順を検出。
4. doc-consistency:ドキュメント間の矛盾、用語の乖離、言語間の乖離を検出。
5. doc-structure:リンク切れ、アンカー、見出し、テーブル、参照、画像の代替テキストの不備を検出。
6. doc-quality:冗長な表現、不明瞭な文章、タイポ、文法、綴りなどの言語的な問題を検出。
7. doc-leak(設定で制限可能):公開ドキュメント内の文章レベルの機密コンテンツをフラグ立てします。トークン形式のシークレットは他のツールに任せ、疑わしい箇所のみを報告します。
スキャンは2つのティアで実行されます。「Quick」は決定論的で実質的に無料のメカニカルレイヤーをカバーし、報告のみを行います。「Full」はモデルの判断を用いるセマンティックレイヤーを追加し、有料であり、常に個別の同意を必要とします。4つのカナリアはメカニカルとセマンティックの両方を組み合わせ、doc-consistencyとdoc-leakはセマンティックのみで動作します。構造チェックには、同梱の依存関係ゼロのCommonMark+GFM ASTエンジンが使用されるため、正しくレンダリングされるコンテンツが誤検知されることはありません。作者は、その忠実度の限界は仕様レベルであり、GitHubのピクセルパーフェクトなレンダリングではないこと、またホスト固有の癖は推測せず制限として報告することを明言しています。
重要度は機械的にではなく、常に文脈で判断されます。アーカイブ内のリンク切れは「低」ですが、インストール手順内のリンク切れは「致命的」となります。確定した検出結果は、疑わしい結果とは別に報告されます。修正は決して自動的に適用されず、すべてのレポートの最後には、「安全な修正」「ユーザー選択による修正」「報告のみ」のメニューが表示されます。メカニカルレイヤーは設計上言語に依存せず、英語のキーワードではなく構造、位置、意味に基づいて動作し、セマンティックレイヤーはそのドキュメント自体の言語で動作します。
別途、オプトイン機能として「docs memory-drift reminder」が用意されています。これはスキャンや報告は行いません。ドキュメントファイル(.md, .mdx, .markdown, .rst, .txt, .adoc, .asciidoc, .org)が編集されたが、セッション内でMEMORY.mdが更新されていない場合、かつプロジェクトがMEMORY.mdの慣習を採用している場合、エージェントの応答終了時に一度だけ静かなシステムメッセージを出力し、MEMORY.mdが更新されると沈黙します。これは無効化可能です。これはCoalMineがコード編集に対して行う同様の促しを補完するものであり、両者は異なるファイル拡張子を監視します。
互換性はプラットフォーム表ではなく機能ベースで定義されています。ライフサイクルフックを持つプラットフォームでは、適切なタイミングで適切なカナリアを提案するセッション開始コンダクターが提供されます。フックのないプラットフォームでは、エージェント駆動によるベストエフォートな呼び出しが行われます。いずれの場合も、カナリアは名前で手動的に呼び出すことが可能です。サポートティアについては正直にラベル付けされており、Claude Codeはライブプラグインとドッグフーディングにより「検証済み」とされ、その他のプラットフォーム(Antigravity, Cursor, Codex, Gemini CLI, Cline, Copilot, claude.ai)は「動作確認済み(works with)」、つまり構築済みだがエンドツーエンドで実証されていない状態とされています。Antigravityの配線については、アップデート後にhooks.jsonの場所が変更されたため、Antigravity自身のドキュメントから再導出する必要があるという注意書きがあります。誤ったパスへの配線は不活性ですが、無害です。
Claude Codeへのインストールは、マーケットプレイスのアドオン追加とプラグインインストールの2つのコマンドで完了し、コンダクターとmemory-drift reminderも同時に設定されます。他のエージェントの場合は、自己完結型のスキルフォルダをコピーします(ASTエンジンはdoc-structureフォルダ内に含まれています)。claude.aiユーザーは、フロントマターの説明がプラットフォームの制限を超えるため、スキルをまとめてZIP化しないことが推奨されており、代わりに説明を削ったカナリアごとのZIPファイルがSHA256チェックサムと共にReleasesページで公開されています。
コマンドには、各カナリアごとのコマンドに加えて、/coalledger:stats(セッション内スキャンと検出結果の統計)と/coalledger:update(バージョンチェックとアップデート処理)が含まれます。設定はグローバルファイルと、既知のエージェントディレクトリから解決されるプロジェクトごとのファイルをサポートしており、レガシーなルートパスも引き続き読み込まれます。設定キーには、オン/オフモード、報告言語、無効化するカナリア、重要度のしきい値、全スキャンオーバーライド、Quick/Fullのデフォルトティア、doc-leakゲート、公開ドキュメントフラグ、memory-drift促し、オプションのエムダッシュ(em-dash)タイポグラフィルール、アップデートチェック動作などが含まれます。プロジェクト単位で完全にオフにして、スキルのロードを停止させることも可能です。
権限は厳格に定義されています。指定されたドキュメントと、そのリンク先ファイルのみを読み取り、書き込みは自身のスクラッチファイルとアップデートスタンプのみです。ローカルで実行されるのは最大3つの項目(読み取り専用のASTエンジン、修正前のgit stashチェックポイント、および同意がある場合のみドキュメントが動作を主張している例の検証)であり、ドキュメントを勝手に編集することはありません。ネットワーク利用はオプトイン方式です。有料のFullティアによるソース検証と自己アップデートチェックは、それぞれ個別の同意が必要です。フックとエンジンがオンラインになることはありません。APIキーやnpm installは不要です。
ベンチマークについて、本プロジェクトは誠実な姿勢をとっています。捏造した数字を出すのではなく、未ベンチマークの状態でリリースしています。メカニカルレイヤーはリポジトリ内のフィクスチャ(意図的に植えられた欠陥は検出され、クリーンなデコイは沈黙する)によって検証スクリプトで管理されており、今後はバージョンごとの初回実行から、カナリアごとの再現率を測定した結果ダイジェストを掲載する計画です。
Apache 2.0ライセンスの下で提供されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.