KNOWLEDGE GRAPH

Project / Global Knowledge Graph

現行: SQLite / Proposal-first

Knowledge GraphはCodeGraphの上位互換というより、役割の異なる意味レイヤーです。 CodeGraphやUnderstand-Anythingがコードから観測するFile・Function・Routeを扱う一方、MURASAMEは自然言語のRequirement、Decision、Constraint、Evidenceを一次情報として蓄積します。

GlobalとProject

Global Knowledge Graph

MURASAME全体で共有する概念、関係、設計論点、検証済みKnowledgeとの対応。DistillerのCandidateはまずここへの未承認提案になる。

Project Knowledge Graph

特定プロジェクトの要求、役割、画面、API、DB、設計理由、テスト、実装対応。会話から段階的に育ち、仕様と骨格生成に使う。

Globalは「答えを押し付けるテンプレート」ではなく、見落としやすい論点を質問する再利用知識です。 Project側でユーザーが決めた内容だけが、今回のプロジェクト固有のGraphになります。

Graphモデル

意図

Project / Requirement / Decision / Constraint / Rationale / Question

業務

Entity / Role / Screen / API / Domain / Flow / Step

根拠

Evidence / Test

実装

Implementation / File / Function / Class / Route / Table / Service / Module

NodeとEdgeに status、provenance、verification、confidence を持たせます。 EvidenceやDecisionをPropertyだけで表さず、関係と履歴を持つFirst-class Nodeにすることで、Requirement → Design → Implementation → Testの追跡を可能にします。

Requirement ├─ IMPLEMENTS → Screen / API / Implementation ├─ CONSTRAINED_BY → Constraint ├─ JUSTIFIED_BY → Rationale / Evidence └─ VALIDATED_BY → Test Role ─ AUTHORIZED_BY → API / Action Screen ─ DISPLAYED_ON → Route Implementation ─ MAPPED_TO → File / Function Entity ─ STORED_IN → Table

信頼境界

入力Graphでの初期状態扱い
ユーザーの明示決定user / confirmed承認履歴を残して採用
Global Knowledge / verified Cardproposedまたは根拠付きProject適用前に対象範囲を確認
LLM / Distillerproposed / unverified自動で確定・通常注入しない
CodeGraph / AST分析code_analysis実装事実・差分候補として扱う
Test / Verification Runtest_verified対象Specと環境を同時に記録

自然言語からのCompletion

User: ブログを作りたい ↓ Global KG: 認証、Role、下書き、公開、Revision、予約公開… ↓ MURASAME: 今回は一般ユーザー登録が必要ですか? ↓ User: 不要。管理者がAuthorを作る。 ↓ Project KG: Requirement / Role / Permission のProposal ↓ approve Specification / Next.js skeleton / 次の質問

ブログは説明用の代表Fixtureです。Completionの対象はブログに固定されず、Global Knowledgeに論点と関係を登録した任意の領域へ拡張します。

CLIの現在の垂直スライス

murasame kg init blog murasame kg demo blog murasame kg dialogue blog "一般ユーザー登録は不要。管理者がAuthorを作る" murasame kg questions blog murasame kg approve <proposalId> murasame kg spec blog --out spec.md murasame kg generate blog --write --out generated

SQLite Storeは kg_nodes、kg_edges、kg_proposals、FTS5、WALを持ちます。 Graphを直接書き換えず、Proposalの承認で適用するため、LLMが勝手に設計を壊す経路を狭めています。

検索と経路探索

StoreはFTS5の全文検索に加えて、グラフ構造を走査する3つのAPIを持ちます。 いずれも決定的なBFS実装で、rejected のNode・Edgeは通らない・結果に含まず、走査の深さ上限は25です。

API意味
neighbors(projectId, nodeId, depth)指定Nodeの近傍を無向・近い順に列挙
reachable(projectId, from, to)2点間の有向到達可能性
findPath(projectId, from, to)2点間の有向最短経路

InMemory / SQLiteの両Storeが同じ純粋関数BFSを共有するため、結果の一致が構造的に保証されます。 CLIのneighbors / path / reachableはこのStore APIをread-onlyで表示し、Sixel/KittyまたはANSI/Unicodeへ描画します。

murasame kg neighbors <projectId> <nodeId> --depth 2 --limit 60 --tui murasame kg path <projectId> <fromNodeId> <toNodeId> --json murasame kg reachable <projectId> <fromNodeId> <toNodeId>

--tuiを付けてもProposal、Import、approve、Card昇格は行いません。Snapshot同期は差分と競合をProposalへ変換できますが、confirmed Node/Edgeの自動上書きは拒否します。

CodeGraph / Understand-Anythingとの接続

CodeGraphはコードの構造検索・呼び出し・影響範囲の観測に使います。Understand-AnythingはプロジェクトのJSON Graph Viewとして交換できます。 MURASAMEは両者を意味Graphへ取り込めますが、外部解析の要約を確定Requirementへ昇格しません。

murasame kg import-codegraph <projectId> <codegraph.db> murasame kg export <projectId> --out knowledge-graph.json murasame kg import-ua <projectId> knowledge-graph.json murasame kg analyze <projectId> --root .

現在の限界

  • 任意ドメインのLLM Graph CompletionはOpenAI互換providerを設定した場合に候補生成できますが、常にproposed / unverifiedで、確定Knowledgeへ自動昇格しません。
  • Graphから本番コードを完全生成・維持するのではなく、レビュー可能な仕様書と最小Skeletonを生成する。
  • コード変更からのReverse Syncは差分候補と確認付きSource Write Planまでであり、完全な自動双方向同期ではない。
  • 外部Graph DB(Kuzu、PostgreSQL、Apache AGE、Neo4j)の実Adapterは未接続。共通Adapter契約はあり、未設定時はSQLiteへ黙ってフォールバックせず停止します。
  • Team syncは署名付きEnvelopeとConflict reviewを提供しますが、常駐同期サービスやconfirmed資産の自動上書きは行いません。
  • Knowledge Fieldのmetricsと明示操作、Card→GraphのEvidence付き明示昇格、Knowledge Packのvalidate/inspect、Private Deploymentのlocal plan/apply/rollback契約を提供します。外部配信・Provisioningは別導入です。
新しいGraph機能を取り込む手順 →