--- name: knowledge-ops description: 複数のストレージレイヤー(ローカルファイル、MCP メモリ、ベクターストア、Git リポジトリ)にわたるナレッジベースの管理、取り込み、同期、検索。ユーザーが知識システム全体で保存・整理・同期・重複排除・検索を行いたい場合に使用します。 origin: ECC --- # ナレッジ操作 複数のストアにわたって知識を取り込み・整理・同期・検索するための多層ナレッジシステムを管理します。 ライブワークスペースモデルを優先してください: - コード作業は実際にクローンしたリポジトリ内に置く - アクティブな実行コンテキストは GitHub、Linear、リポジトリローカルの working-context ファイルに置く - 広範な人間向けノートはリポジトリ外のコンテキスト/アーカイブフォルダに置くことができる - 耐久性のあるクロスマシンメモリはシャドウリポジトリのワークスペースではなく、ナレッジベースに置く ## アクティベートするタイミング - ユーザーがナレッジベースに情報を保存したい - ドキュメント・会話・データを構造化されたストレージに取り込む - システム間で知識を同期する(ローカルファイル、MCP メモリ、Supabase、Git リポジトリ) - 既存の知識を重複排除または整理する - ユーザーが「KB に保存して」「ナレッジを同期して」「X について何を知っているか」「取り込んで」「ナレッジベースを更新して」と言う - 単純なメモリ呼び出しを超えたあらゆるナレッジ管理タスク ## ナレッジアーキテクチャ ### レイヤー 1: アクティブな実行の真実 - **ソース:** GitHub のイシュー、PR、ディスカッション、リリースノート、Linear のイシュー/プロジェクト/ドキュメント - **用途:** 作業の現在の運用状態 - **ルール:** アクティブなエンジニアリング計画・ロードマップ・ロールアウト・リリースに影響する場合は、まずここに置くことを優先する ### レイヤー 2: Claude Code メモリ(クイックアクセス) - **パス:** `~/.claude/projects/*/memory/` - **フォーマット:** フロントマター付き Markdown ファイル - **タイプ:** ユーザー設定、フィードバック、プロジェクトコンテキスト、リファレンス - **用途:** 会話間で持続するクイックアクセスコンテキスト - **セッション開始時に自動読み込み** ### レイヤー 3: MCP メモリサーバー(構造化ナレッジグラフ) - **アクセス:** MCP メモリツール(create_entities、create_relations、add_observations、search_nodes) - **用途:** 保存されたすべてのメモリに対するセマンティック検索、関係マッピング - **クエリ可能なグラフ構造によるクロスセッション永続化** ### レイヤー 4: ナレッジベースリポジトリ / 耐久性ドキュメントストア - **用途:** キュレートされた耐久性ノート、セッションエクスポート、合成されたリサーチ、オペレーターメモリ、長文ドキュメント - **ルール:** コンテンツがリポジトリ所有のコードでない場合の、クロスマシンコンテキストの優先耐久性ストア ### レイヤー 5: 外部データストア(Supabase、PostgreSQL など) - **用途:** 構造化データ、大規模ドキュメントストレージ、全文検索 - **最適な場面:** メモリファイルには大きすぎるドキュメント、SQL クエリが必要なデータ ### レイヤー 6: ローカルコンテキスト/アーカイブフォルダ - **用途:** 人間向けノート、アーカイブされたゲームプラン、ローカルメディア整理、一時的な非コードドキュメント - **ルール:** 情報ストレージには書き込み可能だが、シャドウコードワークスペースとしては使用しない - **使用しない場面:** アクティブなコード変更や上流に置くべきリポジトリの真実 ## 取り込みワークフロー 新しい知識を取り込む必要がある場合: ### 1. 分類 どのタイプの知識か? - ビジネス決定 -> メモリファイル(プロジェクトタイプ)+ MCP メモリ - アクティブなロードマップ / リリース / 実装状態 -> まず GitHub + Linear - 個人的な好み -> メモリファイル(ユーザー/フィードバックタイプ) - リファレンス情報 -> メモリファイル(リファレンスタイプ)+ MCP メモリ - 大規模ドキュメント -> 外部データストア + メモリ内サマリー - 会話/セッション -> ナレッジベースリポジトリ + メモリ内短いサマリー ### 2. 重複排除 この知識がすでに存在するか確認する: - 既存エントリのメモリファイルを検索する - 関連用語で MCP メモリをクエリする - 別のローカルノートを作成する前に、その情報が既に GitHub や Linear に存在するか確認する - 重複を作らない。代わりに既存エントリを更新する。 ### 3. 保存 適切なレイヤーに書き込む: - クイックアクセスのために常に Claude Code メモリを更新する - セマンティック検索可能性と関係マッピングのために MCP メモリを使用する - 情報がライブプロジェクトの真実を変える場合はまず GitHub / Linear を更新する - 耐久性のある長文追記はナレッジベースリポジトリにコミットする ### 4. インデックス化 関連するインデックスまたはサマリーファイルを更新する。 ## 同期操作 ### 会話の同期 会話履歴を定期的にナレッジベースに同期する: - ソース: Claude セッションファイル、Codex セッション、その他のエージェントセッション - 宛先: ナレッジベースリポジトリ - クイックブラウジング用のセッションインデックスを生成する - コミットしてプッシュする ### ワークスペース状態の同期 重要なワークスペース設定とスクリプトをナレッジベースにミラーする: - ディレクトリマップを生成する - コミット前に機密設定を編集する - 時系列で変更を追跡する - ナレッジベースやアーカイブフォルダをライブコードワークスペースとして扱わない ### GitHub / Linear の同期 情報がアクティブな実行に影響する場合: - 関連する GitHub イシュー、PR、ディスカッション、リリースノート、またはロードマップスレッドを更新する - 作業に耐久性のある計画コンテキストが必要な場合は Linear にサポートドキュメントを添付する - ローカルノートが追加の価値を提供する場合のみ、後でミラーする ### クロスソースナレッジの同期 複数のソースから一箇所に知識を集める: - Claude/ChatGPT/Grok 会話エクスポート - ブラウザブックマーク - GitHub アクティビティイベント - ステータスサマリーを書き、コミットしてプッシュする ## メモリパターン ``` # 短期: 現在のセッションコンテキスト セッション内タスク追跡には TodoWrite を使用 # 中期: プロジェクトメモリファイル クロスセッション呼び出しのために ~/.claude/projects/*/memory/ に書き込む # 長期: GitHub / Linear / KB アクティブな実行の真実は GitHub + Linear に 耐久性のある合成コンテキストはナレッジベースリポジトリに # セマンティックレイヤー: MCP ナレッジグラフ 永続的な構造化データには mcp__memory__create_entities を使用 関係マッピングには mcp__memory__create_relations を使用 既知エンティティへの新しい事実には mcp__memory__add_observations を使用 既存の知識を見つけるには mcp__memory__search_nodes を使用 ``` ## ベストプラクティス - メモリファイルを簡潔に保つ。ファイルが無限に成長するのではなく、古いデータをアーカイブする。 - すべてのナレッジファイルのメタデータにフロントマター(YAML)を使用する。 - 保存前に重複排除する。まず検索し、次に作成または更新する。 - 事実セットごとに正規のホームを 1 つにする。ローカルノート・リポジトリファイル・トラッカードキュメントにまたがる同じ計画の並行コピーを避ける。 - Git にコミットする前に機密情報(API キー、パスワード)を編集する。 - ナレッジファイルに一貫した命名規則を使用する(lowercase-kebab-case)。 - 取得しやすくするためにエントリにトピック/カテゴリのタグを付ける。 ## 品質ゲート ナレッジ操作を完了する前に: - 重複エントリが作成されていないこと - Git 追跡ファイルから機密データが編集されていること - インデックスとサマリーが更新されていること - データタイプに適切なストレージレイヤーが選択されていること - 関連する場合はクロスリファレンスが追加されていること