musubix 3.4.0 → 3.4.2
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/README.md +50 -315
- package/bin/musubix.js +1 -9
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/package.json +51 -57
- package/.github/AGENTS.md +0 -949
- package/.github/prompts/sdd-change-apply.prompt.md +0 -283
- package/.github/prompts/sdd-change-archive.prompt.md +0 -241
- package/.github/prompts/sdd-change-init.prompt.md +0 -269
- package/.github/prompts/sdd-design.prompt.md +0 -250
- package/.github/prompts/sdd-implement.prompt.md +0 -387
- package/.github/prompts/sdd-requirements.prompt.md +0 -193
- package/.github/prompts/sdd-review.prompt.md +0 -155
- package/.github/prompts/sdd-security.prompt.md +0 -228
- package/.github/prompts/sdd-steering.prompt.md +0 -269
- package/.github/prompts/sdd-tasks.prompt.md +0 -255
- package/.github/prompts/sdd-test.prompt.md +0 -230
- package/.github/prompts/sdd-validate.prompt.md +0 -304
- package/.github/skills/musubix-adr-generation/SKILL.md +0 -209
- package/.github/skills/musubix-best-practices/SKILL.md +0 -315
- package/.github/skills/musubix-c4-design/SKILL.md +0 -162
- package/.github/skills/musubix-code-generation/SKILL.md +0 -237
- package/.github/skills/musubix-domain-inference/SKILL.md +0 -196
- package/.github/skills/musubix-ears-validation/SKILL.md +0 -161
- package/.github/skills/musubix-sdd-workflow/SKILL.md +0 -217
- package/.github/skills/musubix-technical-writing/SKILL.md +0 -444
- package/.github/skills/musubix-test-generation/SKILL.md +0 -212
- package/.github/skills/musubix-traceability/SKILL.md +0 -141
- package/AGENTS.md +0 -1134
- package/LICENSE +0 -21
- package/README.ja.md +0 -313
- package/bin/musubix-mcp.js +0 -15
- package/docs/API-REFERENCE.md +0 -1425
- package/docs/GITHUB-ACTIONS-NPM-SETUP.md +0 -132
- package/docs/INSTALL-GUIDE.ja.md +0 -459
- package/docs/INSTALL-GUIDE.md +0 -459
- package/docs/MIGRATION-v3.0.md +0 -324
- package/docs/MUSUBI-enhancement_roadmap_20260105.md +0 -651
- package/docs/MUSUBIX-v3.0-User-Guide.md +0 -1357
- package/docs/MUSUBIXv2.2.0-Manual-outline.md +0 -136
- package/docs/MUSUBIXv2.2.0-Manual.md +0 -3123
- package/docs/MUSUBIXv2.3.5-Refactering.md +0 -1310
- package/docs/MUSUBIv1.6.1-enhancement_roadmap_20260105.md +0 -291
- package/docs/MUSUBIv2.2.0-USERGUIDE.md +0 -2079
- package/docs/ROADMAP-v1.5.md +0 -116
- package/docs/SwarmCoding.md +0 -1284
- package/docs/Test-prompt.md +0 -105
- package/docs/USER-GUIDE-v1.8.0.md +0 -2371
- package/docs/USER-GUIDE.ja.md +0 -2147
- package/docs/USER-GUIDE.md +0 -3022
- package/docs/YATA-GLOBAL-GUIDE.ja.md +0 -750
- package/docs/YATA-GLOBAL-GUIDE.md +0 -595
- package/docs/YATA-LOCAL-GUIDE.ja.md +0 -989
- package/docs/YATA-LOCAL-GUIDE.md +0 -730
- package/docs/adr/0001-real-time-pattern-learning-architecture-for-v1-5-0.md +0 -75
- package/docs/adr/0002-pattern-sharing-protocol-for-cross-team-collaborat.md +0 -79
- package/docs/adr/0003-owl-2-rl-implementation-strategy-for-advanced-infe.md +0 -90
- package/docs/adr/ADR-v3.4.0-001-deep-research-architecture.md +0 -217
- package/docs/adr/ADR-v3.4.0-002-search-provider-selection.md +0 -308
- package/docs/adr/ADR-v3.4.0-003-lm-api-integration.md +0 -475
- package/docs/enterprise-knowledge-management.md +0 -1737
- package/docs/evolution-from-musubi-to-musubix.md +0 -2170
- package/docs/getting-started-with-sdd.md +0 -1602
- package/docs/moodle-refactering-codegraph-musubix.md +0 -391
- package/docs/moodle-refactering-codegraph.md +0 -278
- package/docs/overview/MUSUBIX-CodeGraph.md +0 -322
- package/docs/overview/MUSUBIX-Core.md +0 -671
- package/docs/overview/MUSUBIX-Decisions.md +0 -494
- package/docs/overview/MUSUBIX-FormalVerify.md +0 -566
- package/docs/overview/MUSUBIX-Knowledge.md +0 -1231
- package/docs/overview/MUSUBIX-Learning.md +0 -837
- package/docs/overview/MUSUBIX-MCP-Server.md +0 -535
- package/docs/overview/MUSUBIX-Overview.md +0 -264
- package/docs/overview/MUSUBIX-Phase1-Complete.md +0 -271
- package/docs/overview/MUSUBIX-Phase2-Complete.md +0 -310
- package/docs/overview/MUSUBIX-Policy.md +0 -477
- package/docs/overview/MUSUBIX-Roadmap-v2.md +0 -399
- package/docs/overview/MUSUBIX-Security-Plan.md +0 -939
- package/docs/overview/MUSUBIX-Security-v2.1.md +0 -668
- package/docs/overview/MUSUBIX-Security.md +0 -891
- package/docs/overview/MUSUBIX-YATA.md +0 -666
- package/docs/overview/MUSUBIX-v2.2.0-Advanced-Learning.md +0 -513
- package/docs/overview/Neuro-SymbolicAI.md +0 -159
- package/docs/packages/knowledge.md +0 -594
- package/docs/qiita-linux-kernel-knowledge-graph.md +0 -596
- package/scripts/generate-quality-gate-report.ts +0 -106
- package/scripts/postinstall.js +0 -94
- package/steering/.musubi-version +0 -1
- package/steering/product.ja.md +0 -572
- package/steering/project.yml +0 -66
- package/steering/rules/constitution.md +0 -491
- package/steering/structure.ja.md +0 -503
- package/steering/tech.ja.md +0 -208
|
@@ -1,1231 +0,0 @@
|
|
|
1
|
-
# MUSUBIX Knowledge パッケージ
|
|
2
|
-
|
|
3
|
-
**パッケージ名**: `@musubix/knowledge`
|
|
4
|
-
**バージョン**: 3.0.1
|
|
5
|
-
**最終更新**: 2026-01-12
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 1. 概要
|
|
10
|
-
|
|
11
|
-
`@musubix/knowledge` は、MUSUBIX v3.0で導入されたGit-Native知識グラフシステムです。**会社・開発グループで共有すべき知識**(ベストプラクティス、技術選定基準、ドメイン知識、コーディング規約など)をJSONファイルで管理し、Gitワークフローにネイティブに統合されます。
|
|
12
|
-
|
|
13
|
-
> **📌 重要**: 個別プロジェクトの要件(REQ-*)、設計(DES-*)、タスク(TSK-*)は `storage/specs/` ディレクトリで管理されます。`@musubix/knowledge` はプロジェクト横断で共有すべき**組織知識**のためのパッケージです。
|
|
14
|
-
|
|
15
|
-
### 1.1 MUSUBIXにおける役割分担
|
|
16
|
-
|
|
17
|
-
| 対象 | 保存場所 | 用途 |
|
|
18
|
-
|------|---------|------|
|
|
19
|
-
| **プロジェクト固有** | `storage/specs/` | 要件(REQ-*)、設計(DES-*)、タスク(TSK-*) |
|
|
20
|
-
| **組織共有知識** | `.knowledge/` | ベストプラクティス、技術基準、ドメイン知識 |
|
|
21
|
-
|
|
22
|
-
### 1.2 適切な使用例
|
|
23
|
-
|
|
24
|
-
| ✅ 適切 | ❌ 不適切 |
|
|
25
|
-
|--------|----------|
|
|
26
|
-
| 「React vs Vue の選定基準」 | 「REQ-001: ユーザー認証」 |
|
|
27
|
-
| 「API設計のベストプラクティス」 | 「DES-001: JWT認証設計」 |
|
|
28
|
-
| 「ECサイトのドメイン用語集」 | 「TSK-001: AuthService実装」 |
|
|
29
|
-
| 「セキュリティコーディング規約」 | 個別プロジェクトの実装詳細 |
|
|
30
|
-
| 「パフォーマンス最適化パターン」 | 特定機能の仕様書 |
|
|
31
|
-
|
|
32
|
-
### 1.3 特徴
|
|
33
|
-
|
|
34
|
-
| 特徴 | 説明 |
|
|
35
|
-
|------|------|
|
|
36
|
-
| **サーバーレス** | データベース不要、JSONファイルで完結 |
|
|
37
|
-
| **Git-friendly** | diff/merge/PR対応、バージョン管理可能 |
|
|
38
|
-
| **軽量** | ゼロ依存(外部ライブラリ不要) |
|
|
39
|
-
| **階層型ID** | `pattern:BP-CODE-001`、`guideline:SEC-001` |
|
|
40
|
-
| **型安全** | TypeScriptによる完全な型定義 |
|
|
41
|
-
|
|
42
|
-
### 1.4 ストレージ構造
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
.knowledge/
|
|
46
|
-
└── graph.json # 組織共有知識のエンティティ・リレーション
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## 2. インストール
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
# 単体インストール
|
|
55
|
-
npm install @musubix/knowledge
|
|
56
|
-
|
|
57
|
-
# または musubix パッケージ経由
|
|
58
|
-
npm install musubix
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## 3. 基本的な使い方
|
|
64
|
-
|
|
65
|
-
> **💡 ヒント**: 以下の操作はすべて**自然言語(MCP経由)**でも実行できます。各セクションでコード例と自然言語での操作例を併記しています。
|
|
66
|
-
|
|
67
|
-
### 3.1 知識ストアの初期化
|
|
68
|
-
|
|
69
|
-
#### コードでの初期化
|
|
70
|
-
|
|
71
|
-
```typescript
|
|
72
|
-
import { createKnowledgeStore } from '@musubix/knowledge';
|
|
73
|
-
|
|
74
|
-
// .knowledge/graph.json を使用
|
|
75
|
-
const store = createKnowledgeStore('.knowledge');
|
|
76
|
-
|
|
77
|
-
// 既存データがあれば読み込み
|
|
78
|
-
await store.load();
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
#### 自然言語での初期化
|
|
82
|
-
|
|
83
|
-
MCPサーバーが起動している場合、知識ストアは**自動的に初期化**されます。
|
|
84
|
-
特別な初期化操作は不要で、すぐにエンティティの作成・検索ができます。
|
|
85
|
-
|
|
86
|
-
```
|
|
87
|
-
👤 ユーザー:
|
|
88
|
-
知識ベースにパターンを登録したい
|
|
89
|
-
|
|
90
|
-
🤖 AIエージェント:
|
|
91
|
-
了解しました。どのようなパターンを登録しますか?
|
|
92
|
-
(MCPサーバーが自動的に .knowledge/graph.json を初期化・読み込みします)
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### 3.2 エンティティの作成
|
|
96
|
-
|
|
97
|
-
#### ベストプラクティスの登録
|
|
98
|
-
|
|
99
|
-
**コード例:**
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
// コーディングパターン
|
|
103
|
-
await store.putEntity({
|
|
104
|
-
id: 'pattern:BP-CODE-001',
|
|
105
|
-
type: 'best-practice',
|
|
106
|
-
name: 'Entity Input DTO',
|
|
107
|
-
description: 'エンティティ作成時はInput DTOオブジェクトを使用する',
|
|
108
|
-
properties: {
|
|
109
|
-
category: 'code',
|
|
110
|
-
confidence: 0.95,
|
|
111
|
-
example: `
|
|
112
|
-
interface CreateUserInput {
|
|
113
|
-
name: string;
|
|
114
|
-
email: string;
|
|
115
|
-
}
|
|
116
|
-
function createUser(input: CreateUserInput): User { ... }
|
|
117
|
-
`,
|
|
118
|
-
rationale: '引数が増えても呼び出し側の変更が最小限で済む',
|
|
119
|
-
},
|
|
120
|
-
tags: ['typescript', 'design-pattern', 'dto'],
|
|
121
|
-
});
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
**自然言語での登録:**
|
|
125
|
-
|
|
126
|
-
```
|
|
127
|
-
👤 ユーザー:
|
|
128
|
-
「Entity Input DTO」というコーディングパターンを知識ベースに登録して。
|
|
129
|
-
エンティティ作成時はInput DTOオブジェクトを使用するパターンで、
|
|
130
|
-
信頼度95%、タグはtypescript, design-pattern, dtoで。
|
|
131
|
-
コード例も付けて:
|
|
132
|
-
interface CreateUserInput { name: string; email: string; }
|
|
133
|
-
|
|
134
|
-
🤖 AIエージェント:
|
|
135
|
-
ベストプラクティスを登録しました:
|
|
136
|
-
- ID: pattern:BP-CODE-001
|
|
137
|
-
- 名前: Entity Input DTO
|
|
138
|
-
- カテゴリ: code
|
|
139
|
-
- 信頼度: 95%
|
|
140
|
-
- タグ: typescript, design-pattern, dto
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
**設計パターンの登録(コード例):**
|
|
144
|
-
|
|
145
|
-
```typescript
|
|
146
|
-
await store.putEntity({
|
|
147
|
-
id: 'pattern:BP-DESIGN-001',
|
|
148
|
-
type: 'best-practice',
|
|
149
|
-
name: 'Status Transition Map',
|
|
150
|
-
description: '有効なステータス遷移をMapで定義する',
|
|
151
|
-
properties: {
|
|
152
|
-
category: 'design',
|
|
153
|
-
confidence: 0.95,
|
|
154
|
-
example: `
|
|
155
|
-
const validTransitions: Record<Status, Status[]> = {
|
|
156
|
-
draft: ['active', 'cancelled'],
|
|
157
|
-
active: ['completed', 'cancelled'],
|
|
158
|
-
completed: [],
|
|
159
|
-
cancelled: [],
|
|
160
|
-
};
|
|
161
|
-
`,
|
|
162
|
-
},
|
|
163
|
-
tags: ['state-machine', 'design-pattern'],
|
|
164
|
-
});
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
**設計パターンの登録(自然言語):**
|
|
168
|
-
|
|
169
|
-
```
|
|
170
|
-
👤 ユーザー:
|
|
171
|
-
「Status Transition Map」パターンを登録して。
|
|
172
|
-
有効なステータス遷移をMapで定義するパターン。
|
|
173
|
-
カテゴリはdesign、信頼度95%、タグはstate-machine, design-pattern。
|
|
174
|
-
|
|
175
|
-
🤖 AIエージェント:
|
|
176
|
-
登録しました: pattern:BP-DESIGN-001 - Status Transition Map
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
#### 技術選定基準の登録
|
|
180
|
-
|
|
181
|
-
**コード例:**
|
|
182
|
-
|
|
183
|
-
```typescript
|
|
184
|
-
await store.putEntity({
|
|
185
|
-
id: 'guideline:TECH-001',
|
|
186
|
-
type: 'tech-guideline',
|
|
187
|
-
name: 'フロントエンドフレームワーク選定基準',
|
|
188
|
-
description: 'フロントエンドフレームワーク選定の判断基準',
|
|
189
|
-
properties: {
|
|
190
|
-
criteria: [
|
|
191
|
-
{ name: 'チームスキル', weight: 0.3 },
|
|
192
|
-
{ name: 'エコシステム成熟度', weight: 0.25 },
|
|
193
|
-
{ name: 'パフォーマンス', weight: 0.2 },
|
|
194
|
-
{ name: '学習コスト', weight: 0.15 },
|
|
195
|
-
{ name: 'コミュニティサポート', weight: 0.1 },
|
|
196
|
-
],
|
|
197
|
-
recommendations: {
|
|
198
|
-
'enterprise': 'React + TypeScript',
|
|
199
|
-
'rapid-prototype': 'Vue.js',
|
|
200
|
-
'performance-critical': 'Svelte',
|
|
201
|
-
},
|
|
202
|
-
},
|
|
203
|
-
tags: ['frontend', 'tech-selection', 'framework'],
|
|
204
|
-
});
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
**自然言語での登録:**
|
|
208
|
-
|
|
209
|
-
```
|
|
210
|
-
👤 ユーザー:
|
|
211
|
-
フロントエンドフレームワークの選定基準をガイドラインとして登録して。
|
|
212
|
-
評価基準は:
|
|
213
|
-
- チームスキル (30%)
|
|
214
|
-
- エコシステム成熟度 (25%)
|
|
215
|
-
- パフォーマンス (20%)
|
|
216
|
-
- 学習コスト (15%)
|
|
217
|
-
- コミュニティサポート (10%)
|
|
218
|
-
|
|
219
|
-
推奨は、エンタープライズならReact、プロトタイプならVue、
|
|
220
|
-
パフォーマンス重視ならSvelteで。
|
|
221
|
-
|
|
222
|
-
🤖 AIエージェント:
|
|
223
|
-
技術ガイドラインを登録しました:
|
|
224
|
-
- ID: guideline:TECH-001
|
|
225
|
-
- 名前: フロントエンドフレームワーク選定基準
|
|
226
|
-
- 5つの評価基準と3つの推奨を含む
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
#### ドメイン知識の登録
|
|
230
|
-
|
|
231
|
-
**コード例(ドメイン用語):**
|
|
232
|
-
|
|
233
|
-
```typescript
|
|
234
|
-
await store.putEntity({
|
|
235
|
-
id: 'domain:EC-TERM-001',
|
|
236
|
-
type: 'domain-term',
|
|
237
|
-
name: 'SKU (Stock Keeping Unit)',
|
|
238
|
-
description: '在庫管理単位。商品の色・サイズなどの組み合わせごとに付与される一意のコード',
|
|
239
|
-
properties: {
|
|
240
|
-
domain: 'e-commerce',
|
|
241
|
-
examples: ['SHIRT-RED-M', 'SHIRT-RED-L', 'SHIRT-BLUE-M'],
|
|
242
|
-
relatedTerms: ['JAN', 'UPC', '商品コード'],
|
|
243
|
-
},
|
|
244
|
-
tags: ['e-commerce', 'inventory', 'terminology'],
|
|
245
|
-
});
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
**自然言語での登録(ドメイン用語):**
|
|
249
|
-
|
|
250
|
-
```
|
|
251
|
-
👤 ユーザー:
|
|
252
|
-
ECサイトのドメイン用語「SKU」を登録して。
|
|
253
|
-
Stock Keeping Unitの略で、在庫管理単位のこと。
|
|
254
|
-
商品の色・サイズの組み合わせごとにコードが付く。
|
|
255
|
-
例:SHIRT-RED-M, SHIRT-RED-L, SHIRT-BLUE-M
|
|
256
|
-
関連用語はJAN、UPC、商品コード。
|
|
257
|
-
|
|
258
|
-
🤖 AIエージェント:
|
|
259
|
-
ドメイン用語を登録しました:
|
|
260
|
-
- ID: domain:EC-TERM-001
|
|
261
|
-
- 名前: SKU (Stock Keeping Unit)
|
|
262
|
-
- ドメイン: e-commerce
|
|
263
|
-
- タグ: e-commerce, inventory, terminology
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
**コード例(ビジネスルール):**
|
|
267
|
-
|
|
268
|
-
```typescript
|
|
269
|
-
await store.putEntity({
|
|
270
|
-
id: 'domain:EC-RULE-001',
|
|
271
|
-
type: 'business-rule',
|
|
272
|
-
name: '在庫引当ルール',
|
|
273
|
-
description: '注文確定時の在庫引当に関するビジネスルール',
|
|
274
|
-
properties: {
|
|
275
|
-
domain: 'e-commerce',
|
|
276
|
-
rules: [
|
|
277
|
-
'在庫は注文確定時に即座に引き当てる',
|
|
278
|
-
'30分以内に決済完了しない場合は引当解除',
|
|
279
|
-
'複数倉庫の場合は最寄り倉庫から優先',
|
|
280
|
-
],
|
|
281
|
-
},
|
|
282
|
-
tags: ['e-commerce', 'inventory', 'business-rule'],
|
|
283
|
-
});
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
**自然言語での登録(ビジネスルール):**
|
|
287
|
-
|
|
288
|
-
```
|
|
289
|
-
👤 ユーザー:
|
|
290
|
-
在庫引当のビジネスルールを登録して。
|
|
291
|
-
ECサイトの在庫管理ルールで:
|
|
292
|
-
1. 在庫は注文確定時に即座に引き当てる
|
|
293
|
-
2. 30分以内に決済完了しない場合は引当解除
|
|
294
|
-
3. 複数倉庫の場合は最寄り倉庫から優先
|
|
295
|
-
|
|
296
|
-
🤖 AIエージェント:
|
|
297
|
-
ビジネスルールを登録しました:
|
|
298
|
-
- ID: domain:EC-RULE-001
|
|
299
|
-
- 名前: 在庫引当ルール
|
|
300
|
-
- 3つのルールを含む
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
#### セキュリティガイドラインの登録
|
|
304
|
-
|
|
305
|
-
**コード例:**
|
|
306
|
-
|
|
307
|
-
```typescript
|
|
308
|
-
await store.putEntity({
|
|
309
|
-
id: 'guideline:SEC-001',
|
|
310
|
-
type: 'security-guideline',
|
|
311
|
-
name: 'パスワードハッシュ化ガイドライン',
|
|
312
|
-
description: 'パスワード保存時のハッシュ化に関するガイドライン',
|
|
313
|
-
properties: {
|
|
314
|
-
algorithm: 'bcrypt',
|
|
315
|
-
minCost: 12,
|
|
316
|
-
prohibited: ['MD5', 'SHA1', 'SHA256(単独使用)'],
|
|
317
|
-
example: `
|
|
318
|
-
import bcrypt from 'bcrypt';
|
|
319
|
-
const hash = await bcrypt.hash(password, 12);
|
|
320
|
-
`,
|
|
321
|
-
},
|
|
322
|
-
tags: ['security', 'authentication', 'password'],
|
|
323
|
-
});
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
**自然言語での登録:**
|
|
327
|
-
|
|
328
|
-
```
|
|
329
|
-
👤 ユーザー:
|
|
330
|
-
パスワードハッシュ化のセキュリティガイドラインを登録して。
|
|
331
|
-
- 使用アルゴリズム: bcrypt
|
|
332
|
-
- 最小コスト: 12
|
|
333
|
-
- 禁止: MD5、SHA1、SHA256単独使用
|
|
334
|
-
|
|
335
|
-
🤖 AIエージェント:
|
|
336
|
-
セキュリティガイドラインを登録しました:
|
|
337
|
-
- ID: guideline:SEC-001
|
|
338
|
-
- 名前: パスワードハッシュ化ガイドライン
|
|
339
|
-
- タグ: security, authentication, password
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
### 3.3 エンティティの取得
|
|
343
|
-
|
|
344
|
-
**コード例:**
|
|
345
|
-
|
|
346
|
-
```typescript
|
|
347
|
-
const pattern = await store.getEntity('pattern:BP-CODE-001');
|
|
348
|
-
|
|
349
|
-
if (pattern) {
|
|
350
|
-
console.log(pattern.name); // => 'Entity Input DTO'
|
|
351
|
-
console.log(pattern.type); // => 'best-practice'
|
|
352
|
-
console.log(pattern.properties); // => { category: 'code', confidence: 0.95, ... }
|
|
353
|
-
}
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
**自然言語での取得:**
|
|
357
|
-
|
|
358
|
-
```
|
|
359
|
-
👤 ユーザー:
|
|
360
|
-
BP-CODE-001の詳細を見せて
|
|
361
|
-
|
|
362
|
-
🤖 AIエージェント:
|
|
363
|
-
**pattern:BP-CODE-001 - Entity Input DTO**
|
|
364
|
-
- タイプ: best-practice
|
|
365
|
-
- カテゴリ: code
|
|
366
|
-
- 信頼度: 95%
|
|
367
|
-
- 説明: エンティティ作成時はInput DTOオブジェクトを使用する
|
|
368
|
-
- タグ: typescript, design-pattern, dto
|
|
369
|
-
|
|
370
|
-
コード例:
|
|
371
|
-
interface CreateUserInput { name: string; email: string; }
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
### 3.4 エンティティの削除
|
|
375
|
-
|
|
376
|
-
**コード例:**
|
|
377
|
-
|
|
378
|
-
```typescript
|
|
379
|
-
const deleted = await store.deleteEntity('pattern:BP-CODE-001');
|
|
380
|
-
console.log(deleted); // => true
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
**自然言語での削除:**
|
|
384
|
-
|
|
385
|
-
```
|
|
386
|
-
👤 ユーザー:
|
|
387
|
-
BP-CODE-001を削除して
|
|
388
|
-
|
|
389
|
-
🤖 AIエージェント:
|
|
390
|
-
pattern:BP-CODE-001 (Entity Input DTO) を削除しました。
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
---
|
|
394
|
-
|
|
395
|
-
## 4. リレーション管理
|
|
396
|
-
|
|
397
|
-
### 4.1 リレーションの追加
|
|
398
|
-
|
|
399
|
-
**コード例:**
|
|
400
|
-
|
|
401
|
-
```typescript
|
|
402
|
-
// パターン間の関連
|
|
403
|
-
await store.addRelation({
|
|
404
|
-
source: 'pattern:BP-CODE-001',
|
|
405
|
-
target: 'pattern:BP-TEST-004',
|
|
406
|
-
type: 'relatedTo',
|
|
407
|
-
properties: {
|
|
408
|
-
description: 'Input DTOパターンを使う場合のテストパターン',
|
|
409
|
-
},
|
|
410
|
-
});
|
|
411
|
-
|
|
412
|
-
// ガイドライン → パターン の参照関係
|
|
413
|
-
await store.addRelation({
|
|
414
|
-
source: 'guideline:SEC-001',
|
|
415
|
-
target: 'pattern:BP-CODE-005',
|
|
416
|
-
type: 'references',
|
|
417
|
-
properties: {
|
|
418
|
-
context: 'セキュリティガイドラインでResult型の使用を推奨',
|
|
419
|
-
},
|
|
420
|
-
});
|
|
421
|
-
|
|
422
|
-
// ドメイン用語間の関連
|
|
423
|
-
await store.addRelation({
|
|
424
|
-
source: 'domain:EC-TERM-001',
|
|
425
|
-
target: 'domain:EC-RULE-001',
|
|
426
|
-
type: 'usedIn',
|
|
427
|
-
});
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
**自然言語での関連付け:**
|
|
431
|
-
|
|
432
|
-
```
|
|
433
|
-
👤 ユーザー:
|
|
434
|
-
BP-CODE-001とBP-TEST-004を関連付けて。
|
|
435
|
-
Input DTOパターンを使う場合のテストパターンとして。
|
|
436
|
-
|
|
437
|
-
🤖 AIエージェント:
|
|
438
|
-
リレーションを追加しました:
|
|
439
|
-
- pattern:BP-CODE-001 → pattern:BP-TEST-004 (relatedTo)
|
|
440
|
-
- 説明: Input DTOパターンを使う場合のテストパターン
|
|
441
|
-
```
|
|
442
|
-
|
|
443
|
-
### 4.2 リレーションの取得
|
|
444
|
-
|
|
445
|
-
```typescript
|
|
446
|
-
// 出ていくリレーション
|
|
447
|
-
const outgoing = await store.getRelationsFrom('guideline:SEC-001');
|
|
448
|
-
|
|
449
|
-
// 入ってくるリレーション
|
|
450
|
-
const incoming = await store.getRelationsTo('pattern:BP-CODE-005');
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
**自然言語でのリレーション取得:**
|
|
454
|
-
|
|
455
|
-
```
|
|
456
|
-
👤 ユーザー:
|
|
457
|
-
セキュリティガイドラインSEC-001が参照しているパターンは?
|
|
458
|
-
|
|
459
|
-
🤖 AIエージェント:
|
|
460
|
-
guideline:SEC-001 からのリレーション:
|
|
461
|
-
- → pattern:BP-CODE-005 (references)
|
|
462
|
-
説明: セキュリティガイドラインでResult型の使用を推奨
|
|
463
|
-
- → pattern:BP-DESIGN-005 (references)
|
|
464
|
-
説明: 監査ログ記録パターンの適用を推奨
|
|
465
|
-
|
|
466
|
-
👤 ユーザー:
|
|
467
|
-
BP-CODE-005を参照しているガイドラインは何がある?
|
|
468
|
-
|
|
469
|
-
🤖 AIエージェント:
|
|
470
|
-
pattern:BP-CODE-005 へのリレーション:
|
|
471
|
-
- ← guideline:SEC-001 (references)
|
|
472
|
-
- ← guideline:ERR-001 (references)
|
|
473
|
-
```
|
|
474
|
-
|
|
475
|
-
### 4.3 リレーションの削除
|
|
476
|
-
|
|
477
|
-
```typescript
|
|
478
|
-
await store.removeRelation(
|
|
479
|
-
'pattern:BP-CODE-001',
|
|
480
|
-
'pattern:BP-TEST-004',
|
|
481
|
-
'relatedTo'
|
|
482
|
-
);
|
|
483
|
-
```
|
|
484
|
-
|
|
485
|
-
**自然言語でのリレーション削除:**
|
|
486
|
-
|
|
487
|
-
```
|
|
488
|
-
👤 ユーザー:
|
|
489
|
-
BP-CODE-001とBP-TEST-004の関連付けを解除して
|
|
490
|
-
|
|
491
|
-
🤖 AIエージェント:
|
|
492
|
-
リレーションを削除しました:
|
|
493
|
-
- pattern:BP-CODE-001 → pattern:BP-TEST-004 (relatedTo)
|
|
494
|
-
|
|
495
|
-
👤 ユーザー:
|
|
496
|
-
SEC-001からのすべての参照関係を削除して
|
|
497
|
-
|
|
498
|
-
🤖 AIエージェント:
|
|
499
|
-
以下のリレーションを削除しました:
|
|
500
|
-
- guideline:SEC-001 → pattern:BP-CODE-005 (references)
|
|
501
|
-
- guideline:SEC-001 → pattern:BP-DESIGN-005 (references)
|
|
502
|
-
合計: 2件削除
|
|
503
|
-
```
|
|
504
|
-
|
|
505
|
-
---
|
|
506
|
-
|
|
507
|
-
## 5. グラフクエリ
|
|
508
|
-
|
|
509
|
-
### 5.1 タイプでフィルタリング
|
|
510
|
-
|
|
511
|
-
```typescript
|
|
512
|
-
// すべてのベストプラクティスを取得
|
|
513
|
-
const patterns = await store.query({ type: 'best-practice' });
|
|
514
|
-
|
|
515
|
-
// すべてのドメイン用語を取得
|
|
516
|
-
const terms = await store.query({ type: 'domain-term' });
|
|
517
|
-
|
|
518
|
-
// すべてのガイドラインを取得
|
|
519
|
-
const guidelines = await store.query({ type: 'security-guideline' });
|
|
520
|
-
```
|
|
521
|
-
|
|
522
|
-
**自然言語でのタイプ検索:**
|
|
523
|
-
|
|
524
|
-
```
|
|
525
|
-
👤 ユーザー:
|
|
526
|
-
ベストプラクティスの一覧を見せて
|
|
527
|
-
|
|
528
|
-
🤖 AIエージェント:
|
|
529
|
-
登録されているベストプラクティス(12件):
|
|
530
|
-
1. pattern:BP-CODE-001 - Entity Input DTO (95%)
|
|
531
|
-
2. pattern:BP-CODE-002 - Date-based ID Format (90%)
|
|
532
|
-
3. pattern:BP-CODE-003 - Value Objects (90%)
|
|
533
|
-
...
|
|
534
|
-
|
|
535
|
-
👤 ユーザー:
|
|
536
|
-
ドメイン用語はいくつ登録されてる?
|
|
537
|
-
|
|
538
|
-
🤖 AIエージェント:
|
|
539
|
-
登録されているドメイン用語: 8件
|
|
540
|
-
- domain:EC-TERM-001 - SKU
|
|
541
|
-
- domain:EC-TERM-002 - 在庫引当
|
|
542
|
-
- domain:MED-TERM-001 - SOAP記録
|
|
543
|
-
...
|
|
544
|
-
|
|
545
|
-
👤 ユーザー:
|
|
546
|
-
ガイドラインは?
|
|
547
|
-
|
|
548
|
-
🤖 AIエージェント:
|
|
549
|
-
登録されているガイドライン: 5件
|
|
550
|
-
- guideline:SEC-001 - パスワードハッシュ化ガイドライン
|
|
551
|
-
- guideline:SEC-002 - API認証ガイドライン
|
|
552
|
-
- guideline:PERF-001 - パフォーマンス最適化ガイドライン
|
|
553
|
-
...
|
|
554
|
-
```
|
|
555
|
-
|
|
556
|
-
### 5.2 タグでフィルタリング
|
|
557
|
-
|
|
558
|
-
```typescript
|
|
559
|
-
// TypeScript関連のパターン
|
|
560
|
-
const tsPatterns = await store.query({
|
|
561
|
-
tags: ['typescript']
|
|
562
|
-
});
|
|
563
|
-
|
|
564
|
-
// セキュリティ関連すべて
|
|
565
|
-
const securityKnowledge = await store.query({
|
|
566
|
-
tags: ['security']
|
|
567
|
-
});
|
|
568
|
-
|
|
569
|
-
// ECサイトドメインの知識
|
|
570
|
-
const ecKnowledge = await store.query({
|
|
571
|
-
tags: ['e-commerce']
|
|
572
|
-
});
|
|
573
|
-
```
|
|
574
|
-
|
|
575
|
-
**自然言語でのタグ検索:**
|
|
576
|
-
|
|
577
|
-
```
|
|
578
|
-
👤 ユーザー:
|
|
579
|
-
TypeScript関連の知識を全部見せて
|
|
580
|
-
|
|
581
|
-
🤖 AIエージェント:
|
|
582
|
-
TypeScript関連の知識(8件):
|
|
583
|
-
|
|
584
|
-
**ベストプラクティス:**
|
|
585
|
-
- pattern:BP-CODE-001 - Entity Input DTO
|
|
586
|
-
- pattern:BP-CODE-004 - Function-based Value Objects
|
|
587
|
-
- pattern:BP-CODE-005 - Result Type
|
|
588
|
-
|
|
589
|
-
**ガイドライン:**
|
|
590
|
-
- guideline:TS-001 - strictモード必須化
|
|
591
|
-
- guideline:TS-002 - 型推論の活用
|
|
592
|
-
|
|
593
|
-
👤 ユーザー:
|
|
594
|
-
セキュリティ関連の知識は?
|
|
595
|
-
|
|
596
|
-
🤖 AIエージェント:
|
|
597
|
-
セキュリティ関連の知識(6件):
|
|
598
|
-
- guideline:SEC-001 - パスワードハッシュ化
|
|
599
|
-
- guideline:SEC-002 - API認証
|
|
600
|
-
- pattern:BP-DESIGN-005 - AuditService
|
|
601
|
-
...
|
|
602
|
-
|
|
603
|
-
👤 ユーザー:
|
|
604
|
-
ECサイト開発に使える知識をピックアップして
|
|
605
|
-
|
|
606
|
-
🤖 AIエージェント:
|
|
607
|
-
ECサイト関連の知識:
|
|
608
|
-
|
|
609
|
-
**ドメイン用語:**
|
|
610
|
-
- domain:EC-TERM-001 - SKU(在庫管理単位)
|
|
611
|
-
- domain:EC-TERM-002 - 在庫引当
|
|
612
|
-
|
|
613
|
-
**ビジネスルール:**
|
|
614
|
-
- domain:EC-RULE-001 - 在庫引当ルール
|
|
615
|
-
|
|
616
|
-
**関連パターン:**
|
|
617
|
-
- pattern:BP-DESIGN-004 - Optimistic Locking(在庫の同時更新対策)
|
|
618
|
-
```
|
|
619
|
-
|
|
620
|
-
### 5.3 複合クエリ
|
|
621
|
-
|
|
622
|
-
```typescript
|
|
623
|
-
// コード系のベストプラクティスのみ
|
|
624
|
-
const codePatterns = await store.query({
|
|
625
|
-
type: 'best-practice',
|
|
626
|
-
tags: ['design-pattern'],
|
|
627
|
-
});
|
|
628
|
-
```
|
|
629
|
-
|
|
630
|
-
**自然言語での複合検索:**
|
|
631
|
-
|
|
632
|
-
```
|
|
633
|
-
👤 ユーザー:
|
|
634
|
-
設計パターンのベストプラクティスだけ見せて
|
|
635
|
-
|
|
636
|
-
🤖 AIエージェント:
|
|
637
|
-
設計パターン系ベストプラクティス(5件):
|
|
638
|
-
1. pattern:BP-DESIGN-001 - Status Transition Map (95%)
|
|
639
|
-
2. pattern:BP-DESIGN-002 - Repository Async Pattern (85%)
|
|
640
|
-
3. pattern:BP-DESIGN-003 - Service Layer with DI (90%)
|
|
641
|
-
4. pattern:BP-DESIGN-004 - Optimistic Locking (90%)
|
|
642
|
-
5. pattern:BP-DESIGN-005 - AuditService (85%)
|
|
643
|
-
|
|
644
|
-
👤 ユーザー:
|
|
645
|
-
信頼度90%以上のTypeScriptパターンは?
|
|
646
|
-
|
|
647
|
-
🤖 AIエージェント:
|
|
648
|
-
信頼度90%以上のTypeScriptパターン(4件):
|
|
649
|
-
1. pattern:BP-CODE-001 - Entity Input DTO (95%)
|
|
650
|
-
2. pattern:BP-CODE-004 - Function-based Value Objects (95%)
|
|
651
|
-
3. pattern:BP-CODE-005 - Result Type (95%)
|
|
652
|
-
4. pattern:BP-DESIGN-001 - Status Transition Map (95%)
|
|
653
|
-
```
|
|
654
|
-
|
|
655
|
-
---
|
|
656
|
-
|
|
657
|
-
## 6. グラフ走査
|
|
658
|
-
|
|
659
|
-
### 6.1 関連知識の探索
|
|
660
|
-
|
|
661
|
-
```typescript
|
|
662
|
-
// セキュリティガイドラインから関連パターンを探索
|
|
663
|
-
const related = await store.traverse('guideline:SEC-001', {
|
|
664
|
-
direction: 'outgoing',
|
|
665
|
-
relationTypes: ['references', 'relatedTo'],
|
|
666
|
-
maxDepth: 2,
|
|
667
|
-
});
|
|
668
|
-
|
|
669
|
-
for (const entity of related) {
|
|
670
|
-
console.log(`${entity.type}: ${entity.name}`);
|
|
671
|
-
}
|
|
672
|
-
```
|
|
673
|
-
|
|
674
|
-
**自然言語でのグラフ走査:**
|
|
675
|
-
|
|
676
|
-
```
|
|
677
|
-
👤 ユーザー:
|
|
678
|
-
セキュリティガイドラインSEC-001に関連する知識を教えて
|
|
679
|
-
|
|
680
|
-
🤖 AIエージェント:
|
|
681
|
-
guideline:SEC-001 から辿れる関連知識:
|
|
682
|
-
|
|
683
|
-
**直接関連(深さ1):**
|
|
684
|
-
- pattern:BP-CODE-005 - Result Type
|
|
685
|
-
- pattern:BP-DESIGN-005 - AuditService
|
|
686
|
-
|
|
687
|
-
**間接関連(深さ2):**
|
|
688
|
-
- pattern:BP-TEST-004 - Result Type Test Pattern
|
|
689
|
-
- guideline:ERR-001 - エラーハンドリングガイドライン
|
|
690
|
-
|
|
691
|
-
👤 ユーザー:
|
|
692
|
-
Result Typeパターンから関連を全部辿って
|
|
693
|
-
|
|
694
|
-
🤖 AIエージェント:
|
|
695
|
-
pattern:BP-CODE-005 から辿れる関連:
|
|
696
|
-
|
|
697
|
-
**このパターンが参照されている:**
|
|
698
|
-
← guideline:SEC-001 (references)
|
|
699
|
-
← guideline:ERR-001 (references)
|
|
700
|
-
|
|
701
|
-
**このパターンに関連:**
|
|
702
|
-
→ pattern:BP-TEST-004 (relatedTo)
|
|
703
|
-
→ domain:TERM-ERROR-001 (usedIn)
|
|
704
|
-
|
|
705
|
-
👤 ユーザー:
|
|
706
|
-
ドメイン用語「SKU」と関係のある知識は?
|
|
707
|
-
|
|
708
|
-
🤖 AIエージェント:
|
|
709
|
-
domain:EC-TERM-001 (SKU) の関連知識:
|
|
710
|
-
|
|
711
|
-
**使われているルール:**
|
|
712
|
-
→ domain:EC-RULE-001 - 在庫引当ルール
|
|
713
|
-
|
|
714
|
-
**関連用語:**
|
|
715
|
-
→ domain:EC-TERM-002 - 在庫引当
|
|
716
|
-
→ domain:EC-TERM-003 - 発注点
|
|
717
|
-
```
|
|
718
|
-
|
|
719
|
-
### 6.2 サブグラフの取得
|
|
720
|
-
|
|
721
|
-
```typescript
|
|
722
|
-
// 特定知識を中心としたサブグラフ
|
|
723
|
-
const subgraph = await store.getSubgraph('domain:EC-TERM-001', {
|
|
724
|
-
depth: 3,
|
|
725
|
-
});
|
|
726
|
-
|
|
727
|
-
console.log('エンティティ数:', subgraph.entities.length);
|
|
728
|
-
console.log('リレーション数:', subgraph.relations.length);
|
|
729
|
-
```
|
|
730
|
-
|
|
731
|
-
**自然言語でのサブグラフ取得:**
|
|
732
|
-
|
|
733
|
-
```
|
|
734
|
-
👤 ユーザー:
|
|
735
|
-
ECサイトの「SKU」を中心にした知識マップを作って
|
|
736
|
-
|
|
737
|
-
🤖 AIエージェント:
|
|
738
|
-
domain:EC-TERM-001 (SKU) を中心としたサブグラフ:
|
|
739
|
-
|
|
740
|
-
**エンティティ:** 7件
|
|
741
|
-
**リレーション:** 9件
|
|
742
|
-
|
|
743
|
-
知識マップ:
|
|
744
|
-
```
|
|
745
|
-
┌─────────────────┐
|
|
746
|
-
│ domain:EC-TERM-001 │
|
|
747
|
-
│ (SKU) │
|
|
748
|
-
└────────┬──────────┘
|
|
749
|
-
│ usedIn
|
|
750
|
-
┌───────────┼───────────┐
|
|
751
|
-
▼ ▼ ▼
|
|
752
|
-
┌────────┐ ┌────────┐ ┌────────┐
|
|
753
|
-
│EC-RULE │ │EC-TERM │ │EC-TERM │
|
|
754
|
-
│ -001 │ │ -002 │ │ -003 │
|
|
755
|
-
│在庫引当│ │在庫引当│ │ 発注点 │
|
|
756
|
-
└────────┘ └────────┘ └────────┘
|
|
757
|
-
```
|
|
758
|
-
|
|
759
|
-
👤 ユーザー:
|
|
760
|
-
セキュリティ関連の知識グラフを可視化して
|
|
761
|
-
|
|
762
|
-
🤖 AIエージェント:
|
|
763
|
-
セキュリティ関連のサブグラフ:
|
|
764
|
-
|
|
765
|
-
**中心:** guideline:SEC-001, guideline:SEC-002
|
|
766
|
-
**エンティティ:** 12件
|
|
767
|
-
**リレーション:** 15件
|
|
768
|
-
|
|
769
|
-
主な構造:
|
|
770
|
-
- SEC-001 → BP-CODE-005, BP-DESIGN-005
|
|
771
|
-
- SEC-002 → BP-AUTH-001, BP-API-001
|
|
772
|
-
- 両方 → BP-TEST-SEC-001
|
|
773
|
-
```
|
|
774
|
-
|
|
775
|
-
---
|
|
776
|
-
|
|
777
|
-
## 7. 永続化
|
|
778
|
-
|
|
779
|
-
### 7.1 保存
|
|
780
|
-
|
|
781
|
-
```typescript
|
|
782
|
-
// すべての変更を保存
|
|
783
|
-
await store.save();
|
|
784
|
-
```
|
|
785
|
-
|
|
786
|
-
**自然言語での保存:**
|
|
787
|
-
|
|
788
|
-
```
|
|
789
|
-
👤 ユーザー:
|
|
790
|
-
知識ベースの変更を保存して
|
|
791
|
-
|
|
792
|
-
🤖 AIエージェント:
|
|
793
|
-
知識ベースを保存しました:
|
|
794
|
-
- ファイル: .knowledge/graph.json
|
|
795
|
-
- エンティティ: 25件
|
|
796
|
-
- リレーション: 32件
|
|
797
|
-
- 更新日時: 2026-01-12T10:30:00.000Z
|
|
798
|
-
|
|
799
|
-
👤 ユーザー:
|
|
800
|
-
今日追加した知識をコミットして
|
|
801
|
-
|
|
802
|
-
🤖 AIエージェント:
|
|
803
|
-
変更をGitにコミットしました:
|
|
804
|
-
- git add .knowledge/graph.json
|
|
805
|
-
- git commit -m "knowledge: add 3 new patterns and 2 guidelines"
|
|
806
|
-
|
|
807
|
-
追加された知識:
|
|
808
|
-
- pattern:BP-CODE-010 - Optimistic Locking
|
|
809
|
-
- pattern:BP-CODE-011 - Entity Counter Reset
|
|
810
|
-
- guideline:PERF-002 - キャッシュ戦略
|
|
811
|
-
```
|
|
812
|
-
|
|
813
|
-
### 7.2 再読み込み
|
|
814
|
-
|
|
815
|
-
```typescript
|
|
816
|
-
// ファイルから再読み込み
|
|
817
|
-
await store.load();
|
|
818
|
-
```
|
|
819
|
-
|
|
820
|
-
**自然言語での再読み込み:**
|
|
821
|
-
|
|
822
|
-
```
|
|
823
|
-
👤 ユーザー:
|
|
824
|
-
他のチームメンバーが追加した知識を読み込んで
|
|
825
|
-
|
|
826
|
-
🤖 AIエージェント:
|
|
827
|
-
最新の知識ベースを読み込みました:
|
|
828
|
-
- git pull origin main
|
|
829
|
-
- .knowledge/graph.json を再読み込み
|
|
830
|
-
|
|
831
|
-
新規追加された知識(前回から):
|
|
832
|
-
- pattern:BP-API-001 - REST API設計パターン(田中さんが追加)
|
|
833
|
-
- guideline:DOC-001 - ドキュメント規約(鈴木さんが追加)
|
|
834
|
-
|
|
835
|
-
👤 ユーザー:
|
|
836
|
-
知識ベースの現在の状態を確認して
|
|
837
|
-
|
|
838
|
-
🤖 AIエージェント:
|
|
839
|
-
知識ベースの状態:
|
|
840
|
-
- ベストプラクティス: 15件
|
|
841
|
-
- ガイドライン: 8件
|
|
842
|
-
- ドメイン用語: 12件
|
|
843
|
-
- ビジネスルール: 5件
|
|
844
|
-
- リレーション: 45件
|
|
845
|
-
- 最終更新: 2026-01-12T09:15:00.000Z
|
|
846
|
-
```
|
|
847
|
-
|
|
848
|
-
### 7.3 JSON形式
|
|
849
|
-
|
|
850
|
-
`.knowledge/graph.json` の形式:
|
|
851
|
-
|
|
852
|
-
```json
|
|
853
|
-
{
|
|
854
|
-
"entities": {
|
|
855
|
-
"pattern:BP-CODE-001": {
|
|
856
|
-
"id": "pattern:BP-CODE-001",
|
|
857
|
-
"type": "best-practice",
|
|
858
|
-
"name": "Entity Input DTO",
|
|
859
|
-
"description": "エンティティ作成時はInput DTOオブジェクトを使用する",
|
|
860
|
-
"properties": {
|
|
861
|
-
"category": "code",
|
|
862
|
-
"confidence": 0.95,
|
|
863
|
-
"example": "..."
|
|
864
|
-
},
|
|
865
|
-
"tags": ["typescript", "design-pattern", "dto"],
|
|
866
|
-
"createdAt": "2026-01-12T00:00:00.000Z",
|
|
867
|
-
"updatedAt": "2026-01-12T00:00:00.000Z"
|
|
868
|
-
}
|
|
869
|
-
},
|
|
870
|
-
"relations": [
|
|
871
|
-
{
|
|
872
|
-
"source": "pattern:BP-CODE-001",
|
|
873
|
-
"target": "pattern:BP-TEST-004",
|
|
874
|
-
"type": "relatedTo",
|
|
875
|
-
"properties": { "description": "..." }
|
|
876
|
-
}
|
|
877
|
-
]
|
|
878
|
-
}
|
|
879
|
-
```
|
|
880
|
-
|
|
881
|
-
---
|
|
882
|
-
|
|
883
|
-
## 8. API リファレンス
|
|
884
|
-
|
|
885
|
-
### 8.1 KnowledgeStore インターフェース
|
|
886
|
-
|
|
887
|
-
```typescript
|
|
888
|
-
interface KnowledgeStore {
|
|
889
|
-
// エンティティ操作
|
|
890
|
-
putEntity(entity: Entity): Promise<Entity>;
|
|
891
|
-
getEntity(id: string): Promise<Entity | null>;
|
|
892
|
-
deleteEntity(id: string): Promise<boolean>;
|
|
893
|
-
|
|
894
|
-
// リレーション操作
|
|
895
|
-
addRelation(relation: Relation): Promise<Relation>;
|
|
896
|
-
removeRelation(source: string, target: string, type: string): Promise<boolean>;
|
|
897
|
-
getRelationsFrom(entityId: string): Promise<Relation[]>;
|
|
898
|
-
getRelationsTo(entityId: string): Promise<Relation[]>;
|
|
899
|
-
|
|
900
|
-
// クエリ
|
|
901
|
-
query(filter: QueryFilter): Promise<Entity[]>;
|
|
902
|
-
traverse(startId: string, options: TraverseOptions): Promise<Entity[]>;
|
|
903
|
-
getSubgraph(centerId: string, options: SubgraphOptions): Promise<Subgraph>;
|
|
904
|
-
|
|
905
|
-
// 永続化
|
|
906
|
-
load(): Promise<void>;
|
|
907
|
-
save(): Promise<void>;
|
|
908
|
-
}
|
|
909
|
-
```
|
|
910
|
-
|
|
911
|
-
### 8.2 Entity インターフェース
|
|
912
|
-
|
|
913
|
-
```typescript
|
|
914
|
-
interface Entity {
|
|
915
|
-
id: string; // 例: 'pattern:BP-CODE-001'
|
|
916
|
-
type: string; // 例: 'best-practice', 'domain-term', 'guideline'
|
|
917
|
-
name: string; // 表示名
|
|
918
|
-
description?: string; // 説明
|
|
919
|
-
properties?: Record<string, unknown>; // カスタムプロパティ
|
|
920
|
-
tags?: string[]; // タグ
|
|
921
|
-
createdAt?: string; // 作成日時
|
|
922
|
-
updatedAt?: string; // 更新日時
|
|
923
|
-
}
|
|
924
|
-
```
|
|
925
|
-
|
|
926
|
-
### 8.3 Relation インターフェース
|
|
927
|
-
|
|
928
|
-
```typescript
|
|
929
|
-
interface Relation {
|
|
930
|
-
source: string; // 元エンティティID
|
|
931
|
-
target: string; // 先エンティティID
|
|
932
|
-
type: string; // リレーションタイプ
|
|
933
|
-
properties?: Record<string, unknown>; // カスタムプロパティ
|
|
934
|
-
}
|
|
935
|
-
```
|
|
936
|
-
|
|
937
|
-
---
|
|
938
|
-
|
|
939
|
-
## 9. ユースケース
|
|
940
|
-
|
|
941
|
-
### 9.1 組織のベストプラクティス管理
|
|
942
|
-
|
|
943
|
-
```typescript
|
|
944
|
-
import { createKnowledgeStore } from '@musubix/knowledge';
|
|
945
|
-
|
|
946
|
-
const store = createKnowledgeStore('.knowledge');
|
|
947
|
-
await store.load();
|
|
948
|
-
|
|
949
|
-
// プロジェクトから学習したパターンを登録
|
|
950
|
-
await store.putEntity({
|
|
951
|
-
id: 'pattern:BP-CODE-010',
|
|
952
|
-
type: 'best-practice',
|
|
953
|
-
name: 'Optimistic Locking',
|
|
954
|
-
description: '同時編集検出のためのversion管理パターン',
|
|
955
|
-
properties: {
|
|
956
|
-
category: 'design',
|
|
957
|
-
confidence: 0.90,
|
|
958
|
-
learnedFrom: 'Project-14',
|
|
959
|
-
example: `
|
|
960
|
-
interface Entity {
|
|
961
|
-
id: string;
|
|
962
|
-
version: number;
|
|
963
|
-
// ...
|
|
964
|
-
}
|
|
965
|
-
|
|
966
|
-
function update(entity: Entity, currentVersion: number): Result<Entity, ConcurrencyError> {
|
|
967
|
-
if (entity.version !== currentVersion) {
|
|
968
|
-
return err(new ConcurrencyError('Entity was modified'));
|
|
969
|
-
}
|
|
970
|
-
return ok({ ...entity, version: entity.version + 1 });
|
|
971
|
-
}
|
|
972
|
-
`,
|
|
973
|
-
},
|
|
974
|
-
tags: ['concurrency', 'design-pattern', 'database'],
|
|
975
|
-
});
|
|
976
|
-
|
|
977
|
-
await store.save();
|
|
978
|
-
```
|
|
979
|
-
|
|
980
|
-
### 9.2 ドメイン知識の蓄積
|
|
981
|
-
|
|
982
|
-
```typescript
|
|
983
|
-
// 医療系ドメインの用語集を構築
|
|
984
|
-
const medicalTerms = [
|
|
985
|
-
{
|
|
986
|
-
id: 'domain:MED-TERM-001',
|
|
987
|
-
type: 'domain-term',
|
|
988
|
-
name: 'SOAP記録',
|
|
989
|
-
description: '医療記録の標準形式(Subjective, Objective, Assessment, Plan)',
|
|
990
|
-
properties: {
|
|
991
|
-
domain: 'healthcare',
|
|
992
|
-
components: {
|
|
993
|
-
S: '主観的情報(患者の訴え)',
|
|
994
|
-
O: '客観的情報(検査結果など)',
|
|
995
|
-
A: '評価・診断',
|
|
996
|
-
P: '治療計画',
|
|
997
|
-
},
|
|
998
|
-
},
|
|
999
|
-
tags: ['healthcare', 'documentation', 'terminology'],
|
|
1000
|
-
},
|
|
1001
|
-
// ... more terms
|
|
1002
|
-
];
|
|
1003
|
-
|
|
1004
|
-
for (const term of medicalTerms) {
|
|
1005
|
-
await store.putEntity(term);
|
|
1006
|
-
}
|
|
1007
|
-
|
|
1008
|
-
await store.save();
|
|
1009
|
-
```
|
|
1010
|
-
|
|
1011
|
-
### 9.3 技術選定の知識ベース
|
|
1012
|
-
|
|
1013
|
-
```typescript
|
|
1014
|
-
// 新規プロジェクトでの技術選定時に参照
|
|
1015
|
-
async function getTechRecommendation(criteria: {
|
|
1016
|
-
projectType: string;
|
|
1017
|
-
teamSize: number;
|
|
1018
|
-
priority: 'speed' | 'quality' | 'maintainability';
|
|
1019
|
-
}) {
|
|
1020
|
-
const guidelines = await store.query({ type: 'tech-guideline' });
|
|
1021
|
-
|
|
1022
|
-
// criteria に基づいてフィルタリング・ランキング
|
|
1023
|
-
const relevant = guidelines.filter(g =>
|
|
1024
|
-
g.tags?.includes(criteria.projectType)
|
|
1025
|
-
);
|
|
1026
|
-
|
|
1027
|
-
return relevant;
|
|
1028
|
-
}
|
|
1029
|
-
```
|
|
1030
|
-
|
|
1031
|
-
---
|
|
1032
|
-
|
|
1033
|
-
## 10. 自然言語での利用(MCP / AI Agent)
|
|
1034
|
-
|
|
1035
|
-
`@musubix/knowledge` は、MCP(Model Context Protocol)サーバー経由でAIエージェント(GitHub Copilot、Claude、ChatGPT等)から自然言語で操作できます。
|
|
1036
|
-
|
|
1037
|
-
### 10.1 MCP設定
|
|
1038
|
-
|
|
1039
|
-
Claude Desktop または VS Code に以下の設定を追加:
|
|
1040
|
-
|
|
1041
|
-
```json
|
|
1042
|
-
{
|
|
1043
|
-
"mcpServers": {
|
|
1044
|
-
"musubix": {
|
|
1045
|
-
"command": "npx",
|
|
1046
|
-
"args": ["@nahisaho/musubix-mcp-server"]
|
|
1047
|
-
}
|
|
1048
|
-
}
|
|
1049
|
-
}
|
|
1050
|
-
```
|
|
1051
|
-
|
|
1052
|
-
### 10.2 自然言語での操作例
|
|
1053
|
-
|
|
1054
|
-
#### ベストプラクティスの登録
|
|
1055
|
-
|
|
1056
|
-
```
|
|
1057
|
-
「Optimistic Locking」というパターンを知識ベースに登録して。
|
|
1058
|
-
同時編集検出のためのversion管理パターンで、信頼度は90%、
|
|
1059
|
-
タグはconcurrency, design-pattern, databaseで。
|
|
1060
|
-
```
|
|
1061
|
-
|
|
1062
|
-
AIエージェントが `knowledge_put_entity` ツールを呼び出します。
|
|
1063
|
-
|
|
1064
|
-
#### 知識の検索
|
|
1065
|
-
|
|
1066
|
-
```
|
|
1067
|
-
TypeScript関連のベストプラクティスを全部見せて
|
|
1068
|
-
```
|
|
1069
|
-
|
|
1070
|
-
AIエージェントが `knowledge_query` ツールを呼び出し、`tags: ['typescript']` でフィルタリングします。
|
|
1071
|
-
|
|
1072
|
-
#### ドメイン知識の参照
|
|
1073
|
-
|
|
1074
|
-
```
|
|
1075
|
-
ECサイトの在庫管理に関するドメイン知識を教えて
|
|
1076
|
-
```
|
|
1077
|
-
|
|
1078
|
-
AIエージェントが `knowledge_query` ツールを呼び出し、ECサイト関連の知識を検索します。
|
|
1079
|
-
|
|
1080
|
-
#### 関連知識の探索
|
|
1081
|
-
|
|
1082
|
-
```
|
|
1083
|
-
セキュリティガイドラインに関連するパターンは何がある?
|
|
1084
|
-
```
|
|
1085
|
-
|
|
1086
|
-
AIエージェントが `knowledge_traverse` ツールを呼び出し、関連するエンティティを探索します。
|
|
1087
|
-
|
|
1088
|
-
### 10.3 MCPツール一覧
|
|
1089
|
-
|
|
1090
|
-
| ツール名 | 説明 | 自然言語例 |
|
|
1091
|
-
|---------|------|-----------|
|
|
1092
|
-
| `knowledge_put_entity` | 知識の登録/更新 | 「〜を知識ベースに登録して」 |
|
|
1093
|
-
| `knowledge_get_entity` | 知識の取得 | 「BP-CODE-001の詳細を見せて」 |
|
|
1094
|
-
| `knowledge_delete_entity` | 知識の削除 | 「古いパターンを削除して」 |
|
|
1095
|
-
| `knowledge_add_relation` | 関連付け追加 | 「このパターンとあのガイドラインを関連付けて」 |
|
|
1096
|
-
| `knowledge_query` | 検索 | 「セキュリティ関連の知識一覧」 |
|
|
1097
|
-
| `knowledge_traverse` | 関連探索 | 「〜に関連する知識は?」 |
|
|
1098
|
-
|
|
1099
|
-
### 10.4 実践的な会話例
|
|
1100
|
-
|
|
1101
|
-
#### シナリオ: プロジェクトで学んだパターンの組織知識化
|
|
1102
|
-
|
|
1103
|
-
```
|
|
1104
|
-
👤 ユーザー:
|
|
1105
|
-
Project-14で使った「Status Transition Map」パターンを
|
|
1106
|
-
組織の知識ベースに登録しておきたい。
|
|
1107
|
-
有効なステータス遷移をMapで定義するパターンで、
|
|
1108
|
-
信頼度95%、タグはstate-machine, design-patternで。
|
|
1109
|
-
|
|
1110
|
-
🤖 AIエージェント:
|
|
1111
|
-
ベストプラクティスとして登録しました:
|
|
1112
|
-
- ID: pattern:BP-DESIGN-001
|
|
1113
|
-
- 名前: Status Transition Map
|
|
1114
|
-
- カテゴリ: design
|
|
1115
|
-
- 信頼度: 95%
|
|
1116
|
-
- タグ: state-machine, design-pattern
|
|
1117
|
-
|
|
1118
|
-
👤 ユーザー:
|
|
1119
|
-
このパターンのコード例も追加して
|
|
1120
|
-
|
|
1121
|
-
🤖 AIエージェント:
|
|
1122
|
-
コード例を追加しました:
|
|
1123
|
-
```typescript
|
|
1124
|
-
const validTransitions: Record<Status, Status[]> = {
|
|
1125
|
-
draft: ['active', 'cancelled'],
|
|
1126
|
-
active: ['completed', 'cancelled'],
|
|
1127
|
-
completed: [],
|
|
1128
|
-
cancelled: [],
|
|
1129
|
-
};
|
|
1130
|
-
```
|
|
1131
|
-
|
|
1132
|
-
👤 ユーザー:
|
|
1133
|
-
設計系のベストプラクティスを全部見せて
|
|
1134
|
-
|
|
1135
|
-
🤖 AIエージェント:
|
|
1136
|
-
設計系ベストプラクティス:
|
|
1137
|
-
1. pattern:BP-DESIGN-001 - Status Transition Map (95%)
|
|
1138
|
-
2. pattern:BP-DESIGN-002 - Repository Async Pattern (85%)
|
|
1139
|
-
3. pattern:BP-DESIGN-003 - Service Layer with DI (90%)
|
|
1140
|
-
|
|
1141
|
-
👤 ユーザー:
|
|
1142
|
-
新人向けにセキュリティガイドラインと関連パターンをまとめて教えて
|
|
1143
|
-
|
|
1144
|
-
🤖 AIエージェント:
|
|
1145
|
-
セキュリティ関連の組織知識:
|
|
1146
|
-
|
|
1147
|
-
**ガイドライン:**
|
|
1148
|
-
- guideline:SEC-001 - パスワードハッシュ化ガイドライン
|
|
1149
|
-
- guideline:SEC-002 - API認証ガイドライン
|
|
1150
|
-
|
|
1151
|
-
**関連パターン:**
|
|
1152
|
-
- pattern:BP-CODE-005 - Result Type(エラーハンドリング)
|
|
1153
|
-
- pattern:BP-DESIGN-005 - AuditService(監査ログ)
|
|
1154
|
-
|
|
1155
|
-
これらは新人オンボーディングで重点的に学習することを推奨します。
|
|
1156
|
-
```
|
|
1157
|
-
|
|
1158
|
-
### 10.5 GitHub Copilot / Claude Code での利用
|
|
1159
|
-
|
|
1160
|
-
MCPを設定しなくても、AGENTS.md や Claude Code Skills 経由で利用可能:
|
|
1161
|
-
|
|
1162
|
-
```
|
|
1163
|
-
👤 ユーザー:
|
|
1164
|
-
@musubix/knowledge を使って、うちのチームの
|
|
1165
|
-
コーディング規約とベストプラクティスを管理するコードを書いて
|
|
1166
|
-
|
|
1167
|
-
🤖 AIエージェント:
|
|
1168
|
-
// AGENTS.md / Skills から学習した知識に基づいてコード生成
|
|
1169
|
-
import { createKnowledgeStore } from '@musubix/knowledge';
|
|
1170
|
-
|
|
1171
|
-
const store = createKnowledgeStore('.knowledge');
|
|
1172
|
-
// チームの知識を登録・管理...
|
|
1173
|
-
```
|
|
1174
|
-
|
|
1175
|
-
---
|
|
1176
|
-
|
|
1177
|
-
## 11. 個別プロジェクトの要件・設計管理について
|
|
1178
|
-
|
|
1179
|
-
個別プロジェクトの要件(REQ-*)、設計(DES-*)、タスク(TSK-*)は `@musubix/knowledge` ではなく、以下の仕組みで管理します:
|
|
1180
|
-
|
|
1181
|
-
### 11.1 storage/specs/ ディレクトリ
|
|
1182
|
-
|
|
1183
|
-
```
|
|
1184
|
-
storage/
|
|
1185
|
-
└── specs/
|
|
1186
|
-
├── REQ-001.md # 要件ドキュメント(EARS形式)
|
|
1187
|
-
├── DES-001.md # 設計ドキュメント(C4モデル)
|
|
1188
|
-
└── TSK-001.md # タスクドキュメント
|
|
1189
|
-
```
|
|
1190
|
-
|
|
1191
|
-
### 11.2 MUSUBIX CLIでの操作
|
|
1192
|
-
|
|
1193
|
-
```bash
|
|
1194
|
-
# 要件の作成・検証
|
|
1195
|
-
npx musubix requirements analyze requirements.txt
|
|
1196
|
-
npx musubix requirements validate storage/specs/REQ-001.md
|
|
1197
|
-
|
|
1198
|
-
# 設計の生成
|
|
1199
|
-
npx musubix design generate storage/specs/REQ-001.md
|
|
1200
|
-
|
|
1201
|
-
# トレーサビリティマトリクス
|
|
1202
|
-
npx musubix trace matrix
|
|
1203
|
-
```
|
|
1204
|
-
|
|
1205
|
-
### 11.3 MCP SDDツールでの操作
|
|
1206
|
-
|
|
1207
|
-
| ツール名 | 説明 |
|
|
1208
|
-
|---------|------|
|
|
1209
|
-
| `sdd_create_requirements` | 要件ドキュメント作成 |
|
|
1210
|
-
| `sdd_validate_requirements` | 要件の検証 |
|
|
1211
|
-
| `sdd_create_design` | 設計ドキュメント作成 |
|
|
1212
|
-
| `sdd_create_tasks` | タスク生成 |
|
|
1213
|
-
|
|
1214
|
-
---
|
|
1215
|
-
|
|
1216
|
-
## 12. 関連パッケージ
|
|
1217
|
-
|
|
1218
|
-
| パッケージ | 説明 |
|
|
1219
|
-
|------------|------|
|
|
1220
|
-
| `@musubix/policy` | 9憲法条項に基づくポリシー検証 |
|
|
1221
|
-
| `@musubix/decisions` | Architecture Decision Records管理 |
|
|
1222
|
-
| `musubix` | 3パッケージを含むメインパッケージ |
|
|
1223
|
-
|
|
1224
|
-
---
|
|
1225
|
-
|
|
1226
|
-
## 13. 参照
|
|
1227
|
-
|
|
1228
|
-
- [MUSUBIX v3.0 User Guide](../MUSUBIX-v3.0-User-Guide.md)
|
|
1229
|
-
- [Migration Guide from YATA](../MIGRATION-v3.0.md)
|
|
1230
|
-
- [GitHub Repository](https://github.com/nahisaho/MUSUBIX)
|
|
1231
|
-
- [npm Package](https://www.npmjs.com/package/@musubix/knowledge)
|