Skip to content

feat(decisions): add read-only judgment retrieval #120

Description

@lipluscodex

目的

SQLite を正本とする判断履歴を、既存 GitHub RAG MCP ではなく NGR 自身から安全に検索・取得・関係探索できる、判断専用の読み取り surface を core API と optional MCP adapter に追加する。

前提

  • judgments / judgment_revisions / judgment_relationswrite_judgment は実装済みである。
  • judgment は nodes / edges へ検索 projection されるが、現行 MCP search は汎用 corpus 向けで retrieval trace を永続化するため、判断履歴の純粋な読み取り契約にはならない。
  • Li+ / NGR Wiki pilot は専用 SQLite に 86 judgment / 85 relation を移行済みである。
  • 暫定運用では SQLite を判断の正本とし、人間は Decision Structure Wiki を読み取り専用で扱う。

制約

  • search_judgmentsget_judgmenttraverse_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.mdREADME.md - 起動・利用例
  • docs/requirements.md - behavior requirement

Metadata

Metadata

Assignees

Labels

enhancement新機能・改善要望ready本文が実装開始できる形まで収束している状態。ただし更新は継続可能review-pending実装完了後、review または次段階の判断待ち

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions