決定ログ プラグイン (cc-plugin-decision-log)

Tool

概要

このリポジトリは「decision-log」と呼ばれるClaude Codeプラグインで、セッション中に行った決断、試したアプローチ、問題解決の経緯といったメタ情報をディスクに保存することを目的としています。Claude Codeは会話コンテキストの圧縮(compaction)を行うことで詳細が失われる場合があり、本プラグインはその欠落を補うために設計されています。MCP向けツールセット(設定やフック)を通じて、実行時に記録を生み出し、必要に応じて保存された情報をセッションに再注入できるようにします。実装はTypeScriptで、実験段階と明記されており自動テストはあるものの実運用での十分な検証はこれからです。

GitHub

リポジトリの統計情報

  • スター数: 8
  • フォーク数: 0
  • ウォッチャー数: 8
  • コミット数: 6
  • ファイル数: 8
  • メインの言語: TypeScript

主な特徴

  • セッション中の意思決定や試行の過程をローカルに記録して保持する仕組み
  • MCP(Claude Codeプラグイン向けツール)と連携するフックを提供
  • 記録を再注入して、コンテキスト圧縮後でも作業履歴を参照可能に
  • TypeScriptで実装、実験的かつ自動テスト付き

技術的なポイント

このプラグインの技術的要点は「コンテキスト圧縮が失わせる情報を永続化して補完する」という設計目標にあります。Claude Codeではセッションが長くなると不要部分を圧縮してモデルの入力を節約しますが、その過程でどのアプローチが試され、なぜある決定に至ったかといったプロセス情報が失われがちです。本プラグインは、そのようなプロセス情報をMCPの仕組みを通して収集し、ディスクに構造化して保存します。保存フォーマットは構造化データ(JSON相当)を想定しており、エントリにはタイムスタンプ、セッション識別、試行内容、決定理由といったメタデータが含まれる設計です。

実装面ではTypeScriptを用いてプラグイン本体とテストスイートを整備しており、リポジトリ内にMCP設定(.mcp.json)やプラグイン表現(.claude-pluginディレクトリ)が置かれています。これによりClaude Codeのプラグインロード時に必要なメタ情報やエンドポイントが管理されます。また、プラグインは「フック」を提供しており、適切なタイミングでセッションからの情報をキャプチャしたり、保存されたログをセッションに注入したりすることが可能です。フックはセッションの開始・重要な意思決定直後・セッション終了前など条件に応じて呼び出され、保存・再利用のフローを実現します。

品質管理のために自動テストが用意され、プリコミット設定(.pre-commit-config.yaml)も存在するため、開発フローでコード整合性を保ちやすくなっています。現状は「Experimental」と明記されており、実運用での広範な検証やエッジケースへの対応は不十分なため、導入する際はログフォーマット、保存先の扱い(秘密情報の管理や保持期間)、再注入時のインテグリティチェックなどをプロジェクト要件に合わせて拡張することが推奨されます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .claude-plugin: dir
  • .github: dir
  • .gitignore: file
  • .mcp.json: file
  • .pre-commit-config.yaml: file

…他 3 ファイル

まとめ

コンテキスト圧縮で失われる決定過程を補完するための実験的なTypeScriptプラグイン。将来的な安定化とプライバシー配慮が課題。

リポジトリ情報:

READMEの抜粋:

decision-log

Status: Experimental. This plugin has an automated test suite but has barely been tested in real Claude Code sessions. Expect rough edges.

A Claude Code plugin that logs decisions and problem-solving approaches to disk so they survive context compaction.

Why

When Claude Code compacts context, it loses the details of what was tried and decided during the session. This plugin provides MCP tools to record that information as it happens, and hooks that inject it back into…