musubix 1.0.1 → 1.0.3

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.
@@ -0,0 +1,824 @@
1
+ # MUSUBIX ユーザーガイド
2
+
3
+ > Neuro-Symbolic AI による仕様駆動開発システム
4
+
5
+ ## 目次
6
+
7
+ 1. [はじめに](#はじめに)
8
+ 2. [インストール](#インストール)
9
+ 3. [CLIの使い方](#cliの使い方)
10
+ 4. [クイックスタート](#クイックスタート)
11
+ 5. [基本的なワークフロー](#基本的なワークフロー)
12
+ 6. [要件フェーズ](#要件フェーズ)
13
+ 7. [設計フェーズ](#設計フェーズ)
14
+ 8. [タスクフェーズ](#タスクフェーズ)
15
+ 9. [検証フェーズ](#検証フェーズ)
16
+ 10. [MCPサーバー連携](#mcpサーバー連携)
17
+ 11. [YATA知識グラフ](#yata知識グラフ)
18
+ 12. [ベストプラクティス](#ベストプラクティス)
19
+ 13. [トラブルシューティング](#トラブルシューティング)
20
+
21
+ ---
22
+
23
+ ## はじめに
24
+
25
+ ### MUSUBIXとは?
26
+
27
+ MUSUBIXは、**MUSUBI**(仕様駆動開発LLM)と**YATA**(知識グラフ)を組み合わせた**ニューロシンボリックAIシステム**です。
28
+
29
+ ```
30
+ MUSUBIX = MUSUBI (LLM) + YATA (Knowledge Graph)
31
+ ```
32
+
33
+ ### 主な特徴
34
+
35
+ - 🎯 **仕様駆動開発**: EARS形式の要件から実装まで一貫した開発
36
+ - 🏛️ **9条憲法**: 品質を保証する9つの原則に基づく開発
37
+ - 🔗 **完全なトレーサビリティ**: 要件→設計→タスク→テストの追跡
38
+ - 🧠 **知識グラフ統合**: YATAによるコンテキスト認識
39
+ - 🌐 **MCP対応**: Model Context Protocol による柔軟な統合
40
+
41
+ ### 9条憲法(Constitutional Articles)
42
+
43
+ | 条項 | 名称 | 説明 |
44
+ |------|------|------|
45
+ | I | プロジェクトメモリ | 一貫したプロジェクトコンテキストの維持 |
46
+ | II | 要件仕様 | EARS形式の完全な要件定義 |
47
+ | III | 設計文書 | C4モデル + ADRによる設計 |
48
+ | IV | タスク分解 | トレーサブルなタスク生成 |
49
+ | V | トレーサビリティ | 双方向の追跡性 |
50
+ | VI | 説明可能性 | AI判断の透明性 |
51
+ | VII | 統合性 | シームレスな統合 |
52
+ | VIII | 適応性 | 柔軟な方法論対応 |
53
+ | IX | 品質保証 | 継続的な品質確保 |
54
+
55
+ ---
56
+
57
+ ## インストール
58
+
59
+ ### 前提条件
60
+
61
+ | 項目 | 要件 |
62
+ |------|------|
63
+ | **Node.js** | >= 20.0.0 |
64
+ | **npm** | >= 10.0.0 |
65
+ | **TypeScript** | >= 5.3(開発時) |
66
+
67
+ ### 方法1: npm グローバルインストール(推奨)
68
+
69
+ ```bash
70
+ # グローバルインストール
71
+ npm install -g musubix
72
+
73
+ # バージョン確認
74
+ musubix --version
75
+ musubix-mcp --version
76
+ ```
77
+
78
+ ### 方法2: npx で直接実行
79
+
80
+ ```bash
81
+ # インストールなしで実行
82
+ npx musubix --help
83
+ npx musubix init my-project
84
+
85
+ # MCPサーバー起動
86
+ npx @nahisaho/musubix-mcp-server
87
+ npx musubix-mcp --transport stdio
88
+ ```
89
+
90
+ ### 方法3: プロジェクトへのインストール
91
+
92
+ ```bash
93
+ # 個別パッケージのインストール
94
+ npm install @nahisaho/musubix-core
95
+ npm install @nahisaho/musubix-mcp-server
96
+ npm install @nahisaho/musubix-yata-client # YATA連携用(オプション)
97
+ ```
98
+
99
+ ### 方法4: ソースからビルド
100
+
101
+ ```bash
102
+ # リポジトリをクローン
103
+ git clone https://github.com/nahisaho/MUSUBIX.git
104
+ cd MUSUBIX
105
+
106
+ # 依存関係インストール & ビルド
107
+ npm install
108
+ npm run build
109
+ ```
110
+
111
+ ### YATA のインストール(オプション)
112
+
113
+ 知識グラフ機能を使用する場合は、YATA を別途インストールします:
114
+
115
+ ```bash
116
+ # YATA リポジトリをクローン
117
+ git clone https://github.com/nahisaho/YATA.git
118
+ cd YATA
119
+
120
+ # uv で依存関係をインストール
121
+ uv sync --all-packages
122
+
123
+ # サーバー起動
124
+ uv run yata serve
125
+ ```
126
+
127
+ 詳細は [INSTALL-GUIDE.ja.md](INSTALL-GUIDE.ja.md) を参照してください。
128
+
129
+ ### プロジェクト初期化
130
+
131
+ ```bash
132
+ # MUSUBIXプロジェクトの初期化
133
+ musubix init my-project
134
+ # または
135
+ npx musubix init my-project
136
+
137
+ # steering ディレクトリの確認
138
+ ls steering/
139
+ # product.md structure.md tech.md rules/
140
+ ```
141
+
142
+ ---
143
+
144
+ ## CLIの使い方
145
+
146
+ ### musubix コマンド
147
+
148
+ MUSUBIXのメインCLI:
149
+
150
+ ```bash
151
+ # ヘルプ表示
152
+ musubix --help
153
+
154
+ # バージョン表示
155
+ musubix --version
156
+
157
+ # プロジェクト初期化
158
+ musubix init [path] [options]
159
+
160
+ # オプション
161
+ # --name <name> プロジェクト名
162
+ # --template <type> テンプレート(default, minimal, full)
163
+ # --force 既存ファイルを上書き
164
+ # --json JSON形式で出力
165
+ # --verbose 詳細出力
166
+ ```
167
+
168
+ ### musubix-mcp コマンド
169
+
170
+ MCPサーバーの起動:
171
+
172
+ ```bash
173
+ # ヘルプ表示
174
+ musubix-mcp --help
175
+
176
+ # stdio モードで起動(デフォルト)
177
+ musubix-mcp
178
+ musubix-mcp --transport stdio
179
+
180
+ # SSE モードで起動
181
+ musubix-mcp --transport sse --port 8080
182
+ ```
183
+
184
+ | オプション | 説明 |
185
+ |-----------|------|
186
+ | `-t, --transport` | トランスポート: `stdio` または `sse` |
187
+ | `-p, --port` | SSE モードのポート(デフォルト: 3000) |
188
+ | `-h, --help` | ヘルプ表示 |
189
+ | `-v, --version` | バージョン表示 |
190
+
191
+ ---
192
+
193
+ ## クイックスタート
194
+
195
+ ### 5分で始めるMUSUBIX
196
+
197
+ ```typescript
198
+ import {
199
+ createRequirementsAnalyzer,
200
+ createC4ModelGenerator,
201
+ createTaskGenerator,
202
+ createConstitutionalValidator
203
+ } from '@nahisaho/musubix-core';
204
+
205
+ // 1. 要件の分析
206
+ const analyzer = createRequirementsAnalyzer();
207
+ const requirement = analyzer.analyze(`
208
+ ユーザーがログインボタンをクリックしたとき、
209
+ システムは認証画面を表示しなければならない。
210
+ `);
211
+
212
+ console.log('要件ID:', requirement.id);
213
+ console.log('タイプ:', requirement.type);
214
+
215
+ // 2. 設計の生成
216
+ const c4Generator = createC4ModelGenerator();
217
+ const diagram = c4Generator.generateContext({
218
+ name: '認証システム',
219
+ description: 'ユーザー認証を管理するシステム'
220
+ });
221
+
222
+ console.log('C4図:', diagram.export('mermaid'));
223
+
224
+ // 3. タスクの生成
225
+ const taskGenerator = createTaskGenerator();
226
+ const tasks = taskGenerator.generate([requirement]);
227
+
228
+ console.log('生成されたタスク:', tasks.length);
229
+
230
+ // 4. 検証
231
+ const validator = createConstitutionalValidator();
232
+ const result = validator.validate(requirement);
233
+
234
+ console.log('検証結果:', result.valid ? '合格' : '不合格');
235
+ ```
236
+
237
+ ---
238
+
239
+ ## 基本的なワークフロー
240
+
241
+ ### SDDワークフロー概要
242
+
243
+ ```
244
+ ┌─────────────────────────────────────────────────────────────┐
245
+ │ SDDワークフロー │
246
+ ├─────────────────────────────────────────────────────────────┤
247
+ │ │
248
+ │ ① ステアリング プロジェクトコンテキストの設定 │
249
+ │ ↓ │
250
+ │ ② 要件定義 EARS形式で要件を記述 │
251
+ │ ↓ │
252
+ │ ③ 設計 C4モデル + ADRの作成 │
253
+ │ ↓ │
254
+ │ ④ タスク生成 実装タスクへの分解 │
255
+ │ ↓ │
256
+ │ ⑤ 実装 コード生成・開発 │
257
+ │ ↓ │
258
+ │ ⑥ 検証 憲法に基づく検証 │
259
+ │ ↓ │
260
+ │ ⑦ レビュー 品質レビューゲート │
261
+ │ │
262
+ └─────────────────────────────────────────────────────────────┘
263
+ ```
264
+
265
+ ### ステアリングファイル
266
+
267
+ プロジェクトの基盤となる設定ファイル:
268
+
269
+ ```
270
+ steering/
271
+ ├── product.md # プロダクト情報
272
+ ├── structure.md # アーキテクチャパターン
273
+ ├── tech.md # 技術スタック
274
+ └── rules/
275
+ └── constitution.md # 9条憲法
276
+ ```
277
+
278
+ ---
279
+
280
+ ## 要件フェーズ
281
+
282
+ ### EARS形式による要件定義
283
+
284
+ **EARS (Easy Approach to Requirements Syntax)** は、明確で検証可能な要件を書くための形式です。
285
+
286
+ #### 基本パターン
287
+
288
+ ```
289
+ [条件] [主語] [助動詞] [動作] [目的語]
290
+ ```
291
+
292
+ #### 例
293
+
294
+ ```
295
+ 【機能要件】
296
+ ユーザーがログインフォームで正しい認証情報を入力したとき、
297
+ システムはダッシュボード画面を表示しなければならない。
298
+
299
+ 【非機能要件】
300
+ システムは、すべてのAPIリクエストに対して
301
+ 500ミリ秒以内にレスポンスを返さなければならない。
302
+
303
+ 【制約】
304
+ システムは、個人情報保護法に準拠して
305
+ ユーザーデータを暗号化しなければならない。
306
+ ```
307
+
308
+ ### RequirementsAnalyzer の使用
309
+
310
+ ```typescript
311
+ import { createRequirementsAnalyzer } from '@nahisaho/musubix-core';
312
+
313
+ const analyzer = createRequirementsAnalyzer({
314
+ strictMode: true, // 厳密な検証
315
+ validateEARS: true, // EARS形式の検証
316
+ autoClassify: true // 自動分類
317
+ });
318
+
319
+ // 要件テキストの分析
320
+ const result = analyzer.analyze(`
321
+ ユーザーが商品をカートに追加したとき、
322
+ システムはカート内の合計金額を更新しなければならない。
323
+ `);
324
+
325
+ console.log('ID:', result.id); // REQ-001
326
+ console.log('タイプ:', result.type); // functional
327
+ console.log('優先度:', result.priority); // must
328
+ ```
329
+
330
+ ### RequirementsDecomposer の使用
331
+
332
+ 複雑な要件を小さな単位に分解:
333
+
334
+ ```typescript
335
+ import { createRequirementsDecomposer } from '@nahisaho/musubix-core';
336
+
337
+ const decomposer = createRequirementsDecomposer({
338
+ maxDepth: 4, // 最大分解深度
339
+ targetUnitSize: 4 // 目標単位サイズ(時間)
340
+ });
341
+
342
+ const result = decomposer.decompose(requirement, 'functional');
343
+
344
+ console.log('分解単位数:', result.units.length);
345
+ console.log('推定総工数:', result.stats.estimatedTotalEffort);
346
+
347
+ // Markdownでエクスポート
348
+ const markdown = decomposer.exportMarkdown(result);
349
+ ```
350
+
351
+ ---
352
+
353
+ ## 設計フェーズ
354
+
355
+ ### C4モデルの生成
356
+
357
+ C4モデルは4つのレベルでシステムを表現します:
358
+
359
+ 1. **Context**: システムの境界と外部エンティティ
360
+ 2. **Container**: アプリケーション・データストアの構成
361
+ 3. **Component**: コンテナ内のコンポーネント
362
+ 4. **Code**: コードレベルの詳細
363
+
364
+ ```typescript
365
+ import { createC4ModelGenerator } from '@nahisaho/musubix-core';
366
+
367
+ const generator = createC4ModelGenerator({
368
+ defaultFormat: 'mermaid'
369
+ });
370
+
371
+ // コンテキスト図の生成
372
+ const contextDiagram = generator.generateContext({
373
+ name: 'Eコマースシステム',
374
+ description: 'オンラインショッピングプラットフォーム',
375
+ actors: [
376
+ { name: '顧客', description: '商品を購入するユーザー' },
377
+ { name: '管理者', description: 'システムを管理するスタッフ' }
378
+ ],
379
+ externalSystems: [
380
+ { name: '決済システム', description: 'クレジットカード決済' },
381
+ { name: '配送システム', description: '物流管理' }
382
+ ]
383
+ });
384
+
385
+ // Mermaidでエクスポート
386
+ console.log(generator.export(contextDiagram, 'mermaid'));
387
+ ```
388
+
389
+ ### ADR(アーキテクチャ決定記録)
390
+
391
+ 重要なアーキテクチャ決定を記録:
392
+
393
+ ```typescript
394
+ import { createADRGenerator } from '@nahisaho/musubix-core';
395
+
396
+ const adrGenerator = createADRGenerator({
397
+ template: 'madr',
398
+ outputFormat: 'markdown'
399
+ });
400
+
401
+ const adr = adrGenerator.generate({
402
+ title: 'TypeScriptの採用',
403
+ status: 'accepted',
404
+ context: 'プロジェクトの言語選定が必要',
405
+ decision: 'TypeScriptを採用する',
406
+ rationale: '型安全性とIDEサポートの向上',
407
+ consequences: {
408
+ positive: ['バグの早期発見', 'リファクタリングの容易さ'],
409
+ negative: ['学習コスト', 'ビルド時間の増加']
410
+ },
411
+ alternatives: [
412
+ { name: 'JavaScript', reason: '型がないため却下' },
413
+ { name: 'Flow', reason: 'エコシステムが小さいため却下' }
414
+ ]
415
+ });
416
+
417
+ console.log(adr.export());
418
+ ```
419
+
420
+ ---
421
+
422
+ ## タスクフェーズ
423
+
424
+ ### タスクの自動生成
425
+
426
+ 要件から実装タスクを生成:
427
+
428
+ ```typescript
429
+ import { createTaskGenerator } from '@nahisaho/musubix-core';
430
+
431
+ const taskGenerator = createTaskGenerator({
432
+ estimateEffort: true, // 工数見積もり
433
+ includeTests: true, // テストタスクを含む
434
+ assignmentStrategy: 'balanced'
435
+ });
436
+
437
+ const tasks = taskGenerator.generate(requirements);
438
+
439
+ for (const task of tasks) {
440
+ console.log(`
441
+ タスク: ${task.id}
442
+ タイトル: ${task.title}
443
+ 要件参照: ${task.requirementRef}
444
+ 推定工数: ${task.estimatedHours}時間
445
+ ステータス: ${task.status}
446
+ `);
447
+ }
448
+ ```
449
+
450
+ ### タスクの優先順位付け
451
+
452
+ ```typescript
453
+ // 優先順位付け
454
+ const prioritized = taskGenerator.prioritize(tasks, {
455
+ criteria: ['dependency', 'risk', 'value'],
456
+ weights: [0.4, 0.3, 0.3]
457
+ });
458
+
459
+ console.log('優先度順タスク:');
460
+ prioritized.forEach((task, index) => {
461
+ console.log(`${index + 1}. ${task.title} (スコア: ${task.priorityScore})`);
462
+ });
463
+ ```
464
+
465
+ ---
466
+
467
+ ## 検証フェーズ
468
+
469
+ ### 憲法に基づく検証
470
+
471
+ ```typescript
472
+ import { createConstitutionalValidator } from '@nahisaho/musubix-core';
473
+
474
+ const validator = createConstitutionalValidator({
475
+ strictMode: true,
476
+ articles: ['all'] // すべての条項を検証
477
+ });
478
+
479
+ const result = validator.validate(artifact);
480
+
481
+ console.log('検証結果:', result.valid ? '✅ 合格' : '❌ 不合格');
482
+ console.log('スコア:', result.score);
483
+ console.log('エラー数:', result.errors.length);
484
+ console.log('警告数:', result.warnings.length);
485
+
486
+ // 詳細レポート
487
+ if (!result.valid) {
488
+ for (const error of result.errors) {
489
+ console.log(`
490
+ 条項: ${error.article}
491
+ メッセージ: ${error.message}
492
+ 推奨対応: ${error.recommendation}
493
+ `);
494
+ }
495
+ }
496
+ ```
497
+
498
+ ### カバレッジの確認
499
+
500
+ ```typescript
501
+ console.log('カバレッジ:');
502
+ console.log(` 要件: ${result.coverage.requirements}%`);
503
+ console.log(` 設計: ${result.coverage.design}%`);
504
+ console.log(` タスク: ${result.coverage.tasks}%`);
505
+ console.log(` テスト: ${result.coverage.tests}%`);
506
+ ```
507
+
508
+ ---
509
+
510
+ ## MCPサーバー連携
511
+
512
+ ### MCPサーバーの起動
513
+
514
+ #### CLI から起動
515
+
516
+ ```bash
517
+ # stdio モード(推奨)
518
+ musubix-mcp
519
+ npx @nahisaho/musubix-mcp-server
520
+
521
+ # SSE モード
522
+ musubix-mcp --transport sse --port 8080
523
+ ```
524
+
525
+ #### プログラムから起動
526
+
527
+ ```typescript
528
+ import { startServer, createMCPServer } from '@nahisaho/musubix-mcp-server';
529
+
530
+ // 簡易起動
531
+ await startServer({ transport: 'stdio' });
532
+
533
+ // カスタム設定
534
+ const server = createMCPServer({
535
+ name: 'my-musubix-server',
536
+ version: '1.0.0',
537
+ transport: 'stdio'
538
+ });
539
+
540
+ await server.start();
541
+ console.log('MCPサーバーが起動しました');
542
+ ```
543
+
544
+ ### GitHub Copilot (VS Code) との連携
545
+
546
+ `.vscode/mcp.json`:
547
+
548
+ ```json
549
+ {
550
+ "mcpServers": {
551
+ "musubix": {
552
+ "command": "npx",
553
+ "args": ["@nahisaho/musubix-mcp-server"]
554
+ },
555
+ "yata": {
556
+ "command": "uv",
557
+ "args": ["run", "yata", "serve"],
558
+ "cwd": "/path/to/YATA"
559
+ }
560
+ }
561
+ }
562
+ ```
563
+
564
+ ### Claude Desktop との連携
565
+
566
+ 設定ファイルの場所:
567
+ - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
568
+ - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
569
+ - **Linux**: `~/.config/Claude/claude_desktop_config.json`
570
+
571
+ ```json
572
+ {
573
+ "mcpServers": {
574
+ "musubix": {
575
+ "command": "npx",
576
+ "args": ["@nahisaho/musubix-mcp-server"]
577
+ },
578
+ "yata": {
579
+ "command": "uv",
580
+ "args": ["run", "yata", "serve"],
581
+ "cwd": "/path/to/YATA"
582
+ }
583
+ }
584
+ }
585
+ ```
586
+
587
+ ### Cursor IDE との連携
588
+
589
+ `.cursor/mcp.json`:
590
+
591
+ ```json
592
+ {
593
+ "mcpServers": {
594
+ "musubix": {
595
+ "command": "npx",
596
+ "args": ["@nahisaho/musubix-mcp-server"]
597
+ }
598
+ }
599
+ }
600
+ ```
601
+
602
+ ### ツールの呼び出し
603
+
604
+ ```typescript
605
+ // MCP経由でのツール呼び出し例
606
+ const response = await client.callTool({
607
+ tool: 'analyze_requirements',
608
+ arguments: {
609
+ text: 'システムは...',
610
+ options: { validateEARS: true }
611
+ }
612
+ });
613
+ ```
614
+
615
+ ---
616
+
617
+ ## YATA知識グラフ
618
+
619
+ ### YATAとは?
620
+
621
+ YATA(八咫)は、AIコーディング支援のための知識グラフMCPサーバーです。MUSUBIXと組み合わせることで、ニューロシンボリックAI機能を実現します。
622
+
623
+ | 機能 | 説明 |
624
+ |------|------|
625
+ | **コード解析** | Tree-sitterによる24言語対応AST解析 |
626
+ | **知識グラフ** | NetworkXによるエンティティ・関係性グラフ |
627
+ | **フレームワーク知識** | 47フレームワーク、457K+エンティティ |
628
+ | **MCP対応** | 34 Tools, 3 Prompts, 1 Resource |
629
+
630
+ ### YATAサーバーの起動
631
+
632
+ ```bash
633
+ # YATAディレクトリに移動
634
+ cd /path/to/YATA
635
+
636
+ # stdio モードで起動
637
+ uv run yata serve
638
+
639
+ # SSE モードで起動
640
+ uv run yata serve --transport sse --port 8080
641
+ ```
642
+
643
+ ### YATAクライアントの設定
644
+
645
+ ```typescript
646
+ import { createYATAClient } from '@nahisaho/musubix-yata-client';
647
+
648
+ const yata = createYATAClient({
649
+ transport: 'stdio', // または { type: 'sse', endpoint: 'http://localhost:8080' }
650
+ });
651
+
652
+ await yata.connect();
653
+ ```
654
+
655
+ ### 知識のクエリ
656
+
657
+ ```typescript
658
+ // 要件の検索
659
+ const requirements = await yata.query({
660
+ type: 'requirement',
661
+ filters: {
662
+ priority: 'must',
663
+ status: 'approved'
664
+ }
665
+ });
666
+
667
+ // 関連エンティティの取得
668
+ const related = await yata.getRelated({
669
+ entityId: 'REQ-001',
670
+ relationTypes: ['implements', 'depends_on']
671
+ });
672
+ ```
673
+
674
+ ### 知識の保存
675
+
676
+ ```typescript
677
+ // 新しい要件を保存
678
+ await yata.store({
679
+ type: 'requirement',
680
+ data: requirement,
681
+ relations: [
682
+ { type: 'part_of', target: 'EPIC-001' }
683
+ ]
684
+ });
685
+
686
+ // エンティティ間のリンク
687
+ await yata.link({
688
+ source: 'TSK-001',
689
+ target: 'REQ-001',
690
+ type: 'implements'
691
+ });
692
+ ```
693
+
694
+ ---
695
+
696
+ ## ベストプラクティス
697
+
698
+ ### 1. 要件定義のベストプラクティス
699
+
700
+ ✅ **推奨**:
701
+ - EARS形式を使用する
702
+ - 検証可能な受け入れ基準を含める
703
+ - 1つの要件に1つの機能
704
+
705
+ ❌ **避けるべき**:
706
+ - 曖昧な表現(「適切に」「迅速に」など)
707
+ - 複数の機能を1つの要件に含める
708
+ - 実装詳細を要件に含める
709
+
710
+ ### 2. 設計のベストプラクティス
711
+
712
+ ✅ **推奨**:
713
+ - C4の4レベルを活用
714
+ - 重要な決定はADRで記録
715
+ - 要件とのトレーサビリティを維持
716
+
717
+ ❌ **避けるべき**:
718
+ - 詳細すぎる最初の設計
719
+ - 決定理由の省略
720
+ - 孤立した設計ドキュメント
721
+
722
+ ### 3. タスク管理のベストプラクティス
723
+
724
+ ✅ **推奨**:
725
+ - 4時間以内の粒度
726
+ - 要件への明確なリンク
727
+ - 完了条件の明記
728
+
729
+ ❌ **避けるべき**:
730
+ - 大きすぎるタスク(8時間超)
731
+ - 要件リンクのないタスク
732
+ - 曖昧な完了条件
733
+
734
+ ---
735
+
736
+ ## トラブルシューティング
737
+
738
+ ### よくある問題と解決策
739
+
740
+ #### 要件の検証エラー
741
+
742
+ ```
743
+ エラー: EARS形式が検出されませんでした
744
+ ```
745
+
746
+ **解決策**: 要件テキストにEARSパターンを含めてください。
747
+
748
+ ```typescript
749
+ // 修正前
750
+ const text = '認証機能を実装する';
751
+
752
+ // 修正後
753
+ const text = 'ユーザーがログインしたとき、システムは認証を行わなければならない';
754
+ ```
755
+
756
+ #### トレーサビリティの警告
757
+
758
+ ```
759
+ 警告: 要件 REQ-001 に設計参照がありません
760
+ ```
761
+
762
+ **解決策**: 設計ドキュメントを作成し、リンクしてください。
763
+
764
+ ```typescript
765
+ requirementsService.linkDesign('REQ-001', 'DES-001');
766
+ ```
767
+
768
+ #### MCPサーバー接続エラー
769
+
770
+ ```
771
+ エラー: MCPサーバーに接続できません
772
+ ```
773
+
774
+ **解決策**:
775
+ 1. サーバーが起動しているか確認
776
+ 2. ポート番号を確認
777
+ 3. ファイアウォール設定を確認
778
+
779
+ ```bash
780
+ # サーバーの状態確認
781
+ ps aux | grep musubix
782
+ ```
783
+
784
+ #### YATA接続エラー
785
+
786
+ ```
787
+ エラー: YATAエンドポイントに接続できません
788
+ ```
789
+
790
+ **解決策**:
791
+ 1. エンドポイントURLを確認
792
+ 2. APIキーを確認
793
+ 3. ネットワーク設定を確認
794
+
795
+ ```typescript
796
+ const client = createYATAClient({
797
+ endpoint: 'http://localhost:8000', // 正しいURL
798
+ apiKey: process.env.YATA_API_KEY // 環境変数を確認
799
+ });
800
+ ```
801
+
802
+ ---
803
+
804
+ ## 次のステップ
805
+
806
+ - 📚 [APIリファレンス](./API-REFERENCE.md)を参照
807
+ - 💡 [サンプルプロジェクト](./examples/)を確認
808
+ - 🤝 [コントリビューションガイド](./CONTRIBUTING.md)を読む
809
+
810
+ ---
811
+
812
+ ## 関連ドキュメント
813
+
814
+ | ドキュメント | 説明 |
815
+ |-------------|------|
816
+ | [INSTALL-GUIDE.ja.md](INSTALL-GUIDE.ja.md) | 詳細インストールガイド |
817
+ | [API-REFERENCE.md](API-REFERENCE.md) | APIリファレンス |
818
+ | [evolution-from-musubi-to-musubix.md](evolution-from-musubi-to-musubix.md) | MUSUBIからの進化 |
819
+
820
+ ---
821
+
822
+ **バージョン**: 1.0.0
823
+ **最終更新**: 2026-01-02
824
+ **MUSUBIX Project**