Project Memory について
Project Memoryは、プロジェクトの計画、根拠、決定、結果、承認済みの教訓をローカルのSQLiteデータベースに保存します。ソフトウェア、コンサルティング、自動化の各プロジェクト向けで、MCP経由のアクセスと読み取り専用HTMLパネルを備えています。
主な機能
- 01ローカルSQLiteのプロジェクト記録
- 02計画・決定・結果の追跡
- 03読み取り専用HTMLパネル
- 04テンプレート化されたフェーズ
- 05パス制限と教訓ガード
活用シーン
- 01セッションをまたいだ作業の継続
- 02決定の根拠と実際の結果の追跡
- 03進捗とプロジェクト記録の確認
- 04許可されたファイルパス内での作業委任
MCP 対応
アシスタントは3つのMCPツールでプロジェクト記録を読み書きします。イベント記録のため、クライアントのライフサイクルフックとも連携します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
プロジェクトメモリー
Project Memory は、1 つのプロジェクトの計画、証拠、決定、成果、採用された教訓をローカルの SQLite データベースに保存します。アシスタントは 3 つの MCP ツールを通じて、これらの記録を読み書きします。読み取り専用のローカルコントロールパネルで同じ記録を確認し、何を承認、採用、マージするかはチャットで決定します。
ソフトウェア製品、コンサルティング案件、n8n で構築したワークフロー自動化に利用できます。作業項目には、コード、ドキュメント、成果物、エクスポートしたワークフローを指定できます。
パブリックベータ版です。 Python 3.11 以降が必要です。ランタイムで使用するのは Python の標準ライブラリだけです。テレメトリー、ホスト型データベース、アカウントはありません。エージェントのチェックと委任された作業は、すでにインストール済みの Codex または Claude Code CLI を通じて実行され、そのアカウントの使用量を消費します。
インストール
uv をインストールしてから、記録しておきたいプロジェクト内で次を実行します。
uvx [email protected] setup --client codex --trust
Claude Code の場合は、--client codex を --client claude に置き換えます。セットアップでは既存の記録や設定を保持したまま、MCP サーバーとライフサイクルフックを接続し、コントロールパネルを開きます。--trust を指定すると、そのクライアントでプロジェクト連携を承認します。自分で接続を承認する場合は、このオプションを省略してください。その後、新しいアシスタントセッションを開始します。ヘッドレスでインストールする場合は --no-view を追加します。
コマンドを永続的に使うには、次を実行します。
uv tool install project-memory-mcp==0.6.0b16
project-memory doctor
project-memory view
PyPI ではなく GitHub から公開済みの wheel を直接インストールするには、次を実行します。
uvx --from https://github.com/Dankaro-projects/project-memory/releases/download/v0.6.0b16/project_memory_mcp-0.6.0b16-py3-none-any.whl project-memory setup --client claude --trust
その他のローカル MCP クライアントでは、setup --client mcp と stdio サーバーを使用します。セットアップとライフサイクルでは、クライアントの設定、プラグイン、アップグレード、バックアップ、削除について説明しています。
プロジェクトを開始する
新しいプロジェクトは、次の 3 つのテンプレートのいずれかを使って開始します。
project-memory init ~/projects/pricing-tool --template product --client codex
| テンプレート | 対象 | スタータードキュメント | フェーズ |
|---|---|---|---|
product | ソフトウェア製品 | docs/brief.md、docs/research.md、docs/architecture.md、docs/stories.md | 目標と概要、調査、要件の承認、アーキテクチャ、ユーザーストーリーと受け入れ、構築、レビューとリリース |
engagement | コンサルティング案件 | engagement/brief.md、engagement/stakeholders.md、engagement/research.md、engagement/findings.md、deliverables/README.md | スコープと概要、ステークホルダーと仮説、調査と証拠、分析と統合、提案と成果物、クライアントレビュー、引き継ぎ |
automation | ワークフロー自動化。n8n のエクスポートを workflows/ に格納します | automation/process.md、automation/systems.md、automation/solution-design.md、workflows/README.md | プロセスの把握、システムと認証情報の一覧作成、ソリューション設計、ワークフローのストーリーとテストデータ、ワークフローの構築、サンプルデータでのテスト、デプロイと引き継ぎ |
init はフォルダーを作成し、--no-git を指定しない限り git を初期化します。また、まだ存在しないスタータードキュメントを作成し、指定したクライアントを接続して、各フェーズを作業項目として記録します。再度実行しても二重に作成されることはなく、編集済みのドキュメントが上書きされることもありません。
キックオフの会話
各テンプレートには、キックオフの質問が 7 つ含まれています。アシスタントは memory_get kickoff で質問を読み取り、たとえば製品がどのような課題を解決するのか、ステークホルダーは誰か、プロセスでどのシステムを使用するかなどを尋ねます。アシスタントは回答を memory_write answer_kickoff で記録し、その回答をもとにスタータードキュメントを作成して、要件を提案します。要件のベースラインを承認できるのはあなただけです。承認されるまでは、コントロールパネルにキックオフチェックリストが表示され、未回答の質問、追加調査が必要な項目、まだ空のスタータードキュメント、各フェーズを確認できます。
日々のワークフロー
望む結果、制約、完了とみなす条件をアシスタントに伝えます。アシスタントは、目標、完了条件、次のアクション、変更が許可されたファイルを含む作業項目を記録し、以降のセッションではその記録をもとに作業を続けます。また、各判断について、根拠、代替案、不確実性、予想される結果とともに記録します。作業後には、実際に起きたことを記録します。後に成功しても、失敗の記録は残ります。
要件を承認し、提案された教訓を受け入れるか却下するかを決め、許可するパスを広げ、何をマージするかを判断するのはあなたです。ドキュメントを取り込んでも、その内容が承認されるわけではありません。また、計画があっても作業が許可されるわけではありません。
コントロールパネル
プロジェクト内で project-memory view を実行するか、アシスタントに Project Memory を開くよう依頼します。パネルは同じデータベースを読み取り、開いている間は更新されます。Notion ワークスペースのような構成で、ビューのサイドバー、ビュー・フィルター・並べ替え・グループ化が可能なデータベーステーブル、リストの横で各項目をページとして開く表示を備えています。ライトテーマとダークテーマを選べます。
| ビュー | 内容 |
|---|---|
| Now | プロジェクトの状況を示す一文、キックオフのチェックリスト、進行中・一時停止中・準備完了・完了の作業とそれぞれの次のステップ、最近の決定事項 |
| Plan | フェーズ、エピック、ストーリー、調査項目、成果物、ワークフローを、ネストされたサブ項目と進捗状況を含むアウトラインとして表示し、フェーズをギャラリー表示 |
| Work | 作業項目のテーブルとボード、および各作業項目の計画、許可されたパス、依存関係、エージェントの実行、系譜、履歴を示すページ |
| Architecture | ソースコード、エクスポートされた n8n ワークフロー、システム、ステークホルダー、成果物などの作成済み項目から構成要素を表示 |
| Dependencies | ブロックされた作業の連鎖を含む作業の依存関係グラフと、宣言されたパッケージのテーブル |
| Decisions | 決定事項とその結果、および要件から結果までの系譜 |
| Learning | 受け入れ済みのガードとその再発、受け入れ待ちの教訓、教訓が記録されていない失敗、スコープの拡大 |
| Agents | ホストの利用状況、エージェントのチェック、委任された実行、マージまたは破棄の判断 |
| Records | あらゆる種類の記録、取り込まれたドキュメント、ホストの実行記録を横断検索 |
| Requirements | 現在の要件、そのバージョン、承認の根拠 |
project-memory view --output review.html --include-bodies --no-open を実行すると、代わりにオフラインスナップショットが書き出されます。コントロールパネルのガイドを参照してください。
Obsidian で記録を読む
project-memory export --obsidian <vault> を実行すると、frontmatter と wikilinks を含む Markdown ノートがフォルダーとして書き出され、Obsidian でボルトとして開けます。作業項目は、それぞれの決定事項、結果、計画を格納したフォルダーになります。ソース、教訓、要件の改訂は、隣接する共有フォルダーに格納されます。Obsidian のグラフ、バックリンク、検索機能をプロジェクトの履歴に活用し、判断を行う場所としては引き続きパネルを使用できます。
エクスポートは一方向です。データベースが信頼できる唯一の情報源であり、エクスポートはボルト内の1つのフォルダーのみを管理して、その外には一切触れません。また、そのフォルダー内で編集したノートは、次回の実行時に失われます。記録を書き込んだセッションの後、セッション停止フックが別のプロセスでボルトを更新します。
エージェントのチェックと委任された作業
Codex または Claude Code が設定されている場合、Project Memory は短時間の独立したホストプロセスを起動できます。エージェントのチェックでは、記録とプロジェクトを読み取り、結果、現在の意図、または未確認の実行について報告します。委任された作業では、計画内で許可されたパスに限定して、作業項目を独自の git worktree で実行します。その後、別のホストが生成された差分をレビューし、あなたがマージします。いずれかのホストが使用上限またはレート制限を報告した場合、実行はもう一方の設定済みホストに一度だけ振り替えられます。
これらの実行では、インストール済みの Codex または Claude Code アカウントを使用し、そのアカウントの使用量を消費します。レビュアーは計画を編集したり、教訓を受け入れたり、何かをマージしたりすることはできません。エージェントのチェックと委任された作業を参照してください。
ガードとスコープ
トリガーを含む承認済みのレッスンはガードになります。ガードが作業項目のパスまたは文言に一致した場合、判断にはそのレッスンを lessons_considered に、明確な「はい」または「いいえ」と理由を添えて記載する必要があります。そうしないと、判断は却下されます。作業項目に許可されたパスが設定されている場合、ライフサイクルフックはその範囲外での編集をブロックし、ブロックの記録を残して、チャットでスコープを拡張するよう求めます。記録フィールドのドキュメントでパターンルールを定義しています。
正直な制約
- 記録された計画は許可ではありません。自律性とスコープは参考情報として記録されます。実行できる内容は、ホスト側の権限と現在の指示によって決まります。
- スコープガードは、編集ツールのファイルパス、パッチマーカー、MCP 書き込みツールの対象を読み取ります。シェルコマンド内のリダイレクトやその他の間接的な書き込みは解析しません。
- フックはイベントを機械的に記録します。そのイベントが何を意味するかを記録できるのはアシスタントだけです。また、パネルが接続されていても、記録が完全であるとは証明されません。
- エージェントの判定は解釈です。チェックに合格しても作業が正しいとは限らず、検出事項の一覧が空でも証明にはなりません。
- アーキテクチャは、インポート、マニフェスト、エクスポートされたワークフローファイルから静的に読み取ります。動的な読み込みは検出されません。
- 範囲を限定した検索では、呼び出しが返す文字数を制限します。ホストのモデル入力全体を制御することはできません。
- 日々の生産性、トークン使用量、修正率、人間の作業時間は測定しておらず、このプロジェクトはそれらについて主張しません。テストと制限事項では、検証済みの内容と未検証の内容を説明しています。
ドキュメント
- ユーザーガイド:最初の会話から納品まで
- コントロールパネルとエージェントのチェックと委任作業
- セットアップとライフサイクルと記録フィールド
- テストと制限事項、コントリビューション、セキュリティ、リリース
パッケージはPyPIとGitHub Releasesで公開されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。