目的
SQLite を正本とする判断履歴を、既存 GitHub RAG MCP ではなく NGR 自身から安全に検索・取得・関係探索できる、判断専用の読み取り surface を core API と optional MCP adapter に追加する。
前提
judgments / judgment_revisions / judgment_relations と write_judgment は実装済みである。
- judgment は
nodes / edges へ検索 projection されるが、現行 MCP search は汎用 corpus 向けで retrieval trace を永続化するため、判断履歴の純粋な読み取り契約にはならない。
- Li+ / NGR Wiki pilot は専用 SQLite に 86 judgment / 85 relation を移行済みである。
- 暫定運用では SQLite を判断の正本とし、人間は Decision Structure Wiki を読み取り専用で扱う。
制約
search_judgments、get_judgment、traverse_judgments に相当する判断専用 core API と MCP tool を追加する。
- 三つの読み取り操作は judgment、revision、relation、trace、feedback、node、edgeを追加・更新・削除しない。失敗時も同様とする。
search_judgments は既存 NGR の検索 projection を利用し、stable ID、score / explanation、current revision、lifecycle、statement、provenance、typed relation を返す。
- lifecycle は既定で
active のみとし、archived は明示指定時だけ含める。
- repository namespace(例:
liplus-language / neuron-graph-rag)で絞り込める。
get_judgment は stable ID の完全一致で current state を返す。
traverse_judgments は relation type、方向、有限 hop を指定でき、cycle-safeかつ決定論的な順序で返す。
- MCP tool は read-only annotation、厳格な input/output schema、既存 error envelope を持つ。
- 既存
search、feedback、write_judgment、library defaults の契約と挙動を変更しない。
- workspace 固有の絶対 DB path はリポジトリへ commit しない。接続例は placeholder path とする。
- 読み取り前後の永続表の同一性、active / archived、namespace、exact get、incoming / outgoing traversal、hop / cycle、MCP schema/error、既存 tool regression をテストする。
- 実装済み機能と、将来の Wiki 自動生成・共有フォルダ・オンプレ配置を文書上で分離する。本Issueは Wiki生成や遠隔配備を含まない。
対象ファイル
src/neuron_graph_rag/judgments.py - 判断専用 read API
src/neuron_graph_rag_mcp/server.py - MCP tool contract / routing
tests/test_judgments.py - core read-only / filter / traversal tests
tests/test_mcp_adapter.py - MCP contract / regression tests
docs/canonical-sqlite-judgment-graph.md - 読み取り契約
docs/optional-mcp-interface.md、README.md - 起動・利用例
docs/requirements.md - behavior requirement
目的
SQLite を正本とする判断履歴を、既存 GitHub RAG MCP ではなく NGR 自身から安全に検索・取得・関係探索できる、判断専用の読み取り surface を core API と optional MCP adapter に追加する。
前提
judgments/judgment_revisions/judgment_relationsとwrite_judgmentは実装済みである。nodes/edgesへ検索 projection されるが、現行 MCPsearchは汎用 corpus 向けで retrieval trace を永続化するため、判断履歴の純粋な読み取り契約にはならない。制約
search_judgments、get_judgment、traverse_judgmentsに相当する判断専用 core API と MCP tool を追加する。search_judgmentsは既存 NGR の検索 projection を利用し、stable ID、score / explanation、current revision、lifecycle、statement、provenance、typed relation を返す。activeのみとし、archivedは明示指定時だけ含める。liplus-language/neuron-graph-rag)で絞り込める。get_judgmentは stable ID の完全一致で current state を返す。traverse_judgmentsは relation type、方向、有限 hop を指定でき、cycle-safeかつ決定論的な順序で返す。search、feedback、write_judgment、library defaults の契約と挙動を変更しない。対象ファイル
src/neuron_graph_rag/judgments.py- 判断専用 read APIsrc/neuron_graph_rag_mcp/server.py- MCP tool contract / routingtests/test_judgments.py- core read-only / filter / traversal teststests/test_mcp_adapter.py- MCP contract / regression testsdocs/canonical-sqlite-judgment-graph.md- 読み取り契約docs/optional-mcp-interface.md、README.md- 起動・利用例docs/requirements.md- behavior requirement