musubix 3.3.4 → 3.3.5

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.
Files changed (92) hide show
  1. package/.github/AGENTS.md +949 -0
  2. package/.github/prompts/sdd-change-apply.prompt.md +283 -0
  3. package/.github/prompts/sdd-change-archive.prompt.md +241 -0
  4. package/.github/prompts/sdd-change-init.prompt.md +269 -0
  5. package/.github/prompts/sdd-design.prompt.md +250 -0
  6. package/.github/prompts/sdd-implement.prompt.md +387 -0
  7. package/.github/prompts/sdd-requirements.prompt.md +193 -0
  8. package/.github/prompts/sdd-review.prompt.md +155 -0
  9. package/.github/prompts/sdd-security.prompt.md +228 -0
  10. package/.github/prompts/sdd-steering.prompt.md +269 -0
  11. package/.github/prompts/sdd-tasks.prompt.md +255 -0
  12. package/.github/prompts/sdd-test.prompt.md +230 -0
  13. package/.github/prompts/sdd-validate.prompt.md +304 -0
  14. package/.github/skills/musubix-adr-generation/SKILL.md +209 -0
  15. package/.github/skills/musubix-best-practices/SKILL.md +315 -0
  16. package/.github/skills/musubix-c4-design/SKILL.md +162 -0
  17. package/.github/skills/musubix-code-generation/SKILL.md +237 -0
  18. package/.github/skills/musubix-domain-inference/SKILL.md +196 -0
  19. package/.github/skills/musubix-ears-validation/SKILL.md +161 -0
  20. package/.github/skills/musubix-sdd-workflow/SKILL.md +217 -0
  21. package/.github/skills/musubix-technical-writing/SKILL.md +444 -0
  22. package/.github/skills/musubix-test-generation/SKILL.md +212 -0
  23. package/.github/skills/musubix-traceability/SKILL.md +141 -0
  24. package/AGENTS.md +1065 -0
  25. package/LICENSE +21 -0
  26. package/README.ja.md +296 -0
  27. package/README.md +305 -50
  28. package/bin/musubix-mcp.js +15 -0
  29. package/bin/musubix.js +9 -1
  30. package/docs/API-REFERENCE.md +1425 -0
  31. package/docs/GITHUB-ACTIONS-NPM-SETUP.md +132 -0
  32. package/docs/INSTALL-GUIDE.ja.md +459 -0
  33. package/docs/INSTALL-GUIDE.md +459 -0
  34. package/docs/MIGRATION-v3.0.md +324 -0
  35. package/docs/MUSUBI-enhancement_roadmap_20260105.md +651 -0
  36. package/docs/MUSUBIX-v3.0-User-Guide.md +1357 -0
  37. package/docs/MUSUBIXv2.2.0-Manual-outline.md +136 -0
  38. package/docs/MUSUBIXv2.2.0-Manual.md +3123 -0
  39. package/docs/MUSUBIXv2.3.5-Refactering.md +1310 -0
  40. package/docs/MUSUBIv1.6.1-enhancement_roadmap_20260105.md +291 -0
  41. package/docs/MUSUBIv2.2.0-USERGUIDE.md +2079 -0
  42. package/docs/ROADMAP-v1.5.md +116 -0
  43. package/docs/SwarmCoding.md +1284 -0
  44. package/docs/Test-prompt.md +105 -0
  45. package/docs/USER-GUIDE-v1.8.0.md +2371 -0
  46. package/docs/USER-GUIDE.ja.md +2147 -0
  47. package/docs/USER-GUIDE.md +3022 -0
  48. package/docs/YATA-GLOBAL-GUIDE.ja.md +750 -0
  49. package/docs/YATA-GLOBAL-GUIDE.md +595 -0
  50. package/docs/YATA-LOCAL-GUIDE.ja.md +989 -0
  51. package/docs/YATA-LOCAL-GUIDE.md +730 -0
  52. package/docs/adr/0001-real-time-pattern-learning-architecture-for-v1-5-0.md +75 -0
  53. package/docs/adr/0002-pattern-sharing-protocol-for-cross-team-collaborat.md +79 -0
  54. package/docs/adr/0003-owl-2-rl-implementation-strategy-for-advanced-infe.md +90 -0
  55. package/docs/enterprise-knowledge-management.md +1737 -0
  56. package/docs/evolution-from-musubi-to-musubix.md +2170 -0
  57. package/docs/getting-started-with-sdd.md +1602 -0
  58. package/docs/moodle-refactering-codegraph-musubix.md +391 -0
  59. package/docs/moodle-refactering-codegraph.md +278 -0
  60. package/docs/overview/MUSUBIX-CodeGraph.md +322 -0
  61. package/docs/overview/MUSUBIX-Core.md +671 -0
  62. package/docs/overview/MUSUBIX-Decisions.md +494 -0
  63. package/docs/overview/MUSUBIX-FormalVerify.md +566 -0
  64. package/docs/overview/MUSUBIX-Knowledge.md +1231 -0
  65. package/docs/overview/MUSUBIX-Learning.md +837 -0
  66. package/docs/overview/MUSUBIX-MCP-Server.md +535 -0
  67. package/docs/overview/MUSUBIX-Overview.md +264 -0
  68. package/docs/overview/MUSUBIX-Phase1-Complete.md +271 -0
  69. package/docs/overview/MUSUBIX-Phase2-Complete.md +310 -0
  70. package/docs/overview/MUSUBIX-Policy.md +477 -0
  71. package/docs/overview/MUSUBIX-Roadmap-v2.md +399 -0
  72. package/docs/overview/MUSUBIX-Security-Plan.md +939 -0
  73. package/docs/overview/MUSUBIX-Security-v2.1.md +668 -0
  74. package/docs/overview/MUSUBIX-Security.md +891 -0
  75. package/docs/overview/MUSUBIX-YATA.md +666 -0
  76. package/docs/overview/MUSUBIX-v2.2.0-Advanced-Learning.md +513 -0
  77. package/docs/overview/Neuro-SymbolicAI.md +159 -0
  78. package/docs/packages/knowledge.md +594 -0
  79. package/docs/qiita-linux-kernel-knowledge-graph.md +596 -0
  80. package/package.json +55 -51
  81. package/scripts/generate-quality-gate-report.ts +106 -0
  82. package/scripts/postinstall.js +94 -0
  83. package/steering/.musubi-version +1 -0
  84. package/steering/product.ja.md +572 -0
  85. package/steering/project.yml +66 -0
  86. package/steering/rules/constitution.md +491 -0
  87. package/steering/structure.ja.md +503 -0
  88. package/steering/tech.ja.md +208 -0
  89. package/dist/index.d.ts +0 -25
  90. package/dist/index.d.ts.map +0 -1
  91. package/dist/index.js +0 -74
  92. package/dist/index.js.map +0 -1
@@ -0,0 +1,2371 @@
1
+ # Neuro-Symbolic AI Integration System - 次世代AIコーディング支援システム
2
+
3
+ 💡 この記事は、MUSUBIXの最新バージョン1.8.0(Security Analysis Edition)の導入から実践的な活用方法までを包括的に解説します。
4
+
5
+ # :book: 目次
6
+
7
+ 1. [はじめに](#はじめに)
8
+ 2. [MUSUBIXとは](#musubixとは)
9
+ 3. [インストール](#インストール)
10
+ 4. [クイックスタート](#クイックスタート)
11
+ 5. [CLIコマンドリファレンス](#cliコマンドリファレンス)
12
+ 6. [MCPサーバー連携](#mcpサーバー連携)
13
+ 7. [セキュリティ分析(v1.8.0新機能)](#セキュリティ分析v180新機能)
14
+ - [自動修復システム(Phase 5)](#自動修復システムphase-5)
15
+ - [セキュリティインテリジェンス(Phase 6)](#セキュリティインテリジェンスphase-6)
16
+ 8. [形式検証](#形式検証)
17
+ 9. [知識グラフ(YATA)](#知識グラフyata)
18
+ 10. [学習システム](#学習システム)
19
+ 11. [ベストプラクティス](#ベストプラクティス)
20
+ 12. [トラブルシューティング](#トラブルシューティング)
21
+
22
+
23
+ # はじめに
24
+
25
+ ## AIコーディングツールの課題
26
+
27
+ 2025年、GitHub Copilot、Cursor、Claude Codeなど、AIコーディングツールは急速に普及しました。しかし、これらのツールには共通の課題があります。
28
+
29
+ | 課題 | 詳細 |
30
+ |:-----|:-----|
31
+ | 🎲 **確率的な出力** | LLMは確率的に回答を生成するため、同じ質問でも異なる回答が返ることがある |
32
+ | 🔍 **検証が困難** | 生成されたコードが正しいかどうかは、人間がレビューするしかない |
33
+ | 📝 **要件の曖昧さ** | 自然言語の曖昧さがそのままコードに反映され、意図と異なる実装になることがある |
34
+ | 🔗 **追跡不能** | なぜそのコードが生成されたのか、どの要件に基づいているのか追跡できない |
35
+ | 🧠 **学習しない** | フィードバックを与えても、次回の提案に反映されない |
36
+
37
+ ## Neuro-Symbolic AIという解決策
38
+
39
+ **MUSUBIX**は、これらの課題を**Neuro-Symbolic AI**(ニューロシンボリックAI)で解決します。
40
+
41
+ ```mermaid
42
+ graph TB
43
+ subgraph Traditional["❌ 従来のAIコーディングツール"]
44
+ subgraph NeuralOnly["LLM(Neural)のみ"]
45
+ T1["🎨 創造的だが不正確"]
46
+ T2["❓ 検証できない"]
47
+ T3["📉 学習しない"]
48
+ end
49
+ end
50
+
51
+ Traditional -->|"MUSUBIX で解決"| MUSUBIX
52
+
53
+ subgraph MUSUBIX["✅ MUSUBIX"]
54
+ subgraph Neural["🧠 Neural(LLM)"]
55
+ N1["🎨 創造的なコード生成"]
56
+ N2["💬 自然言語理解"]
57
+ N3["🔍 パターン認識"]
58
+ end
59
+
60
+ subgraph Symbolic["⚙️ Symbolic(知識グラフ・検証)"]
61
+ S1["📝 EARS形式で要件を形式化"]
62
+ S2["✅ Z3で数学的に検証"]
63
+ S3["🔗 知識グラフで追跡"]
64
+ end
65
+
66
+ Neural <-->|"統合"| Symbolic
67
+ end
68
+
69
+ style Traditional fill:#ffebee,stroke:#c62828
70
+ style MUSUBIX fill:#e8f5e9,stroke:#2e7d32
71
+ style Neural fill:#e3f2fd,stroke:#1565c0
72
+ style Symbolic fill:#fff3e0,stroke:#ef6c00
73
+ ```
74
+
75
+ ## 従来ツールとの違い
76
+
77
+ | 観点 | 従来のAIコーディングツール | MUSUBIX |
78
+ |:-----|:---------------------------|:--------|
79
+ | **出力の信頼性** | LLMの確率的出力をそのまま使用 | シンボリック推論で検証してから採用 |
80
+ | **要件定義** | 自然言語のまま(曖昧) | EARS形式で形式化(テスト可能) |
81
+ | **検証** | 人間によるレビューのみ | Z3 SMTソルバで数学的に証明 |
82
+ | **トレーサビリティ** | なし | 要件→設計→コード→テストを100%追跡 |
83
+ | **セキュリティ** | 事後的なスキャン | 生成時にOWASP/CWEパターンをチェック |
84
+ | **学習** | しない | フィードバックからパターンを学習・蓄積 |
85
+
86
+ :::note info
87
+ 💡 **MUSUBIXの核心**
88
+
89
+ MUSUBIXは「AIの創造性」と「数学的な厳密性」を組み合わせます。
90
+
91
+ - **LLMが生成** → **シンボリック推論が検証** → **問題があれば却下・修正**
92
+
93
+ これにより、AIの強みを活かしながら、信頼性の高いソフトウェア開発を実現します。
94
+ :::
95
+
96
+ ## 誰のためのツールか
97
+
98
+ | ユーザー | MUSUBIXのメリット |
99
+ |:---------|:------------------|
100
+ | **個人開発者** | 一人でも品質の高いコードを書ける。要件の漏れやセキュリティ問題を自動検出 |
101
+ | **スタートアップ** | 少人数でも大企業レベルの開発プロセスを実現。トレーサビリティでコンプライアンス対応 |
102
+ | **エンタープライズ** | 大規模プロジェクトの品質管理。形式検証で重大なバグを防止 |
103
+ | **規制産業** | 医療・金融・航空など、法的にトレーサビリティが求められる分野に最適 |
104
+
105
+
106
+ # MUSUBIXとは
107
+
108
+ **MUSUBIX**(ムスビックス)は、**GitHub Copilot**や**Claude Code**などのAIコーディングエージェントを**機能強化**するツールです。
109
+
110
+ **Neural(LLM)** と **Symbolic(Knowledge Graph)** 推論を統合し、AIエージェントに以下の能力を追加します。
111
+
112
+ - 🎯 **要件定義支援** - 対話形式でEARS形式の要件を自動生成
113
+ - 📐 **設計支援** - C4モデルによる設計書の自動生成
114
+ - 🛡️ **セキュリティ分析** - 脆弱性の自動検出と修正提案
115
+ - ✅ **形式検証** - Z3 SMTソルバによる数学的検証
116
+ - 🔗 **トレーサビリティ** - 要件→設計→コード→テストの100%追跡
117
+ - 📚 **知識グラフ** - プロジェクト知識の蓄積と再利用
118
+
119
+ :::note info
120
+ 💡 **名前の由来**
121
+
122
+ **MUSUBIX(ムスビックス)**
123
+ - **M**odel **U**nified **S**ymbolic **U**nderstanding and **B**ehavior **I**ntegration e**X**tension の略
124
+ - Model: AIモデル(LLM)
125
+ - Unified: 統合された
126
+ - Symbolic Understanding: シンボリック理解(知識グラフ・形式検証)
127
+ - Behavior Integration: 振る舞いの統合(要件→設計→コード→テスト)
128
+ - eXtension: 拡張(AIエージェントを拡張する)
129
+ - 日本語の「**結び**(むすび)」に由来
130
+ - 「結び」は「つなぐ」「統合する」という意味を持つ
131
+ - Neural(LLM)とSymbolic(知識グラフ)を**結び**つける
132
+ - 要件→設計→コード→テストを**結び**つける(トレーサビリティ)
133
+ - 人間とAIを**結び**つける
134
+
135
+
136
+ **YATA(ヤタ)**
137
+ - **Y**et **A**nother **T**raceability **A**rchitecture の略
138
+ - 日本神話の「**八咫鏡**(やたのかがみ)」にも通じる
139
+ - 八咫鏡は「真実を映し出す鏡」として知られる
140
+ - YATAは知識グラフとして、プロジェクトの**真実**(要件、設計、コード、テストの関係)を映し出す
141
+ :::
142
+
143
+ :::note info
144
+ 💡 **MUSUBIXを導入すると、AIエージェントが...**
145
+ - 自然言語だけでソフトウェア開発の全工程を実行できるようになります
146
+ - 要件の漏れや設計の矛盾を自動的に検出できるようになります
147
+ - セキュリティ脆弱性をコード生成時に防止できるようになります
148
+ :::
149
+
150
+ :::note warn
151
+ 📖 **専門用語の解説**
152
+
153
+ **🧠 Neuro-Symbolic統合とは?**
154
+ - **Neural(ニューラル)**: LLM(大規模言語モデル)による創造的な推論。自然言語理解、コード生成、パターン認識が得意
155
+ - **Symbolic(シンボリック)**: 知識グラフやルールベースの論理的推論。厳密な検証、一貫性チェック、トレーサビリティが得意
156
+ - **統合の利点**: LLMの「創造性」とシンボリック推論の「精密性」を組み合わせ、高品質なソフトウェア開発を実現
157
+
158
+ **📝 EARS形式とは?**
159
+ - **EARS** = Easy Approach to Requirements Syntax(要件構文への簡易アプローチ)
160
+ - 自然言語の曖昧さを排除し、テスト可能な要件を記述するための形式
161
+ - 5つのパターン: Ubiquitous(常時)、Event-driven(イベント駆動)、State-driven(状態駆動)、Unwanted(禁止)、Optional(条件付き)
162
+
163
+ **🛡️ OWASP / CWE とは?**
164
+ - **OWASP Top 10**: Webアプリケーションの最も危険なセキュリティリスク上位10項目(インジェクション、認証不備、XSSなど)
165
+ - **CWE Top 25**: 最も危険なソフトウェア脆弱性上位25項目(バッファオーバーフロー、SQLインジェクション、パストラバーサルなど)
166
+ - MUSUBIXはこれらの脆弱性パターンを自動検出し、修正を提案します
167
+
168
+ **✅ 形式検証(Formal Verification)とは?**
169
+ - **定義**: プログラムが仕様を満たすことを**数学的に証明**する手法
170
+ - **テストとの違い**:
171
+ - テスト: 「いくつかの入力で正しく動いた」→ バグがないことは保証できない
172
+ - 形式検証: 「すべての可能な入力で正しく動く」→ 数学的に証明
173
+ - **何ができるか**:
174
+ - 🔢 「この関数は常に0以上の値を返す」を証明
175
+ - 📏 「配列のインデックスは絶対に範囲外にならない」を証明
176
+ - 🔄 「デッドロックは発生しない」を証明
177
+ - 💰 「口座残高がマイナスになることはない」を証明
178
+ - **適用分野**: 航空宇宙、医療機器、金融システム、暗号通貨など、バグが許されない分野で必須
179
+ - **MUSUBIXでの活用**: EARS形式の要件を自動的にSMT式に変換し、Z3ソルバで検証
180
+
181
+ **🔧 Z3 SMTソルバとは?**
182
+ - **Z3**: Microsoft Researchが開発した世界最高水準の定理証明器(Theorem Prover)
183
+ - **SMT** = Satisfiability Modulo Theories(理論付き充足可能性問題)
184
+ - コードの性質を数学的に検証し、「この関数は常に正の値を返す」「配列のインデックスは範囲内」などを証明
185
+ - バグを実行前に数学的に発見できる強力なツール
186
+ - **具体例**:
187
+ ```
188
+ // この関数が「常に正の値を返す」ことをZ3で証明
189
+ function calculatePrice(quantity: number, unitPrice: number): number {
190
+ // 事前条件: quantity > 0 かつ unitPrice > 0
191
+ // 事後条件: 戻り値 > 0
192
+ return quantity * unitPrice;
193
+ }
194
+ ```
195
+
196
+ **📚 知識グラフとは?**
197
+ - エンティティ(概念)とリレーション(関係)で知識を構造化したデータベース
198
+ - MUSUBIXでは**YATA**(Yet Another Traceability Architecture)を使用
199
+ - プロジェクトの要件、設計、コード、テストの関係を記録し、影響分析やトレーサビリティに活用
200
+
201
+ **🔗 トレーサビリティとは?なぜ必要?**
202
+ - **定義**: 要件→設計→コード→テストの各成果物間の関連を追跡できる状態
203
+ - **なぜ必要か**:
204
+ - 📋 **変更影響分析**: 「この要件を変更したら、どのコードとテストに影響する?」がすぐわかる
205
+ - 🐛 **バグ原因追跡**: バグが発生したとき、どの要件の実装ミスかを特定できる
206
+ - ✅ **テスト網羅性確認**: すべての要件がテストでカバーされているか検証できる
207
+ - 📊 **進捗管理**: 要件ごとの実装・テスト状況を可視化できる
208
+ - 🔒 **コンプライアンス**: 医療・金融・航空など規制産業では法的に必須
209
+ - **従来の問題**: Excelやドキュメントで手動管理→更新漏れ、整合性崩壊
210
+ - **MUSUBIXの解決策**: 知識グラフで自動追跡、AIエージェントが常に最新状態を維持
211
+
212
+ **🔄 Wake-Sleepサイクルとは?**
213
+ - **起源**: 神経科学のWake-Sleep学習アルゴリズムに着想を得た継続的学習システム
214
+ - **Wakeフェーズ(覚醒期)**:
215
+ - コードを観察し、パターンを抽出
216
+ - 新しい知識を知識グラフに追加
217
+ - リアルタイムで開発パターンを学習
218
+ - **Sleepフェーズ(睡眠期)**:
219
+ - 蓄積したパターンを統合・圧縮
220
+ - 類似パターンをマージして汎化
221
+ - メモリを最適化し、ノイズを除去
222
+ - **なぜ必要か**:
223
+ - 🧠 **継続的改善**: 使えば使うほど賢くなる
224
+ - 📦 **知識の圧縮**: 冗長なパターンを統合し、効率的に保存
225
+ - 🎯 **精度向上**: プロジェクト固有のパターンを学習し、より的確な提案が可能に
226
+ - **MUSUBIXでの動作**:
227
+ ```
228
+ Wake: コード観察 → パターン抽出 → 知識グラフ更新
229
+ Sleep: パターン統合 → 圧縮 → メモリ最適化
230
+ ```
231
+
232
+ **📐 C4モデルとは?**
233
+ - **C4** = Context, Container, Component, Code の4つのレベルで設計を表現
234
+ - Simon Brownが提唱したソフトウェアアーキテクチャの可視化手法
235
+ - **4つのレベル**:
236
+ - **Context(コンテキスト)**: システム全体と外部アクター(ユーザー、外部システム)の関係
237
+ - **Container(コンテナ)**: アプリケーション、データベース、マイクロサービスなどの技術的な構成要素
238
+ - **Component(コンポーネント)**: コンテナ内部の論理的な構成要素(サービス、リポジトリ等)
239
+ - **Code(コード)**: 実際のクラス、関数、モジュールレベルの設計
240
+ - **なぜ使うか**: 異なる関係者(経営層、開発者、運用)に適切な粒度で設計を説明できる
241
+
242
+ **🔌 MCP(Model Context Protocol)とは?**
243
+ - Anthropicが提唱したAIエージェントとツールを接続するためのオープンプロトコル
244
+ - **3つの要素**:
245
+ - **Tools(ツール)**: AIエージェントが呼び出せる機能(例:`sdd_create_requirements`)
246
+ - **Prompts(プロンプト)**: 事前定義されたプロンプトテンプレート
247
+ - **Resources(リソース)**: AIエージェントがアクセスできるデータ
248
+ - **対応エージェント**: Claude Code、GitHub Copilot、Cursor、Windsurf、Gemini CLI
249
+ - **MUSUBIXでの活用**: MCPサーバーを通じて24のツールと3のプロンプトを提供
250
+
251
+ **🦉 OWL 2 RLとは?**
252
+ - **OWL** = Web Ontology Language(Webオントロジー言語)
253
+ - **OWL 2 RL**: OWL 2のサブセットで、ルールベースの推論に最適化されたプロファイル
254
+ - **特徴**:
255
+ - 効率的な推論が可能(多項式時間)
256
+ - Datalog(論理プログラミング言語)で実装可能
257
+ - クラス階層、プロパティ継承、推移的関係などを推論
258
+ - **MUSUBIXでの活用**: 知識グラフの自動推論(「AがBのサブクラスで、BがCのサブクラスなら、AはCのサブクラス」など)
259
+
260
+ **📜 Hoare論理とは?**
261
+ - **定義**: プログラムの正しさを証明するための形式的手法(1969年、Tony Hoare提唱)
262
+ - **Hoareトリプル**: `{P} C {Q}` の形式で表現
263
+ - **P(事前条件)**: プログラム実行前に成り立つべき条件
264
+ - **C(コマンド)**: 実行するプログラム
265
+ - **Q(事後条件)**: プログラム実行後に成り立つべき条件
266
+ - **例**:
267
+ ```
268
+ {x > 0} // 事前条件: xは正
269
+ y = x * 2; // コマンド
270
+ {y > 0 ∧ y > x} // 事後条件: yは正かつxより大きい
271
+ ```
272
+ - **MUSUBIXでの活用**: 関数の事前・事後条件を自動検証
273
+
274
+ **📋 ADR(Architecture Decision Record)とは?**
275
+ - **定義**: アーキテクチャ上の重要な決定を記録するドキュメント形式
276
+ - **なぜ必要か**:
277
+ - 🤔 **Why**: なぜその技術を選んだのか?後から理由がわからなくなる問題を防ぐ
278
+ - 🔄 **変更履歴**: 過去の決定を振り返り、同じ議論を繰り返さない
279
+ - 👥 **チーム共有**: 新メンバーがプロジェクトの背景を理解できる
280
+ - **構成要素**: タイトル、ステータス、コンテキスト、決定、結果
281
+ - **MUSUBIXでの活用**: `npx musubix design adr <decision>` で自動生成
282
+
283
+ **🏗️ DDD(ドメイン駆動設計)関連用語**
284
+ - **Entity(エンティティ)**: 一意のIDを持つオブジェクト(例:ユーザー、注文)
285
+ - **Value Object(値オブジェクト)**: IDを持たず、値で同一性を判断するオブジェクト(例:住所、金額)
286
+ - **Aggregate(集約)**: 一貫性を保つべきEntityとValue Objectのグループ
287
+ - **Repository(リポジトリ)**: Aggregateの永続化・取得を担当
288
+ - **Service(サービス)**: 特定のEntityに属さないドメインロジック
289
+ - **MUSUBIXでの活用**: DDDパターンを自動検出し、適切な設計を提案
290
+
291
+ **🔒 テイント解析(Taint Analysis)とは?**
292
+ - **定義**: ユーザー入力(信頼できないデータ)がプログラム内をどう流れるかを追跡する静的解析手法
293
+ - **Source(ソース)**: テイントデータの発生源(例:`req.body`、`req.query`、`process.env`)
294
+ - **Sink(シンク)**: テイントデータが到達してはいけない危険な関数(例:`eval()`、`exec()`、SQL実行)
295
+ - **なぜ必要か**: インジェクション攻撃(SQL、コマンド、XSS)を防ぐ
296
+ - **MUSUBIXでの活用**: `@nahisaho/musubix-security`パッケージでテイント解析を実行
297
+
298
+ **🎯 Result型パターンとは?**
299
+ - **定義**: 処理の成功/失敗を明示的に表現する型パターン
300
+ - **従来の問題**: 例外(throw)は制御フローを分断し、型安全性を損なう
301
+ - **Result型の利点**:
302
+ - ✅ 成功/失敗が型で明示される
303
+ - 🔄 呼び出し側で必ずエラー処理が必要になる
304
+ - 📝 どんなエラーが発生するか型で表現できる
305
+ - **例**:
306
+ ```typescript
307
+ type Result<T, E> = { ok: true; value: T } | { ok: false; error: E };
308
+
309
+ function divide(a: number, b: number): Result<number, string> {
310
+ if (b === 0) return { ok: false, error: 'Division by zero' };
311
+ return { ok: true, value: a / b };
312
+ }
313
+ ```
314
+ - **MUSUBIXでの活用**: ベストプラクティスとしてResult型パターンを推奨
315
+ :::
316
+
317
+ ## 主要な特徴
318
+
319
+ | 特徴 | 説明 |
320
+ |:-----|:-----|
321
+ | 🧠 **Neuro-Symbolic統合** | LLMの創造性とシンボリック推論の精密性を融合 |
322
+ | 📝 **EARS形式要件** | 5パターンの形式的要件記述 |
323
+ | 📜 **9条憲法** | 開発プロセスを統治する9つの不変ルール |
324
+ | 🔗 **完全トレーサビリティ** | 要件→設計→コード→テストの100%追跡 |
325
+ | 🛡️ **セキュリティ分析** | OWASP Top 10 / CWE Top 25対応の脆弱性検出 |
326
+ | ✅ **形式検証** | Z3 SMTソルバによる数学的正確性の検証 |
327
+ | 📚 **知識グラフ** | YATA - SQLiteベースのローカル知識グラフ |
328
+ | 💡 **自己学習** | フィードバックに基づくパターン学習と適応 |
329
+
330
+ ## プロジェクト統計
331
+
332
+ | 項目 | 数値 | 説明 |
333
+ |:-----|:-----|:-----|
334
+ | **バージョン** | 1.8.0 | Security Analysis Edition |
335
+ | **テスト数** | 1,586 | 全テスト合格 |
336
+ | **MCPツール** | 24 | SDD(9) + Pattern(7) + Ontology(3) + KGPR(5) |
337
+ | **MCPプロンプト** | 3 | 要件分析、レビュー、設計生成 |
338
+ | **Agent Skills** | 12 | Claude Code対応 |
339
+ | **OWL 2 RLルール** | 20+ | 組み込み推論ルール |
340
+ | **パッケージ数** | 12 | モノレポ構成 |
341
+
342
+ ## アーキテクチャ概要
343
+
344
+ ```mermaid
345
+ graph TB
346
+ subgraph AI["🤖 AI Agent Layer"]
347
+ Agent["AI Agent<br/>(Claude, Copilot, Cursor, Gemini)"]
348
+ end
349
+
350
+ subgraph MCP["🔌 MCP Server Layer"]
351
+ MCPServer["MUSUBIX MCP Server"]
352
+ subgraph MCPComponents["Components"]
353
+ Tools["Tools (24+)"]
354
+ Prompts["Prompts (3)"]
355
+ Resources["Resources"]
356
+ end
357
+ end
358
+
359
+ subgraph Core["⚙️ MUSUBIX Core Layer"]
360
+ CoreEngine["MUSUBIX Core"]
361
+ subgraph CoreModules["Modules"]
362
+ Symbolic["Symbolic<br/>Reasoning"]
363
+ CodeGen["Code<br/>Generation"]
364
+ Security["Security<br/>Analysis"]
365
+ FormalVerify["Formal<br/>Verification"]
366
+ end
367
+ end
368
+
369
+ subgraph YATA["📊 YATA Knowledge Graph Layer"]
370
+ YATALocal["YATA Local<br/>(SQLite)"]
371
+ YATAGlobal["YATA Global<br/>(Distributed)"]
372
+ YATAUI["YATA UI<br/>(Web)"]
373
+ end
374
+
375
+ Agent -->|"MCP Protocol"| MCPServer
376
+ MCPServer --> Tools
377
+ MCPServer --> Prompts
378
+ MCPServer --> Resources
379
+ MCPServer --> CoreEngine
380
+ CoreEngine --> Symbolic
381
+ CoreEngine --> CodeGen
382
+ CoreEngine --> Security
383
+ CoreEngine --> FormalVerify
384
+ CoreEngine --> YATALocal
385
+ YATALocal <-->|"Sync"| YATAGlobal
386
+ YATAGlobal <--> YATAUI
387
+
388
+ style AI fill:#e1f5fe,stroke:#01579b
389
+ style MCP fill:#f3e5f5,stroke:#4a148c
390
+ style Core fill:#e8f5e9,stroke:#1b5e20
391
+ style YATA fill:#fff3e0,stroke:#e65100
392
+ ```
393
+
394
+ ## 他のAIコーディングツールとの比較
395
+
396
+ MUSUBIXは既存のAIコーディングツールとは異なるアプローチを取っています。
397
+
398
+ | ツール | カテゴリ | 特徴 | MUSUBIXとの違い |
399
+ |:-------|:---------|:-----|:----------------|
400
+ | **Vibe Coding** | 開発スタイル | 自然言語でコードを生成する開発スタイル(2025年提唱) | MUSUBIXは**Vibe Codingを実現するためのインフラ**。要件定義→設計→実装の全工程を自然言語で行える |
401
+ | **GitHub Copilot** | AIコード補完 | コード補完、チャット、エージェント機能 | **AGENTS.md経由で直接利用可能**。MCP設定不要でEARS要件、セキュリティ分析、形式検証を追加 |
402
+ | **Claude Code** | AIコーディング | Anthropicの自律コーディングエージェント | **CLAUDE.md経由で直接利用可能**。MCP設定不要で全機能を活用可能 |
403
+ | **Cursor** | AI統合IDE | AIネイティブなコードエディタ | MUSUBIXは**CursorのMCP機能で利用可能**。知識グラフとトレーサビリティを追加 |
404
+ | **Windsurf** | AI統合IDE | Codeiumが開発したAIエディタ | MUSUBIXは**WindsurfのMCP機能で利用可能**。シンボリック推論を追加 |
405
+ | **AWS Kiro** | 要件駆動開発 | Spec(仕様)から実装を生成(2025年発表) | MUSUBIXは**オープンソース**で**知識グラフによる学習機能**を持つ。クラウド非依存 |
406
+ | **GitHub SpecKit** | 仕様管理 | 仕様ファイルからコード生成(2025年発表) | MUSUBIXは**EARS形式**でより厳密な要件定義。**形式検証**で数学的に正確性を保証 |
407
+ | **Google Antigravity** | AIコード生成 | Geminiベースのコード生成(2025年発表) | MUSUBIXは**エージェント非依存**。どのLLMでも利用可能。**9条憲法**で品質を担保 |
408
+
409
+ :::note info
410
+ 💡 **MUSUBIXのポジショニング**
411
+
412
+ MUSUBIXは「AIコーディングツール」ではなく、**「AIコーディングツールを強化するプラットフォーム」** です。
413
+
414
+ **🚀 GitHub Copilot / Claude Code ユーザーへ**
415
+ MCP設定は不要です!プロジェクトに`AGENTS.md`(GitHub Copilot用)または`CLAUDE.md`(Claude Code用)ファイルがあれば、自動的にMUSUBIXの機能を認識します。
416
+
417
+ ```mermaid
418
+ graph TB
419
+ subgraph VibeCoding["🎨 Vibe Coding"]
420
+ VC["自然言語でコードを書く開発スタイル"]
421
+ end
422
+
423
+ subgraph AIAgents["🤖 AIコーディングエージェント"]
424
+ Copilot["GitHub Copilot"]
425
+ Cursor["Cursor"]
426
+ Windsurf["Windsurf"]
427
+ Claude["Claude Code"]
428
+ end
429
+
430
+ subgraph MUSUBIX["⚡ MUSUBIX(MCPサーバー)"]
431
+ EARS["📝 EARS要件定義"]
432
+ KG["📚 知識グラフ"]
433
+ Security["🛡️ セキュリティ分析"]
434
+ Formal["✅ 形式検証"]
435
+ Trace["🔗 トレーサビリティ"]
436
+ Learn["💡 自己学習"]
437
+ end
438
+
439
+ VC --> Copilot
440
+ VC --> Cursor
441
+ VC --> Windsurf
442
+ VC --> Claude
443
+
444
+ Copilot --> MUSUBIX
445
+ Cursor --> MUSUBIX
446
+ Windsurf --> MUSUBIX
447
+ Claude --> MUSUBIX
448
+
449
+ style VibeCoding fill:#e3f2fd,stroke:#1565c0
450
+ style AIAgents fill:#f3e5f5,stroke:#7b1fa2
451
+ style MUSUBIX fill:#e8f5e9,stroke:#2e7d32
452
+ ```
453
+
454
+ **AWS KiroやGitHub SpecKitとの違い**:
455
+
456
+ 2025年に登場したAWS KiroやGitHub SpecKitも「仕様駆動開発」を掲げていますが、MUSUBIXには以下の差別化ポイントがあります。
457
+
458
+ | 観点 | AWS Kiro / GitHub SpecKit | MUSUBIX |
459
+ |:-----|:--------------------------|:--------|
460
+ | **ライセンス** | プロプライエタリ | オープンソース(MIT) |
461
+ | **プラットフォーム** | 特定クラウド/サービスに依存 | クラウド非依存、ローカル実行可能 |
462
+ | **AIエージェント** | 専用エージェント | MCP対応の任意のエージェント |
463
+ | **要件形式** | 独自フォーマット | EARS形式(業界標準) |
464
+ | **検証方式** | ルールベース | Z3 SMTソルバ(数学的証明) |
465
+ | **知識管理** | セッション単位 | 知識グラフで永続化・学習 |
466
+ | **カスタマイズ** | 限定的 | 完全にカスタマイズ可能 |
467
+
468
+ - **オープンソース**: ベンダーロックインなし、カスタマイズ自由。コードを読んで動作を理解できる
469
+ - **エージェント非依存**: GitHub Copilot、Claude Code、Cursor、Windsurf、Gemini CLIなど、MCP対応の任意のAIエージェントで利用可能
470
+ - **知識グラフ(YATA)**: プロジェクト知識を構造化して蓄積。過去の決定理由、パターン、フィードバックを学習し、次のプロジェクトに活かせる
471
+ - **形式検証**: Z3 SMTソルバによる数学的な正確性保証。「この関数は常に正の値を返す」といった性質を証明できる
472
+ :::
473
+
474
+
475
+ # インストール
476
+
477
+ ## システム要件
478
+
479
+ | 項目 | 要件 |
480
+ |:-----|:-----|
481
+ | **ランタイム** | Node.js >= 20.0.0 |
482
+ | **パッケージマネージャ** | npm >= 10.0.0 |
483
+ | **OS** | Windows / macOS / Linux |
484
+
485
+ ## グローバルインストール
486
+
487
+ ```bash
488
+ # CLIツールをグローバルにインストール
489
+ npm install -g musubix
490
+ ```
491
+
492
+ ## プロジェクトへのインストール
493
+
494
+ ```bash
495
+ # プロジェクトの依存関係として追加
496
+ npm install musubix
497
+ ```
498
+
499
+ :::note info
500
+ `musubix`パッケージをインストールすると、以下のサブパッケージがすべて自動的にインストールされます。
501
+ - `@nahisaho/musubix-core` - コア機能
502
+ - `@nahisaho/musubix-mcp-server` - MCPサーバー
503
+ - `@nahisaho/musubix-security` - セキュリティ分析
504
+ - `@nahisaho/musubix-formal-verify` - 形式検証
505
+ - `@nahisaho/musubix-yata-client` - YATA知識グラフクライアント
506
+ - その他の依存パッケージ
507
+ :::
508
+
509
+ ## インストール確認
510
+
511
+ ```bash
512
+ # バージョン確認
513
+ npx musubix --version
514
+ # 出力: 1.8.0
515
+
516
+ # ヘルプ表示
517
+ npx musubix --help
518
+ ```
519
+
520
+ ## パッケージ構成
521
+
522
+ MUSUBIXはモノレポ構成で、以下の17パッケージで構成されています。
523
+
524
+ ```
525
+ packages/
526
+ ├── core/ # @nahisaho/musubix-core
527
+ ├── mcp-server/ # @nahisaho/musubix-mcp-server
528
+ ├── security/ # @nahisaho/musubix-security (v1.8.0 NEW!)
529
+ ├── formal-verify/ # @nahisaho/musubix-formal-verify
530
+ ├── yata-client/ # @nahisaho/musubix-yata-client
531
+ ├── yata-local/ # @nahisaho/yata-local
532
+ ├── yata-global/ # @nahisaho/yata-global
533
+ ├── yata-ui/ # @nahisaho/yata-ui
534
+ ├── pattern-mcp/ # @nahisaho/musubix-pattern-mcp
535
+ ├── ontology-mcp/ # @nahisaho/musubix-ontology-mcp
536
+ ├── wake-sleep/ # @nahisaho/musubix-wake-sleep
537
+ └── sdd-ontology/ # @nahisaho/musubix-sdd-ontology
538
+ ```
539
+
540
+ | パッケージ | npm名 | 役割 |
541
+ |:-----------|:------|:-----|
542
+ | **core** | `@nahisaho/musubix-core` | CLI、EARS検証、コード生成、設計パターン |
543
+ | **mcp-server** | `@nahisaho/musubix-mcp-server` | AIエージェント連携(MCP)- 24ツール・3プロンプト |
544
+ | **security** | `@nahisaho/musubix-security` | セキュリティ分析 - OWASP Top 10、CWE Top 25 (v1.8.0新機能) |
545
+ | **formal-verify** | `@nahisaho/musubix-formal-verify` | Z3統合、Hoare検証、EARS→SMT変換 |
546
+ | **yata-client** | `@nahisaho/musubix-yata-client` | YATA知識グラフクライアント |
547
+ | **yata-local** | `@nahisaho/yata-local` | SQLiteベースローカル知識グラフ |
548
+ | **yata-global** | `@nahisaho/yata-global` | 分散型知識グラフプラットフォーム |
549
+ | **yata-ui** | `@nahisaho/yata-ui` | Web可視化・管理インターフェース |
550
+ | **pattern-mcp** | `@nahisaho/musubix-pattern-mcp` | パターン抽出・圧縮・ライブラリ |
551
+ | **ontology-mcp** | `@nahisaho/musubix-ontology-mcp` | N3Store・OWL 2 RL推論エンジン |
552
+ | **wake-sleep** | `@nahisaho/musubix-wake-sleep` | Wake-Sleep学習サイクル |
553
+ | **sdd-ontology** | `@nahisaho/musubix-sdd-ontology` | SDD方法論オントロジー |
554
+
555
+
556
+ # クイックスタート
557
+
558
+ ## 前提条件
559
+
560
+ - MUSUBIXがインストールされていること
561
+ - AIエージェント(Claude Code、GitHub Copilot、Cursor等)が利用可能であること
562
+
563
+ :::note info
564
+ 💡 **GitHub CopilotとClaude Codeは設定不要!**
565
+
566
+ GitHub Copilotは`AGENTS.md`、Claude Codeは`CLAUDE.md`ファイルがあれば自動的にMUSUBIXの機能を認識します。MCP設定は不要です。
567
+
568
+ Cursor、Windsurf等の他のエージェントを使う場合は、[MCPサーバー連携](#mcpサーバー連携)を参照してMCPサーバーを設定してください。
569
+ :::
570
+
571
+ ## 1. プロジェクトの初期化
572
+
573
+ CLIコマンドでプロジェクトを初期化します。
574
+
575
+ ```bash
576
+ # 新しいプロジェクトを初期化
577
+ npx musubix init my-project
578
+
579
+ # または現在のディレクトリを初期化
580
+ npx musubix init
581
+ ```
582
+
583
+ 以下のファイルが生成されます:
584
+ - `steering/` - プロジェクトメモリ
585
+ - `storage/` - 要件・設計・トレーサビリティ
586
+ - `musubix.config.json` - 設定ファイル
587
+ - `AGENTS.md` - GitHub Copilot用設定
588
+ - `CLAUDE.md` - Claude Code用設定
589
+
590
+ ## 2. 対話形式で要件定義を作成
591
+
592
+ MUSUBIXには**対話形式の要件定義機能**が備わっています。作りたいシステムを伝えて「要件定義を開始」と言うだけで、AIエージェントが質問を通じて要件を引き出してくれます。
593
+
594
+ ```
595
+ 💬 「ユーザー認証システムを作りたいので、要件定義を開始してください」
596
+ ```
597
+
598
+ 🤖 AIエージェントが対話形式で要件をヒアリングします。
599
+
600
+ ```
601
+ 🤖 「ユーザー認証システムの要件定義を開始します。
602
+ いくつか質問させてください。
603
+
604
+ Q1: 認証方式は何を使いますか?
605
+ a) メールアドレス + パスワード
606
+ b) ソーシャルログイン(Google, GitHub等)
607
+ c) 多要素認証(MFA)
608
+ d) 上記の組み合わせ」
609
+
610
+ 💬 「aとcを組み合わせたいです。最初はメールとパスワードで、
611
+ オプションでMFAを有効にできるようにしてください」
612
+
613
+ 🤖 「了解しました。次の質問です。
614
+
615
+ Q2: セッション管理について教えてください。
616
+ - セッションの有効期限は何分ですか?
617
+ - 同時ログインは許可しますか?
618
+ - 自動ログアウト機能は必要ですか?」
619
+
620
+ 💬 「有効期限は30分、同時ログインは許可しない、
621
+ 非アクティブ状態が続いたら自動ログアウトしてください」
622
+
623
+ 🤖 「ありがとうございます。セキュリティ要件についてお聞きします。
624
+
625
+ Q3: ログイン試行の制限は必要ですか?
626
+ - 連続失敗時のアカウントロック
627
+ - CAPTCHAの表示
628
+ - IPアドレスによる制限」
629
+
630
+ 💬 「5回連続で失敗したら30分ロック、3回目からCAPTCHAを表示してください」
631
+
632
+ 🤖 「十分な情報が集まりました。要件定義書を生成します...
633
+
634
+ 【生成された要件定義書】
635
+
636
+ ## REQ-AUTH-001: ユーザー認証
637
+ WHEN a user submits email and password,
638
+ THE system SHALL validate credentials
639
+ AND return a JWT token within 2 seconds.
640
+
641
+ ## REQ-AUTH-002: 多要素認証
642
+ IF a user has MFA enabled,
643
+ THEN THE system SHALL require a TOTP code after password validation.
644
+
645
+ ## REQ-AUTH-003: セッション管理
646
+ WHILE a user session is active,
647
+ THE system SHALL maintain the session for 30 minutes of inactivity.
648
+ THE system SHALL NOT allow concurrent sessions for the same user.
649
+
650
+ ## REQ-AUTH-004: ログイン試行制限
651
+ WHEN login attempts exceed 5 times within 10 minutes,
652
+ THE system SHALL lock the account for 30 minutes.
653
+ WHEN login attempts exceed 2 times,
654
+ THE system SHALL display CAPTCHA verification.
655
+
656
+ ...
657
+
658
+ この要件定義書でよろしいですか?」
659
+ ```
660
+
661
+ :::note info
662
+ 💡 **対話形式のメリット**
663
+ - 要件の漏れを防げる(AIが適切な質問をしてくれる)
664
+ - 曖昧な点を明確化できる
665
+ - 非機能要件も自動的にヒアリングしてくれる
666
+ - EARS形式への変換を意識する必要がない
667
+ :::
668
+
669
+ ## 3. 要件定義書のレビューと修正
670
+
671
+ 生成された要件を確認し、必要に応じて修正を依頼します。
672
+
673
+ ```
674
+ 💬 「この要件定義書をレビューしてください。
675
+ 漏れている要件や曖昧な点があれば指摘してください」
676
+ ```
677
+
678
+ 🤖 AIエージェントが要件定義書をレビューし、以下の観点でフィードバックします。
679
+ - EARS形式の構文チェック
680
+ - 要件の網羅性・完全性
681
+ - 要件間の矛盾や重複
682
+ - 非機能要件(性能、セキュリティ等)の漏れ
683
+
684
+ ```
685
+ 💬 「いいですね。ただ、以下を追加・修正してください:
686
+ - ログイン試行は5回までにして、超えたら30分アカウントをロック
687
+ - パスワードの最小文字数は8文字以上
688
+ - レスポンス時間の要件を2秒から1秒に変更」
689
+ ```
690
+
691
+ 🤖 AIエージェントが要件を追加・修正し、更新された要件定義書を提示します。
692
+
693
+ :::note warn
694
+ 📝 **要件定義書のレビューポイント**
695
+ - すべての機能要件がEARS形式で記述されているか
696
+ - 非機能要件(性能、セキュリティ、可用性等)が含まれているか
697
+ - 各要件に一意のIDが付与されているか
698
+ - 曖昧な表現(「適切に」「できるだけ」等)がないか
699
+ :::
700
+
701
+ ## 4. 設計の生成を依頼
702
+
703
+ 要件が固まったら、設計を依頼します。
704
+
705
+ ```
706
+ 💬 「この要件でC4モデルの設計を作成してください」
707
+ ```
708
+
709
+ 🤖 AIエージェントがC4モデル(Context → Container → Component)の設計を生成します。
710
+
711
+ ## 5. 設計書のレビューと修正
712
+
713
+ 生成された設計をレビューします。
714
+
715
+ ```
716
+ 💬 「この設計書をレビューしてください。
717
+ アーキテクチャの問題点やSOLID原則への違反があれば指摘してください」
718
+ ```
719
+
720
+ 🤖 AIエージェントが設計書をレビューし、以下の観点でフィードバックします。
721
+ - C4モデルの各レベルの整合性
722
+ - コンポーネント間の依存関係
723
+ - SOLID原則への準拠
724
+ - 設計パターンの適切な適用
725
+
726
+ ```
727
+ 💬 「設計を以下のように修正してください:
728
+ - AuthServiceとTokenServiceを分離
729
+ - キャッシュ層(Redis)を追加
730
+ - 認証ログを記録するAuditServiceを追加」
731
+ ```
732
+
733
+ 🤖 AIエージェントが設計を修正し、更新された設計書を提示します。
734
+
735
+ :::note warn
736
+ 📐 **設計書のレビューポイント**
737
+ - 各コンポーネントの責務が明確か(単一責任原則)
738
+ - 依存関係が適切か(依存性逆転原則)
739
+ - すべての要件がコンポーネントにマッピングされているか
740
+ - スケーラビリティ・保守性が考慮されているか
741
+ :::
742
+
743
+ ## 6. 憲法準拠チェックを依頼
744
+
745
+ 設計が9条憲法に準拠しているか確認します。
746
+
747
+ ```
748
+ 💬 「この設計が憲法に準拠しているか検証してください」
749
+ ```
750
+
751
+ 🤖 AIエージェントが各条項への準拠状況をレポートします。
752
+
753
+ ## 7. コード生成を依頼
754
+
755
+ 設計からコードを生成します。
756
+
757
+ ```
758
+ 💬 「この設計からTypeScriptのコードを生成してください。
759
+ Repositoryパターンを使って、テストも一緒に作成してください」
760
+ ```
761
+
762
+ 🤖 AIエージェントがコードとテストを生成します。
763
+
764
+ ## 8. セキュリティチェックを依頼
765
+
766
+ 生成されたコードのセキュリティを確認します。
767
+
768
+ ```
769
+ 💬 「生成されたコードにセキュリティの問題がないか確認してください」
770
+ ```
771
+
772
+ 🤖 AIエージェントがセキュリティスキャンを実行し、問題があれば修正案を提示します。
773
+
774
+ ## 9. トレーサビリティを確認
775
+
776
+ 要件から実装までの追跡可能性を確認します。
777
+
778
+ ```
779
+ 💬 「要件からコードまでのトレーサビリティを確認してください」
780
+ ```
781
+
782
+ 🤖 AIエージェントがトレーサビリティマトリクスを生成し、リンクの整合性を検証します。
783
+
784
+
785
+ :::note info
786
+ 🎉 **これで完了です!**
787
+
788
+ コードを一行も書かずに、自然言語だけでソフトウェア開発の一連のプロセスを実行できました。
789
+ :::
790
+
791
+
792
+ # CLIコマンドリファレンス
793
+
794
+ ## 初期化コマンド
795
+
796
+ ```bash
797
+ # プロジェクト初期化
798
+ npx musubix init [path] [--name <name>] [--force]
799
+
800
+ # オプション
801
+ # path : 初期化先のパス(デフォルト: カレントディレクトリ)
802
+ # --name : プロジェクト名
803
+ # --force : 既存ファイルを上書き
804
+ ```
805
+
806
+ ## 要件分析コマンド
807
+
808
+ ```bash
809
+ # 自然言語 → EARS変換
810
+ npx musubix requirements analyze <file>
811
+
812
+ # EARS構文検証
813
+ npx musubix requirements validate <file>
814
+
815
+ # オントロジーマッピング
816
+ npx musubix requirements map <file>
817
+
818
+ # 関連要件検索
819
+ npx musubix requirements search <query>
820
+ ```
821
+
822
+ ## 設計生成コマンド
823
+
824
+ ```bash
825
+ # 要件から設計生成
826
+ npx musubix design generate <file>
827
+
828
+ # パターン検出
829
+ npx musubix design patterns <context>
830
+
831
+ # SOLID準拠検証
832
+ npx musubix design validate <file>
833
+
834
+ # C4ダイアグラム生成
835
+ npx musubix design c4 <file> [--level <level>]
836
+ # level: context | container | component | code
837
+
838
+ # ADR生成
839
+ npx musubix design adr <decision>
840
+ ```
841
+
842
+ ## コード生成コマンド
843
+
844
+ ```bash
845
+ # 設計からコード生成
846
+ npx musubix codegen generate <file> [--output <dir>]
847
+
848
+ # 静的解析
849
+ npx musubix codegen analyze <file>
850
+
851
+ # セキュリティスキャン
852
+ npx musubix codegen security <path>
853
+ ```
854
+
855
+ ## テストコマンド
856
+
857
+ ```bash
858
+ # テスト生成
859
+ npx musubix test generate <file>
860
+
861
+ # カバレッジ測定
862
+ npx musubix test coverage <dir>
863
+ ```
864
+
865
+ ## トレーサビリティコマンド
866
+
867
+ ```bash
868
+ # トレーサビリティマトリクス
869
+ npx musubix trace matrix
870
+
871
+ # 影響分析
872
+ npx musubix trace impact <id>
873
+
874
+ # リンク検証
875
+ npx musubix trace validate
876
+
877
+ # 自動同期(v1.6.7+)
878
+ npx musubix trace sync [--dry-run]
879
+ ```
880
+
881
+ ## 学習システムコマンド
882
+
883
+ ```bash
884
+ # 学習状態ダッシュボード
885
+ npx musubix learn status
886
+
887
+ # フィードバック記録
888
+ npx musubix learn feedback <id>
889
+
890
+ # パターン一覧
891
+ npx musubix learn patterns
892
+
893
+ # 推奨パターン
894
+ npx musubix learn recommend
895
+
896
+ # ベストプラクティス表示
897
+ npx musubix learn best-practices [--category <cat>] [--high-confidence]
898
+
899
+ # エクスポート
900
+ npx musubix learn export [--output <file>] [--privacy-filter]
901
+
902
+ # インポート
903
+ npx musubix learn import <file> [--merge-strategy <strategy>]
904
+ ```
905
+
906
+ ## KGPR(Knowledge Graph Pull Request)コマンド
907
+
908
+ ```bash
909
+ # KGPR作成
910
+ npx musubix kgpr create -t "title"
911
+
912
+ # 差分プレビュー
913
+ npx musubix kgpr diff
914
+
915
+ # KGPR一覧
916
+ npx musubix kgpr list
917
+
918
+ # KGPR送信
919
+ npx musubix kgpr submit <id>
920
+ ```
921
+
922
+ ## REPLモード
923
+
924
+ ```bash
925
+ # 対話的シェルを起動
926
+ npx musubix repl
927
+
928
+ # REPL内コマンド例
929
+ > requirements validate ./req.md
930
+ > design patterns authentication
931
+ > trace matrix
932
+ > exit
933
+ ```
934
+
935
+ ## グローバルオプション
936
+
937
+ | オプション | 説明 |
938
+ |:-----------|:-----|
939
+ | `--verbose, -v` | 詳細出力 |
940
+ | `--json` | JSON形式で出力 |
941
+ | `--config <file>` | 設定ファイル指定 |
942
+ | `--quiet, -q` | 静音モード |
943
+
944
+ ## 終了コード
945
+
946
+ | コード | 意味 |
947
+ |:-------|:-----|
948
+ | 0 | 成功 |
949
+ | 1 | 一般エラー |
950
+ | 2 | 検証エラー |
951
+ | 3 | 設定エラー |
952
+ | 4 | 入出力エラー |
953
+ | 5 | 内部エラー |
954
+
955
+
956
+ # MCPサーバー連携
957
+
958
+ MUSUBIXは **Model Context Protocol(MCP)** を通じて、主要なAIコーディングエージェントと連携できます。
959
+
960
+ ## 対応プラットフォーム
961
+
962
+ | プラットフォーム | 対応状況 |
963
+ |:----------------|:---------|
964
+ | Claude Code | :white_check_mark: 完全対応 |
965
+ | GitHub Copilot | :white_check_mark: 完全対応 |
966
+ | Cursor | :white_check_mark: 完全対応 |
967
+ | Gemini CLI | :white_check_mark: 完全対応 |
968
+ | Windsurf | :white_check_mark: 対応 |
969
+
970
+ ## MCPサーバー起動
971
+
972
+ ```bash
973
+ # 標準入出力(stdio)トランスポート
974
+ npx @nahisaho/musubix-mcp-server
975
+
976
+ # または
977
+ npx musubix-mcp --transport stdio
978
+
979
+ # HTTPトランスポート
980
+ npx musubix-mcp --transport http --port 3000
981
+ ```
982
+
983
+ ## Claude Code設定
984
+
985
+ `~/.config/claude/claude_desktop_config.json`:
986
+
987
+ ```json
988
+ {
989
+ "mcpServers": {
990
+ "musubix": {
991
+ "command": "npx",
992
+ "args": ["@nahisaho/musubix-mcp-server"],
993
+ "env": {}
994
+ }
995
+ }
996
+ }
997
+ ```
998
+
999
+ ## VS Code設定(GitHub Copilot)
1000
+
1001
+ `.vscode/settings.json`:
1002
+
1003
+ ```json
1004
+ {
1005
+ "mcp.servers": {
1006
+ "musubix": {
1007
+ "command": "npx",
1008
+ "args": ["@nahisaho/musubix-mcp-server"]
1009
+ }
1010
+ }
1011
+ }
1012
+ ```
1013
+
1014
+ ## Cursor設定
1015
+
1016
+ `.cursor/mcp.json`:
1017
+
1018
+ ```json
1019
+ {
1020
+ "mcpServers": {
1021
+ "musubix": {
1022
+ "command": "npx",
1023
+ "args": ["@nahisaho/musubix-mcp-server"]
1024
+ }
1025
+ }
1026
+ }
1027
+ ```
1028
+
1029
+ ## MCPツール一覧(24ツール)
1030
+
1031
+ ### SDD基本ツール(9ツール)
1032
+
1033
+ | ツール名 | 説明 |
1034
+ |:---------|:-----|
1035
+ | `sdd_create_requirements` | EARS形式の要件ドキュメント作成 |
1036
+ | `sdd_validate_requirements` | 要件のEARS検証・憲法準拠チェック |
1037
+ | `sdd_create_design` | C4モデル設計ドキュメント作成 |
1038
+ | `sdd_validate_design` | 設計の要件トレーサビリティ検証 |
1039
+ | `sdd_create_tasks` | 設計から実装タスク生成 |
1040
+ | `sdd_query_knowledge` | YATA知識グラフへのクエリ |
1041
+ | `sdd_update_knowledge` | 知識グラフの更新 |
1042
+ | `sdd_validate_constitution` | 9憲法条項への準拠検証 |
1043
+ | `sdd_validate_traceability` | 要件↔設計↔タスクのトレーサビリティ検証 |
1044
+
1045
+ ### シンボリックツール(5ツール)
1046
+
1047
+ | ツール名 | 説明 |
1048
+ |:---------|:-----|
1049
+ | `symbolic_filter_code` | LLM出力のセマンティック検証 |
1050
+ | `symbolic_detect_hallucination` | ハルシネーション検出 |
1051
+ | `symbolic_check_constitution` | 憲法ルールチェック |
1052
+ | `symbolic_estimate_confidence` | 信頼度推定 |
1053
+ | `symbolic_route_decision` | 信頼度ルーティング |
1054
+
1055
+ ### パターン統合ツール(7ツール)
1056
+
1057
+ | ツール名 | 説明 |
1058
+ |:---------|:-----|
1059
+ | `pattern_extract` | コードからパターンを抽出 |
1060
+ | `pattern_compress` | パターンの抽象化・圧縮 |
1061
+ | `pattern_store` | パターンライブラリへの保存 |
1062
+ | `pattern_query` | パターンの検索・取得 |
1063
+ | `pattern_consolidate` | 類似パターンの統合 |
1064
+ | `ontology_query` | オントロジーグラフへのクエリ |
1065
+ | `ontology_infer` | オントロジーによる推論実行 |
1066
+
1067
+ ### KGPRツール(5ツール)
1068
+
1069
+ | ツール名 | 説明 |
1070
+ |:---------|:-----|
1071
+ | `kgpr_create` | KGPR作成 |
1072
+ | `kgpr_diff` | 差分プレビュー |
1073
+ | `kgpr_list` | KGPR一覧表示 |
1074
+ | `kgpr_submit` | KGPR送信 |
1075
+ | `kgpr_review` | KGPRレビュー |
1076
+
1077
+ ### 形式検証ツール(6ツール)
1078
+
1079
+ | ツール名 | 説明 |
1080
+ |:---------|:-----|
1081
+ | `verify_precondition` | 事前条件検証(Z3) |
1082
+ | `verify_postcondition` | 事後条件検証(Hoare) |
1083
+ | `ears_to_smt` | EARS→SMT-LIB2変換 |
1084
+ | `trace_add_link` | トレースリンク追加 |
1085
+ | `trace_query` | トレースクエリ |
1086
+ | `trace_impact` | 影響分析 |
1087
+
1088
+
1089
+ # セキュリティ分析(v1.8.0新機能)
1090
+
1091
+ v1.8.0で追加された`@nahisaho/musubix-security`パッケージは、包括的なセキュリティ分析機能を提供します。
1092
+
1093
+ ## 機能概要
1094
+
1095
+ | 機能 | 説明 |
1096
+ |:-----|:-----|
1097
+ | :mag: **脆弱性スキャン** | SQLインジェクション、XSS、コマンドインジェクション等の検出 |
1098
+ | :key: **シークレット検出** | APIキー、認証情報、秘密鍵のハードコード検出 |
1099
+ | :droplet: **テイント解析** | ユーザー入力から危険な関数へのデータフロー追跡 |
1100
+ | :package: **依存関係監査** | npm audit統合による脆弱な依存関係の検出 |
1101
+ | :wrench: **自動修正生成** | 検出された脆弱性に対する修正コードの提案 |
1102
+ | :hammer: **自動修復システム** | パッチ生成、修復計画、セキュアコード変換 (Phase 5) |
1103
+ | :shield: **セキュリティインテリジェンス** | 脅威情報、リスクスコア、予測分析 (Phase 6) |
1104
+
1105
+ ## 脆弱性スキャン
1106
+
1107
+ CLIからの実行:
1108
+
1109
+ ```bash
1110
+ # ディレクトリをスキャン
1111
+ npx musubix codegen security ./src
1112
+
1113
+ # 詳細レポート
1114
+ npx musubix codegen security ./src --verbose --json
1115
+ ```
1116
+
1117
+ プログラマティックな使用:
1118
+
1119
+ ```typescript
1120
+ import { VulnerabilityScanner } from '@nahisaho/musubix-security';
1121
+
1122
+ const scanner = new VulnerabilityScanner();
1123
+ const result = await scanner.scanDirectory('./src');
1124
+
1125
+ console.log(result.vulnerabilities); // 検出された脆弱性
1126
+ console.log(result.summary); // 重要度別サマリー
1127
+ ```
1128
+
1129
+ ## 検出可能な脆弱性
1130
+
1131
+ | カテゴリ | CWE | 重要度 |
1132
+ |:---------|:----|:-------|
1133
+ | **SQLインジェクション** | CWE-89 | Critical |
1134
+ | **コマンドインジェクション** | CWE-78 | Critical |
1135
+ | **コードインジェクション** | CWE-94 | Critical |
1136
+ | **XSS** | CWE-79 | High |
1137
+ | **パストラバーサル** | CWE-22 | High |
1138
+ | **NoSQLインジェクション** | CWE-943 | High |
1139
+ | **XXE** | CWE-611 | High |
1140
+ | **オープンリダイレクト** | CWE-601 | Medium |
1141
+
1142
+ ## シークレット検出
1143
+
1144
+ ```typescript
1145
+ import { SecretDetector } from '@nahisaho/musubix-security';
1146
+
1147
+ const detector = new SecretDetector();
1148
+ const result = await detector.scan('./src');
1149
+
1150
+ console.log(result.secrets); // 検出されたシークレット
1151
+ ```
1152
+
1153
+ 検出可能なシークレット:
1154
+
1155
+ - Azure Connection Strings
1156
+ - AWS Access Key / Secret Key
1157
+ - GitHub Token
1158
+ - Private Keys (PEM)
1159
+ - Database URLs
1160
+ - JWT Secrets
1161
+ - Stripe Keys
1162
+ - Slack Webhooks
1163
+
1164
+
1165
+ ## テイント解析
1166
+
1167
+ ユーザー入力から危険な関数へのデータフローを追跡:
1168
+
1169
+ ```typescript
1170
+ import { TaintAnalyzer } from '@nahisaho/musubix-security';
1171
+
1172
+ const analyzer = new TaintAnalyzer();
1173
+ const result = analyzer.analyze('./src');
1174
+
1175
+ console.log(result.paths); // ソースからシンクへのパス
1176
+ ```
1177
+
1178
+ ## 統合セキュリティスキャン
1179
+
1180
+ すべてのセキュリティ機能を一度に実行:
1181
+
1182
+ ```typescript
1183
+ import { createSecurityService } from '@nahisaho/musubix-security';
1184
+
1185
+ const service = createSecurityService();
1186
+
1187
+ const result = await service.scan({
1188
+ target: './src',
1189
+ vulnerabilities: true,
1190
+ taint: true,
1191
+ secrets: true,
1192
+ dependencies: true,
1193
+ generateFixes: true, // 自動修正コードを生成
1194
+ });
1195
+
1196
+ console.log(result.summary);
1197
+ ```
1198
+
1199
+ ## レポート形式
1200
+
1201
+ ```bash
1202
+ # JSON形式
1203
+ npx musubix codegen security ./src --format json
1204
+
1205
+ # Markdown形式
1206
+ npx musubix codegen security ./src --format markdown
1207
+
1208
+ # SARIF形式(GitHub Code Scanning互換)
1209
+ npx musubix codegen security ./src --format sarif
1210
+ ```
1211
+
1212
+ ## 自動修復システム(Phase 5)
1213
+
1214
+ 検出された脆弱性に対する自動修復機能を提供します。
1215
+
1216
+ ### AutoFixer
1217
+
1218
+ ```typescript
1219
+ import { createAutoFixer } from '@nahisaho/musubix-security';
1220
+
1221
+ const fixer = createAutoFixer();
1222
+
1223
+ // 脆弱性に対する修正を生成
1224
+ const fixes = fixer.generateFixes(vulnerability, {
1225
+ maxFixes: 3,
1226
+ minConfidence: 0.7,
1227
+ includeBreakingChanges: false,
1228
+ preferredStrategies: ['sanitization', 'parameterization'],
1229
+ });
1230
+
1231
+ // 修正を適用
1232
+ const result = fixer.applyFix(fixes[0], fileContent);
1233
+ ```
1234
+
1235
+ ### PatchGenerator
1236
+
1237
+ ```typescript
1238
+ import { createPatchGenerator } from '@nahisaho/musubix-security';
1239
+
1240
+ const generator = createPatchGenerator();
1241
+
1242
+ // パッチ生成
1243
+ const patch = generator.generatePatch(fix, originalContent, {
1244
+ format: 'unified', // unified | git | json | context
1245
+ contextLines: 3,
1246
+ });
1247
+
1248
+ // パッチの適用
1249
+ const applied = generator.applyPatch(patch, targetContent);
1250
+ ```
1251
+
1252
+ ### RemediationPlanner
1253
+
1254
+ 複数の脆弱性に対する修復計画を策定:
1255
+
1256
+ ```typescript
1257
+ import { createRemediationPlanner } from '@nahisaho/musubix-security';
1258
+
1259
+ const planner = createRemediationPlanner();
1260
+
1261
+ const plan = planner.createPlan(vulnerabilities, {
1262
+ strategy: 'risk-based', // severity-first | effort-first | risk-based
1263
+ maxParallelFixes: 3,
1264
+ });
1265
+
1266
+ console.log(plan.phases); // フェーズ分けされた修復順序
1267
+ console.log(plan.estimatedEffort); // 推定作業量
1268
+ console.log(plan.riskReduction); // リスク削減効果
1269
+ ```
1270
+
1271
+ ### SecureCodeTransformer
1272
+
1273
+ セキュアなコードパターンへの変換:
1274
+
1275
+ ```typescript
1276
+ import { createSecureCodeTransformer } from '@nahisaho/musubix-security';
1277
+
1278
+ const transformer = createSecureCodeTransformer();
1279
+
1280
+ const result = transformer.transform(code, {
1281
+ categories: ['output-encoding', 'cryptography', 'error-handling'],
1282
+ });
1283
+
1284
+ console.log(result.transformed); // 変換後のコード
1285
+ console.log(result.changes); // 変更一覧
1286
+ ```
1287
+
1288
+ ## セキュリティインテリジェンス(Phase 6)
1289
+
1290
+ 脅威情報の統合とリスク分析機能を提供します。
1291
+
1292
+ ### ThreatIntelligence
1293
+
1294
+ 外部脅威フィードとの統合:
1295
+
1296
+ ```typescript
1297
+ import { createThreatIntelligence } from '@nahisaho/musubix-security';
1298
+
1299
+ const intel = createThreatIntelligence();
1300
+
1301
+ // フィードの追加
1302
+ await intel.addFeed({
1303
+ id: 'custom-feed',
1304
+ name: 'Custom Threat Feed',
1305
+ url: 'https://threat-feed.example.com/iocs',
1306
+ type: 'stix',
1307
+ refreshInterval: 3600000,
1308
+ });
1309
+
1310
+ // コードに対するIOCマッチング
1311
+ const matches = intel.matchCode(sourceCode);
1312
+ ```
1313
+
1314
+ ### AttackPatternMatcher
1315
+
1316
+ MITRE ATT&CKフレームワークとの統合:
1317
+
1318
+ ```typescript
1319
+ import { createAttackPatternMatcher } from '@nahisaho/musubix-security';
1320
+
1321
+ const matcher = createAttackPatternMatcher();
1322
+
1323
+ // コードに対するパターンマッチング
1324
+ const matches = matcher.matchCode(sourceCode);
1325
+
1326
+ // 特定のテクニックの取得
1327
+ const technique = matcher.getTechnique('T1059');
1328
+
1329
+ // タクティクス別のテクニック一覧
1330
+ const techniques = matcher.getTechniquesByTactic('execution');
1331
+ ```
1332
+
1333
+ ### RiskScorer
1334
+
1335
+ CVSS計算とビジネスインパクト評価:
1336
+
1337
+ ```typescript
1338
+ import { createRiskScorer } from '@nahisaho/musubix-security';
1339
+
1340
+ const scorer = createRiskScorer();
1341
+
1342
+ // CVSS計算
1343
+ const cvss = scorer.calculateCVSS(vulnerability);
1344
+ console.log(cvss.baseScore); // 基本スコア
1345
+ console.log(cvss.severity); // 重要度ラベル
1346
+
1347
+ // ビジネスインパクト評価
1348
+ const impact = scorer.assessBusinessImpact(vulnerability, {
1349
+ assetCriticality: 'high',
1350
+ dataClassification: 'confidential',
1351
+ serviceAvailability: 'critical',
1352
+ });
1353
+ ```
1354
+
1355
+ ### SecurityAnalytics
1356
+
1357
+ セキュリティメトリクスとダッシュボード:
1358
+
1359
+ ```typescript
1360
+ import { createSecurityAnalytics } from '@nahisaho/musubix-security';
1361
+
1362
+ const analytics = createSecurityAnalytics();
1363
+
1364
+ // イベントの記録
1365
+ analytics.recordVulnerability(vulnerability);
1366
+ analytics.recordFix(fix);
1367
+ analytics.recordScan(scanResult);
1368
+
1369
+ // メトリクス計算
1370
+ const mttr = analytics.calculateMetric('mean-time-to-remediation');
1371
+
1372
+ // ダッシュボード生成
1373
+ const dashboard = analytics.generateDashboard();
1374
+ console.log(dashboard.summary); // サマリー
1375
+ console.log(dashboard.kpis); // KPI一覧
1376
+ ```
1377
+
1378
+ ### PredictiveAnalyzer
1379
+
1380
+ セキュリティトレンドの予測と異常検出:
1381
+
1382
+ ```typescript
1383
+ import { createPredictiveAnalyzer } from '@nahisaho/musubix-security';
1384
+
1385
+ const analyzer = createPredictiveAnalyzer();
1386
+
1387
+ // データポイントの追加
1388
+ analyzer.addDataPoints([
1389
+ { timestamp: new Date('2026-01-01'), value: 10, metric: 'vulnerabilities' },
1390
+ { timestamp: new Date('2026-01-02'), value: 12, metric: 'vulnerabilities' },
1391
+ ]);
1392
+
1393
+ // リスク予測(30日先)
1394
+ const projection = analyzer.projectRisk(30);
1395
+ console.log(projection.projectedRisk); // 予測リスク値
1396
+ console.log(projection.confidence); // 信頼度
1397
+ console.log(projection.trend); // トレンド方向
1398
+
1399
+ // 異常検出
1400
+ const anomalies = analyzer.detectAnomalies();
1401
+ ```
1402
+
1403
+
1404
+ # 形式検証
1405
+
1406
+ `@nahisaho/musubix-formal-verify`パッケージは、Z3 SMTソルバを使用した形式検証機能を提供します。
1407
+
1408
+ ## Z3統合
1409
+
1410
+ ```typescript
1411
+ import { Z3Adapter } from '@nahisaho/musubix-formal-verify';
1412
+
1413
+ const z3 = new Z3Adapter();
1414
+ await z3.initialize();
1415
+
1416
+ const result = await z3.verify(`
1417
+ (declare-const x Int)
1418
+ (declare-const y Int)
1419
+ (assert (> x 0))
1420
+ (assert (> y 0))
1421
+ (assert (= (+ x y) 10))
1422
+ (check-sat)
1423
+ `);
1424
+
1425
+ console.log(result.status); // 'sat' | 'unsat' | 'unknown'
1426
+ ```
1427
+
1428
+ ## 事前条件検証
1429
+
1430
+ ```typescript
1431
+ import { PreconditionVerifier } from '@nahisaho/musubix-formal-verify';
1432
+
1433
+ const verifier = new PreconditionVerifier();
1434
+
1435
+ const result = await verifier.verify({
1436
+ condition: {
1437
+ expression: 'amount > 0 && amount <= balance',
1438
+ format: 'javascript',
1439
+ },
1440
+ variables: [
1441
+ { name: 'amount', type: 'Int' },
1442
+ { name: 'balance', type: 'Int' },
1443
+ ],
1444
+ });
1445
+
1446
+ console.log(result.status); // 'valid' | 'invalid' | 'unknown'
1447
+ ```
1448
+
1449
+ ## 事後条件検証(Hoareトリプル)
1450
+
1451
+ ```typescript
1452
+ import { PostconditionVerifier } from '@nahisaho/musubix-formal-verify';
1453
+
1454
+ const verifier = new PostconditionVerifier();
1455
+
1456
+ const result = await verifier.verify({
1457
+ precondition: {
1458
+ expression: 'balance >= amount && amount > 0',
1459
+ format: 'javascript',
1460
+ },
1461
+ postcondition: {
1462
+ expression: 'balance_new == balance - amount',
1463
+ format: 'javascript',
1464
+ },
1465
+ preVariables: [
1466
+ { name: 'balance', type: 'Int' },
1467
+ { name: 'amount', type: 'Int' },
1468
+ ],
1469
+ postVariables: [
1470
+ { name: 'balance_new', type: 'Int' },
1471
+ ],
1472
+ transition: 'balance_new := balance - amount',
1473
+ });
1474
+ ```
1475
+
1476
+ ## EARS→SMT変換
1477
+
1478
+ EARS形式の要件をSMT-LIB2形式に変換:
1479
+
1480
+ ```typescript
1481
+ import { EarsToSmtConverter } from '@nahisaho/musubix-formal-verify';
1482
+
1483
+ const converter = new EarsToSmtConverter();
1484
+
1485
+ const result = converter.convert(
1486
+ 'WHEN a user submits login form, THE system SHALL validate credentials within 2 seconds.'
1487
+ );
1488
+
1489
+ console.log(result.pattern); // 'event-driven'
1490
+ console.log(result.smtLib2); // SMT-LIB2 コード
1491
+ ```
1492
+
1493
+
1494
+ # 知識グラフ(YATA)
1495
+
1496
+ **YATA (Yet Another Triple Architecture)** は、MUSUBIXの知識グラフシステムです。
1497
+
1498
+ ## アーキテクチャ
1499
+
1500
+ ```mermaid
1501
+ flowchart TB
1502
+ subgraph Agent["🤖 AI Agent"]
1503
+ AIAgent["AI Agent<br/>(Claude, Copilot, etc.)"]
1504
+ end
1505
+
1506
+ subgraph Client["🔗 YATA Client"]
1507
+ YATAClient["YATA Client<br/>統一API・キャッシュ・同期"]
1508
+ end
1509
+
1510
+ subgraph Storage["💾 Knowledge Graph Storage"]
1511
+ direction LR
1512
+ YATALocal["📁 YATA Local<br/>SQLite<br/>ローカルKG"]
1513
+ YATAGlobal["🌐 YATA Global<br/>分散型<br/>グローバルKG"]
1514
+ end
1515
+
1516
+ AIAgent --> YATAClient
1517
+ YATAClient --> YATALocal
1518
+ YATAClient --> YATAGlobal
1519
+ YATALocal <-->|"同期"| YATAGlobal
1520
+
1521
+ style Agent fill:#e3f2fd,stroke:#1565c0
1522
+ style Client fill:#f3e5f5,stroke:#7b1fa2
1523
+ style Storage fill:#e8f5e9,stroke:#2e7d32
1524
+ ```
1525
+
1526
+ ## YATA Local vs YATA Global
1527
+
1528
+ | 項目 | YATA Local | YATA Global |
1529
+ |:-----|:-----------|:------------|
1530
+ | **用途** | プロジェクト固有の知識管理 | チーム・組織横断の知識共有 |
1531
+ | **ストレージ** | SQLite(ローカルファイル) | 分散型(P2Pネットワーク) |
1532
+ | **同期** | オフラインでも動作 | リアルタイム同期 |
1533
+ | **プライバシー** | 完全にローカル | プライバシーフィルタリング |
1534
+ | **スケール** | 単一プロジェクト | 複数プロジェクト・チーム |
1535
+
1536
+ :::note info
1537
+ 💡 **どちらを使うべき?**
1538
+ - **個人開発・プライベートプロジェクト**: YATA Local のみで十分
1539
+ - **チーム開発**: YATA Local + YATA Global で知識を共有
1540
+ - **オープンソースプロジェクト**: YATA Global で学習パターンをコミュニティと共有
1541
+ :::
1542
+
1543
+ ## YATA Local 詳細
1544
+
1545
+ **YATA Local**は、SQLiteベースの軽量な知識グラフです。プロジェクトごとに独立した知識を管理します。
1546
+
1547
+ ### セットアップ
1548
+
1549
+ ```bash
1550
+ # プロジェクト初期化時に自動作成
1551
+ npx musubix init
1552
+
1553
+ # または手動で作成
1554
+ npx musubix yata init --local
1555
+ ```
1556
+
1557
+ 初期化すると、以下のファイルが作成されます。
1558
+ ```
1559
+ storage/
1560
+ └── knowledge/
1561
+ └── local.db # SQLiteデータベース
1562
+ ```
1563
+
1564
+ ### 基本操作
1565
+
1566
+ ```typescript
1567
+ import { YataLocal } from '@nahisaho/yata-local';
1568
+
1569
+ // 初期化
1570
+ const yata = new YataLocal({
1571
+ dbPath: './storage/knowledge/local.db',
1572
+ });
1573
+
1574
+ // トリプル追加(主語-述語-目的語)
1575
+ await yata.addTriple({
1576
+ subject: 'req:REQ-AUTH-001', // 主語: 要件ID
1577
+ predicate: 'rdf:type', // 述語: 型
1578
+ object: 'sdd:Requirement', // 目的語: 要件クラス
1579
+ });
1580
+
1581
+ // 関連付け
1582
+ await yata.addTriple({
1583
+ subject: 'des:DES-AUTH-001', // 設計ID
1584
+ predicate: 'sdd:implements', // 実装する
1585
+ object: 'req:REQ-AUTH-001', // 要件ID
1586
+ });
1587
+
1588
+ // トリプル検索
1589
+ const results = await yata.query({
1590
+ subject: 'req:REQ-AUTH-001',
1591
+ });
1592
+ // => [{subject, predicate, object}, ...]
1593
+
1594
+ // SPARQLクエリ(高度な検索)
1595
+ const sparqlResults = await yata.sparql(`
1596
+ SELECT ?design ?requirement
1597
+ WHERE {
1598
+ ?design sdd:implements ?requirement .
1599
+ ?requirement rdf:type sdd:Requirement .
1600
+ }
1601
+ `);
1602
+ ```
1603
+
1604
+ ### CLIでの操作
1605
+
1606
+ ```bash
1607
+ # トリプル追加
1608
+ npx musubix yata add --subject "req:REQ-001" --predicate "rdf:type" --object "sdd:Requirement"
1609
+
1610
+ # クエリ実行
1611
+ npx musubix yata query --subject "req:REQ-001"
1612
+
1613
+ # SPARQLクエリ
1614
+ npx musubix yata sparql "SELECT ?s ?p ?o WHERE { ?s ?p ?o } LIMIT 10"
1615
+
1616
+ # 統計表示
1617
+ npx musubix yata stats
1618
+ ```
1619
+
1620
+ ### AIエージェントからの利用
1621
+
1622
+ ```
1623
+ 💬 「REQ-AUTH-001 に関連する設計を知識グラフから検索してください」
1624
+
1625
+ 🤖 AIエージェント:
1626
+ 「[sdd_query_knowledge ツールを実行]
1627
+
1628
+ REQ-AUTH-001 に関連する設計を検索しました:
1629
+
1630
+ - DES-AUTH-001: 認証コンポーネント設計
1631
+ - DES-AUTH-002: トークン管理設計
1632
+ - DES-AUTH-003: セッション管理設計
1633
+
1634
+ これらの設計はすべて REQ-AUTH-001 を実装しています。」
1635
+ ```
1636
+
1637
+ ## YATA Global 詳細
1638
+
1639
+ **YATA Global**は、分散型の知識グラフです。チーム・組織・コミュニティ間で知識を共有できます。
1640
+
1641
+ ### セットアップ
1642
+
1643
+ ```bash
1644
+ # YATA Global ノードを初期化
1645
+ npx musubix yata init --global --node-id "my-team-node"
1646
+
1647
+ # ピアに接続
1648
+ npx musubix yata connect --peer "https://yata.example.com"
1649
+ ```
1650
+
1651
+ 設定ファイル(`musubix.config.json`):
1652
+ ```json
1653
+ {
1654
+ "yata": {
1655
+ "global": {
1656
+ "enabled": true,
1657
+ "nodeId": "my-team-node",
1658
+ "peers": [
1659
+ "https://yata-peer-1.example.com",
1660
+ "https://yata-peer-2.example.com"
1661
+ ],
1662
+ "privacy": {
1663
+ "filter": "strict",
1664
+ "excludePatterns": ["password", "secret", "key"]
1665
+ }
1666
+ }
1667
+ }
1668
+ }
1669
+ ```
1670
+
1671
+ ### 基本操作
1672
+
1673
+ ```typescript
1674
+ import { YataGlobal } from '@nahisaho/yata-global';
1675
+
1676
+ // 初期化
1677
+ const yataGlobal = new YataGlobal({
1678
+ nodeId: 'my-team-node',
1679
+ peers: ['https://yata-peer-1.example.com'],
1680
+ privacy: {
1681
+ filter: 'strict',
1682
+ excludePatterns: ['password', 'secret', 'api_key'],
1683
+ },
1684
+ });
1685
+
1686
+ // ピアネットワークに接続
1687
+ await yataGlobal.connect();
1688
+
1689
+ // グローバル知識を検索
1690
+ const patterns = await yataGlobal.query({
1691
+ predicate: 'sdd:pattern',
1692
+ object: 'authentication',
1693
+ });
1694
+
1695
+ // ローカル知識をグローバルに共有(プライバシーフィルタ適用)
1696
+ await yataGlobal.publish({
1697
+ triples: localTriples,
1698
+ namespace: 'patterns',
1699
+ privacy: 'strict',
1700
+ });
1701
+ ```
1702
+
1703
+ ### KGPR(Knowledge Graph Pull Request)
1704
+
1705
+ GitのPull Requestのように、知識グラフへの変更をレビュー可能な形式で提案できます。
1706
+
1707
+ ```bash
1708
+ # KGPR作成
1709
+ npx musubix kgpr create -t "認証パターンの追加"
1710
+
1711
+ # 差分プレビュー
1712
+ npx musubix kgpr diff
1713
+
1714
+ # KGPR一覧
1715
+ npx musubix kgpr list
1716
+
1717
+ # KGPR送信(レビュー依頼)
1718
+ npx musubix kgpr submit <kgpr-id>
1719
+ ```
1720
+
1721
+ ```typescript
1722
+ // プログラムから KGPR を作成
1723
+ const kgpr = await yataGlobal.createKGPR({
1724
+ title: 'Add authentication patterns',
1725
+ description: 'New patterns learned from Project-15',
1726
+ changes: [
1727
+ { operation: 'add', triple: { subject: 'pattern:jwt-auth', ... } },
1728
+ { operation: 'add', triple: { subject: 'pattern:oauth2', ... } },
1729
+ ],
1730
+ });
1731
+
1732
+ // KGPR送信
1733
+ await yataGlobal.submitKGPR(kgpr.id);
1734
+
1735
+ // KGPRレビュー
1736
+ await yataGlobal.reviewKGPR(kgpr.id, {
1737
+ decision: 'approve', // 'approve' | 'changes_requested' | 'commented'
1738
+ comment: 'LGTM! Great patterns.',
1739
+ });
1740
+ ```
1741
+
1742
+ ### プライバシー設定
1743
+
1744
+ YATA Globalは、機密情報を自動的にフィルタリングします。
1745
+
1746
+ | プライバシーレベル | フィルタリング内容 |
1747
+ |:------------------|:-------------------|
1748
+ | `strict` | パスワード、シークレット、API キー、個人情報をすべて除外 |
1749
+ | `moderate` | シークレット、API キーのみ除外 |
1750
+ | `none` | フィルタリングなし(プライベートネットワーク用) |
1751
+
1752
+ ```typescript
1753
+ // プライバシーフィルタの例
1754
+ const filtered = yataGlobal.applyPrivacyFilter(triples, {
1755
+ level: 'strict',
1756
+ customPatterns: [
1757
+ /password/i,
1758
+ /secret/i,
1759
+ /api[_-]?key/i,
1760
+ /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/, // メールアドレス
1761
+ ],
1762
+ });
1763
+ ```
1764
+
1765
+ ## Local ↔ Global 同期
1766
+
1767
+ YATA LocalとYATA Globalは自動的に同期できます。
1768
+
1769
+ ```typescript
1770
+ import { YataClient } from '@nahisaho/musubix-yata-client';
1771
+
1772
+ const client = new YataClient({
1773
+ local: { dbPath: './storage/knowledge/local.db' },
1774
+ global: { nodeId: 'my-node', peers: [...] },
1775
+ sync: {
1776
+ enabled: true,
1777
+ interval: 60000, // 60秒ごとに同期
1778
+ direction: 'bidirectional', // 双方向同期
1779
+ },
1780
+ });
1781
+
1782
+ // 手動同期
1783
+ await client.sync();
1784
+
1785
+ // 同期状態を確認
1786
+ const status = await client.getSyncStatus();
1787
+ // => { lastSync: Date, pending: 5, conflicts: 0 }
1788
+ ```
1789
+
1790
+ ## 推論エンジン
1791
+
1792
+ ```typescript
1793
+ const yata = new YataLocal({
1794
+ inference: {
1795
+ enabled: true,
1796
+ rules: ['transitive', 'subclass', 'inverse'],
1797
+ },
1798
+ });
1799
+
1800
+ // 推移的閉包クエリ
1801
+ const ancestors = await yata.inferTransitive({
1802
+ subject: 'comp:UserService',
1803
+ predicate: 'sdd:dependsOn',
1804
+ });
1805
+ ```
1806
+
1807
+ ## KGPR(Knowledge Graph Pull Request)
1808
+
1809
+ 知識グラフへの変更をレビュー可能な形式で提案:
1810
+
1811
+ ```typescript
1812
+ import { YataGlobal } from '@nahisaho/yata-global';
1813
+
1814
+ const yataGlobal = new YataGlobal({
1815
+ nodeId: 'node-001',
1816
+ peers: ['https://yata-peer-1.example.com'],
1817
+ });
1818
+
1819
+ // KGPR作成
1820
+ const kgpr = await yataGlobal.createKGPR({
1821
+ title: 'Add authentication patterns',
1822
+ description: 'New patterns learned from Project-15',
1823
+ changes: [{ operation: 'add', triple: {...} }],
1824
+ });
1825
+
1826
+ // KGPR送信
1827
+ await yataGlobal.submitKGPR(kgpr.id);
1828
+
1829
+ // KGPRレビュー
1830
+ await yataGlobal.reviewKGPR(kgpr.id, {
1831
+ decision: 'approve',
1832
+ comment: 'LGTM',
1833
+ });
1834
+ ```
1835
+
1836
+
1837
+ # 学習システム
1838
+
1839
+ MUSUBIXは、Wake-Sleepサイクルに基づく自律学習機能を提供します。
1840
+
1841
+ ## Wake-Sleepサイクル
1842
+
1843
+ ```mermaid
1844
+ flowchart TB
1845
+ subgraph WakePhase["☀️ Wake Phase"]
1846
+ W1["👁️ コード観察"]
1847
+ W2["🔍 パターン抽出"]
1848
+ W3["📝 知識グラフ更新"]
1849
+ W1 --> W2 --> W3
1850
+ end
1851
+
1852
+ subgraph SleepPhase["🌙 Sleep Phase"]
1853
+ S1["🔄 パターン統合"]
1854
+ S2["📦 類似パターン圧縮"]
1855
+ S3["⚡ メモリ最適化"]
1856
+ S1 --> S2 --> S3
1857
+ end
1858
+
1859
+ subgraph Library["📚 Pattern Library"]
1860
+ PL["学習済みパターン<br/>信頼度スコア<br/>メタデータ"]
1861
+ end
1862
+
1863
+ W3 --> Library
1864
+ S3 --> Library
1865
+ Library -.->|"フィードバック"| WakePhase
1866
+
1867
+ style WakePhase fill:#fff8e1,stroke:#f57f17
1868
+ style SleepPhase fill:#e8eaf6,stroke:#3f51b5
1869
+ style Library fill:#e8f5e9,stroke:#2e7d32
1870
+ ```
1871
+
1872
+ ## パターン抽出
1873
+
1874
+ ```typescript
1875
+ import { PatternExtractor } from '@nahisaho/musubix-pattern-mcp';
1876
+
1877
+ const extractor = new PatternExtractor();
1878
+
1879
+ const patterns = await extractor.extract(`
1880
+ class UserService {
1881
+ constructor(private readonly userRepo: UserRepository) {}
1882
+
1883
+ async findUser(id: string): Promise<User | null> {
1884
+ return this.userRepo.findById(id);
1885
+ }
1886
+ }
1887
+ `);
1888
+ ```
1889
+
1890
+ ## パターンライブラリ
1891
+
1892
+ ```typescript
1893
+ import { PatternLibrary } from '@nahisaho/musubix-pattern-mcp';
1894
+
1895
+ const library = new PatternLibrary({
1896
+ storagePath: './patterns.db',
1897
+ });
1898
+
1899
+ // パターン保存
1900
+ await library.store(pattern);
1901
+
1902
+ // パターン検索
1903
+ const matches = await library.search({
1904
+ type: 'design-pattern',
1905
+ domain: 'authentication',
1906
+ minConfidence: 0.9,
1907
+ });
1908
+
1909
+ // パターン推奨
1910
+ const recommendations = await library.recommend({
1911
+ context: 'user-service-implementation',
1912
+ maxResults: 5,
1913
+ });
1914
+ ```
1915
+
1916
+ ## フィードバック記録
1917
+
1918
+ ```bash
1919
+ # フィードバックを記録
1920
+ npx musubix learn feedback <pattern-id>
1921
+
1922
+ # 学習状態を確認
1923
+ npx musubix learn status
1924
+ ```
1925
+
1926
+
1927
+ # ベストプラクティス
1928
+
1929
+ ## 9条憲法(Constitutional Articles)
1930
+
1931
+ MUSUBIXのすべての開発活動を統治する**不変のルール**です。AIエージェントもこれらのルールに従って動作します。
1932
+
1933
+ | 条項 | 名称 | 概要 | 詳細 |
1934
+ |:-----|:-----|:-----|:-----|
1935
+ | **I** | Specification First | 要件を先に定義 | 実装の前に必ず要件を定義。曖昧なまま開発しない |
1936
+ | **II** | Design Before Code | 設計を先に行う | コードを書く前に設計を完了。C4モデル必須 |
1937
+ | **III** | Single Source of Truth | 唯一の真実の源 | `steering/`がプロジェクトの権威ある情報源 |
1938
+ | **IV** | Traceability | 追跡可能性 | 要件→設計→コード→テストを100%追跡可能に |
1939
+ | **V** | Incremental Progress | 漸進的な進歩 | 小さく頻繁にデリバリー。大きな変更は分割 |
1940
+ | **VI** | Decision Documentation | 決定の文書化 | すべての決定はADR(Architecture Decision Record)で記録 |
1941
+ | **VII** | Quality Gates | 品質ゲート | フェーズ移行前に品質検証を必須化 |
1942
+ | **VIII** | User-Centric | ユーザー中心 | ユーザー価値を文書化。技術だけでなく価値を重視 |
1943
+ | **IX** | Continuous Learning | 継続的学習 | レトロスペクティブと改善を継続 |
1944
+
1945
+ :::note info
1946
+ 💡 **憲法準拠チェック**
1947
+
1948
+ AIエージェントに「この設計が憲法に準拠しているか検証してください」と依頼すると、各条項への準拠状況を自動的にチェックします。
1949
+
1950
+ ```
1951
+ 💬 「この設計が憲法に準拠しているか検証してください」
1952
+
1953
+ 🤖 AIエージェント:
1954
+ 「[sdd_validate_constitution ツールを実行]
1955
+
1956
+ 憲法準拠チェック結果:
1957
+
1958
+ ✅ Article I (Specification First): 準拠 - 要件が定義済み
1959
+ ✅ Article II (Design Before Code): 準拠 - C4設計が存在
1960
+ ✅ Article III (Single Source of Truth): 準拠 - steering/参照済み
1961
+ ⚠️ Article IV (Traceability): 警告 - 2件の要件がリンクなし
1962
+ ...」
1963
+ ```
1964
+ :::
1965
+
1966
+ ## シンボリック推論モジュール
1967
+
1968
+ MUSUBIXのシンボリック推論は、3つのフェーズで構成されています。
1969
+
1970
+ ### Phase 1: 基盤機能
1971
+
1972
+ | コンポーネント | 機能 |
1973
+ |:--------------|:-----|
1974
+ | **SemanticCodeFilterPipeline** | LLM出力の意味的検証 |
1975
+ | **HallucinationDetector** | 未定義シンボル・無効なインポートの検出 |
1976
+ | **ConstitutionRuleRegistry** | 9条憲法の強制 |
1977
+ | **ConfidenceEstimator** | AST複雑度、要件カバレッジのスコアリング |
1978
+ | **ConfidenceBasedRouter** | 信頼度に基づくルーティング決定 |
1979
+
1980
+ ### Phase 2: 形式検証
1981
+
1982
+ | コンポーネント | 機能 |
1983
+ |:--------------|:-----|
1984
+ | **EarsToFormalSpecConverter** | EARS → SMT-LIB変換 |
1985
+ | **VerificationConditionGenerator** | 検証条件(VC)生成 |
1986
+ | **Z3Adapter** | Z3 SMTソルバ統合 |
1987
+ | **SecurityScanner** | OWASPパターン、シークレット検出 |
1988
+
1989
+ ### Phase 3: 高度な機能
1990
+
1991
+ | コンポーネント | 機能 |
1992
+ |:--------------|:-----|
1993
+ | **CandidateRanker** | マルチクライテリア候補スコアリング |
1994
+ | **ResultBlender** | Neural/Symbolic結果統合(3戦略) |
1995
+ | **AuditLogger** | SHA-256ハッシュチェーン改ざん検出 |
1996
+ | **QualityGateValidator** | 自動品質ゲート検証 |
1997
+
1998
+ ## OWL 2 RL推論エンジン
1999
+
2000
+ MUSUBIXは、OWL 2 RLプロファイルに準拠した推論エンジンを搭載しています。
2001
+
2002
+ ### 組み込み推論ルール
2003
+
2004
+ | カテゴリ | ルール | 説明 |
2005
+ |:--------|:-------|:-----|
2006
+ | クラス公理 | cax-sco, cax-eqc | サブクラス、等価クラス推論 |
2007
+ | プロパティ | prp-dom, prp-rng | ドメイン、レンジ推論 |
2008
+ | プロパティ特性 | prp-symp, prp-trp, prp-inv | 対称、推移、逆関係 |
2009
+ | 等価性 | eq-ref, eq-sym, eq-trans | sameAs推論 |
2010
+
2011
+ ```typescript
2012
+ import { OWL2RLReasoner } from '@nahisaho/musubix-ontology-mcp';
2013
+
2014
+ const reasoner = new OWL2RLReasoner();
2015
+
2016
+ // 推論実行
2017
+ const inferred = await reasoner.infer(triples, {
2018
+ rules: ['cax-sco', 'prp-trp', 'prp-inv'],
2019
+ maxIterations: 100,
2020
+ });
2021
+
2022
+ // 推論の説明を取得
2023
+ const explanation = await reasoner.explain(inferredTriple, {
2024
+ format: 'markdown',
2025
+ });
2026
+ ```
2027
+
2028
+ ## EARS要件形式
2029
+
2030
+ 5つのEARSパターンで要件を形式化します。
2031
+
2032
+ | パターン | 構文 | 用途 |
2033
+ |:---------|:-----|:-----|
2034
+ | **Ubiquitous** | `THE [system] SHALL [requirement]` | 常時満たすべき要件 |
2035
+ | **Event-driven** | `WHEN [event], THE [system] SHALL [response]` | イベント発生時の要件 |
2036
+ | **State-driven** | `WHILE [state], THE [system] SHALL [response]` | 特定状態での要件 |
2037
+ | **Unwanted** | `THE [system] SHALL NOT [behavior]` | 禁止事項 |
2038
+ | **Optional** | `IF [condition], THEN THE [system] SHALL [response]` | 条件付き要件 |
2039
+
2040
+ **例:**
2041
+
2042
+ ```markdown
2043
+ # Ubiquitous(常時)
2044
+ THE system SHALL encrypt all user data at rest.
2045
+
2046
+ # Event-driven(イベント駆動)
2047
+ WHEN a user submits a login form, THE system SHALL validate credentials within 2 seconds.
2048
+
2049
+ # State-driven(状態駆動)
2050
+ WHILE the system is in maintenance mode, THE system SHALL reject all API requests.
2051
+
2052
+ # Unwanted(禁止)
2053
+ THE system SHALL NOT store passwords in plain text.
2054
+
2055
+ # Optional(条件付き)
2056
+ IF the user has admin privileges, THEN THE system SHALL display the admin dashboard.
2057
+ ```
2058
+
2059
+ ## 学習済みベストプラクティス
2060
+
2061
+ MUSUBIXは過去のプロジェクトから学習したベストプラクティスを蓄積しています。CLIで表示できます。
2062
+
2063
+ ```bash
2064
+ # 全ベストプラクティス表示
2065
+ npx musubix learn best-practices
2066
+
2067
+ # カテゴリ別フィルタ
2068
+ npx musubix learn best-practices --category code
2069
+ npx musubix learn best-practices --category design
2070
+ npx musubix learn best-practices --category test
2071
+
2072
+ # 高信頼度パターンのみ
2073
+ npx musubix learn best-practices --high-confidence
2074
+ ```
2075
+
2076
+ ## コードパターン
2077
+
2078
+ | ID | 名称 | 概要 | 信頼度 |
2079
+ |:---|:-----|:-----|:-------|
2080
+ | BP-CODE-001 | Entity Input DTO | エンティティ作成にInput DTOを使用 | 95% |
2081
+ | BP-CODE-002 | Date-based ID Format | PREFIX-YYYYMMDD-NNN形式でIDを生成 | 90% |
2082
+ | BP-CODE-003 | Value Objects | ドメイン概念にValue Objectを使用 | 90% |
2083
+ | BP-CODE-004 | Function-based Value Objects | interface+factory関数でVO実装 | 95% |
2084
+ | BP-CODE-005 | Result Type | 失敗可能な操作にResult<T, E>を使用 | 95% |
2085
+
2086
+ **Function-based Value Object例:**
2087
+
2088
+ ```typescript
2089
+ // ✅ 推奨: Interface + Factory Function
2090
+ interface Price {
2091
+ readonly amount: number;
2092
+ readonly currency: 'JPY';
2093
+ }
2094
+
2095
+ function createPrice(amount: number): Result<Price, ValidationError> {
2096
+ if (amount < 100 || amount > 1_000_000) {
2097
+ return err(new ValidationError('Price must be between 100 and 1,000,000 JPY'));
2098
+ }
2099
+ return ok({ amount, currency: 'JPY' });
2100
+ }
2101
+ ```
2102
+
2103
+ ## 設計パターン
2104
+
2105
+ | ID | 名称 | 概要 | 信頼度 |
2106
+ |:---|:-----|:-----|:-------|
2107
+ | BP-DESIGN-001 | Status Transition Map | 有効なステータス遷移をMapで定義 | 95% |
2108
+ | BP-DESIGN-002 | Repository Async Pattern | 将来のDB移行に備えてasync化 | 85% |
2109
+ | BP-DESIGN-003 | Service Layer with DI | リポジトリをDIしたService層 | 90% |
2110
+ | BP-DESIGN-004 | Optimistic Locking | 同時編集検出のためのversion管理 | 90% |
2111
+ | BP-DESIGN-005 | AuditService | データ変更の監査ログ記録 | 85% |
2112
+ | BP-DESIGN-006 | Entity Counter Reset | テスト用のresetXxxCounter()関数を提供 | 95% |
2113
+ | BP-DESIGN-007 | Expiry Time Logic | 有効期限をexpiresAtフィールドで明示管理 | 90% |
2114
+
2115
+ **Status Transition Map例:**
2116
+
2117
+ ```typescript
2118
+ const validStatusTransitions: Record<Status, Status[]> = {
2119
+ draft: ['active', 'cancelled'],
2120
+ active: ['completed', 'cancelled'],
2121
+ completed: [],
2122
+ cancelled: [],
2123
+ };
2124
+ ```
2125
+
2126
+ ## テストパターン
2127
+
2128
+ | ID | 名称 | 概要 | 信頼度 |
2129
+ |:---|:-----|:-----|:-------|
2130
+ | BP-TEST-001 | Test Counter Reset | beforeEachでIDカウンターをリセット | 95% |
2131
+ | BP-TEST-002 | Verify API Before Test | テスト前にAPIシグネチャを確認 | 80% |
2132
+ | BP-TEST-003 | Vitest ESM Configuration | Vitest + TypeScript ESM構成 | 85% |
2133
+ | BP-TEST-004 | Result Type Test Pattern | isOk()/isErr()で両方のケースをテスト | 95% |
2134
+ | BP-TEST-005 | Status Transition Testing | 有効・無効な遷移を網羅的にテスト | 90% |
2135
+
2136
+ **Result Type Test例:**
2137
+
2138
+ ```typescript
2139
+ describe('createPrice', () => {
2140
+ it('should create valid price', () => {
2141
+ const result = createPrice(1000);
2142
+ expect(result.isOk()).toBe(true);
2143
+ if (result.isOk()) {
2144
+ expect(result.value.amount).toBe(1000);
2145
+ }
2146
+ });
2147
+
2148
+ it('should reject price below minimum', () => {
2149
+ const result = createPrice(50);
2150
+ expect(result.isErr()).toBe(true);
2151
+ if (result.isErr()) {
2152
+ expect(result.error.message).toContain('100');
2153
+ }
2154
+ });
2155
+ });
2156
+ ```
2157
+
2158
+ ## Neuro-Symbolic信頼度評価
2159
+
2160
+ | シンボリック結果 | ニューラル信頼度 | 最終決定 |
2161
+ |:-----------------|:-----------------|:---------|
2162
+ | `invalid` | - | ニューラル結果を**棄却** |
2163
+ | `valid` | ≥0.8 | ニューラル結果を**採用** |
2164
+ | `valid` | <0.8 | シンボリック結果を**優先** |
2165
+
2166
+
2167
+ # トラブルシューティング
2168
+
2169
+ ## よくある問題と解決策
2170
+
2171
+ ### Node.jsバージョンエラー
2172
+
2173
+ ```
2174
+ Error: MUSUBIX requires Node.js >= 20.0.0
2175
+ ```
2176
+
2177
+ **解決策:**
2178
+
2179
+ ```bash
2180
+ # Node.jsのバージョンを確認
2181
+ node --version
2182
+
2183
+ # nvmを使用している場合
2184
+ nvm install 20
2185
+ nvm use 20
2186
+ ```
2187
+
2188
+ ### MCPサーバー接続エラー
2189
+
2190
+ ```
2191
+ Error: Failed to connect to MCP server
2192
+ ```
2193
+
2194
+ **解決策:**
2195
+
2196
+ 1. MCPサーバーが起動しているか確認
2197
+ 2. 設定ファイルのパスが正しいか確認
2198
+ 3. ファイアウォール設定を確認
2199
+
2200
+ ```bash
2201
+ # MCPサーバーを手動起動
2202
+ npx @nahisaho/musubix-mcp-server --verbose
2203
+ ```
2204
+
2205
+ ### Z3初期化エラー
2206
+
2207
+ ```
2208
+ Error: Z3 initialization failed
2209
+ ```
2210
+
2211
+ **解決策:**
2212
+
2213
+ ```bash
2214
+ # z3-solverパッケージを再インストール
2215
+ npm install z3-solver
2216
+
2217
+ # または、プロセス版にフォールバック
2218
+ export MUSUBIX_Z3_MODE=process
2219
+ ```
2220
+
2221
+ ### トレーサビリティ検証エラー
2222
+
2223
+ ```
2224
+ Warning: Orphan requirement detected: REQ-XXX
2225
+ ```
2226
+
2227
+ **解決策:**
2228
+
2229
+ ```bash
2230
+ # トレーサビリティマトリクスを同期
2231
+ npx musubix trace sync
2232
+
2233
+ # または、手動でリンクを追加
2234
+ npx musubix trace link REQ-XXX DES-XXX
2235
+ ```
2236
+
2237
+ ## ログ出力
2238
+
2239
+ 詳細なログを出力するには:
2240
+
2241
+ ```bash
2242
+ # 詳細モード
2243
+ npx musubix --verbose <command>
2244
+
2245
+ # デバッグログを有効化
2246
+ DEBUG=musubix:* npx musubix <command>
2247
+ ```
2248
+
2249
+ ## サポート
2250
+
2251
+ - **GitHub Issues**: [https://github.com/nahisaho/musubix/issues](https://github.com/nahisaho/musubix/issues)
2252
+ - **ドキュメント**: [docs/](https://github.com/nahisaho/musubix/tree/main/docs)
2253
+
2254
+
2255
+ # まとめ
2256
+
2257
+ ## MUSUBIXが解決する課題
2258
+
2259
+ 従来のAIコーディングツールには、以下の課題がありました。
2260
+
2261
+ | 課題 | 従来のツール | MUSUBIXの解決策 |
2262
+ |:-----|:-------------|:----------------|
2263
+ | 出力が不安定 | 同じ質問でも異なる回答 | シンボリック推論で検証・一貫性を担保 |
2264
+ | 検証が困難 | 人間によるレビューのみ | Z3 SMTソルバで数学的に証明 |
2265
+ | 要件が曖昧 | 自然言語のまま | EARS形式で形式化・テスト可能に |
2266
+ | 追跡できない | どの要件の実装か不明 | 知識グラフで100%トレーサビリティ |
2267
+ | 学習しない | フィードバックが活かされない | Wake-Sleepサイクルで継続的に学習 |
2268
+
2269
+ ## MUSUBIXの主要機能
2270
+
2271
+ | 機能 | 説明 | 対象ユーザー |
2272
+ |:-----|:-----|:-------------|
2273
+ | 🧠 **Neuro-Symbolic統合** | LLMの創造性とシンボリック推論の精密性を融合 | すべてのユーザー |
2274
+ | 📝 **EARS形式要件** | 5パターンの形式的要件記述で曖昧さを排除 | すべてのユーザー |
2275
+ | 🛡️ **セキュリティ分析** | OWASP Top 10 / CWE Top 25の脆弱性を自動検出 | セキュリティ重視のプロジェクト |
2276
+ | ✅ **形式検証** | Z3 SMTソルバによる数学的な正確性の証明 | ミッションクリティカルなシステム |
2277
+ | 📚 **知識グラフ(YATA)** | ローカル/グローバルの知識管理と共有 | チーム開発・長期プロジェクト |
2278
+ | 💡 **Wake-Sleep学習** | フィードバックからパターンを学習・蓄積 | 継続的な改善を求めるチーム |
2279
+ | 🔗 **完全トレーサビリティ** | 要件→設計→コード→テストの追跡 | 規制産業・コンプライアンス対応 |
2280
+
2281
+ ## 推奨ワークフロー
2282
+
2283
+ ```mermaid
2284
+ flowchart LR
2285
+ subgraph Prep["📋 準備"]
2286
+ P1["steering/を読む"]
2287
+ end
2288
+
2289
+ subgraph Req["📝 要件"]
2290
+ R1["EARS形式で<br/>要件定義"]
2291
+ R2["要件レビュー"]
2292
+ end
2293
+
2294
+ subgraph Design["📐 設計"]
2295
+ D1["C4モデルで<br/>設計"]
2296
+ D2["設計レビュー"]
2297
+ D3["憲法準拠<br/>チェック"]
2298
+ end
2299
+
2300
+ subgraph Impl["💻 実装"]
2301
+ I1["テストを<br/>先に書く"]
2302
+ I2["最小限の<br/>コード実装"]
2303
+ I3["リファクタ<br/>リング"]
2304
+ end
2305
+
2306
+ subgraph Verify["✅ 検証"]
2307
+ V1["セキュリティ<br/>スキャン"]
2308
+ V2["形式検証"]
2309
+ V3["トレーサビリティ<br/>確認"]
2310
+ end
2311
+
2312
+ P1 --> R1 --> R2 --> D1 --> D2 --> D3 --> I1 --> I2 --> I3 --> V1 --> V2 --> V3
2313
+
2314
+ style Prep fill:#e3f2fd,stroke:#1565c0
2315
+ style Req fill:#fff3e0,stroke:#ef6c00
2316
+ style Design fill:#f3e5f5,stroke:#7b1fa2
2317
+ style Impl fill:#e8f5e9,stroke:#2e7d32
2318
+ style Verify fill:#ffebee,stroke:#c62828
2319
+ ```
2320
+
2321
+ ## 始め方(3ステップ)
2322
+
2323
+ :::note info
2324
+ 🚀 **今すぐ始める**
2325
+
2326
+ **Step 1: インストール**
2327
+ ```bash
2328
+ npm install -g musubix
2329
+ ```
2330
+
2331
+ **Step 2: プロジェクト初期化**
2332
+ ```bash
2333
+ npx musubix init
2334
+ ```
2335
+
2336
+ **Step 3: AIエージェントで開発開始**
2337
+ ```
2338
+ 💬 「ユーザー認証システムの要件定義を開始してください」
2339
+ ```
2340
+
2341
+ GitHub CopilotやClaude Codeなら、MCP設定不要で即座に利用できます!
2342
+ :::
2343
+
2344
+ ## 次のステップ
2345
+
2346
+ | レベル | 学ぶべきこと | 参照セクション |
2347
+ |:-------|:-------------|:---------------|
2348
+ | 🌱 **初級** | CLIコマンド、基本的な要件定義 | [クイックスタート](#クイックスタート) |
2349
+ | 🌿 **中級** | MCPサーバー連携、セキュリティ分析 | [MCPサーバー連携](#mcpサーバー連携)、[セキュリティ分析](#セキュリティ分析v180新機能) |
2350
+ | 🌳 **上級** | 形式検証、知識グラフ、学習システム | [形式検証](#形式検証)、[知識グラフ](#知識グラフyata)、[学習システム](#学習システム) |
2351
+
2352
+ ## コミュニティ
2353
+
2354
+ - **GitHub**: [nahisaho/musubix](https://github.com/nahisaho/musubix) - Issue・PRをお待ちしています!
2355
+ - **npm**: [@nahisaho/musubix-core](https://www.npmjs.com/package/@nahisaho/musubix-core)
2356
+ - **ドキュメント**: [docs/](https://github.com/nahisaho/musubix/tree/main/docs)
2357
+
2358
+ :::note warn
2359
+ 🤝 **貢献をお待ちしています!**
2360
+
2361
+ MUSUBIXはオープンソースプロジェクトです。以下の形で貢献いただけます:
2362
+ - 🐛 バグ報告・機能リクエスト(GitHub Issues)
2363
+ - 📝 ドキュメントの改善
2364
+ - 💻 プルリクエスト
2365
+ - 🌟 GitHubスター(励みになります!)
2366
+ :::
2367
+
2368
+
2369
+ **© 2026 MUSUBIX Project - Neuro-Symbolic AI for Better Software Development**
2370
+
2371
+ ⭐ この記事が参考になったら、**LGTM**と**GitHubスター**をお願いします!