KNOWLEDGE GRAPH
Project / Global Knowledge Graph
現行: SQLite / Proposal-firstKnowledge 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 Card | proposedまたは根拠付き | Project適用前に対象範囲を確認 |
| LLM / Distiller | proposed / unverified | 自動で確定・通常注入しない |
| CodeGraph / AST分析 | code_analysis | 実装事実・差分候補として扱う |
| Test / Verification Run | test_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 generatedSQLite 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は別導入です。