musubix 3.3.10 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/AGENTS.md +949 -0
- package/.github/prompts/sdd-change-apply.prompt.md +283 -0
- package/.github/prompts/sdd-change-archive.prompt.md +241 -0
- package/.github/prompts/sdd-change-init.prompt.md +269 -0
- package/.github/prompts/sdd-design.prompt.md +250 -0
- package/.github/prompts/sdd-implement.prompt.md +387 -0
- package/.github/prompts/sdd-requirements.prompt.md +193 -0
- package/.github/prompts/sdd-review.prompt.md +155 -0
- package/.github/prompts/sdd-security.prompt.md +228 -0
- package/.github/prompts/sdd-steering.prompt.md +269 -0
- package/.github/prompts/sdd-tasks.prompt.md +255 -0
- package/.github/prompts/sdd-test.prompt.md +230 -0
- package/.github/prompts/sdd-validate.prompt.md +304 -0
- package/.github/skills/musubix-adr-generation/SKILL.md +209 -0
- package/.github/skills/musubix-best-practices/SKILL.md +315 -0
- package/.github/skills/musubix-c4-design/SKILL.md +162 -0
- package/.github/skills/musubix-code-generation/SKILL.md +237 -0
- package/.github/skills/musubix-domain-inference/SKILL.md +196 -0
- package/.github/skills/musubix-ears-validation/SKILL.md +161 -0
- package/.github/skills/musubix-sdd-workflow/SKILL.md +217 -0
- package/.github/skills/musubix-technical-writing/SKILL.md +444 -0
- package/.github/skills/musubix-test-generation/SKILL.md +212 -0
- package/.github/skills/musubix-traceability/SKILL.md +141 -0
- package/AGENTS.md +1134 -0
- package/LICENSE +21 -0
- package/README.ja.md +313 -0
- package/README.md +315 -50
- package/bin/musubix-mcp.js +15 -0
- package/bin/musubix.js +9 -1
- package/docs/API-REFERENCE.md +1425 -0
- package/docs/GITHUB-ACTIONS-NPM-SETUP.md +132 -0
- package/docs/INSTALL-GUIDE.ja.md +459 -0
- package/docs/INSTALL-GUIDE.md +459 -0
- package/docs/MIGRATION-v3.0.md +324 -0
- package/docs/MUSUBI-enhancement_roadmap_20260105.md +651 -0
- package/docs/MUSUBIX-v3.0-User-Guide.md +1357 -0
- package/docs/MUSUBIXv2.2.0-Manual-outline.md +136 -0
- package/docs/MUSUBIXv2.2.0-Manual.md +3123 -0
- package/docs/MUSUBIXv2.3.5-Refactering.md +1310 -0
- package/docs/MUSUBIv1.6.1-enhancement_roadmap_20260105.md +291 -0
- package/docs/MUSUBIv2.2.0-USERGUIDE.md +2079 -0
- package/docs/ROADMAP-v1.5.md +116 -0
- package/docs/SwarmCoding.md +1284 -0
- package/docs/Test-prompt.md +105 -0
- package/docs/USER-GUIDE-v1.8.0.md +2371 -0
- package/docs/USER-GUIDE.ja.md +2147 -0
- package/docs/USER-GUIDE.md +3022 -0
- package/docs/YATA-GLOBAL-GUIDE.ja.md +750 -0
- package/docs/YATA-GLOBAL-GUIDE.md +595 -0
- package/docs/YATA-LOCAL-GUIDE.ja.md +989 -0
- package/docs/YATA-LOCAL-GUIDE.md +730 -0
- package/docs/adr/0001-real-time-pattern-learning-architecture-for-v1-5-0.md +75 -0
- package/docs/adr/0002-pattern-sharing-protocol-for-cross-team-collaborat.md +79 -0
- package/docs/adr/0003-owl-2-rl-implementation-strategy-for-advanced-infe.md +90 -0
- package/docs/adr/ADR-v3.4.0-001-deep-research-architecture.md +217 -0
- package/docs/adr/ADR-v3.4.0-002-search-provider-selection.md +308 -0
- package/docs/adr/ADR-v3.4.0-003-lm-api-integration.md +475 -0
- package/docs/enterprise-knowledge-management.md +1737 -0
- package/docs/evolution-from-musubi-to-musubix.md +2170 -0
- package/docs/getting-started-with-sdd.md +1602 -0
- package/docs/moodle-refactering-codegraph-musubix.md +391 -0
- package/docs/moodle-refactering-codegraph.md +278 -0
- package/docs/overview/MUSUBIX-CodeGraph.md +322 -0
- package/docs/overview/MUSUBIX-Core.md +671 -0
- package/docs/overview/MUSUBIX-Decisions.md +494 -0
- package/docs/overview/MUSUBIX-FormalVerify.md +566 -0
- package/docs/overview/MUSUBIX-Knowledge.md +1231 -0
- package/docs/overview/MUSUBIX-Learning.md +837 -0
- package/docs/overview/MUSUBIX-MCP-Server.md +535 -0
- package/docs/overview/MUSUBIX-Overview.md +264 -0
- package/docs/overview/MUSUBIX-Phase1-Complete.md +271 -0
- package/docs/overview/MUSUBIX-Phase2-Complete.md +310 -0
- package/docs/overview/MUSUBIX-Policy.md +477 -0
- package/docs/overview/MUSUBIX-Roadmap-v2.md +399 -0
- package/docs/overview/MUSUBIX-Security-Plan.md +939 -0
- package/docs/overview/MUSUBIX-Security-v2.1.md +668 -0
- package/docs/overview/MUSUBIX-Security.md +891 -0
- package/docs/overview/MUSUBIX-YATA.md +666 -0
- package/docs/overview/MUSUBIX-v2.2.0-Advanced-Learning.md +513 -0
- package/docs/overview/Neuro-SymbolicAI.md +159 -0
- package/docs/packages/knowledge.md +594 -0
- package/docs/qiita-linux-kernel-knowledge-graph.md +596 -0
- package/package.json +55 -49
- package/scripts/generate-quality-gate-report.ts +106 -0
- package/scripts/postinstall.js +94 -0
- package/steering/.musubi-version +1 -0
- package/steering/product.ja.md +572 -0
- package/steering/project.yml +66 -0
- package/steering/rules/constitution.md +491 -0
- package/steering/structure.ja.md +503 -0
- package/steering/tech.ja.md +208 -0
- package/dist/index.d.ts +0 -25
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -74
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1,2170 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 'MUSUBIからMUSUBIXへ:ニューロシンボリックAIの進化'
|
|
3
|
+
tags:
|
|
4
|
+
- AI
|
|
5
|
+
- ソフトウェア開発
|
|
6
|
+
- 知識グラフ
|
|
7
|
+
- LLM
|
|
8
|
+
- ニューロシンボリック
|
|
9
|
+
private: false
|
|
10
|
+
updated_at: '2026-01-06'
|
|
11
|
+
id: null
|
|
12
|
+
organization_url_name: null
|
|
13
|
+
slide: false
|
|
14
|
+
ignorePublish: false
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# はじめに
|
|
19
|
+
|
|
20
|
+
AIコーディング支援ツールは急速に進化しています。本記事では、仕様駆動開発(SDD)フレームワーク「**MUSUBI**」から、ニューロシンボリックAI統合システム「**MUSUBIX**」への進化について解説します。
|
|
21
|
+
|
|
22
|
+
# TL;DR
|
|
23
|
+
|
|
24
|
+
> **最新バージョン**: v1.7.0 | **62ドメイン対応** | **249コンポーネント** | **1429テスト** | **17ベストプラクティス**
|
|
25
|
+
|
|
26
|
+
| 項目 | MUSUBI | MUSUBIX |
|
|
27
|
+
|------|--------|---------|
|
|
28
|
+
| **コンセプト** | 仕様駆動開発(SDD) | ニューロシンボリックAI |
|
|
29
|
+
| **推論方式** | ニューラル(LLM)のみ | ニューラル + シンボリック |
|
|
30
|
+
| **知識基盤** | プロジェクトメモリ | プロジェクトメモリ + 知識グラフ(YATA) |
|
|
31
|
+
| **信頼性** | LLMの確率的出力 | 形式的検証による確実性 |
|
|
32
|
+
| **統合対象** | 7つのAIエージェント | MUSUBI + YATA + 7エージェント |
|
|
33
|
+
| **ドメイン** | 汎用 | 62専門ドメイン対応 |
|
|
34
|
+
| **自己学習** | なし | フィードバックベースの適応学習 |
|
|
35
|
+
| **知識共有** | なし | **プロジェクト間ポータビリティ**(v1.4.0) |
|
|
36
|
+
| **正誤性検証** | なし | **OWL制約チェック**(v1.4.1) |
|
|
37
|
+
| **対話的CLI** | なし | **Interactive REPL**(v1.6.0) |
|
|
38
|
+
| **ローカル知識グラフ** | なし | **YATA Local**(v1.6.3) |
|
|
39
|
+
| **分散型知識プラットフォーム** | なし | **YATA Global**(v1.6.3) |
|
|
40
|
+
| **知識グラフ共有** | なし | **KGPR**(v1.6.4) |
|
|
41
|
+
| **プラットフォーム拡張** | なし | **YATA Platform Enhancements**(v1.7.0) |
|
|
42
|
+
|
|
43
|
+
# 1. MUSUBIとは?
|
|
44
|
+
|
|
45
|
+
## 1.1 概要
|
|
46
|
+
|
|
47
|
+
**MUSUBI**(結び)は、AIコーディングエージェントのための**仕様駆動開発(SDD: Specification-Driven Development)フレームワーク**です。
|
|
48
|
+
|
|
49
|
+
従来のAIコーディング支援は「コードを書く」ことに焦点を当てていましたが、MUSUBIは**要件定義から設計、実装、テストまでの開発ライフサイクル全体**をAIと協調して進めることを目指しています。
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
🤖 7つのAIエージェント × 📋 31の専門スキル × ⚖️ 憲法ガバナンス
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### MUSUBIの核心思想
|
|
56
|
+
|
|
57
|
+
1. **Specification First(仕様優先)**: コードを書く前に、まず要件と設計を明確にする
|
|
58
|
+
2. **Constitutional AI Governance(憲法ガバナンス)**: 9つの不変条項でAIの振る舞いを統治
|
|
59
|
+
3. **Project Memory(プロジェクトメモリ)**: steering/フォルダに決定事項を永続化し、AIが常に参照
|
|
60
|
+
4. **Full Traceability(完全追跡可能性)**: 要件→設計→コード→テストの双方向トレース
|
|
61
|
+
|
|
62
|
+
### 対応AIエージェント
|
|
63
|
+
|
|
64
|
+
MUSUBIは以下の7つの主要AIコーディングエージェントで動作します。
|
|
65
|
+
|
|
66
|
+
| エージェント | 特徴 |
|
|
67
|
+
|-------------|------|
|
|
68
|
+
| **Claude Code** | Anthropic製、高い推論能力、Agent Skills対応 |
|
|
69
|
+
| **GitHub Copilot** | VS Code統合、広範な言語サポート |
|
|
70
|
+
| **Cursor IDE** | AI-first IDE、インライン編集 |
|
|
71
|
+
| **Gemini CLI** | Google製、マルチモーダル対応 |
|
|
72
|
+
| **Codex CLI** | OpenAI製、GPT-4ベース |
|
|
73
|
+
| **Qwen Code** | Alibaba製、オープンソース |
|
|
74
|
+
| **Windsurf** | Codeium製、高速補完 |
|
|
75
|
+
|
|
76
|
+
### Claude Code Agent Skills
|
|
77
|
+
|
|
78
|
+
MUSUBIXは**GitHub Copilot**と**Claude Code**の両方のAgent Skillsに対応しています。v1.1.13から、`.github/skills/`と`.claude/skills/`の両方にスキルをコピーします。
|
|
79
|
+
|
|
80
|
+
現在、**10のスキル**が利用可能です。
|
|
81
|
+
|
|
82
|
+
| スキル名 | 説明 |
|
|
83
|
+
|---------|------|
|
|
84
|
+
| `musubix-sdd-workflow` | SDD開発ワークフロー全体のガイド |
|
|
85
|
+
| `musubix-ears-validation` | EARS形式の要件検証 |
|
|
86
|
+
| `musubix-code-generation` | 設計からのコード生成 |
|
|
87
|
+
| `musubix-c4-design` | C4モデル(Context/Container/Component/Code)設計 |
|
|
88
|
+
| `musubix-traceability` | 要件↔設計↔タスク↔コード↔テストの追跡 |
|
|
89
|
+
| `musubix-test-generation` | TDDパターンに基づくテスト生成 |
|
|
90
|
+
| `musubix-adr-generation` | Architecture Decision Records作成 |
|
|
91
|
+
| `musubix-best-practices` | 17種のベストプラクティス適用 |
|
|
92
|
+
| `musubix-domain-inference` | 62ドメイン検出・コンポーネント推論 |
|
|
93
|
+
| `musubix-technical-writing` | 技術ドキュメント作成(README, ガイド, API参照等) |
|
|
94
|
+
|
|
95
|
+
スキルファイルの配置:
|
|
96
|
+
```
|
|
97
|
+
# GitHub Copilot用
|
|
98
|
+
.github/skills/
|
|
99
|
+
├── musubix-sdd-workflow/SKILL.md # コアワークフロー
|
|
100
|
+
├── musubix-ears-validation/SKILL.md # 要件検証
|
|
101
|
+
├── musubix-code-generation/SKILL.md # コード生成
|
|
102
|
+
├── musubix-c4-design/SKILL.md # C4設計
|
|
103
|
+
├── musubix-traceability/SKILL.md # トレーサビリティ
|
|
104
|
+
├── musubix-test-generation/SKILL.md # テスト生成
|
|
105
|
+
├── musubix-adr-generation/SKILL.md # ADR生成
|
|
106
|
+
├── musubix-best-practices/SKILL.md # ベストプラクティス
|
|
107
|
+
├── musubix-domain-inference/SKILL.md # ドメイン推論
|
|
108
|
+
└── musubix-technical-writing/SKILL.md # 技術ドキュメント
|
|
109
|
+
|
|
110
|
+
# Claude Code用 (同一内容のコピー)
|
|
111
|
+
.claude/skills/
|
|
112
|
+
└── (同様の構造)
|
|
113
|
+
|
|
114
|
+
# AIエージェントガイド
|
|
115
|
+
AGENTS.md # GitHub Copilot用
|
|
116
|
+
CLAUDE.md # Claude Code用 (v1.1.14+)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## 1.2 主な特徴
|
|
120
|
+
|
|
121
|
+
```mermaid
|
|
122
|
+
flowchart LR
|
|
123
|
+
subgraph MUSUBI["MUSUBI Framework"]
|
|
124
|
+
A[EARS要件分析] --> B[C4設計生成]
|
|
125
|
+
B --> C[コード生成]
|
|
126
|
+
C --> D[テスト生成]
|
|
127
|
+
D --> E[トレーサビリティ]
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
subgraph Agents["対応エージェント"]
|
|
131
|
+
F[Claude Code]
|
|
132
|
+
G[GitHub Copilot]
|
|
133
|
+
H[Cursor IDE]
|
|
134
|
+
I[Gemini CLI]
|
|
135
|
+
J[Codex CLI]
|
|
136
|
+
K[Qwen Code]
|
|
137
|
+
L[Windsurf]
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
MUSUBI --> Agents
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
| 機能 | 説明 |
|
|
144
|
+
|------|------|
|
|
145
|
+
| **EARS要件分析** | 5パターンで曖昧さのない要件定義 |
|
|
146
|
+
| **C4モデル生成** | Context/Container/Component/Codeの4階層設計 |
|
|
147
|
+
| **ADR生成** | アーキテクチャ決定記録の自動作成 |
|
|
148
|
+
| **憲法ガバナンス** | 9つの不変条項による品質保証 |
|
|
149
|
+
| **トレーサビリティ** | 要件→設計→コード→テストの完全追跡 |
|
|
150
|
+
| **プロジェクトメモリ** | steering/フォルダによる決定・方針の永続化 |
|
|
151
|
+
|
|
152
|
+
## 1.3 MUSUBIの課題
|
|
153
|
+
|
|
154
|
+
MUSUBIは優れたフレームワークですが、以下の課題がありました。
|
|
155
|
+
|
|
156
|
+
```mermaid
|
|
157
|
+
flowchart TB
|
|
158
|
+
subgraph Challenges["MUSUBIの課題"]
|
|
159
|
+
P1[LLMの確率的出力]
|
|
160
|
+
P2[文脈の揮発性]
|
|
161
|
+
P3[知識の非永続性]
|
|
162
|
+
P4[推論の説明困難]
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
P1 --> I1[同じ入力でも異なる結果]
|
|
166
|
+
P2 --> I2[長い会話で情報喪失]
|
|
167
|
+
P3 --> I3[学習した知識の忘却]
|
|
168
|
+
P4 --> I4[なぜその結論に至ったか不明]
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
| 課題 | 影響 |
|
|
172
|
+
|------|------|
|
|
173
|
+
| **確率的出力** | 同じ要件でも生成結果が毎回異なる |
|
|
174
|
+
| **文脈の揮発性** | 長いセッションで初期情報が失われる |
|
|
175
|
+
| **知識の非永続性** | 過去のプロジェクト知識を活用できない |
|
|
176
|
+
| **推論の説明困難** | AIの判断根拠が不透明 |
|
|
177
|
+
|
|
178
|
+
# 2. YATAとは?
|
|
179
|
+
|
|
180
|
+
## 2.1 概要
|
|
181
|
+
|
|
182
|
+
**YATA**(八咫)は、AIコーディング支援のための知識グラフMCPサーバーです。
|
|
183
|
+
|
|
184
|
+
## 2.2 主な特徴
|
|
185
|
+
|
|
186
|
+
```mermaid
|
|
187
|
+
flowchart TB
|
|
188
|
+
subgraph YATA["YATA Knowledge Graph"]
|
|
189
|
+
direction TB
|
|
190
|
+
Parse[コード解析<br/>Tree-sitter] --> Graph[知識グラフ構築<br/>NetworkX]
|
|
191
|
+
Graph --> Query[グラフクエリ<br/>MCP Tools]
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
subgraph Features["特徴"]
|
|
195
|
+
F1[24言語対応]
|
|
196
|
+
F2[47フレームワーク知識]
|
|
197
|
+
F3[457K+ エンティティ]
|
|
198
|
+
F4[関係性自動検出]
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
YATA --> Features
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
| 機能 | 説明 |
|
|
205
|
+
|------|------|
|
|
206
|
+
| **コード解析** | Tree-sitterによる高速AST解析(24言語) |
|
|
207
|
+
| **知識グラフ** | NetworkXによるエンティティ・関係性グラフ |
|
|
208
|
+
| **関係性検出** | CALLS/IMPORTS/INHERITS/CONTAINSの自動検出 |
|
|
209
|
+
| **フレームワーク知識** | 47フレームワーク、457K+エンティティ |
|
|
210
|
+
| **永続化** | JSON/SQLiteへの保存・読み込み |
|
|
211
|
+
|
|
212
|
+
## 2.3 YATAの強み:シンボリック推論
|
|
213
|
+
|
|
214
|
+
```mermaid
|
|
215
|
+
flowchart LR
|
|
216
|
+
subgraph Symbolic["シンボリック推論"]
|
|
217
|
+
E[エンティティ] --> R[関係性]
|
|
218
|
+
R --> P[パターン検出]
|
|
219
|
+
P --> V[形式的検証]
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
V --> Result[確定的結果]
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
YATAの知識グラフは**シンボリック推論**を実現します。
|
|
226
|
+
|
|
227
|
+
| 特性 | 説明 |
|
|
228
|
+
|------|------|
|
|
229
|
+
| **確定性** | 同じクエリには常に同じ結果 |
|
|
230
|
+
| **追跡可能性** | 結論に至った経路を完全追跡 |
|
|
231
|
+
| **形式的検証** | 論理的整合性を数学的に検証 |
|
|
232
|
+
| **永続性** | 知識は明示的に更新されるまで保持 |
|
|
233
|
+
|
|
234
|
+
# 3. MUSUBIXの誕生
|
|
235
|
+
|
|
236
|
+
## 3.1 ニューロシンボリックAIとは?
|
|
237
|
+
|
|
238
|
+
**ニューロシンボリックAI**(Neuro-Symbolic AI)は、第3次AIブームの次なる進化として注目されるパラダイムです。従来の深層学習(ニューラルネットワーク)と、古典的AIのシンボリック推論を融合し、両者の強みを活かしながら弱点を補完します。
|
|
239
|
+
|
|
240
|
+
### 3.1.1 なぜニューロシンボリックなのか?
|
|
241
|
+
|
|
242
|
+
現代のLLM(Large Language Model)は驚異的な能力を持ちますが、根本的な限界があります。
|
|
243
|
+
|
|
244
|
+
```mermaid
|
|
245
|
+
flowchart TB
|
|
246
|
+
subgraph LLMの限界["🧠 LLMの限界"]
|
|
247
|
+
L1[幻覚<br/>Hallucination]
|
|
248
|
+
L2[確率的出力<br/>Non-deterministic]
|
|
249
|
+
L3[説明困難<br/>Black Box]
|
|
250
|
+
L4[知識の固定<br/>Training Cutoff]
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
subgraph シンボリックの限界["📐 シンボリックの限界"]
|
|
254
|
+
S1[脆弱性<br/>Brittleness]
|
|
255
|
+
S2[スケーラビリティ<br/>Scalability]
|
|
256
|
+
S3[知識獲得<br/>Knowledge Acquisition]
|
|
257
|
+
S4[曖昧さ処理<br/>Ambiguity]
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
subgraph 統合の価値["⚡ 統合の価値"]
|
|
261
|
+
V1[幻覚の検出・防止]
|
|
262
|
+
V2[決定的な検証]
|
|
263
|
+
V3[推論の説明可能性]
|
|
264
|
+
V4[動的知識更新]
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
LLMの限界 --> 統合の価値
|
|
268
|
+
シンボリックの限界 --> 統合の価値
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### 3.1.2 System 1 と System 2 思考
|
|
272
|
+
|
|
273
|
+
認知科学者ダニエル・カーネマンの「ファスト&スロー」理論に基づくと、人間の思考には2つのシステムがあります。
|
|
274
|
+
|
|
275
|
+
| システム | 特徴 | AI対応 |
|
|
276
|
+
|----------|------|--------|
|
|
277
|
+
| **System 1** | 直感的、高速、自動的、パターン認識 | ニューラル(LLM) |
|
|
278
|
+
| **System 2** | 論理的、低速、意図的、推論 | シンボリック(知識グラフ) |
|
|
279
|
+
|
|
280
|
+
MUSUBIXは、この2つのシステムを統合することで、人間の思考プロセスに近いAI推論を実現します。
|
|
281
|
+
|
|
282
|
+
```mermaid
|
|
283
|
+
flowchart LR
|
|
284
|
+
subgraph Human["人間の思考"]
|
|
285
|
+
H1[System 1<br/>直感] --> H3[統合判断]
|
|
286
|
+
H2[System 2<br/>論理] --> H3
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
subgraph MUSUBIX["MUSUBIXの推論"]
|
|
290
|
+
M1[LLM<br/>パターン認識] --> M3[NeuroSymbolic<br/>Integrator]
|
|
291
|
+
M2[知識グラフ<br/>論理推論] --> M3
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
Human -.->|モデル化| MUSUBIX
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### 3.1.3 ニューロシンボリック統合パターン
|
|
298
|
+
|
|
299
|
+
ニューロシンボリックAIには複数の統合パターンがあります。MUSUBIXは**Symbolic→Neural→Symbolic**パターンを採用:
|
|
300
|
+
|
|
301
|
+
```mermaid
|
|
302
|
+
flowchart LR
|
|
303
|
+
subgraph Pattern1["パターン1: Neural→Symbolic"]
|
|
304
|
+
P1A[LLM出力] --> P1B[シンボリック検証]
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
subgraph Pattern2["パターン2: Symbolic→Neural"]
|
|
308
|
+
P2A[知識検索] --> P2B[LLMによる生成]
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
subgraph Pattern3["パターン3: Symbolic→Neural→Symbolic"]
|
|
312
|
+
P3A[知識検索] --> P3B[LLM推論] --> P3C[検証・矛盾検出]
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
Pattern3 --> Best["✅ MUSUBIXが採用"]
|
|
316
|
+
|
|
317
|
+
style Pattern3 fill:#e1f5fe
|
|
318
|
+
style Best fill:#c8e6c9
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
| 統合パターン | 説明 | 適用例 |
|
|
322
|
+
|-------------|------|--------|
|
|
323
|
+
| Neural→Symbolic | LLM出力をシンボリックで検証 | ファクトチェック |
|
|
324
|
+
| Symbolic→Neural | 知識を元にLLMが生成 | RAG(検索拡張生成) |
|
|
325
|
+
| **Symbolic→Neural→Symbolic** | 知識検索→LLM推論→検証 | **MUSUBIX** |
|
|
326
|
+
|
|
327
|
+
```mermaid
|
|
328
|
+
flowchart TB
|
|
329
|
+
subgraph NeuroSymbolic["ニューロシンボリックAI"]
|
|
330
|
+
Neural[ニューラル推論<br/>LLM] --> Integration[統合レイヤー]
|
|
331
|
+
Symbolic[シンボリック推論<br/>知識グラフ] --> Integration
|
|
332
|
+
Integration --> Output[検証済み出力]
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
subgraph Benefits["メリット"]
|
|
336
|
+
B1[創造性 + 正確性]
|
|
337
|
+
B2[柔軟性 + 一貫性]
|
|
338
|
+
B3[直感 + 論理]
|
|
339
|
+
end
|
|
340
|
+
|
|
341
|
+
NeuroSymbolic --> Benefits
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
| 推論タイプ | 強み | 弱み |
|
|
345
|
+
|-----------|------|------|
|
|
346
|
+
| **ニューラル** | 創造性、柔軟性、自然言語理解 | 確率的、説明困難 |
|
|
347
|
+
| **シンボリック** | 正確性、説明可能性、一貫性 | 柔軟性に欠ける |
|
|
348
|
+
| **統合** | 両方の強みを活用 | 統合の複雑さ |
|
|
349
|
+
|
|
350
|
+
## 3.2 MUSUBIXのアーキテクチャ
|
|
351
|
+
|
|
352
|
+
```mermaid
|
|
353
|
+
flowchart TB
|
|
354
|
+
subgraph MUSUBIX["MUSUBIX System v1.3.0"]
|
|
355
|
+
subgraph Packages["パッケージ構成(7パッケージ)"]
|
|
356
|
+
Core["@nahisaho/musubix-core<br/>224コンポーネント | 62ドメイン"]
|
|
357
|
+
MCP["@nahisaho/musubix-mcp-server<br/>16ツール, 3プロンプト"]
|
|
358
|
+
YATA_Client["@nahisaho/musubix-yata-client"]
|
|
359
|
+
PatternMCP["@nahisaho/musubix-pattern-mcp<br/>パターン学習"]
|
|
360
|
+
OntologyMCP["@nahisaho/musubix-ontology-mcp<br/>N3Store推論"]
|
|
361
|
+
WakeSleep["@nahisaho/musubix-wake-sleep<br/>学習サイクル"]
|
|
362
|
+
SDDOntology["@nahisaho/musubix-sdd-ontology"]
|
|
363
|
+
end
|
|
364
|
+
|
|
365
|
+
subgraph Integration["統合レイヤー"]
|
|
366
|
+
NSI["NeuroSymbolicIntegrator"]
|
|
367
|
+
CE["ConfidenceEvaluator"]
|
|
368
|
+
CD["ContradictionDetector"]
|
|
369
|
+
LS["LearningSystem"]
|
|
370
|
+
WS["WakeSleepCycle"]
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
Core --> Integration
|
|
374
|
+
MCP --> Integration
|
|
375
|
+
YATA_Client --> Integration
|
|
376
|
+
PatternMCP --> Integration
|
|
377
|
+
OntologyMCP --> Integration
|
|
378
|
+
WakeSleep --> Integration
|
|
379
|
+
end
|
|
380
|
+
|
|
381
|
+
subgraph External["外部システム"]
|
|
382
|
+
LLM["LLM API<br/>Claude/GPT/Gemini"]
|
|
383
|
+
YATA_Server["YATA MCP Server<br/>知識グラフ"]
|
|
384
|
+
end
|
|
385
|
+
|
|
386
|
+
Integration --> LLM
|
|
387
|
+
Integration --> YATA_Server
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
## 3.3 信頼度評価アルゴリズム
|
|
391
|
+
|
|
392
|
+
MUSUBIXの核心は**信頼度評価**にあります。
|
|
393
|
+
|
|
394
|
+
```mermaid
|
|
395
|
+
flowchart TD
|
|
396
|
+
Start[推論リクエスト] --> Neural[ニューラル推論<br/>LLM]
|
|
397
|
+
Start --> Symbolic[シンボリック推論<br/>YATA]
|
|
398
|
+
|
|
399
|
+
Neural --> NC[信頼度スコア<br/>0.0-1.0]
|
|
400
|
+
Symbolic --> SV[検証結果<br/>valid/invalid]
|
|
401
|
+
|
|
402
|
+
NC --> Decision{判定ロジック}
|
|
403
|
+
SV --> Decision
|
|
404
|
+
|
|
405
|
+
Decision -->|invalid| Reject[ニューラル結果を棄却]
|
|
406
|
+
Decision -->|valid & ≥0.8| AcceptNeural[ニューラル結果を採用]
|
|
407
|
+
Decision -->|valid & <0.8| AcceptSymbolic[シンボリック結果を優先]
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
| シンボリック結果 | ニューラル信頼度 | 最終決定 |
|
|
411
|
+
|-----------------|-----------------|---------|
|
|
412
|
+
| invalid | - | ニューラル結果を棄却 |
|
|
413
|
+
| valid | ≥0.8 | ニューラル結果を採用 |
|
|
414
|
+
| valid | <0.8 | シンボリック結果を優先 |
|
|
415
|
+
|
|
416
|
+
# 4. MUSUBIからMUSUBIXへの進化ポイント
|
|
417
|
+
|
|
418
|
+
## 4.1 機能比較
|
|
419
|
+
|
|
420
|
+
MUSUBIとMUSUBIXの機能を比較すると、MUSUBIXではすべての機能が**知識グラフによる検証・補完**で強化されています。さらに、MUSUBIにはなかった「説明生成」「矛盾検出」機能が新たに追加され、ニューロシンボリックAIの特性を最大限に活用しています。
|
|
421
|
+
|
|
422
|
+
```mermaid
|
|
423
|
+
flowchart LR
|
|
424
|
+
subgraph MUSUBI["MUSUBI"]
|
|
425
|
+
M1[EARS要件]
|
|
426
|
+
M2[C4設計]
|
|
427
|
+
M3[コード生成]
|
|
428
|
+
M4[テスト生成]
|
|
429
|
+
end
|
|
430
|
+
|
|
431
|
+
subgraph MUSUBIX["MUSUBIX"]
|
|
432
|
+
X1[EARS要件 + 知識グラフ検証]
|
|
433
|
+
X2[C4設計 + パターン検出]
|
|
434
|
+
X3[コード生成 + 静的解析]
|
|
435
|
+
X4[テスト生成 + カバレッジ分析]
|
|
436
|
+
X5[説明生成]
|
|
437
|
+
X6[矛盾検出]
|
|
438
|
+
end
|
|
439
|
+
|
|
440
|
+
M1 -.->|強化| X1
|
|
441
|
+
M2 -.->|強化| X2
|
|
442
|
+
M3 -.->|強化| X3
|
|
443
|
+
M4 -.->|強化| X4
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
上図の通り、MUSUBIの4つの基本機能(要件・設計・コード・テスト)はすべてMUSUBIXで強化され、さらに2つの新機能(説明生成・矛盾検出)が追加されています。
|
|
447
|
+
|
|
448
|
+
| 強化ポイント | 説明 |
|
|
449
|
+
|-------------|------|
|
|
450
|
+
| **知識グラフ検証** | オントロジーに基づく要件の意味的検証 |
|
|
451
|
+
| **パターン検出** | 設計パターンの自動識別と推奨 |
|
|
452
|
+
| **静的解析** | コード品質・セキュリティの自動チェック |
|
|
453
|
+
| **カバレッジ分析** | テスト網羅性の可視化と改善提案 |
|
|
454
|
+
| **説明生成** | 推論過程の可視化と自然言語説明 |
|
|
455
|
+
| **矛盾検出** | 要件・設計間の論理的矛盾の自動検出 |
|
|
456
|
+
|
|
457
|
+
## 4.2 オントロジーとは?
|
|
458
|
+
|
|
459
|
+
MUSUBIXで重要な概念である**オントロジー**について解説します。
|
|
460
|
+
|
|
461
|
+
### 4.2.1 オントロジーの定義
|
|
462
|
+
|
|
463
|
+
**オントロジー**(Ontology)は、ある領域の概念とその関係性を形式的に定義した知識表現です。哲学の「存在論」から派生した用語で、AIでは「知識の構造化」を意味します。
|
|
464
|
+
|
|
465
|
+
```mermaid
|
|
466
|
+
flowchart TB
|
|
467
|
+
subgraph Ontology["オントロジーの構成要素"]
|
|
468
|
+
Concepts[概念<br/>Concepts] --> Relations[関係性<br/>Relations]
|
|
469
|
+
Relations --> Instances[インスタンス<br/>Instances]
|
|
470
|
+
Instances --> Rules[ルール<br/>Rules]
|
|
471
|
+
end
|
|
472
|
+
|
|
473
|
+
subgraph Example["例: 認証ドメイン"]
|
|
474
|
+
E1[User] -->|authenticates_with| E2[Credential]
|
|
475
|
+
E2 -->|generates| E3[Token]
|
|
476
|
+
E3 -->|authorizes| E4[Resource]
|
|
477
|
+
end
|
|
478
|
+
|
|
479
|
+
Ontology --> Example
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
### 4.2.2 なぜオントロジーが重要か?
|
|
483
|
+
|
|
484
|
+
| 観点 | 説明 |
|
|
485
|
+
|------|------|
|
|
486
|
+
| **共通語彙** | チーム・システム間で同じ用語を同じ意味で使用 |
|
|
487
|
+
| **推論可能性** | 明示されていない関係を論理的に導出 |
|
|
488
|
+
| **整合性検証** | 矛盾する定義を自動検出 |
|
|
489
|
+
| **再利用性** | 定義済み概念を他プロジェクトで活用 |
|
|
490
|
+
|
|
491
|
+
### 4.2.3 MUSUBIXでのオントロジー活用
|
|
492
|
+
|
|
493
|
+
MUSUBIXは以下のオントロジーを活用:
|
|
494
|
+
|
|
495
|
+
```mermaid
|
|
496
|
+
flowchart LR
|
|
497
|
+
subgraph DomainOntology["ドメインオントロジー"]
|
|
498
|
+
DO1[ビジネス概念]
|
|
499
|
+
DO2[業務フロー]
|
|
500
|
+
DO3[制約条件]
|
|
501
|
+
end
|
|
502
|
+
|
|
503
|
+
subgraph TechnicalOntology["技術オントロジー"]
|
|
504
|
+
TO1[デザインパターン]
|
|
505
|
+
TO2[フレームワーク知識]
|
|
506
|
+
TO3[セキュリティ概念]
|
|
507
|
+
end
|
|
508
|
+
|
|
509
|
+
subgraph SDDOntology["SDDオントロジー"]
|
|
510
|
+
SO1[EARS要件パターン]
|
|
511
|
+
SO2[C4アーキテクチャ]
|
|
512
|
+
SO3[ADR構造]
|
|
513
|
+
end
|
|
514
|
+
|
|
515
|
+
DomainOntology --> Integration[統合推論]
|
|
516
|
+
TechnicalOntology --> Integration
|
|
517
|
+
SDDOntology --> Integration
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
| オントロジー種別 | 内容 | 用途 |
|
|
521
|
+
|-----------------|------|------|
|
|
522
|
+
| **ドメインオントロジー** | ビジネス領域の概念定義 | 要件の意味解析 |
|
|
523
|
+
| **技術オントロジー** | 設計パターン、フレームワーク | 設計の自動提案 |
|
|
524
|
+
| **SDDオントロジー** | EARS、C4、ADRの形式知識 | 成果物の検証 |
|
|
525
|
+
|
|
526
|
+
### 4.2.4 62ドメイン対応(v1.1.10)
|
|
527
|
+
|
|
528
|
+
MUSUBIXは**62の専門ドメイン**に対応し、各ドメインに最適化されたコンポーネント推論を提供します。
|
|
529
|
+
|
|
530
|
+
```mermaid
|
|
531
|
+
flowchart TB
|
|
532
|
+
subgraph Domains["62ドメイン対応"]
|
|
533
|
+
subgraph Business["ビジネス系"]
|
|
534
|
+
B1[ecommerce]
|
|
535
|
+
B2[finance]
|
|
536
|
+
B3[crm]
|
|
537
|
+
B4[hr]
|
|
538
|
+
B5[marketing]
|
|
539
|
+
end
|
|
540
|
+
|
|
541
|
+
subgraph Industry["産業系"]
|
|
542
|
+
I1[manufacturing]
|
|
543
|
+
I2[logistics]
|
|
544
|
+
I3[healthcare]
|
|
545
|
+
I4[agriculture]
|
|
546
|
+
I5[energy]
|
|
547
|
+
end
|
|
548
|
+
|
|
549
|
+
subgraph Tech["技術系"]
|
|
550
|
+
T1[iot]
|
|
551
|
+
T2[security]
|
|
552
|
+
T3[ai]
|
|
553
|
+
T4[analytics]
|
|
554
|
+
T5[telecom]
|
|
555
|
+
end
|
|
556
|
+
|
|
557
|
+
subgraph Service["サービス系"]
|
|
558
|
+
S1[education]
|
|
559
|
+
S2[travel]
|
|
560
|
+
S3[restaurant]
|
|
561
|
+
S4[beauty]
|
|
562
|
+
S5[entertainment]
|
|
563
|
+
end
|
|
564
|
+
end
|
|
565
|
+
|
|
566
|
+
Domains --> Components["224コンポーネント定義"]
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
| カテゴリ | ドメイン例 | コンポーネント例 |
|
|
570
|
+
|---------|-----------|-----------------|
|
|
571
|
+
| **ビジネス** | ecommerce, finance, crm | CartService, PaymentGateway, CustomerRepository |
|
|
572
|
+
| **産業** | manufacturing, logistics | ProductionLine, InventoryTracker, QualityControl |
|
|
573
|
+
| **ヘルスケア** | healthcare, pharmacy | PatientRecord, PrescriptionManager, DiagnosticService |
|
|
574
|
+
| **サービス** | restaurant, hotel, travel | ReservationService, MenuManager, BookingEngine |
|
|
575
|
+
| **技術** | iot, security, ai | DeviceManager, ThreatDetector, ModelInference |
|
|
576
|
+
|
|
577
|
+
**対応ドメイン一覧**(62ドメイン):
|
|
578
|
+
|
|
579
|
+
<details>
|
|
580
|
+
<summary>クリックして全ドメインを表示</summary>
|
|
581
|
+
|
|
582
|
+
| # | ドメイン | 説明 |
|
|
583
|
+
|---|---------|------|
|
|
584
|
+
| 1 | general | 汎用 |
|
|
585
|
+
| 2 | ecommerce | EC・通販 |
|
|
586
|
+
| 3 | healthcare | ヘルスケア |
|
|
587
|
+
| 4 | finance | 金融 |
|
|
588
|
+
| 5 | education | 教育 |
|
|
589
|
+
| 6 | manufacturing | 製造 |
|
|
590
|
+
| 7 | logistics | 物流 |
|
|
591
|
+
| 8 | crm | 顧客管理 |
|
|
592
|
+
| 9 | hr | 人事 |
|
|
593
|
+
| 10 | iot | IoT |
|
|
594
|
+
| 11 | travel | 旅行 |
|
|
595
|
+
| 12 | restaurant | 飲食店 |
|
|
596
|
+
| 13 | realestate | 不動産 |
|
|
597
|
+
| 14 | insurance | 保険 |
|
|
598
|
+
| 15 | media | メディア |
|
|
599
|
+
| 16 | gaming | ゲーム |
|
|
600
|
+
| 17 | social | SNS |
|
|
601
|
+
| 18 | analytics | 分析 |
|
|
602
|
+
| 19 | booking | 予約 |
|
|
603
|
+
| 20 | inventory | 在庫管理 |
|
|
604
|
+
| 21 | auction | オークション |
|
|
605
|
+
| 22 | subscription | サブスク |
|
|
606
|
+
| 23 | marketplace | マーケットプレイス |
|
|
607
|
+
| 24 | delivery | 配送 |
|
|
608
|
+
| 25 | payment | 決済 |
|
|
609
|
+
| 26 | chat | チャット |
|
|
610
|
+
| 27 | document | 文書管理 |
|
|
611
|
+
| 28 | workflow | ワークフロー |
|
|
612
|
+
| 29 | notification | 通知 |
|
|
613
|
+
| 30 | search | 検索 |
|
|
614
|
+
| 31 | calendar | カレンダー |
|
|
615
|
+
| 32 | project | プロジェクト管理 |
|
|
616
|
+
| 33 | survey | アンケート |
|
|
617
|
+
| 34 | voting | 投票 |
|
|
618
|
+
| 35 | ticketing | チケット |
|
|
619
|
+
| 36 | hotel | ホテル |
|
|
620
|
+
| 37 | pharmacy | 薬局 |
|
|
621
|
+
| 38 | veterinary | 動物病院 |
|
|
622
|
+
| 39 | gym | フィットネス |
|
|
623
|
+
| 40 | library | 図書館 |
|
|
624
|
+
| 41 | museum | 美術館・博物館 |
|
|
625
|
+
| 42 | parking | 駐車場 |
|
|
626
|
+
| 43 | laundry | クリーニング |
|
|
627
|
+
| 44 | rental | レンタル |
|
|
628
|
+
| 45 | repair | 修理 |
|
|
629
|
+
| 46 | cleaning | 清掃 |
|
|
630
|
+
| 47 | catering | ケータリング |
|
|
631
|
+
| 48 | wedding | ブライダル |
|
|
632
|
+
| 49 | funeral | 葬儀 |
|
|
633
|
+
| 50 | agriculture | 農業 |
|
|
634
|
+
| 51 | energy | エネルギー |
|
|
635
|
+
| 52 | waste | 廃棄物 |
|
|
636
|
+
| 53 | recycling | リサイクル |
|
|
637
|
+
| 54 | warehouse | 倉庫 |
|
|
638
|
+
| 55 | vehicle | 車両管理 |
|
|
639
|
+
| 56 | sports | スポーツ |
|
|
640
|
+
| 57 | marketing | マーケティング |
|
|
641
|
+
| 58 | aviation | 航空 |
|
|
642
|
+
| 59 | shipping | 海運 |
|
|
643
|
+
| 60 | telecom | 通信 |
|
|
644
|
+
| 61 | security | セキュリティ |
|
|
645
|
+
| 62 | ai | AI |
|
|
646
|
+
|
|
647
|
+
</details>
|
|
648
|
+
|
|
649
|
+
### 4.2.5 オントロジーマッピングの実例
|
|
650
|
+
|
|
651
|
+
```typescript
|
|
652
|
+
// MUSUBIXでのオントロジーマッピング例
|
|
653
|
+
const mapping = ontologyMapper.map({
|
|
654
|
+
requirement: 'ユーザーがログインしたとき、システムは認証を行う',
|
|
655
|
+
|
|
656
|
+
// 自動検出されるオントロジー概念
|
|
657
|
+
concepts: {
|
|
658
|
+
actor: 'User',
|
|
659
|
+
action: 'login',
|
|
660
|
+
system_behavior: 'authenticate',
|
|
661
|
+
pattern: 'EARS_WHEN_THEN'
|
|
662
|
+
},
|
|
663
|
+
|
|
664
|
+
// 関連する技術概念
|
|
665
|
+
technical_mappings: {
|
|
666
|
+
patterns: ['Strategy', 'Factory'],
|
|
667
|
+
security: ['OWASP A07:2021', 'RBAC'],
|
|
668
|
+
frameworks: ['passport.js', 'bcrypt']
|
|
669
|
+
}
|
|
670
|
+
});
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
## 4.3 新規追加モジュール(56モジュール)
|
|
674
|
+
|
|
675
|
+
MUSUBIXは以下の新規モジュールを追加:
|
|
676
|
+
|
|
677
|
+
| カテゴリ | モジュール | 説明 |
|
|
678
|
+
|----------|-----------|------|
|
|
679
|
+
| **統合** | NeuroSymbolicIntegrator | 統合制御 |
|
|
680
|
+
| | ConfidenceEvaluator | 信頼度評価 |
|
|
681
|
+
| | ContradictionDetector | 矛盾検出 |
|
|
682
|
+
| **要件** | EARSValidator | EARS検証 |
|
|
683
|
+
| | OntologyMapper | オントロジーマッピング |
|
|
684
|
+
| | RelatedRequirementsFinder | 関連要件検索 |
|
|
685
|
+
| | RequirementsDecomposer | 要件分解 |
|
|
686
|
+
| | InteractiveHearingManager | 対話的ヒアリング |
|
|
687
|
+
| **設計** | PatternDetector | パターン検出 |
|
|
688
|
+
| | SOLIDValidator | SOLID検証 |
|
|
689
|
+
| | C4ModelGenerator | C4モデル生成 |
|
|
690
|
+
| | ADRGenerator | ADR生成 |
|
|
691
|
+
| | DomainDetector | ドメイン自動検出(62ドメイン) |
|
|
692
|
+
| | ComponentInference | コンポーネント推論(~430定義) |
|
|
693
|
+
| **コード** | StaticAnalyzer | 静的解析 |
|
|
694
|
+
| | SecurityScanner | セキュリティスキャン |
|
|
695
|
+
| | QualityMetricsCalculator | 品質メトリクス |
|
|
696
|
+
| **説明** | ReasoningChainRecorder | 推論チェーン記録 |
|
|
697
|
+
| | ExplanationGenerator | 説明生成 |
|
|
698
|
+
| | VisualExplanationGenerator | 視覚的説明生成 |
|
|
699
|
+
| **学習** | FeedbackCollector | フィードバック収集 |
|
|
700
|
+
| | PatternExtractor | パターン抽出 |
|
|
701
|
+
| | AdaptiveReasoner | 適応的推論 |
|
|
702
|
+
| | PrivacyFilter | プライバシー保護フィルター |
|
|
703
|
+
| **ユーティリティ** | IdGenerator | ユニークID生成(カウンター方式) |
|
|
704
|
+
| | StatusWorkflow | ステータス遷移管理 |
|
|
705
|
+
|
|
706
|
+
### 4.3.1 新規ユーティリティ(v1.0.20)
|
|
707
|
+
|
|
708
|
+
v1.0.20では、10プロジェクト検証から学んだパターンを基に2つの新しいユーティリティを追加:
|
|
709
|
+
|
|
710
|
+
#### IdGenerator - ユニークID生成
|
|
711
|
+
|
|
712
|
+
```typescript
|
|
713
|
+
import { IdGenerator, idGenerators } from '@nahisaho/musubix-core';
|
|
714
|
+
|
|
715
|
+
// インスタンス利用(同一ミリ秒内でも重複なし)
|
|
716
|
+
const petIdGen = new IdGenerator('PET');
|
|
717
|
+
const id1 = petIdGen.generate(); // 'PET-1704326400000-1'
|
|
718
|
+
const id2 = petIdGen.generate(); // 'PET-1704326400000-2'
|
|
719
|
+
|
|
720
|
+
// 事前設定ジェネレーター
|
|
721
|
+
idGenerators.requirement.generate(); // 'REQ-...'
|
|
722
|
+
idGenerators.design.generate(); // 'DES-...'
|
|
723
|
+
idGenerators.task.generate(); // 'TSK-...'
|
|
724
|
+
|
|
725
|
+
// UUID v4生成
|
|
726
|
+
IdGenerator.uuid(); // 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
#### StatusWorkflow - ステータス遷移管理
|
|
730
|
+
|
|
731
|
+
```typescript
|
|
732
|
+
import { taskWorkflow, approvalWorkflow, reservationWorkflow } from '@nahisaho/musubix-core';
|
|
733
|
+
|
|
734
|
+
// タスクワークフロー: pending → confirmed → in_progress → completed
|
|
735
|
+
let status = taskWorkflow.transition('pending', 'confirm'); // 'confirmed'
|
|
736
|
+
status = taskWorkflow.transition(status, 'start'); // 'in_progress'
|
|
737
|
+
status = taskWorkflow.transition(status, 'complete'); // 'completed'
|
|
738
|
+
|
|
739
|
+
// 承認ワークフロー: draft → pending → approved/rejected
|
|
740
|
+
approvalWorkflow.transition('draft', 'submit'); // 'pending'
|
|
741
|
+
approvalWorkflow.transition('pending', 'approve'); // 'approved'
|
|
742
|
+
|
|
743
|
+
// 予約ワークフロー: tentative → confirmed → active → completed
|
|
744
|
+
reservationWorkflow.transition('tentative', 'confirm'); // 'confirmed'
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
## 4.4 MCPサーバー(16ツール、3プロンプト)
|
|
748
|
+
|
|
749
|
+
v1.3.0では、従来の9ツールに加えて**7つの新しいパターン統合ツール**を追加しました。
|
|
750
|
+
|
|
751
|
+
```mermaid
|
|
752
|
+
flowchart TB
|
|
753
|
+
subgraph MCPServer["MCP Server"]
|
|
754
|
+
subgraph SDDTools["SDD基本ツール(9ツール)"]
|
|
755
|
+
T1[sdd_create_requirements]
|
|
756
|
+
T2[sdd_validate_requirements]
|
|
757
|
+
T3[sdd_create_design]
|
|
758
|
+
T4[sdd_validate_design]
|
|
759
|
+
T5[sdd_create_tasks]
|
|
760
|
+
T6[sdd_query_knowledge]
|
|
761
|
+
T7[sdd_update_knowledge]
|
|
762
|
+
T8[sdd_validate_constitution]
|
|
763
|
+
T9[sdd_validate_traceability]
|
|
764
|
+
end
|
|
765
|
+
|
|
766
|
+
subgraph PatternTools["パターン統合ツール(7ツール)- v1.3.0 NEW!"]
|
|
767
|
+
PT1[pattern_extract]
|
|
768
|
+
PT2[pattern_compress]
|
|
769
|
+
PT3[pattern_store]
|
|
770
|
+
PT4[pattern_query]
|
|
771
|
+
PT5[pattern_consolidate]
|
|
772
|
+
PT6[ontology_query]
|
|
773
|
+
PT7[ontology_infer]
|
|
774
|
+
end
|
|
775
|
+
|
|
776
|
+
subgraph Prompts["3 Prompts"]
|
|
777
|
+
P1[sdd_requirements_analysis]
|
|
778
|
+
P2[sdd_requirements_review]
|
|
779
|
+
P3[sdd_design_generation]
|
|
780
|
+
end
|
|
781
|
+
end
|
|
782
|
+
|
|
783
|
+
subgraph Platforms["対応プラットフォーム"]
|
|
784
|
+
Claude[Claude Desktop]
|
|
785
|
+
Copilot[GitHub Copilot]
|
|
786
|
+
Cursor[Cursor IDE]
|
|
787
|
+
end
|
|
788
|
+
|
|
789
|
+
MCPServer --> Platforms
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
## 4.5 自己学習システム(v1.0.12〜)
|
|
793
|
+
|
|
794
|
+
MUSUBIXは**自己学習システム**を搭載し、フィードバックに基づいて推論を継続的に改善します。
|
|
795
|
+
|
|
796
|
+
```mermaid
|
|
797
|
+
flowchart LR
|
|
798
|
+
subgraph Learning["自己学習システム"]
|
|
799
|
+
F[フィードバック収集] --> P[パターン抽出]
|
|
800
|
+
P --> T{閾値判定}
|
|
801
|
+
T -->|超過| R[パターン登録]
|
|
802
|
+
T -->|未満| W[待機]
|
|
803
|
+
R --> A[適応的推論]
|
|
804
|
+
end
|
|
805
|
+
|
|
806
|
+
subgraph Privacy["プライバシー保護"]
|
|
807
|
+
PF[PrivacyFilter]
|
|
808
|
+
LS[ローカルストレージのみ]
|
|
809
|
+
end
|
|
810
|
+
|
|
811
|
+
Learning --> Privacy
|
|
812
|
+
```
|
|
813
|
+
|
|
814
|
+
| 機能 | 説明 | CLIコマンド |
|
|
815
|
+
|------|------|------------|
|
|
816
|
+
| **状態確認** | 学習状態ダッシュボード表示 | `npx musubix learn status` |
|
|
817
|
+
| **フィードバック** | accept/reject/modifyの記録 | `npx musubix learn feedback <id>` |
|
|
818
|
+
| **パターン一覧** | 学習済みパターン表示 | `npx musubix learn patterns` |
|
|
819
|
+
| **パターン追加** | 手動パターン登録 | `npx musubix learn add-pattern <name>` |
|
|
820
|
+
| **推奨取得** | コンテキストベースの推奨 | `npx musubix learn recommend` |
|
|
821
|
+
| **データ移行** | エクスポート/インポート | `npx musubix learn export/import` |
|
|
822
|
+
|
|
823
|
+
**プライバシー保護**:
|
|
824
|
+
- すべての学習データはローカルストレージのみに保存
|
|
825
|
+
- 機密情報の自動フィルタリング
|
|
826
|
+
- 外部サーバーへのデータ送信なし
|
|
827
|
+
|
|
828
|
+
## 4.6 シンボリック推論モジュール(v1.2.0)
|
|
829
|
+
|
|
830
|
+
v1.2.0では、**シンボリック推論モジュール**(`packages/core/src/symbolic/`)を新規追加しました。これはNeuro-Symbolic AIの核心部分であり、**LLMの創造的な出力**と**形式的検証の厳密性**を融合させる画期的な機能です。
|
|
831
|
+
|
|
832
|
+
### なぜシンボリック推論が必要か?
|
|
833
|
+
|
|
834
|
+
LLM(Large Language Model)は強力なコード生成能力を持つ一方、以下の問題を抱えています。
|
|
835
|
+
|
|
836
|
+
1. **幻覚(Hallucination)**: 存在しない関数やライブラリを生成することがある
|
|
837
|
+
2. **一貫性の欠如**: 同じ質問に対して異なる回答を返すことがある
|
|
838
|
+
3. **検証不能**: 生成されたコードが仕様を満たすか数学的に証明できない
|
|
839
|
+
4. **セキュリティリスク**: 脆弱性を含むコードを生成する可能性がある
|
|
840
|
+
|
|
841
|
+
シンボリック推論モジュールは、これらの問題に対して**形式的手法**で対処します。
|
|
842
|
+
|
|
843
|
+
| 問題 | シンボリック解決策 |
|
|
844
|
+
|-----|------------------|
|
|
845
|
+
| 幻覚 | `HallucinationDetector` が未定義シンボルを検出 |
|
|
846
|
+
| 一貫性 | `ConstitutionRuleRegistry` が9憲法条項への準拠を強制 |
|
|
847
|
+
| 検証不能 | `Z3Adapter` がSMTソルバーで数学的に検証 |
|
|
848
|
+
| セキュリティ | `SecurityScanner` がOWASP Top 10パターンを検出 |
|
|
849
|
+
|
|
850
|
+
### アーキテクチャ(3フェーズ構成)
|
|
851
|
+
|
|
852
|
+
```mermaid
|
|
853
|
+
flowchart TB
|
|
854
|
+
subgraph Phase1["Phase 1: 基盤"]
|
|
855
|
+
P1A[SemanticCodeFilterPipeline<br/>LLM出力の意味検証]
|
|
856
|
+
P1B[HallucinationDetector<br/>幻覚検出]
|
|
857
|
+
P1C[ConstitutionRuleRegistry<br/>9憲法条項の強制]
|
|
858
|
+
P1D[ConfidenceEstimator<br/>信頼度スコアリング]
|
|
859
|
+
P1E[ConfidenceBasedRouter<br/>ルーティング決定]
|
|
860
|
+
P1F[ErrorHandler<br/>グレースフルデグラデーション]
|
|
861
|
+
end
|
|
862
|
+
|
|
863
|
+
subgraph Phase2["Phase 2: 形式検証"]
|
|
864
|
+
P2A[EarsToFormalSpecConverter<br/>EARS → SMT-LIB変換]
|
|
865
|
+
P2B[VerificationConditionGenerator<br/>検証条件生成]
|
|
866
|
+
P2C[Z3Adapter<br/>Z3 SMTソルバー統合]
|
|
867
|
+
P2D[SecurityScanner<br/>OWASPパターン検出]
|
|
868
|
+
end
|
|
869
|
+
|
|
870
|
+
subgraph Phase3["Phase 3: 高度機能"]
|
|
871
|
+
P3A[CandidateRanker<br/>複数候補のスコアリング]
|
|
872
|
+
P3B[ResultBlender<br/>Neural/Symbolic結果統合]
|
|
873
|
+
P3C[ExtensibleRuleConfig<br/>YAML/JSONルール設定]
|
|
874
|
+
P3D[AuditLogger<br/>SHA-256改ざん検出]
|
|
875
|
+
P3E[PerformanceBudget<br/>SLOメトリクス]
|
|
876
|
+
P3F[QualityGateValidator<br/>品質ゲート検証]
|
|
877
|
+
end
|
|
878
|
+
|
|
879
|
+
Phase1 --> Phase2 --> Phase3
|
|
880
|
+
```
|
|
881
|
+
|
|
882
|
+
### Phase 1: 基盤コンポーネント
|
|
883
|
+
|
|
884
|
+
LLM出力の基本的な品質保証を担当します。
|
|
885
|
+
|
|
886
|
+
| コンポーネント | 機能 | 詳細 |
|
|
887
|
+
|--------------|------|------|
|
|
888
|
+
| **SemanticCodeFilterPipeline** | 意味的検証パイプライン | AST解析、型推論、依存関係検証を連鎖実行 |
|
|
889
|
+
| **HallucinationDetector** | 幻覚検出 | 未定義シンボル、存在しないパッケージ、無効なAPIを検出 |
|
|
890
|
+
| **ConstitutionRuleRegistry** | 憲法準拠チェック | 9憲法条項への違反を自動検出(Library-First、Test-First等) |
|
|
891
|
+
| **ConfidenceEstimator** | 信頼度スコアリング | 複数の指標から0.0〜1.0の信頼度を算出 |
|
|
892
|
+
| **ConfidenceBasedRouter** | ルーティング決定 | 信頼度に基づいてNeural/Symbolic処理を振り分け |
|
|
893
|
+
| **ErrorHandler** | グレースフルデグラデーション | 検証失敗時の段階的フォールバック |
|
|
894
|
+
|
|
895
|
+
### Phase 2: 形式検証コンポーネント
|
|
896
|
+
|
|
897
|
+
数学的・形式的な検証を担当します。
|
|
898
|
+
|
|
899
|
+
| コンポーネント | 機能 | 詳細 |
|
|
900
|
+
|--------------|------|------|
|
|
901
|
+
| **EarsToFormalSpecConverter** | EARS → SMT-LIB変換 | 自然言語要件を形式仕様に変換 |
|
|
902
|
+
| **VerificationConditionGenerator** | 検証条件生成 | 事前条件、事後条件、ループ不変条件を生成 |
|
|
903
|
+
| **Z3Adapter** | SMTソルバー統合 | Microsoft Z3による数学的証明(充足可能性判定) |
|
|
904
|
+
| **SecurityScanner** | 脆弱性検出 | OWASP Top 10パターン(SQLi, XSS, CSRF等)を検出 |
|
|
905
|
+
|
|
906
|
+
### Phase 3: 高度機能コンポーネント
|
|
907
|
+
|
|
908
|
+
複数候補の評価と結果統合を担当します。
|
|
909
|
+
|
|
910
|
+
| コンポーネント | 機能 | 詳細 |
|
|
911
|
+
|--------------|------|------|
|
|
912
|
+
| **CandidateRanker** | 候補スコアリング | 複数の生成候補を品質・適合性でランキング |
|
|
913
|
+
| **ResultBlender** | 結果統合 | Neural結果とSymbolic結果を戦略的に統合 |
|
|
914
|
+
| **ExtensibleRuleConfig** | ルール設定 | YAML/JSONでカスタムルールを定義可能 |
|
|
915
|
+
| **AuditLogger** | 監査ログ | SHA-256ハッシュで改ざんを検出可能な監査証跡 |
|
|
916
|
+
| **PerformanceBudget** | SLOメトリクス | レイテンシ、メモリ使用量のSLO監視 |
|
|
917
|
+
| **QualityGateValidator** | 品質ゲート | 要件→設計→実装の各段階で品質基準を強制 |
|
|
918
|
+
|
|
919
|
+
### ResultBlender: Neural-Symbolic統合の核心
|
|
920
|
+
|
|
921
|
+
ResultBlenderは、LLM(Neural)の出力とシンボリック推論の結果を統合する中核コンポーネントです。3つの戦略を提供します。
|
|
922
|
+
|
|
923
|
+
```typescript
|
|
924
|
+
// 1. neural_priority: ニューラル結果を優先
|
|
925
|
+
// シンボリック検証をパスした場合のみニューラル結果を採用
|
|
926
|
+
// ユースケース: 創造的なコード生成、新しいアルゴリズム設計
|
|
927
|
+
blender.blend(neuralResult, symbolicResult, 'neural_priority');
|
|
928
|
+
|
|
929
|
+
// 2. symbolic_priority: シンボリック結果を優先
|
|
930
|
+
// 形式的に正しい結果を優先し、ニューラルは補助的に使用
|
|
931
|
+
// ユースケース: セキュリティクリティカルなコード、金融計算
|
|
932
|
+
blender.blend(neuralResult, symbolicResult, 'symbolic_priority');
|
|
933
|
+
|
|
934
|
+
// 3. weighted: 信頼度に基づく重み付け統合
|
|
935
|
+
// 両方の結果を信頼度スコアで重み付けして統合
|
|
936
|
+
// ユースケース: 一般的なコード生成、バランスの取れた出力
|
|
937
|
+
blender.blend(neuralResult, symbolicResult, 'weighted');
|
|
938
|
+
```
|
|
939
|
+
|
|
940
|
+
### 信頼度ベースの決定ルール(REQ-INT-002準拠)
|
|
941
|
+
|
|
942
|
+
```typescript
|
|
943
|
+
// シンボリック検証とニューラル信頼度の組み合わせ
|
|
944
|
+
if (symbolicResult === 'invalid') {
|
|
945
|
+
// シンボリック検証失敗 → ニューラル結果を棄却
|
|
946
|
+
return reject(neuralResult);
|
|
947
|
+
} else if (symbolicResult === 'valid' && neuralConfidence >= 0.8) {
|
|
948
|
+
// 高信頼度 → ニューラル結果を採用
|
|
949
|
+
return accept(neuralResult);
|
|
950
|
+
} else {
|
|
951
|
+
// 低信頼度 → シンボリック結果を優先
|
|
952
|
+
return prefer(symbolicResult);
|
|
953
|
+
}
|
|
954
|
+
```
|
|
955
|
+
|
|
956
|
+
この決定ルールにより、**LLMの創造性を活かしつつ、形式的な正しさを保証**します。
|
|
957
|
+
|
|
958
|
+
## 4.7 Wake-Sleep学習サイクル(v1.3.0)
|
|
959
|
+
|
|
960
|
+
v1.3.0では、**Wake-Sleepアルゴリズム**に基づく継続的学習システムを導入しました。これは神経科学の「睡眠中に記憶を整理・統合する」メカニズムに着想を得た学習パラダイムです。
|
|
961
|
+
|
|
962
|
+
### なぜWake-Sleep学習が必要か?
|
|
963
|
+
|
|
964
|
+
従来のAIコーディングアシスタントには以下の課題がありました。
|
|
965
|
+
|
|
966
|
+
1. **学習の断絶**: セッション終了後に学習内容が失われる
|
|
967
|
+
2. **パターンの冗長性**: 似たようなパターンが重複して蓄積される
|
|
968
|
+
3. **知識の断片化**: 学習したパターンが体系化されない
|
|
969
|
+
4. **メモリの肥大化**: 無制限にデータが増加し性能が低下する
|
|
970
|
+
|
|
971
|
+
Wake-Sleep学習サイクルは、これらの問題を解決します。
|
|
972
|
+
|
|
973
|
+
| 課題 | Wake-Sleep解決策 |
|
|
974
|
+
|-----|------------------|
|
|
975
|
+
| 学習の断絶 | `PatternLibrary` による永続化(JSON形式) |
|
|
976
|
+
| パターンの冗長性 | Sleep Phaseでの `pattern_consolidate`(類似統合) |
|
|
977
|
+
| 知識の断片化 | `N3Store` によるRDF/OWL体系化 |
|
|
978
|
+
| メモリの肥大化 | Sleep Phaseでの `pattern_compress`(抽象化圧縮) |
|
|
979
|
+
|
|
980
|
+
### Wake-Sleepサイクルの詳細
|
|
981
|
+
|
|
982
|
+
```mermaid
|
|
983
|
+
flowchart LR
|
|
984
|
+
subgraph WakePhase["Wake Phase(覚醒)"]
|
|
985
|
+
W1[コード観察] --> W2[パターン抽出]
|
|
986
|
+
W2 --> W3[知識グラフ更新]
|
|
987
|
+
end
|
|
988
|
+
|
|
989
|
+
subgraph SleepPhase["Sleep Phase(睡眠)"]
|
|
990
|
+
S1[パターン統合] --> S2[類似パターン圧縮]
|
|
991
|
+
S2 --> S3[メモリ最適化]
|
|
992
|
+
end
|
|
993
|
+
|
|
994
|
+
WakePhase --> SleepPhase
|
|
995
|
+
SleepPhase --> WakePhase
|
|
996
|
+
```
|
|
997
|
+
|
|
998
|
+
#### Wake Phase(覚醒フェーズ)
|
|
999
|
+
|
|
1000
|
+
開発者がアクティブにコーディングしている間に実行されます。
|
|
1001
|
+
|
|
1002
|
+
```typescript
|
|
1003
|
+
// Wake Phaseの処理フロー
|
|
1004
|
+
async function wakePhase(codeObservation: CodeObservation): Promise<void> {
|
|
1005
|
+
// 1. コード観察: 開発者の操作を監視
|
|
1006
|
+
const observation = await observe(codeObservation);
|
|
1007
|
+
|
|
1008
|
+
// 2. パターン抽出: コードから設計パターン・コーディングパターンを検出
|
|
1009
|
+
const patterns = await extractPatterns(observation);
|
|
1010
|
+
|
|
1011
|
+
// 3. 知識グラフ更新: 抽出したパターンをオントロジーに追加
|
|
1012
|
+
await updateKnowledgeGraph(patterns);
|
|
1013
|
+
}
|
|
1014
|
+
```
|
|
1015
|
+
|
|
1016
|
+
| ステップ | 処理内容 | 出力 |
|
|
1017
|
+
|---------|----------|------|
|
|
1018
|
+
| コード観察 | ファイル変更、関数追加、リファクタリングを検出 | `CodeObservation` |
|
|
1019
|
+
| パターン抽出 | Factory, Repository, Service等のパターンを識別 | `Pattern[]` |
|
|
1020
|
+
| 知識グラフ更新 | RDFトリプルとして知識グラフに永続化 | `N3Store` 更新 |
|
|
1021
|
+
|
|
1022
|
+
#### Sleep Phase(睡眠フェーズ)
|
|
1023
|
+
|
|
1024
|
+
開発者がアイドル状態(休憩中、ミーティング中等)に実行されます。
|
|
1025
|
+
|
|
1026
|
+
```typescript
|
|
1027
|
+
// Sleep Phaseの処理フロー
|
|
1028
|
+
async function sleepPhase(): Promise<void> {
|
|
1029
|
+
// 1. パターン統合: 類似パターンをグループ化
|
|
1030
|
+
const consolidated = await consolidatePatterns();
|
|
1031
|
+
|
|
1032
|
+
// 2. 圧縮: 冗長な詳細を抽象化
|
|
1033
|
+
const compressed = await compressPatterns(consolidated);
|
|
1034
|
+
|
|
1035
|
+
// 3. メモリ最適化: 使用頻度の低いパターンを整理
|
|
1036
|
+
await optimizeMemory(compressed);
|
|
1037
|
+
}
|
|
1038
|
+
```
|
|
1039
|
+
|
|
1040
|
+
| ステップ | 処理内容 | 効果 |
|
|
1041
|
+
|---------|----------|------|
|
|
1042
|
+
| パターン統合 | 類似度90%以上のパターンをマージ | パターン数削減 |
|
|
1043
|
+
| 圧縮 | 具体的な変数名を抽象化(`userId` → `<identifier>`) | 汎用性向上 |
|
|
1044
|
+
| メモリ最適化 | 30日未使用パターンをアーカイブ | 検索性能維持 |
|
|
1045
|
+
|
|
1046
|
+
### 新パッケージ(v1.3.0で追加)
|
|
1047
|
+
|
|
1048
|
+
| パッケージ | npm | 役割 |
|
|
1049
|
+
|-----------|-----|------|
|
|
1050
|
+
| `packages/pattern-mcp/` | `@nahisaho/musubix-pattern-mcp` | パターン抽出・圧縮・ライブラリ管理 |
|
|
1051
|
+
| `packages/ontology-mcp/` | `@nahisaho/musubix-ontology-mcp` | N3Store・RDF推論エンジン |
|
|
1052
|
+
| `packages/wake-sleep/` | `@nahisaho/musubix-wake-sleep` | Wake-Sleep学習サイクル制御 |
|
|
1053
|
+
| `packages/sdd-ontology/` | `@nahisaho/musubix-sdd-ontology` | SDD方法論のオントロジー定義 |
|
|
1054
|
+
|
|
1055
|
+
### 主要コンポーネント詳細
|
|
1056
|
+
|
|
1057
|
+
| コンポーネント | 機能 | 詳細 |
|
|
1058
|
+
|--------------|------|------|
|
|
1059
|
+
| **WakeSleepCycle** | サイクルオーケストレーション | Wake/Sleepフェーズの切り替え、スケジューリング、状態管理 |
|
|
1060
|
+
| **PatternLibrary** | パターン永続化 | JSON形式で学習済みパターンを保存、バージョン管理、検索API |
|
|
1061
|
+
| **PatternOntologyBridge** | 相互変換 | `Pattern` オブジェクト ↔ RDFトリプルの双方向変換 |
|
|
1062
|
+
| **N3Store** | 知識グラフDB | Turtle形式のRDF/OWLストレージ、SPARQLライクなクエリ |
|
|
1063
|
+
| **PatternExtractor** | パターン検出 | AST解析によるGoFパターン、アーキテクチャパターンの検出 |
|
|
1064
|
+
| **PatternCompressor** | パターン圧縮 | 類似パターンの抽象化、変数名の一般化 |
|
|
1065
|
+
|
|
1066
|
+
### 新MCPツール(7ツール)
|
|
1067
|
+
|
|
1068
|
+
Wake-Sleep学習機能をMCPプロトコル経由で利用可能にします。
|
|
1069
|
+
|
|
1070
|
+
| ツール名 | 説明 | ユースケース |
|
|
1071
|
+
|---------|------|-------------|
|
|
1072
|
+
| `pattern_extract` | コードからパターンを抽出 | 既存コードベースの分析 |
|
|
1073
|
+
| `pattern_compress` | パターンの抽象化・圧縮 | 冗長パターンの整理 |
|
|
1074
|
+
| `pattern_store` | パターンライブラリへの保存 | 学習結果の永続化 |
|
|
1075
|
+
| `pattern_query` | パターンの検索・取得 | 類似実装の発見 |
|
|
1076
|
+
| `pattern_consolidate` | 類似パターンの統合 | Sleep Phase実行 |
|
|
1077
|
+
| `ontology_query` | オントロジーグラフへのクエリ | 知識検索 |
|
|
1078
|
+
| `ontology_infer` | オントロジーによる推論実行 | 関連パターン推論 |
|
|
1079
|
+
|
|
1080
|
+
### 学習データの保存場所
|
|
1081
|
+
|
|
1082
|
+
```
|
|
1083
|
+
storage/
|
|
1084
|
+
├── patterns/
|
|
1085
|
+
│ └── library.json # パターンライブラリ(JSON)
|
|
1086
|
+
│ # 形式: { patterns: Pattern[], metadata: {...} }
|
|
1087
|
+
└── ontology/
|
|
1088
|
+
└── n3-store.ttl # 知識グラフ(Turtle RDF)
|
|
1089
|
+
# 形式: @prefix sdd: <http://musubix.dev/ontology/sdd#>
|
|
1090
|
+
```
|
|
1091
|
+
|
|
1092
|
+
### 学習効果の例
|
|
1093
|
+
|
|
1094
|
+
Wake-Sleep学習サイクルにより、以下のような効果が得られます。
|
|
1095
|
+
|
|
1096
|
+
```typescript
|
|
1097
|
+
// 学習前: 開発者が毎回同じパターンを手書き
|
|
1098
|
+
class UserRepository {
|
|
1099
|
+
async findById(id: string): Promise<User | null> { ... }
|
|
1100
|
+
async save(user: User): Promise<void> { ... }
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1103
|
+
// 学習後: システムが自動でパターンを提案
|
|
1104
|
+
// 「Repository パターンを検出しました。
|
|
1105
|
+
// 類似実装: ProductRepository, OrderRepository
|
|
1106
|
+
// 推奨メソッド: findAll(), delete(), exists()」
|
|
1107
|
+
```
|
|
1108
|
+
|
|
1109
|
+
## 4.8 学習データのポータビリティ(v1.4.0)
|
|
1110
|
+
|
|
1111
|
+
v1.4.0では、**プロジェクト間で学習データを共有・移行**するためのCLI機能を追加しました。これにより、あるプロジェクトで蓄積したパターンや知見を、新しいプロジェクトで即座に活用できます。
|
|
1112
|
+
|
|
1113
|
+
### なぜポータビリティが必要か?
|
|
1114
|
+
|
|
1115
|
+
従来の課題:
|
|
1116
|
+
- 各プロジェクトで一から学習をやり直す必要があった
|
|
1117
|
+
- チーム間で知見の共有が困難だった
|
|
1118
|
+
- 機密情報を含むデータの共有にセキュリティリスクがあった
|
|
1119
|
+
|
|
1120
|
+
v1.4.0での解決:
|
|
1121
|
+
- **エクスポート/インポート**: CLI一発で学習データを移行
|
|
1122
|
+
- **プライバシーフィルター**: API Key、パスワード等を自動除去
|
|
1123
|
+
- **マージ戦略**: 既存データとの統合方法を選択可能
|
|
1124
|
+
|
|
1125
|
+
### CLIコマンド
|
|
1126
|
+
|
|
1127
|
+
```bash
|
|
1128
|
+
# エクスポート(機密情報除去、高信頼度パターンのみ)
|
|
1129
|
+
npx musubix learn export \
|
|
1130
|
+
--output team-patterns.json \
|
|
1131
|
+
--privacy-filter \
|
|
1132
|
+
--patterns-only \
|
|
1133
|
+
--min-confidence 0.8
|
|
1134
|
+
|
|
1135
|
+
# インポート(マージ戦略指定、ドライラン)
|
|
1136
|
+
npx musubix learn import team-patterns.json \
|
|
1137
|
+
--merge-strategy merge \
|
|
1138
|
+
--dry-run
|
|
1139
|
+
```
|
|
1140
|
+
|
|
1141
|
+
### マージ戦略
|
|
1142
|
+
|
|
1143
|
+
| 戦略 | 動作 | ユースケース |
|
|
1144
|
+
|------|------|-------------|
|
|
1145
|
+
| **skip** | 既存を保持、重複をスキップ | 既存の学習を壊したくない場合 |
|
|
1146
|
+
| **overwrite** | インポートデータで上書き | 最新データで完全更新する場合 |
|
|
1147
|
+
| **merge** | 出現回数を合計、信頼度は最大値 | チームの知見を統合する場合 |
|
|
1148
|
+
|
|
1149
|
+
### プライバシーフィルター
|
|
1150
|
+
|
|
1151
|
+
以下のパターンを自動検出して`[REDACTED]`に置換:
|
|
1152
|
+
|
|
1153
|
+
```typescript
|
|
1154
|
+
// 検出対象
|
|
1155
|
+
const PRIVACY_PATTERNS = [
|
|
1156
|
+
/api[_-]?key/i, // API_KEY, api-key
|
|
1157
|
+
/secret/i, // SECRET, secret
|
|
1158
|
+
/password/i, // PASSWORD, password
|
|
1159
|
+
/token/i, // TOKEN, token
|
|
1160
|
+
/credential/i, // CREDENTIAL
|
|
1161
|
+
/private[_-]?key/i, // PRIVATE_KEY
|
|
1162
|
+
/bearer/i, // Bearer token
|
|
1163
|
+
/jwt/i, // JWT
|
|
1164
|
+
];
|
|
1165
|
+
|
|
1166
|
+
// 32文字以上の英数字文字列も除去
|
|
1167
|
+
// 例: "sk-proj-abc123..." → "[REDACTED]"
|
|
1168
|
+
```
|
|
1169
|
+
|
|
1170
|
+
### 活用シナリオ
|
|
1171
|
+
|
|
1172
|
+
```
|
|
1173
|
+
プロジェクトA(成熟) プロジェクトB(新規)
|
|
1174
|
+
┌──────────────────┐ ┌──────────────────┐
|
|
1175
|
+
│ 学習済みパターン │ │ 初期状態 │
|
|
1176
|
+
│ - Repository │ export │ │
|
|
1177
|
+
│ - Service Layer │ ────────→ │ │
|
|
1178
|
+
│ - Value Object │ import │ 学習済みパターン │
|
|
1179
|
+
│ 信頼度: 90%+ │ │ 即座に活用可能! │
|
|
1180
|
+
└──────────────────┘ └──────────────────┘
|
|
1181
|
+
```
|
|
1182
|
+
|
|
1183
|
+
## 4.9 正誤性検証(v1.4.1)
|
|
1184
|
+
|
|
1185
|
+
v1.4.1では、**知識グラフへのデータ登録時の正誤性検証**機能を追加しました。OWL制約に基づく一貫性チェックにより、不正なデータの登録を防止します。
|
|
1186
|
+
|
|
1187
|
+
### なぜ正誤性検証が必要か?
|
|
1188
|
+
|
|
1189
|
+
従来の課題:
|
|
1190
|
+
- 不正なトリプルがそのまま登録されてしまう
|
|
1191
|
+
- 重複データの蓄積
|
|
1192
|
+
- OWL制約違反(関数型プロパティに複数値など)の検出ができない
|
|
1193
|
+
|
|
1194
|
+
v1.4.1での解決:
|
|
1195
|
+
- **ConsistencyValidator**: OWL制約に基づく7種類の検証
|
|
1196
|
+
- **事前検証**: `addTripleValidated()`でエラーを未然に防止
|
|
1197
|
+
- **一括検証**: `checkConsistency()`でストア全体をチェック
|
|
1198
|
+
|
|
1199
|
+
### 検証タイプ
|
|
1200
|
+
|
|
1201
|
+
| タイプ | 説明 | 重大度 |
|
|
1202
|
+
|--------|------|--------|
|
|
1203
|
+
| `disjoint-class-membership` | owl:disjointWith違反 | error |
|
|
1204
|
+
| `functional-property-violation` | owl:FunctionalProperty違反(複数値) | error |
|
|
1205
|
+
| `inverse-functional-violation` | owl:InverseFunctionalProperty違反 | error |
|
|
1206
|
+
| `asymmetric-violation` | owl:AsymmetricProperty違反(逆方向存在) | error |
|
|
1207
|
+
| `irreflexive-violation` | owl:IrreflexiveProperty違反(自己参照) | error |
|
|
1208
|
+
| `duplicate-triple` | 完全一致の重複トリプル | warning |
|
|
1209
|
+
| `circular-dependency` | subClassOf等の循環依存 | error |
|
|
1210
|
+
|
|
1211
|
+
### 使用例
|
|
1212
|
+
|
|
1213
|
+
```typescript
|
|
1214
|
+
import { N3Store } from '@nahisaho/musubix-ontology-mcp';
|
|
1215
|
+
|
|
1216
|
+
// 検証付きストア(validateOnAdd = true)
|
|
1217
|
+
const store = new N3Store({}, true);
|
|
1218
|
+
|
|
1219
|
+
// 検証付き追加
|
|
1220
|
+
const result = store.addTripleValidated({
|
|
1221
|
+
subject: 'http://example.org/Person1',
|
|
1222
|
+
predicate: 'http://example.org/hasMother',
|
|
1223
|
+
object: 'http://example.org/Mother1'
|
|
1224
|
+
});
|
|
1225
|
+
|
|
1226
|
+
if (!result.success) {
|
|
1227
|
+
console.error('Validation errors:', result.validation.errors);
|
|
1228
|
+
}
|
|
1229
|
+
|
|
1230
|
+
// ストア全体の整合性チェック
|
|
1231
|
+
const consistency = store.checkConsistency();
|
|
1232
|
+
if (!consistency.consistent) {
|
|
1233
|
+
for (const v of consistency.violations) {
|
|
1234
|
+
console.log(`${v.type}: ${v.message}`);
|
|
1235
|
+
}
|
|
1236
|
+
}
|
|
1237
|
+
```
|
|
1238
|
+
|
|
1239
|
+
### 検証フロー
|
|
1240
|
+
|
|
1241
|
+
```
|
|
1242
|
+
トリプル追加要求
|
|
1243
|
+
│
|
|
1244
|
+
▼
|
|
1245
|
+
┌─────────────────┐
|
|
1246
|
+
│ validateTriple()│ ← 事前検証
|
|
1247
|
+
└────────┬────────┘
|
|
1248
|
+
│
|
|
1249
|
+
┌────┴────┐
|
|
1250
|
+
│ valid? │
|
|
1251
|
+
└────┬────┘
|
|
1252
|
+
No │ Yes
|
|
1253
|
+
│ │
|
|
1254
|
+
▼ ▼
|
|
1255
|
+
拒否 追加
|
|
1256
|
+
│
|
|
1257
|
+
▼
|
|
1258
|
+
┌──────────────┐
|
|
1259
|
+
│ 推論適用 │
|
|
1260
|
+
└──────────────┘
|
|
1261
|
+
```
|
|
1262
|
+
|
|
1263
|
+
## 4.10 高度推論(v1.4.5)
|
|
1264
|
+
|
|
1265
|
+
v1.4.5では、**OWL 2 RLプロファイル推論エンジン**と**Datalog評価エンジン**を追加しました。これにより、知識グラフ上での自動推論と、人間可読な説明生成が可能になりました。
|
|
1266
|
+
|
|
1267
|
+
### なぜ高度推論が必要か?
|
|
1268
|
+
|
|
1269
|
+
従来の課題:
|
|
1270
|
+
- 明示的に登録された事実しか利用できない
|
|
1271
|
+
- 暗黙的な関係性を導出できない
|
|
1272
|
+
- 推論結果の根拠が不明確
|
|
1273
|
+
|
|
1274
|
+
v1.4.5での解決:
|
|
1275
|
+
- **OWL2RLReasoner**: 20以上のビルトインルールによる自動推論
|
|
1276
|
+
- **DatalogEngine**: ストラティファイド評価による柔軟なルール適用
|
|
1277
|
+
- **InferenceExplainer**: 推論チェーンの自然言語説明
|
|
1278
|
+
|
|
1279
|
+
### OWL 2 RL推論
|
|
1280
|
+
|
|
1281
|
+
OWL 2 RLプロファイルは、OWL 2のサブセットであり、ルールベースの推論に適しています。
|
|
1282
|
+
|
|
1283
|
+
| カテゴリ | ルール | 説明 |
|
|
1284
|
+
|----------|-------|------|
|
|
1285
|
+
| Class Axioms | `cax-sco`, `cax-eqc` | サブクラス、同値クラス推論 |
|
|
1286
|
+
| Property | `prp-dom`, `prp-rng` | ドメイン、レンジ推論 |
|
|
1287
|
+
| Property Characteristics | `prp-symp`, `prp-trp`, `prp-inv` | 対称、推移、逆プロパティ |
|
|
1288
|
+
| Equality | `eq-ref`, `eq-sym`, `eq-trans` | sameAs推論 |
|
|
1289
|
+
|
|
1290
|
+
### 使用例
|
|
1291
|
+
|
|
1292
|
+
```typescript
|
|
1293
|
+
import { OWL2RLReasoner, DatalogEngine, InferenceExplainer } from '@nahisaho/musubix-ontology-mcp';
|
|
1294
|
+
|
|
1295
|
+
// OWL 2 RL推論
|
|
1296
|
+
const reasoner = new OWL2RLReasoner({
|
|
1297
|
+
maxIterations: 100,
|
|
1298
|
+
enablePropertyChains: true
|
|
1299
|
+
});
|
|
1300
|
+
|
|
1301
|
+
const result = await reasoner.reason(store, {
|
|
1302
|
+
onProgress: (p) => console.log(`反復 ${p.iteration}: ${p.newTriples} 新規`)
|
|
1303
|
+
});
|
|
1304
|
+
|
|
1305
|
+
console.log(`${result.inferredCount} 個の事実を推論`);
|
|
1306
|
+
|
|
1307
|
+
// Datalog評価
|
|
1308
|
+
const engine = new DatalogEngine();
|
|
1309
|
+
const rules = [
|
|
1310
|
+
{
|
|
1311
|
+
head: { predicate: 'ancestor', args: ['?x', '?y'] },
|
|
1312
|
+
body: [{ predicate: 'parent', args: ['?x', '?y'] }]
|
|
1313
|
+
},
|
|
1314
|
+
{
|
|
1315
|
+
head: { predicate: 'ancestor', args: ['?x', '?z'] },
|
|
1316
|
+
body: [
|
|
1317
|
+
{ predicate: 'parent', args: ['?x', '?y'] },
|
|
1318
|
+
{ predicate: 'ancestor', args: ['?y', '?z'] }
|
|
1319
|
+
]
|
|
1320
|
+
}
|
|
1321
|
+
];
|
|
1322
|
+
const derived = await engine.evaluate(rules, facts);
|
|
1323
|
+
|
|
1324
|
+
// 推論説明
|
|
1325
|
+
const explainer = new InferenceExplainer(reasoner.getProvenanceLog());
|
|
1326
|
+
const explanation = explainer.explain(subject, predicate, object, 'text');
|
|
1327
|
+
console.log(explanation);
|
|
1328
|
+
// → "Animal は owl:Class として宣言されているため Class です(ルール cax-sco)"
|
|
1329
|
+
```
|
|
1330
|
+
|
|
1331
|
+
### 推論フロー
|
|
1332
|
+
|
|
1333
|
+
```
|
|
1334
|
+
知識グラフ
|
|
1335
|
+
│
|
|
1336
|
+
▼
|
|
1337
|
+
┌─────────────────┐
|
|
1338
|
+
│ OWL2RLReasoner │ ← 20+ ビルトインルール
|
|
1339
|
+
└────────┬────────┘
|
|
1340
|
+
│
|
|
1341
|
+
▼
|
|
1342
|
+
┌─────────────────┐
|
|
1343
|
+
│ 固定点到達まで │ ← 反復推論
|
|
1344
|
+
│ 新規推論を生成 │
|
|
1345
|
+
└────────┬────────┘
|
|
1346
|
+
│
|
|
1347
|
+
▼
|
|
1348
|
+
┌─────────────────┐
|
|
1349
|
+
│ InferenceExplainer │ ← 説明生成
|
|
1350
|
+
└────────┬────────┘
|
|
1351
|
+
│
|
|
1352
|
+
▼
|
|
1353
|
+
人間可読な推論根拠
|
|
1354
|
+
```
|
|
1355
|
+
|
|
1356
|
+
# 5. 9つの憲法条項
|
|
1357
|
+
|
|
1358
|
+
MUSUBIXは、MUSUBIから継承した **9つの憲法条項(Constitutional Articles)** を遵守します。これらは開発プロセス全体を統治する不変の原則であり、AIコーディングエージェントが従うべきガバナンスフレームワークです。
|
|
1359
|
+
|
|
1360
|
+
ニューロシンボリックAIへの進化により、各条項の実装がより強力になりました。LLMの創造性と知識グラフの厳密性を組み合わせることで、これらの原則を **自動的かつ一貫して** 適用できるようになっています。
|
|
1361
|
+
|
|
1362
|
+
| Article | 原則 | MUSUBIXでの実装 |
|
|
1363
|
+
|---------|------|-----------------|
|
|
1364
|
+
| I | **Specification First** | EARS検証 + オントロジーマッピング |
|
|
1365
|
+
| II | **Design Before Code** | C4モデル + パターン検出 |
|
|
1366
|
+
| III | **Single Source of Truth** | 知識グラフによる一元管理 |
|
|
1367
|
+
| IV | **Traceability** | トレーサビリティマトリクス |
|
|
1368
|
+
| V | **Incremental Progress** | 要件分解 + スプリント計画 |
|
|
1369
|
+
| VI | **Decision Documentation** | ADR自動生成 |
|
|
1370
|
+
| VII | **Quality Gates** | 信頼度評価 + 矛盾検出 |
|
|
1371
|
+
| VIII | **User-Centric** | 対話的ヒアリング |
|
|
1372
|
+
| IX | **Continuous Learning** | 知識グラフ更新 |
|
|
1373
|
+
|
|
1374
|
+
各条項は相互に関連し、開発ライフサイクル全体をカバーしています。MUSUBIXでは、これらの原則違反を知識グラフで自動検出し、開発者にフィードバックを提供します。
|
|
1375
|
+
|
|
1376
|
+
# 6. 実践例:要件定義の強化
|
|
1377
|
+
|
|
1378
|
+
## 6.1 MUSUBIでの要件定義
|
|
1379
|
+
|
|
1380
|
+
```markdown
|
|
1381
|
+
# 従来のMUSUBI
|
|
1382
|
+
WHEN ユーザーがログインフォームを送信する
|
|
1383
|
+
THE システム SHALL 認証を実行する
|
|
1384
|
+
AND THE システム SHALL セッションを作成する
|
|
1385
|
+
```
|
|
1386
|
+
|
|
1387
|
+
## 6.2 MUSUBIXでの要件定義
|
|
1388
|
+
|
|
1389
|
+
```markdown
|
|
1390
|
+
# MUSUBIXによる強化
|
|
1391
|
+
WHEN ユーザーがログインフォームを送信する
|
|
1392
|
+
THE システム SHALL 認証を実行する
|
|
1393
|
+
AND THE システム SHALL セッションを作成する
|
|
1394
|
+
|
|
1395
|
+
# 知識グラフによる補完
|
|
1396
|
+
- 関連要件: REQ-AUTH-001, REQ-SESSION-001
|
|
1397
|
+
- 影響コンポーネント: AuthService, SessionManager
|
|
1398
|
+
- セキュリティ考慮: OWASP A07:2021対応
|
|
1399
|
+
- 推奨パターン: Strategy Pattern for Auth Providers
|
|
1400
|
+
```
|
|
1401
|
+
|
|
1402
|
+
# 7. まとめ
|
|
1403
|
+
|
|
1404
|
+
## 7.1 ニューロシンボリックAIの価値
|
|
1405
|
+
|
|
1406
|
+
MUSUBIXが採用するニューロシンボリックAIは、従来のAIコーディング支援の限界を突破する価値を提供します。
|
|
1407
|
+
|
|
1408
|
+
LLM単体では、「幻覚(Hallucination)」や「確率的出力」といった問題が避けられません。しかし、知識グラフによるシンボリック推論を組み合わせることで、これらの問題を検出・防止できます。
|
|
1409
|
+
|
|
1410
|
+
以下の図は、4つの主要な価値と、それが開発にもたらす具体的な効果を示しています。
|
|
1411
|
+
|
|
1412
|
+
```mermaid
|
|
1413
|
+
flowchart TB
|
|
1414
|
+
subgraph Value["ニューロシンボリックAIの価値"]
|
|
1415
|
+
V1[🎯 精度向上<br/>LLM幻覚の防止]
|
|
1416
|
+
V2[📊 説明可能性<br/>推論チェーンの追跡]
|
|
1417
|
+
V3[🔄 知識の永続化<br/>オントロジー蓄積]
|
|
1418
|
+
V4[✅ 形式的検証<br/>矛盾の自動検出]
|
|
1419
|
+
end
|
|
1420
|
+
|
|
1421
|
+
subgraph Outcome["開発への効果"]
|
|
1422
|
+
O1[バグの早期発見]
|
|
1423
|
+
O2[レビュー効率向上]
|
|
1424
|
+
O3[知識の組織資産化]
|
|
1425
|
+
O4[品質の一貫性]
|
|
1426
|
+
end
|
|
1427
|
+
|
|
1428
|
+
V1 --> O1
|
|
1429
|
+
V2 --> O2
|
|
1430
|
+
V3 --> O3
|
|
1431
|
+
V4 --> O4
|
|
1432
|
+
```
|
|
1433
|
+
|
|
1434
|
+
| 価値 | 従来のLLMの問題 | MUSUBIXによる解決 |
|
|
1435
|
+
|------|------------------|--------------------|
|
|
1436
|
+
| **精度向上** | 誤ったコード生成 | 知識グラフで事前検証 |
|
|
1437
|
+
| **説明可能性** | なぜAIがその出力をしたか不明 | 推論チェーンで完全追跡 |
|
|
1438
|
+
| **知識永続化** | セッションごとに忘却 | オントロジーとして蓄積 |
|
|
1439
|
+
| **形式的検証** | 論理矛盾を見逃す | シンボリック推論で自動検出 |
|
|
1440
|
+
|
|
1441
|
+
## 7.2 進化の要点
|
|
1442
|
+
|
|
1443
|
+
MUSUBIからMUSUBIXへの進化は、単なる機能追加ではなく、**パラダイムシフト**です。以下の4つの軸で進化が起こりました。
|
|
1444
|
+
|
|
1445
|
+
1. **確率的 → 確定的**: LLMの「毎回異なる結果」から、知識グラフによる「再現可能な結果」へ
|
|
1446
|
+
2. **揮発的 → 永続的**: セッション限定の記憶から、オントロジーとしての永続的知識へ
|
|
1447
|
+
3. **不透明 → 説明可能**: ブラックボックスAIから、推論チェーンが追跡可能なAIへ
|
|
1448
|
+
4. **孤立知識 → オントロジー統合**: 断片的な情報から、構造化された知識体系へ
|
|
1449
|
+
|
|
1450
|
+
```mermaid
|
|
1451
|
+
flowchart LR
|
|
1452
|
+
MUSUBI[MUSUBI<br/>仕様駆動開発] -->|+ YATA| MUSUBIX[MUSUBIX<br/>ニューロシンボリックAI]
|
|
1453
|
+
|
|
1454
|
+
subgraph Evolution["進化のポイント"]
|
|
1455
|
+
E1[確率的 → 確定的]
|
|
1456
|
+
E2[揮発的 → 永続的]
|
|
1457
|
+
E3[不透明 → 説明可能]
|
|
1458
|
+
E4[孤立知識 → オントロジー統合]
|
|
1459
|
+
end
|
|
1460
|
+
```
|
|
1461
|
+
|
|
1462
|
+
この進化により、MUSUBIXは単なる「AIコーディングツール」を超え、**知識駆動型の開発プラットフォーム**へと進化しました。
|
|
1463
|
+
|
|
1464
|
+
| 観点 | MUSUBI | MUSUBIX |
|
|
1465
|
+
|------|--------|----------|
|
|
1466
|
+
| **推論の信頼性** | LLMに依存 | 形式的検証で補完 |
|
|
1467
|
+
| **知識の永続性** | セッション限定 | 知識グラフに蓄積 |
|
|
1468
|
+
| **説明可能性** | 限定的 | 推論チェーンで完全追跡 |
|
|
1469
|
+
| **開発効率** | 高い | さらに高い |
|
|
1470
|
+
| **オントロジー** | なし | ドメイン・技術・SDDの3層オントロジー |
|
|
1471
|
+
|
|
1472
|
+
## 7.3 今後の展望
|
|
1473
|
+
|
|
1474
|
+
MUSUBIXは現在の機能に加え、さらなる進化を計画しています。ニューロシンボリックAIの可能性を最大限に引き出すため、以下の機能拡張を検討中です。
|
|
1475
|
+
|
|
1476
|
+
- **自動リファクタリング**: 知識グラフに蓄積されたパターンとベストプラクティスに基づき、コードの最適化を自動提案。技術的負債の検出と解消を支援します。
|
|
1477
|
+
- **チーム知識共有(YATA Global / YATA Local)**: 組織横断的な知識グラフ統合により、チーム間でのノウハウ共有を実現。「車輪の再発明」を防ぎ、組織全体の開発効率を向上させます。
|
|
1478
|
+
|
|
1479
|
+
## YATA Global / YATA Local アーキテクチャ
|
|
1480
|
+
|
|
1481
|
+
チーム知識共有を実現するため、**2層の知識グラフアーキテクチャ**を計画しています。
|
|
1482
|
+
|
|
1483
|
+
```mermaid
|
|
1484
|
+
flowchart TB
|
|
1485
|
+
subgraph Global["YATA Global(組織共有)"]
|
|
1486
|
+
G1[共通ベストプラクティス]
|
|
1487
|
+
G2[標準アーキテクチャパターン]
|
|
1488
|
+
G3[セキュリティガイドライン]
|
|
1489
|
+
G4[組織横断的な技術決定]
|
|
1490
|
+
end
|
|
1491
|
+
|
|
1492
|
+
Global <-->|同期・昇格| Local1
|
|
1493
|
+
Global <-->|同期・昇格| Local2
|
|
1494
|
+
Global <-->|同期・昇格| Local3
|
|
1495
|
+
|
|
1496
|
+
subgraph Local1["YATA Local (Team A)"]
|
|
1497
|
+
L1A[プロジェクト固有知識]
|
|
1498
|
+
end
|
|
1499
|
+
|
|
1500
|
+
subgraph Local2["YATA Local (Team B)"]
|
|
1501
|
+
L2A[プロジェクト固有知識]
|
|
1502
|
+
end
|
|
1503
|
+
|
|
1504
|
+
subgraph Local3["YATA Local (Team C)"]
|
|
1505
|
+
L3A[プロジェクト固有知識]
|
|
1506
|
+
end
|
|
1507
|
+
```
|
|
1508
|
+
|
|
1509
|
+
| レイヤー | 役割 | メリット |
|
|
1510
|
+
|----------|------|----------|
|
|
1511
|
+
| **YATA Global** | 組織共通知識の一元管理 | 標準化、重複排除、ガバナンス |
|
|
1512
|
+
| **YATA Local** | チーム/プロジェクト固有知識 | 高速アクセス、プライバシー、カスタマイズ |
|
|
1513
|
+
|
|
1514
|
+
この2層アーキテクチャにより、以下を実現します。
|
|
1515
|
+
|
|
1516
|
+
1. **プライバシーとセキュリティ**: 機密性の高いプロジェクト知識はLocalに保持
|
|
1517
|
+
2. **スケーラビリティ**: Localで高速処理、Globalで共有
|
|
1518
|
+
3. **知識の昇格フロー**: Localで検証された知識をGlobalへ昇格
|
|
1519
|
+
4. **オフライン対応**: Localがあれば接続なしでも動作
|
|
1520
|
+
|
|
1521
|
+
これらの機能は、MUSUBIXの核心である「知識の永続化」と「形式的検証」の強みを活かしたものであり、AIコーディング支援の次なるステージを切り開きます。
|
|
1522
|
+
|
|
1523
|
+
# 8. インストール方法
|
|
1524
|
+
|
|
1525
|
+
MUSUBIXはnpmで公開されており、簡単にインストールできます。
|
|
1526
|
+
|
|
1527
|
+
## 8.1 クイックスタート
|
|
1528
|
+
|
|
1529
|
+
```bash
|
|
1530
|
+
# 統合パッケージ(推奨)
|
|
1531
|
+
npm install musubix
|
|
1532
|
+
|
|
1533
|
+
# または npx で直接実行
|
|
1534
|
+
npx musubix --help
|
|
1535
|
+
npx musubix-mcp
|
|
1536
|
+
```
|
|
1537
|
+
|
|
1538
|
+
## 8.2 パッケージ一覧
|
|
1539
|
+
|
|
1540
|
+
| パッケージ | インストールコマンド | 説明 |
|
|
1541
|
+
|-----------|---------------------|------|
|
|
1542
|
+
| **musubix** | `npm install musubix` | 統合パッケージ(全機能) |
|
|
1543
|
+
| @nahisaho/musubix-core | `npm install @nahisaho/musubix-core` | コアライブラリ |
|
|
1544
|
+
| @nahisaho/musubix-mcp-server | `npm install @nahisaho/musubix-mcp-server` | MCPサーバー |
|
|
1545
|
+
| @nahisaho/musubix-yata-client | `npm install @nahisaho/musubix-yata-client` | YATAクライアント |
|
|
1546
|
+
| @nahisaho/musubix-pattern-mcp | `npm install @nahisaho/musubix-pattern-mcp` | パターン抽出・圧縮・ライブラリ |
|
|
1547
|
+
| @nahisaho/musubix-ontology-mcp | `npm install @nahisaho/musubix-ontology-mcp` | N3Store・RDF推論エンジン |
|
|
1548
|
+
| @nahisaho/musubix-wake-sleep | `npm install @nahisaho/musubix-wake-sleep` | Wake-Sleep学習サイクル |
|
|
1549
|
+
| @nahisaho/musubix-sdd-ontology | `npm install @nahisaho/musubix-sdd-ontology` | SDD方法論オントロジー |
|
|
1550
|
+
|
|
1551
|
+
## 8.3 利用方法の選択
|
|
1552
|
+
|
|
1553
|
+
MUSUBIXには**2つの利用方法**があります。用途に応じて選択してください。
|
|
1554
|
+
|
|
1555
|
+
```mermaid
|
|
1556
|
+
flowchart TB
|
|
1557
|
+
subgraph Install["インストール"]
|
|
1558
|
+
I1[npm install musubix]
|
|
1559
|
+
end
|
|
1560
|
+
|
|
1561
|
+
Install --> Choice{利用方法の選択}
|
|
1562
|
+
|
|
1563
|
+
Choice -->|方法1| Direct["📁 直接利用<br/>AGENTS.md + プロンプト"]
|
|
1564
|
+
Choice -->|方法2| MCP["🔌 MCP経由<br/>MCPサーバー連携"]
|
|
1565
|
+
|
|
1566
|
+
Direct --> D1[GitHub Copilot]
|
|
1567
|
+
Direct --> D2[Claude Code]
|
|
1568
|
+
Direct --> D3[Cursor IDE]
|
|
1569
|
+
|
|
1570
|
+
MCP --> M1[Claude Desktop]
|
|
1571
|
+
MCP --> M2[VS Code + MCP拡張]
|
|
1572
|
+
MCP --> M3[その他MCPクライアント]
|
|
1573
|
+
```
|
|
1574
|
+
|
|
1575
|
+
| 方法 | 特徴 | 推奨ユースケース |
|
|
1576
|
+
|------|------|------------------|
|
|
1577
|
+
| **方法1: 直接利用** | 設定不要、即座に利用可能 | 日常のコーディング、要件定義、設計 |
|
|
1578
|
+
| **方法2: MCP経由** | 高度なツール連携、知識グラフ統合 | 大規模プロジェクト、チーム開発 |
|
|
1579
|
+
|
|
1580
|
+
## 8.4 方法1: 直接利用(GitHub Copilot等)
|
|
1581
|
+
|
|
1582
|
+
musubixパッケージをインストールすると、**AGENTS.md**と**プロンプトファイル**が `node_modules/musubix/` に配置されます。GitHub Copilotなどのエディタ統合AIは、これらのファイルを自動的に認識し、MUSUBIXの機能を利用できます。
|
|
1583
|
+
|
|
1584
|
+
### セットアップ手順
|
|
1585
|
+
|
|
1586
|
+
```bash
|
|
1587
|
+
# 1. musubixをインストール
|
|
1588
|
+
npm install musubix
|
|
1589
|
+
|
|
1590
|
+
# 2. AGENTS.mdをプロジェクトルートにコピー(推奨)
|
|
1591
|
+
cp node_modules/musubix/AGENTS.md ./AGENTS.md
|
|
1592
|
+
|
|
1593
|
+
# 3. プロンプトファイルをコピー(オプション)
|
|
1594
|
+
cp -r node_modules/musubix/.github/prompts ./.github/prompts
|
|
1595
|
+
```
|
|
1596
|
+
|
|
1597
|
+
### 自動認識されるファイル
|
|
1598
|
+
|
|
1599
|
+
| ファイル | 場所 | 説明 |
|
|
1600
|
+
|---------|------|------|
|
|
1601
|
+
| **AGENTS.md** | プロジェクトルート | AIエージェント向けの包括的なガイド |
|
|
1602
|
+
| **プロンプトファイル** | `.github/prompts/` | SDD各フェーズ専用のプロンプト |
|
|
1603
|
+
|
|
1604
|
+
### 提供されるプロンプトファイル
|
|
1605
|
+
|
|
1606
|
+
```
|
|
1607
|
+
.github/prompts/
|
|
1608
|
+
├── sdd-requirements.prompt.md # 要件定義フェーズ
|
|
1609
|
+
├── sdd-design.prompt.md # 設計フェーズ
|
|
1610
|
+
├── sdd-implement.prompt.md # 実装フェーズ
|
|
1611
|
+
├── sdd-tasks.prompt.md # タスク分解
|
|
1612
|
+
├── sdd-validate.prompt.md # 検証フェーズ
|
|
1613
|
+
├── sdd-steering.prompt.md # プロジェクト方針
|
|
1614
|
+
├── sdd-change-init.prompt.md # 変更開始
|
|
1615
|
+
├── sdd-change-apply.prompt.md # 変更適用
|
|
1616
|
+
└── sdd-change-archive.prompt.md # 変更アーカイブ
|
|
1617
|
+
```
|
|
1618
|
+
|
|
1619
|
+
### 使い方(GitHub Copilot / Cursor / Claude Code)
|
|
1620
|
+
|
|
1621
|
+
```markdown
|
|
1622
|
+
# プロンプトファイルを使用
|
|
1623
|
+
@workspace /sdd-requirements 予約管理システムの要件を定義してください
|
|
1624
|
+
|
|
1625
|
+
# または AGENTS.md のガイドに従って質問
|
|
1626
|
+
MUSUBIXのEARS形式で要件を書いてください
|
|
1627
|
+
```
|
|
1628
|
+
|
|
1629
|
+
### メリット
|
|
1630
|
+
|
|
1631
|
+
- ✅ **設定不要**: インストール後すぐに利用可能
|
|
1632
|
+
- ✅ **軽量**: MCPサーバーの起動不要
|
|
1633
|
+
- ✅ **汎用性**: 主要なAIエディタで動作
|
|
1634
|
+
- ✅ **オフライン対応**: ネットワーク不要
|
|
1635
|
+
|
|
1636
|
+
## 8.5 方法2: MCP経由(MCPサーバー連携)
|
|
1637
|
+
|
|
1638
|
+
MCP(Model Context Protocol)を使用すると、**16の専用ツール**(SDD基本9 + パターン統合7)と**3つのプロンプト**を利用でき、より高度な機能(知識グラフクエリ、トレーサビリティ検証、パターン学習等)が使えます。
|
|
1639
|
+
|
|
1640
|
+
### Claude Code(CLI)
|
|
1641
|
+
|
|
1642
|
+
```bash
|
|
1643
|
+
# MUSUBIX MCP サーバーを追加
|
|
1644
|
+
claude mcp add musubix -- npx @nahisaho/musubix-mcp-server
|
|
1645
|
+
|
|
1646
|
+
# 設定確認
|
|
1647
|
+
claude mcp list
|
|
1648
|
+
```
|
|
1649
|
+
|
|
1650
|
+
または `.mcp.json` をプロジェクトルートに作成:
|
|
1651
|
+
|
|
1652
|
+
```json
|
|
1653
|
+
{
|
|
1654
|
+
"mcpServers": {
|
|
1655
|
+
"musubix": {
|
|
1656
|
+
"command": "npx",
|
|
1657
|
+
"args": ["@nahisaho/musubix-mcp-server"]
|
|
1658
|
+
}
|
|
1659
|
+
}
|
|
1660
|
+
}
|
|
1661
|
+
```
|
|
1662
|
+
|
|
1663
|
+
### Claude Desktop / GitHub Copilot / Cursor IDE
|
|
1664
|
+
|
|
1665
|
+
`.vscode/mcp.json` を作成:
|
|
1666
|
+
|
|
1667
|
+
```json
|
|
1668
|
+
{
|
|
1669
|
+
"mcpServers": {
|
|
1670
|
+
"musubix": {
|
|
1671
|
+
"command": "npx",
|
|
1672
|
+
"args": ["@nahisaho/musubix-mcp-server"]
|
|
1673
|
+
}
|
|
1674
|
+
}
|
|
1675
|
+
}
|
|
1676
|
+
```
|
|
1677
|
+
|
|
1678
|
+
### 利用可能なMCPツール(19ツール)
|
|
1679
|
+
|
|
1680
|
+
#### SDD基本ツール(9ツール)
|
|
1681
|
+
|
|
1682
|
+
| ツール名 | 説明 |
|
|
1683
|
+
|---------|------|
|
|
1684
|
+
| `sdd_create_requirements` | EARS形式の要件ドキュメント作成 |
|
|
1685
|
+
| `sdd_validate_requirements` | 要件のEARS検証・憲法準拠チェック |
|
|
1686
|
+
| `sdd_create_design` | C4モデル設計ドキュメント作成 |
|
|
1687
|
+
| `sdd_validate_design` | 設計の要件トレーサビリティ検証 |
|
|
1688
|
+
| `sdd_create_tasks` | 設計から実装タスク生成 |
|
|
1689
|
+
| `sdd_query_knowledge` | YATA知識グラフへのクエリ |
|
|
1690
|
+
| `sdd_update_knowledge` | 知識グラフの更新 |
|
|
1691
|
+
| `sdd_validate_constitution` | 9憲法条項への準拠検証 |
|
|
1692
|
+
| `sdd_validate_traceability` | 要件↔設計↔タスクのトレーサビリティ検証 |
|
|
1693
|
+
|
|
1694
|
+
#### パターン統合ツール(7ツール)- v1.3.0 NEW!
|
|
1695
|
+
|
|
1696
|
+
| ツール名 | 説明 |
|
|
1697
|
+
|---------|------|
|
|
1698
|
+
| `pattern_extract` | コードからパターンを抽出 |
|
|
1699
|
+
| `pattern_compress` | パターンの抽象化・圧縮 |
|
|
1700
|
+
| `pattern_store` | パターンライブラリへの保存 |
|
|
1701
|
+
| `pattern_query` | パターンの検索・取得 |
|
|
1702
|
+
| `pattern_consolidate` | 類似パターンの統合 |
|
|
1703
|
+
| `ontology_query` | オントロジーグラフへのクエリ |
|
|
1704
|
+
| `ontology_infer` | オントロジーによる推論実行 |
|
|
1705
|
+
|
|
1706
|
+
#### オントロジー検証ツール(3ツール)- v1.4.1 NEW!
|
|
1707
|
+
|
|
1708
|
+
| ツール名 | 説明 |
|
|
1709
|
+
|---------|------|
|
|
1710
|
+
| `consistency_validate` | 知識グラフの整合性検証 |
|
|
1711
|
+
| `validate_triple` | 単一トリプルの事前検証 |
|
|
1712
|
+
| `check_circular` | 循環依存の検出 |
|
|
1713
|
+
|
|
1714
|
+
# 9. YATA Local & YATA Global(v1.6.3)
|
|
1715
|
+
|
|
1716
|
+
v1.6.3では、知識グラフの永続化と分散管理のための新パッケージを追加しました。
|
|
1717
|
+
|
|
1718
|
+
## 9.1 YATA Local
|
|
1719
|
+
|
|
1720
|
+
SQLiteベースのローカル知識グラフストレージです。
|
|
1721
|
+
|
|
1722
|
+
```mermaid
|
|
1723
|
+
flowchart TB
|
|
1724
|
+
subgraph YataLocal["YATA Local"]
|
|
1725
|
+
DB["SQLite Database<br/>WAL mode, FTS5"]
|
|
1726
|
+
QE["Query Engine<br/>BFS/DFS pathfinding"]
|
|
1727
|
+
RE["Reasoning Engine<br/>4 built-in rules"]
|
|
1728
|
+
IO["I/O Module<br/>JSON/RDF export"]
|
|
1729
|
+
end
|
|
1730
|
+
|
|
1731
|
+
DB --> QE
|
|
1732
|
+
QE --> RE
|
|
1733
|
+
RE --> IO
|
|
1734
|
+
```
|
|
1735
|
+
|
|
1736
|
+
### 主な機能
|
|
1737
|
+
|
|
1738
|
+
| コンポーネント | 機能 |
|
|
1739
|
+
|--------------|------|
|
|
1740
|
+
| **Database Layer** | Entity/Relationship CRUD, FTS5全文検索, 変更追跡 |
|
|
1741
|
+
| **Query Engine** | グラフクエリ, BFS/DFSパス探索, サブグラフ抽出, パターンマッチ |
|
|
1742
|
+
| **Reasoning Engine** | 推論ルール実行, 制約検証, 信頼度計算, 関係性推奨 |
|
|
1743
|
+
| **I/O Module** | JSON/RDF(N-Triples)エクスポート, Delta同期 |
|
|
1744
|
+
|
|
1745
|
+
### 組み込み推論ルール
|
|
1746
|
+
|
|
1747
|
+
```typescript
|
|
1748
|
+
// 推移的継承: A extends B, B extends C → A extends C
|
|
1749
|
+
'transitive-extends'
|
|
1750
|
+
|
|
1751
|
+
// 型実装: A implements B → A is-a B
|
|
1752
|
+
'implements-type'
|
|
1753
|
+
|
|
1754
|
+
// 推移的依存: A depends-on B, B depends-on C → A depends-on C
|
|
1755
|
+
'transitive-dependency'
|
|
1756
|
+
|
|
1757
|
+
// メソッドオーバーライド: A extends B, B has method M → A overrides M
|
|
1758
|
+
'method-override'
|
|
1759
|
+
```
|
|
1760
|
+
|
|
1761
|
+
### 使用例
|
|
1762
|
+
|
|
1763
|
+
```typescript
|
|
1764
|
+
import { createYataLocal } from '@nahisaho/yata-local';
|
|
1765
|
+
|
|
1766
|
+
const yata = createYataLocal('./knowledge.sqlite');
|
|
1767
|
+
|
|
1768
|
+
// エンティティ追加
|
|
1769
|
+
yata.addEntity({
|
|
1770
|
+
id: 'class-user',
|
|
1771
|
+
type: 'class',
|
|
1772
|
+
name: 'User',
|
|
1773
|
+
file: 'src/models/user.ts',
|
|
1774
|
+
properties: { abstract: false }
|
|
1775
|
+
});
|
|
1776
|
+
|
|
1777
|
+
// 関係性追加
|
|
1778
|
+
yata.addRelationship({
|
|
1779
|
+
source: 'class-admin',
|
|
1780
|
+
target: 'class-user',
|
|
1781
|
+
type: 'extends'
|
|
1782
|
+
});
|
|
1783
|
+
|
|
1784
|
+
// パス探索
|
|
1785
|
+
const path = yata.findPath('class-admin', 'interface-entity');
|
|
1786
|
+
|
|
1787
|
+
// 推論実行
|
|
1788
|
+
const inferred = yata.infer();
|
|
1789
|
+
|
|
1790
|
+
// 制約検証
|
|
1791
|
+
const validation = yata.validate();
|
|
1792
|
+
|
|
1793
|
+
yata.close();
|
|
1794
|
+
```
|
|
1795
|
+
|
|
1796
|
+
## 9.2 YATA Global
|
|
1797
|
+
|
|
1798
|
+
分散型知識グラフプラットフォームです。
|
|
1799
|
+
|
|
1800
|
+
```mermaid
|
|
1801
|
+
flowchart TB
|
|
1802
|
+
subgraph YataGlobal["YATA Global Platform"]
|
|
1803
|
+
API["API Client<br/>REST, Auth, Rate limiting"]
|
|
1804
|
+
Cache["Cache Manager<br/>SQLite offline cache"]
|
|
1805
|
+
Sync["Sync Engine<br/>Push/Pull, Auto-sync"]
|
|
1806
|
+
Client["Main Client<br/>Search, Share, Analytics"]
|
|
1807
|
+
end
|
|
1808
|
+
|
|
1809
|
+
subgraph Features["Features"]
|
|
1810
|
+
FW["Framework Knowledge<br/>19 categories, 20 languages"]
|
|
1811
|
+
PAT["Shared Patterns<br/>15 categories"]
|
|
1812
|
+
COMM["Community<br/>Ratings, Downloads"]
|
|
1813
|
+
end
|
|
1814
|
+
|
|
1815
|
+
Client --> API
|
|
1816
|
+
Client --> Cache
|
|
1817
|
+
Client --> Sync
|
|
1818
|
+
Client --> Features
|
|
1819
|
+
```
|
|
1820
|
+
|
|
1821
|
+
### 主な機能
|
|
1822
|
+
|
|
1823
|
+
| コンポーネント | 機能 |
|
|
1824
|
+
|--------------|------|
|
|
1825
|
+
| **API Client** | REST通信, Bearer認証, レート制限追跡 |
|
|
1826
|
+
| **Cache Manager** | SQLiteオフラインキャッシュ, TTL管理, 自動サイズ制限 |
|
|
1827
|
+
| **Sync Engine** | Push/Pull同期, 自動同期, オフラインキュー |
|
|
1828
|
+
| **Main Client** | 検索, パターン共有, 評価, アナリティクス |
|
|
1829
|
+
|
|
1830
|
+
### 使用例
|
|
1831
|
+
|
|
1832
|
+
```typescript
|
|
1833
|
+
import { createYataGlobal } from '@nahisaho/yata-global';
|
|
1834
|
+
|
|
1835
|
+
const yata = createYataGlobal({
|
|
1836
|
+
endpoint: 'https://api.yata.global/v1',
|
|
1837
|
+
offlineMode: false,
|
|
1838
|
+
});
|
|
1839
|
+
|
|
1840
|
+
// フレームワーク検索
|
|
1841
|
+
const frameworks = await yata.searchFrameworks({
|
|
1842
|
+
query: 'react',
|
|
1843
|
+
category: 'web-frontend',
|
|
1844
|
+
sortBy: 'popularity',
|
|
1845
|
+
});
|
|
1846
|
+
|
|
1847
|
+
// パターン検索
|
|
1848
|
+
const patterns = await yata.searchPatterns({
|
|
1849
|
+
query: 'hooks',
|
|
1850
|
+
language: 'typescript',
|
|
1851
|
+
});
|
|
1852
|
+
|
|
1853
|
+
// パターン共有(認証必要)
|
|
1854
|
+
await yata.login({ username: 'user', password: 'pass' });
|
|
1855
|
+
const patternId = await yata.sharePattern({
|
|
1856
|
+
name: 'Custom Hook Pattern',
|
|
1857
|
+
description: 'Reusable stateful logic',
|
|
1858
|
+
category: 'design-pattern',
|
|
1859
|
+
frameworks: ['react'],
|
|
1860
|
+
language: 'typescript',
|
|
1861
|
+
template: 'function use${Name}() { ... }',
|
|
1862
|
+
tags: ['hooks', 'state'],
|
|
1863
|
+
visibility: 'public',
|
|
1864
|
+
official: false,
|
|
1865
|
+
});
|
|
1866
|
+
|
|
1867
|
+
// 同期
|
|
1868
|
+
const result = await yata.sync();
|
|
1869
|
+
console.log(`Pulled: ${result.frameworksPulled} frameworks`);
|
|
1870
|
+
|
|
1871
|
+
// オフラインモード
|
|
1872
|
+
yata.enableOfflineMode();
|
|
1873
|
+
|
|
1874
|
+
yata.close();
|
|
1875
|
+
```
|
|
1876
|
+
|
|
1877
|
+
### オフラインサポート
|
|
1878
|
+
|
|
1879
|
+
YATA Globalは完全なオフラインサポートを提供:
|
|
1880
|
+
|
|
1881
|
+
| 機能 | オンライン | オフライン |
|
|
1882
|
+
|------|----------|-----------|
|
|
1883
|
+
| 検索 | API + キャッシュ | キャッシュのみ |
|
|
1884
|
+
| パターン共有 | 即時アップロード | キューに追加 |
|
|
1885
|
+
| 評価 | 即時送信 | キューに追加 |
|
|
1886
|
+
| 同期 | 利用可能 | 無効 |
|
|
1887
|
+
|
|
1888
|
+
### メリット
|
|
1889
|
+
|
|
1890
|
+
- ✅ **高速アクセス**: SQLiteキャッシュによる高速検索
|
|
1891
|
+
- ✅ **オフライン対応**: ネットワーク非接続時も動作
|
|
1892
|
+
- ✅ **自動同期**: バックグラウンドでの定期同期
|
|
1893
|
+
- ✅ **コミュニティ**: パターン共有と評価
|
|
1894
|
+
- ✅ **マルチ言語**: 20プログラミング言語対応
|
|
1895
|
+
|
|
1896
|
+
### メリット
|
|
1897
|
+
|
|
1898
|
+
- ✅ **高度な機能**: 知識グラフ連携、矛盾検出
|
|
1899
|
+
- ✅ **ツール統合**: AIが直接ツールを呼び出し可能
|
|
1900
|
+
- ✅ **リアルタイム検証**: 作成中のドキュメントを即座に検証
|
|
1901
|
+
- ✅ **トレーサビリティ**: 要件から実装までの完全追跡
|
|
1902
|
+
|
|
1903
|
+
## 9.3 どちらを選ぶべきか?
|
|
1904
|
+
|
|
1905
|
+
```mermaid
|
|
1906
|
+
flowchart TD
|
|
1907
|
+
Start[MUSUBIXを使いたい] --> Q1{MCPを使う環境がある?}
|
|
1908
|
+
|
|
1909
|
+
Q1 -->|はい| Q2{高度な機能が<br>必要?}
|
|
1910
|
+
Q1 -->|いいえ| Direct[方法1: 直接利用]
|
|
1911
|
+
|
|
1912
|
+
Q2 -->|はい| MCP[方法2: MCP経由]
|
|
1913
|
+
Q2 -->|いいえ| Both[両方併用]
|
|
1914
|
+
|
|
1915
|
+
Direct --> Use1[AGENTS.md + プロンプトで日常開発]
|
|
1916
|
+
MCP --> Use2[MCPツールで<br>高度な検証・分析]
|
|
1917
|
+
Both --> Use3[普段は直接利用<br>必要時にMCP]
|
|
1918
|
+
```
|
|
1919
|
+
|
|
1920
|
+
| シナリオ | 推奨方法 |
|
|
1921
|
+
|---------|---------|
|
|
1922
|
+
| 個人開発、小規模プロジェクト | 方法1(直接利用) |
|
|
1923
|
+
| チーム開発、大規模プロジェクト | 方法2(MCP経由) |
|
|
1924
|
+
| 要件定義・設計のみ利用 | 方法1(直接利用) |
|
|
1925
|
+
| 知識グラフ連携が必要 | 方法2(MCP経由) |
|
|
1926
|
+
| 両方の利点を活かしたい | 両方併用 |
|
|
1927
|
+
|
|
1928
|
+
詳細は [インストールガイド](https://github.com/nahisaho/MUSUBIX/blob/main/docs/INSTALL-GUIDE.ja.md) を参照してください。
|
|
1929
|
+
|
|
1930
|
+
# 10. KGPR - Knowledge Graph Pull Request(v1.6.4)
|
|
1931
|
+
|
|
1932
|
+
v1.6.4では、**KGPR(Knowledge Graph Pull Request)**機能が追加されました。これはGitHub PRと同様のワークフローで、YATA LocalからYATA Globalへ安全に知識グラフを共有する機能です。
|
|
1933
|
+
|
|
1934
|
+
## 10.1 KGPRワークフロー
|
|
1935
|
+
|
|
1936
|
+
```mermaid
|
|
1937
|
+
flowchart LR
|
|
1938
|
+
subgraph Local["YATA Local"]
|
|
1939
|
+
L1[プロジェクト知識<br>自動収集]
|
|
1940
|
+
L2[パターン抽出]
|
|
1941
|
+
end
|
|
1942
|
+
|
|
1943
|
+
subgraph KGPR["KGPR処理"]
|
|
1944
|
+
K1[差分抽出]
|
|
1945
|
+
K2[プライバシー<br>フィルタリング]
|
|
1946
|
+
K3[レビュー<br>リクエスト]
|
|
1947
|
+
end
|
|
1948
|
+
|
|
1949
|
+
subgraph Global["YATA Global"]
|
|
1950
|
+
G1[レビュー]
|
|
1951
|
+
G2[マージ]
|
|
1952
|
+
G3[コミュニティ<br>知識]
|
|
1953
|
+
end
|
|
1954
|
+
|
|
1955
|
+
L1 --> L2
|
|
1956
|
+
L2 --> K1
|
|
1957
|
+
K1 --> K2
|
|
1958
|
+
K2 --> K3
|
|
1959
|
+
K3 --> G1
|
|
1960
|
+
G1 --> G2
|
|
1961
|
+
G2 --> G3
|
|
1962
|
+
```
|
|
1963
|
+
|
|
1964
|
+
## 10.2 プライバシーフィルター
|
|
1965
|
+
|
|
1966
|
+
機密情報の漏洩を防ぐため、3段階のプライバシーレベルを提供:
|
|
1967
|
+
|
|
1968
|
+
| レベル | フィルタ対象 | 推奨シナリオ |
|
|
1969
|
+
|-------|------------|------------|
|
|
1970
|
+
| `strict` | ファイルパス、URL、認証情報、全メタデータ | オープンソース公開 |
|
|
1971
|
+
| `moderate` | ファイルパス、URL、認証情報 | 組織内共有 |
|
|
1972
|
+
| `none` | フィルタなし | 完全な内部利用 |
|
|
1973
|
+
|
|
1974
|
+
## 10.3 KGPRステータス遷移
|
|
1975
|
+
|
|
1976
|
+
```
|
|
1977
|
+
draft → open → reviewing → approved/changes_requested → merged/closed
|
|
1978
|
+
```
|
|
1979
|
+
|
|
1980
|
+
| ステータス | 説明 |
|
|
1981
|
+
|-----------|------|
|
|
1982
|
+
| `draft` | 作成中、まだ送信されていない |
|
|
1983
|
+
| `open` | レビュー待ち |
|
|
1984
|
+
| `reviewing` | レビュー中 |
|
|
1985
|
+
| `approved` | 承認済み、マージ可能 |
|
|
1986
|
+
| `changes_requested` | 変更要求あり |
|
|
1987
|
+
| `merged` | マージ完了 |
|
|
1988
|
+
| `closed` | マージせずにクローズ |
|
|
1989
|
+
|
|
1990
|
+
## 10.4 CLIコマンド
|
|
1991
|
+
|
|
1992
|
+
```bash
|
|
1993
|
+
# KGPRの作成
|
|
1994
|
+
musubix kgpr create -t "Reactパターンの共有"
|
|
1995
|
+
|
|
1996
|
+
# 差分プレビュー
|
|
1997
|
+
musubix kgpr diff --namespace myproject --privacy moderate
|
|
1998
|
+
|
|
1999
|
+
# KGPR一覧
|
|
2000
|
+
musubix kgpr list
|
|
2001
|
+
|
|
2002
|
+
# KGPRの送信
|
|
2003
|
+
musubix kgpr submit KGPR-001
|
|
2004
|
+
|
|
2005
|
+
# KGPRの詳細表示
|
|
2006
|
+
musubix kgpr show KGPR-001
|
|
2007
|
+
|
|
2008
|
+
# KGPRのクローズ
|
|
2009
|
+
musubix kgpr close KGPR-001
|
|
2010
|
+
```
|
|
2011
|
+
|
|
2012
|
+
## 10.5 MCPツール
|
|
2013
|
+
|
|
2014
|
+
| ツール | 説明 |
|
|
2015
|
+
|-------|------|
|
|
2016
|
+
| `kgpr_create` | ローカル知識グラフからKGPRを作成 |
|
|
2017
|
+
| `kgpr_diff` | KGPR作成前に差分をプレビュー |
|
|
2018
|
+
| `kgpr_list` | 全KGPRを一覧表示 |
|
|
2019
|
+
| `kgpr_submit` | KGPRをレビューに送信 |
|
|
2020
|
+
| `kgpr_review` | KGPRをレビュー(approve/changes_requested/commented) |
|
|
2021
|
+
|
|
2022
|
+
# 11. YATA Platform Enhancements(v1.7.0)
|
|
2023
|
+
|
|
2024
|
+
v1.7.0では、YATAプラットフォーム全体に大規模な機能拡張が行われました。5つの主要フェーズで構成されています。
|
|
2025
|
+
|
|
2026
|
+
## 11.1 Phase 1: インデックス最適化
|
|
2027
|
+
|
|
2028
|
+
YATA Localのクエリパフォーマンスを大幅に向上させる複合インデックス最適化機能。
|
|
2029
|
+
|
|
2030
|
+
```mermaid
|
|
2031
|
+
flowchart LR
|
|
2032
|
+
subgraph IndexOptimizer["IndexOptimizer"]
|
|
2033
|
+
A[クエリパターン分析] --> B[最適インデックス生成]
|
|
2034
|
+
B --> C[インデックス健全性監視]
|
|
2035
|
+
end
|
|
2036
|
+
|
|
2037
|
+
C --> D[自動最適化推奨]
|
|
2038
|
+
```
|
|
2039
|
+
|
|
2040
|
+
| 機能 | 説明 |
|
|
2041
|
+
|------|------|
|
|
2042
|
+
| `analyzeQueryPatterns()` | クエリパターンを分析 |
|
|
2043
|
+
| `createOptimalIndexes()` | 複合インデックスを作成 |
|
|
2044
|
+
| `checkIndexHealth()` | 断片化を検出 |
|
|
2045
|
+
| `rebuildIndex()` | インデックス再構築 |
|
|
2046
|
+
|
|
2047
|
+
## 11.2 Phase 2: 拡張エクスポートパイプライン
|
|
2048
|
+
|
|
2049
|
+
増分エクスポートと複数フォーマット対応の強力なエクスポート機能。
|
|
2050
|
+
|
|
2051
|
+
```mermaid
|
|
2052
|
+
flowchart LR
|
|
2053
|
+
subgraph ExportPipeline["ExportPipeline"]
|
|
2054
|
+
E1[フルエクスポート]
|
|
2055
|
+
E2[増分エクスポート]
|
|
2056
|
+
E3[フォーマット変換]
|
|
2057
|
+
end
|
|
2058
|
+
|
|
2059
|
+
E1 --> F1[JSON]
|
|
2060
|
+
E2 --> F2[RDF/Turtle]
|
|
2061
|
+
E3 --> F3[N-Triples]
|
|
2062
|
+
```
|
|
2063
|
+
|
|
2064
|
+
| フォーマット | 説明 |
|
|
2065
|
+
|------------|------|
|
|
2066
|
+
| JSON | デフォルト形式 |
|
|
2067
|
+
| RDF/Turtle | セマンティックWeb標準 |
|
|
2068
|
+
| N-Triples | トリプル形式 |
|
|
2069
|
+
|
|
2070
|
+
## 11.3 Phase 3: Global同期統合
|
|
2071
|
+
|
|
2072
|
+
YATA LocalとYATA Global間のシームレスな同期機能。
|
|
2073
|
+
|
|
2074
|
+
```mermaid
|
|
2075
|
+
flowchart TB
|
|
2076
|
+
subgraph GlobalSync["GlobalSyncClient"]
|
|
2077
|
+
GS1[オフラインファースト] --> GS2[自動同期]
|
|
2078
|
+
GS2 --> GS3[競合解決]
|
|
2079
|
+
end
|
|
2080
|
+
|
|
2081
|
+
subgraph SyncEngine["SyncEngine"]
|
|
2082
|
+
SE1[Push同期]
|
|
2083
|
+
SE2[Pull同期]
|
|
2084
|
+
SE3[双方向マージ]
|
|
2085
|
+
end
|
|
2086
|
+
|
|
2087
|
+
GlobalSync --> SyncEngine
|
|
2088
|
+
```
|
|
2089
|
+
|
|
2090
|
+
| 競合解決戦略 | 説明 |
|
|
2091
|
+
|-------------|------|
|
|
2092
|
+
| `server-wins` | サーバー側を優先 |
|
|
2093
|
+
| `client-wins` | クライアント側を優先 |
|
|
2094
|
+
| `merge` | 自動マージ試行 |
|
|
2095
|
+
| `manual` | 手動解決 |
|
|
2096
|
+
|
|
2097
|
+
## 11.4 Phase 4: コードジェネレーター強化
|
|
2098
|
+
|
|
2099
|
+
設計ドキュメントからの高度なコード生成機能。
|
|
2100
|
+
|
|
2101
|
+
```mermaid
|
|
2102
|
+
flowchart LR
|
|
2103
|
+
subgraph CodeGenerator["CodeGenerator"]
|
|
2104
|
+
CG1[C4設計読込] --> CG2[パターン検出]
|
|
2105
|
+
CG2 --> CG3[コード生成]
|
|
2106
|
+
end
|
|
2107
|
+
|
|
2108
|
+
CG3 --> P1[Repository]
|
|
2109
|
+
CG3 --> P2[Service]
|
|
2110
|
+
CG3 --> P3[Factory]
|
|
2111
|
+
CG3 --> P4[Value Object]
|
|
2112
|
+
```
|
|
2113
|
+
|
|
2114
|
+
| 対応パターン | 説明 |
|
|
2115
|
+
|-------------|------|
|
|
2116
|
+
| Repository | データアクセス層 |
|
|
2117
|
+
| Service Layer | ビジネスロジック層 |
|
|
2118
|
+
| Factory | オブジェクト生成 |
|
|
2119
|
+
| Domain Events | イベント駆動設計 |
|
|
2120
|
+
| Value Objects | 不変オブジェクト |
|
|
2121
|
+
|
|
2122
|
+
## 11.5 Phase 5: YATA UI(Web可視化)
|
|
2123
|
+
|
|
2124
|
+
知識グラフのWebベース可視化・管理インターフェース。
|
|
2125
|
+
|
|
2126
|
+
```mermaid
|
|
2127
|
+
flowchart TB
|
|
2128
|
+
subgraph YataUI["YATA UI Server"]
|
|
2129
|
+
UI1[Express Server] --> UI2[REST API]
|
|
2130
|
+
UI1 --> UI3[WebSocket]
|
|
2131
|
+
end
|
|
2132
|
+
|
|
2133
|
+
subgraph Features["UI機能"]
|
|
2134
|
+
F1[グラフ可視化]
|
|
2135
|
+
F2[リアルタイム更新]
|
|
2136
|
+
F3[名前空間フィルタ]
|
|
2137
|
+
F4[エンティティ編集]
|
|
2138
|
+
end
|
|
2139
|
+
|
|
2140
|
+
YataUI --> Features
|
|
2141
|
+
```
|
|
2142
|
+
|
|
2143
|
+
| 機能 | 説明 |
|
|
2144
|
+
|------|------|
|
|
2145
|
+
| `start()` | サーバー起動 |
|
|
2146
|
+
| `stop()` | サーバー停止 |
|
|
2147
|
+
| `setDataProvider()` | データソース設定 |
|
|
2148
|
+
| `broadcastUpdate()` | リアルタイム配信 |
|
|
2149
|
+
|
|
2150
|
+
## 11.6 v1.7.0 パッケージサマリー
|
|
2151
|
+
|
|
2152
|
+
| パッケージ | 新機能 |
|
|
2153
|
+
|-----------|--------|
|
|
2154
|
+
| `@nahisaho/yata-local` | IndexOptimizer, ExportPipeline, CodeGenerator |
|
|
2155
|
+
| `@nahisaho/yata-global` | GlobalSyncClient, SyncEngine, CacheManager |
|
|
2156
|
+
| `@nahisaho/yata-ui` | YataUIServer, GraphData変換, WebSocket |
|
|
2157
|
+
|
|
2158
|
+
# 参考リンク
|
|
2159
|
+
|
|
2160
|
+
- [MUSUBIX GitHub](https://github.com/nahisaho/MUSUBIX)
|
|
2161
|
+
- [MUSUBIX npm](https://www.npmjs.com/package/musubix)
|
|
2162
|
+
- [MUSUBI GitHub](https://github.com/nahisaho/MUSUBI)
|
|
2163
|
+
- [YATA GitHub](https://github.com/nahisaho/YATA)
|
|
2164
|
+
|
|
2165
|
+
---
|
|
2166
|
+
|
|
2167
|
+
**著者**: nahisaho
|
|
2168
|
+
**公開日**: 2026-01-02
|
|
2169
|
+
**更新日**: 2026-01-06
|
|
2170
|
+
**バージョン**: v1.7.0
|