musubix 3.4.3 → 3.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/AGENTS.md +949 -0
- package/.github/prompts/sdd-change-apply.prompt.md +283 -0
- package/.github/prompts/sdd-change-archive.prompt.md +241 -0
- package/.github/prompts/sdd-change-init.prompt.md +269 -0
- package/.github/prompts/sdd-design.prompt.md +250 -0
- package/.github/prompts/sdd-implement.prompt.md +387 -0
- package/.github/prompts/sdd-requirements.prompt.md +193 -0
- package/.github/prompts/sdd-review.prompt.md +155 -0
- package/.github/prompts/sdd-security.prompt.md +228 -0
- package/.github/prompts/sdd-steering.prompt.md +269 -0
- package/.github/prompts/sdd-tasks.prompt.md +255 -0
- package/.github/prompts/sdd-test.prompt.md +230 -0
- package/.github/prompts/sdd-validate.prompt.md +304 -0
- package/.github/skills/musubix-adr-generation/SKILL.md +209 -0
- package/.github/skills/musubix-best-practices/SKILL.md +315 -0
- package/.github/skills/musubix-c4-design/SKILL.md +162 -0
- package/.github/skills/musubix-code-generation/SKILL.md +237 -0
- package/.github/skills/musubix-domain-inference/SKILL.md +196 -0
- package/.github/skills/musubix-ears-validation/SKILL.md +161 -0
- package/.github/skills/musubix-sdd-workflow/SKILL.md +217 -0
- package/.github/skills/musubix-technical-writing/SKILL.md +444 -0
- package/.github/skills/musubix-test-generation/SKILL.md +212 -0
- package/.github/skills/musubix-traceability/SKILL.md +141 -0
- package/AGENTS.md +1134 -0
- package/LICENSE +21 -0
- package/README.ja.md +313 -0
- package/README.md +315 -50
- package/bin/musubix-mcp.js +15 -0
- package/bin/musubix.js +9 -1
- package/docs/API-REFERENCE.md +1425 -0
- package/docs/GITHUB-ACTIONS-NPM-SETUP.md +132 -0
- package/docs/INSTALL-GUIDE.ja.md +459 -0
- package/docs/INSTALL-GUIDE.md +459 -0
- package/docs/MIGRATION-v3.0.md +324 -0
- package/docs/MUSUBI-enhancement_roadmap_20260105.md +651 -0
- package/docs/MUSUBIX-v3.0-User-Guide.md +1357 -0
- package/docs/MUSUBIXv2.2.0-Manual-outline.md +136 -0
- package/docs/MUSUBIXv2.2.0-Manual.md +3123 -0
- package/docs/MUSUBIXv2.3.5-Refactering.md +1310 -0
- package/docs/MUSUBIv1.6.1-enhancement_roadmap_20260105.md +291 -0
- package/docs/MUSUBIv2.2.0-USERGUIDE.md +2079 -0
- package/docs/ROADMAP-v1.5.md +116 -0
- package/docs/SwarmCoding.md +1284 -0
- package/docs/Test-prompt.md +105 -0
- package/docs/USER-GUIDE-v1.8.0.md +2371 -0
- package/docs/USER-GUIDE.ja.md +2147 -0
- package/docs/USER-GUIDE.md +3022 -0
- package/docs/YATA-GLOBAL-GUIDE.ja.md +750 -0
- package/docs/YATA-GLOBAL-GUIDE.md +595 -0
- package/docs/YATA-LOCAL-GUIDE.ja.md +989 -0
- package/docs/YATA-LOCAL-GUIDE.md +730 -0
- package/docs/adr/0001-real-time-pattern-learning-architecture-for-v1-5-0.md +75 -0
- package/docs/adr/0002-pattern-sharing-protocol-for-cross-team-collaborat.md +79 -0
- package/docs/adr/0003-owl-2-rl-implementation-strategy-for-advanced-infe.md +90 -0
- package/docs/adr/ADR-v3.4.0-001-deep-research-architecture.md +217 -0
- package/docs/adr/ADR-v3.4.0-002-search-provider-selection.md +308 -0
- package/docs/adr/ADR-v3.4.0-003-lm-api-integration.md +475 -0
- package/docs/enterprise-knowledge-management.md +1737 -0
- package/docs/evolution-from-musubi-to-musubix.md +2170 -0
- package/docs/getting-started-with-sdd.md +1602 -0
- package/docs/moodle-refactering-codegraph-musubix.md +391 -0
- package/docs/moodle-refactering-codegraph.md +278 -0
- package/docs/overview/MUSUBIX-CodeGraph.md +322 -0
- package/docs/overview/MUSUBIX-Core.md +671 -0
- package/docs/overview/MUSUBIX-Decisions.md +494 -0
- package/docs/overview/MUSUBIX-FormalVerify.md +566 -0
- package/docs/overview/MUSUBIX-Knowledge.md +1231 -0
- package/docs/overview/MUSUBIX-Learning.md +837 -0
- package/docs/overview/MUSUBIX-MCP-Server.md +535 -0
- package/docs/overview/MUSUBIX-Overview.md +264 -0
- package/docs/overview/MUSUBIX-Phase1-Complete.md +271 -0
- package/docs/overview/MUSUBIX-Phase2-Complete.md +310 -0
- package/docs/overview/MUSUBIX-Policy.md +477 -0
- package/docs/overview/MUSUBIX-Roadmap-v2.md +399 -0
- package/docs/overview/MUSUBIX-Security-Plan.md +939 -0
- package/docs/overview/MUSUBIX-Security-v2.1.md +668 -0
- package/docs/overview/MUSUBIX-Security.md +891 -0
- package/docs/overview/MUSUBIX-YATA.md +666 -0
- package/docs/overview/MUSUBIX-v2.2.0-Advanced-Learning.md +513 -0
- package/docs/overview/Neuro-SymbolicAI.md +159 -0
- package/docs/packages/knowledge.md +594 -0
- package/docs/qiita-linux-kernel-knowledge-graph.md +596 -0
- package/package.json +58 -51
- package/scripts/generate-quality-gate-report.ts +106 -0
- package/scripts/postinstall.js +94 -0
- package/steering/.musubi-version +1 -0
- package/steering/product.ja.md +572 -0
- package/steering/project.yml +66 -0
- package/steering/rules/constitution.md +491 -0
- package/steering/structure.ja.md +503 -0
- package/steering/tech.ja.md +208 -0
- package/dist/index.d.ts +0 -25
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -74
- package/dist/index.js.map +0 -1
package/AGENTS.md
ADDED
|
@@ -0,0 +1,1134 @@
|
|
|
1
|
+
# MUSUBIX - Neuro-Symbolic AI Integration System
|
|
2
|
+
|
|
3
|
+
> **AI Coding Agent向け**: このファイルはAIエージェント(GitHub Copilot、Claude等)がMUSUBIXプロジェクトを理解するためのガイドです。
|
|
4
|
+
|
|
5
|
+
## 🎯 プロジェクト概要
|
|
6
|
+
|
|
7
|
+
**MUSUBIX**は、**Neural(LLM)** と **Symbolic(Knowledge Graph)** 推論を統合した次世代AIコーディングシステムです。MUSUBI SDD方法論とオントロジー推論を組み合わせ、高品質なソフトウェア開発を支援します。
|
|
8
|
+
|
|
9
|
+
| 項目 | 詳細 |
|
|
10
|
+
|------|------|
|
|
11
|
+
| **バージョン** | 3.4.0 (Deep Research Integration) |
|
|
12
|
+
| **言語** | TypeScript |
|
|
13
|
+
| **ランタイム** | Node.js >= 20.0.0 |
|
|
14
|
+
| **パッケージマネージャ** | npm >= 10.0.0 |
|
|
15
|
+
| **ビルドシステム** | モノレポ(npm workspaces) |
|
|
16
|
+
| **テストフレームワーク** | Vitest |
|
|
17
|
+
| **テスト数** | 4966+ (全合格) |
|
|
18
|
+
| **パッケージ数** | 27 |
|
|
19
|
+
| **MCPツール数** | 107 |
|
|
20
|
+
| **Agent Skills** | 13 (Claude Code対応) |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 📦 アーキテクチャ
|
|
25
|
+
|
|
26
|
+
### パッケージ構成
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
packages/
|
|
30
|
+
├── core/ # @nahisaho/musubix-core
|
|
31
|
+
├── mcp-server/ # @nahisaho/musubix-mcp-server
|
|
32
|
+
├── security/ # @nahisaho/musubix-security
|
|
33
|
+
├── formal-verify/ # @nahisaho/musubix-formal-verify
|
|
34
|
+
├── pattern-mcp/ # @nahisaho/musubix-pattern-mcp
|
|
35
|
+
├── ontology-mcp/ # @nahisaho/musubix-ontology-mcp
|
|
36
|
+
├── wake-sleep/ # @nahisaho/musubix-wake-sleep
|
|
37
|
+
├── sdd-ontology/ # @nahisaho/musubix-sdd-ontology
|
|
38
|
+
├── dfg/ # @nahisaho/musubix-dfg
|
|
39
|
+
├── lean/ # @nahisaho/musubix-lean
|
|
40
|
+
├── library-learner/# @nahisaho/musubix-library-learner
|
|
41
|
+
├── neural-search/ # @nahisaho/musubix-neural-search
|
|
42
|
+
├── synthesis/ # @nahisaho/musubix-synthesis
|
|
43
|
+
├── agent-orchestrator/ # @nahisaho/musubix-agent-orchestrator
|
|
44
|
+
├── workflow-engine/ # @nahisaho/musubix-workflow-engine
|
|
45
|
+
├── skill-manager/ # @nahisaho/musubix-skill-manager
|
|
46
|
+
├── codegraph/ # @nahisaho/musubix-codegraph
|
|
47
|
+
├── expert-delegation/ # @nahisaho/musubix-expert-delegation (v3.2.0 NEW!)
|
|
48
|
+
├── deep-research/ # @nahisaho/musubix-deep-research (v3.4.0 NEW!)
|
|
49
|
+
├── knowledge/ # @musubix/knowledge (v3.0.0 NEW!)
|
|
50
|
+
├── policy/ # @musubix/policy (v3.0.0 NEW!)
|
|
51
|
+
└── decisions/ # @musubix/decisions (v3.0.0 NEW!)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
| パッケージ | npm | 役割 |
|
|
55
|
+
|-----------|-----|------|
|
|
56
|
+
| `packages/core/` | `@nahisaho/musubix-core` | コアライブラリ - CLI、EARS検証、コード生成、設計パターン |
|
|
57
|
+
| `packages/mcp-server/` | `@nahisaho/musubix-mcp-server` | MCPサーバー - 61ツール、5プロンプト |
|
|
58
|
+
| `packages/security/` | `@nahisaho/musubix-security` | セキュリティ分析 - 脆弱性検出、シークレット検出、テイント解析 |
|
|
59
|
+
| `packages/formal-verify/` | `@nahisaho/musubix-formal-verify` | 形式検証 - Z3統合、Hoare検証、EARS→SMT変換 |
|
|
60
|
+
| `packages/pattern-mcp/` | `@nahisaho/musubix-pattern-mcp` | パターン学習 - 抽出・圧縮・ライブラリ |
|
|
61
|
+
| `packages/ontology-mcp/` | `@nahisaho/musubix-ontology-mcp` | オントロジー - N3Store・推論エンジン |
|
|
62
|
+
| `packages/wake-sleep/` | `@nahisaho/musubix-wake-sleep` | Wake-Sleep学習サイクル |
|
|
63
|
+
| `packages/sdd-ontology/` | `@nahisaho/musubix-sdd-ontology` | SDD方法論オントロジー |
|
|
64
|
+
| `packages/dfg/` | `@nahisaho/musubix-dfg` | **DFG/CFG抽出** - データフロー・制御フロー解析 |
|
|
65
|
+
| `packages/lean/` | `@nahisaho/musubix-lean` | **Lean 4統合** - 定理証明・EARS変換 |
|
|
66
|
+
| `packages/library-learner/` | `@nahisaho/musubix-library-learner` | **ライブラリ学習** - APIパターン抽出、メトリクスエクスポート |
|
|
67
|
+
| `packages/knowledge/` | `@musubix/knowledge` | **知識ストア (v3.0.0 NEW!)** - Git-friendly JSON知識グラフ |
|
|
68
|
+
| `packages/policy/` | `@musubix/policy` | **ポリシーエンジン (v3.0.0 NEW!)** - 10憲法条項検証 |
|
|
69
|
+
| `packages/decisions/` | `@musubix/decisions` | **ADRマネージャー (v3.0.0 NEW!)** - Architecture Decision Records |
|
|
70
|
+
| `packages/neural-search/` | `@nahisaho/musubix-neural-search` | **ニューラル検索** - 意味的コード検索、軌跡ロギング |
|
|
71
|
+
| `packages/synthesis/` | `@nahisaho/musubix-synthesis` | **プログラム合成** - ニューラル誘導合成、説明生成 |
|
|
72
|
+
| `packages/agent-orchestrator/` | `@nahisaho/musubix-agent-orchestrator` | **エージェント調整** - サブエージェント分散・複雑度分析 |
|
|
73
|
+
| `packages/workflow-engine/` | `@nahisaho/musubix-workflow-engine` | **ワークフロー制御** - 5フェーズ制御・品質ゲート |
|
|
74
|
+
| `packages/skill-manager/` | `@nahisaho/musubix-skill-manager` | **スキル管理** - スキル登録・実行・検証 |
|
|
75
|
+
| `packages/codegraph/` | `@nahisaho/musubix-codegraph` | **コードグラフ** - コード構造解析・依存関係追跡 |
|
|
76
|
+
| `packages/expert-delegation/` | `@nahisaho/musubix-expert-delegation` | **エキスパート委譲 (v3.2.0 NEW!)** - 7種AI専門家・VS Code LM API統合 |
|
|
77
|
+
| `packages/deep-research/` | `@nahisaho/musubix-deep-research` | **Deep Research (v3.4.0 NEW!)** - AI駆動型深層リサーチ・6統合機能・433テスト |
|
|
78
|
+
|
|
79
|
+
### 非推奨パッケージ(Deprecated) ⚠️
|
|
80
|
+
|
|
81
|
+
以下のYATA関連パッケージはv3.0.0で非推奨となりました。`@musubix/knowledge`へ移行してください。
|
|
82
|
+
|
|
83
|
+
| パッケージ | 状態 | 移行先 |
|
|
84
|
+
|-----------|------|--------|
|
|
85
|
+
| `packages/yata-client/` | ⚠️ Deprecated | `@musubix/knowledge` |
|
|
86
|
+
| `packages/yata-global/` | ⚠️ Deprecated | `@musubix/knowledge` |
|
|
87
|
+
| `packages/yata-local/` | ⚠️ Deprecated | `@musubix/knowledge` |
|
|
88
|
+
| `packages/yata-scale/` | ⚠️ Deprecated | `@musubix/knowledge` |
|
|
89
|
+
| `packages/yata-ui/` | ⚠️ Deprecated | `@musubix/knowledge` |
|
|
90
|
+
|
|
91
|
+
**移行ガイド**: [docs/MIGRATION-v3.0.md](docs/MIGRATION-v3.0.md)
|
|
92
|
+
|
|
93
|
+
### Core パッケージモジュール
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
packages/core/src/
|
|
97
|
+
├── auth/ # 認証・認可
|
|
98
|
+
├── cli/ # CLIインターフェース
|
|
99
|
+
│ └── generators/ # スキャフォールドジェネレーター (v3.3.0 NEW!)
|
|
100
|
+
├── codegen/ # コード生成・解析
|
|
101
|
+
├── design/ # 設計パターン・C4モデル
|
|
102
|
+
├── error/ # エラーハンドリング
|
|
103
|
+
├── explanation/ # 説明生成・可視化
|
|
104
|
+
├── learning/ # 自己学習システム
|
|
105
|
+
├── requirements/ # 要件分析・分解
|
|
106
|
+
├── symbolic/ # シンボリック推論(v1.2.0 NEW!)
|
|
107
|
+
├── traceability/ # トレーサビリティ
|
|
108
|
+
├── types/ # 型定義
|
|
109
|
+
├── utils/ # ユーティリティ
|
|
110
|
+
└── validators/ # EARS検証
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 🛠️ CLI コマンド
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# プロジェクト初期化
|
|
119
|
+
npx musubix init [path] [--name <name>] [--force]
|
|
120
|
+
|
|
121
|
+
# 要件分析(EARS形式)
|
|
122
|
+
npx musubix requirements analyze <file> # 自然言語 → EARS変換
|
|
123
|
+
npx musubix requirements validate <file> # EARS構文検証
|
|
124
|
+
npx musubix requirements map <file> # オントロジーマッピング
|
|
125
|
+
npx musubix requirements search <query> # 関連要件検索
|
|
126
|
+
|
|
127
|
+
# 設計生成
|
|
128
|
+
npx musubix design generate <file> # 要件から設計生成
|
|
129
|
+
npx musubix design patterns <context> # パターン検出
|
|
130
|
+
npx musubix design validate <file> # SOLID準拠検証
|
|
131
|
+
npx musubix design c4 <file> # C4ダイアグラム生成
|
|
132
|
+
npx musubix design adr <decision> # ADR生成
|
|
133
|
+
npx musubix design traceability # REQ↔DESトレーサビリティ検証 (v3.1.0 NEW!)
|
|
134
|
+
npx musubix design traceability --min-coverage 80 # カバレッジ閾値指定
|
|
135
|
+
|
|
136
|
+
# コード生成
|
|
137
|
+
npx musubix codegen generate <file> # 設計からコード生成
|
|
138
|
+
npx musubix codegen generate <file> --full-skeleton # 4ファイル生成 (v3.3.10 NEW!)
|
|
139
|
+
npx musubix codegen generate <file> --with-tests # テストファイル付き (v3.3.10 NEW!)
|
|
140
|
+
npx musubix codegen analyze <file> # 静的解析
|
|
141
|
+
npx musubix codegen security <path> # セキュリティスキャン
|
|
142
|
+
npx musubix codegen status <spec> # ステータス遷移コード生成 (v3.1.0 NEW!)
|
|
143
|
+
npx musubix codegen status <spec> --enum # enum型で生成
|
|
144
|
+
|
|
145
|
+
# テスト
|
|
146
|
+
npx musubix test generate <file> # テスト生成
|
|
147
|
+
npx musubix test coverage <dir> # カバレッジ測定
|
|
148
|
+
|
|
149
|
+
# トレーサビリティ
|
|
150
|
+
npx musubix trace matrix # トレーサビリティマトリクス
|
|
151
|
+
npx musubix trace matrix -p <project> # 指定プロジェクトのマトリクス
|
|
152
|
+
npx musubix trace impact <id> # 影響分析
|
|
153
|
+
npx musubix trace validate # リンク検証
|
|
154
|
+
npx musubix trace sync # トレースマトリクス自動更新 (v1.6.7 NEW!)
|
|
155
|
+
npx musubix trace sync --dry-run # プレビューのみ
|
|
156
|
+
|
|
157
|
+
# 説明生成
|
|
158
|
+
npx musubix explain why <id> # 決定理由の説明
|
|
159
|
+
npx musubix explain graph <id> # 推論グラフ生成
|
|
160
|
+
|
|
161
|
+
# 自己学習システム
|
|
162
|
+
npx musubix learn status # 学習状態ダッシュボード
|
|
163
|
+
npx musubix learn feedback <id> # フィードバック記録
|
|
164
|
+
npx musubix learn patterns # パターン一覧表示
|
|
165
|
+
npx musubix learn add-pattern <name> # パターン手動登録
|
|
166
|
+
npx musubix learn remove-pattern <id> # パターン削除
|
|
167
|
+
npx musubix learn recommend # コンテキストベースの推奨
|
|
168
|
+
npx musubix learn decay # 未使用パターンの減衰
|
|
169
|
+
npx musubix learn export # 学習データエクスポート
|
|
170
|
+
# オプション: --output <file>, --privacy-filter, --patterns-only, --feedback-only, --min-confidence <n>
|
|
171
|
+
npx musubix learn import <file> # 学習データインポート
|
|
172
|
+
# オプション: --merge-strategy <skip|overwrite|merge>, --dry-run, --patterns-only, --feedback-only
|
|
173
|
+
|
|
174
|
+
# オントロジー操作 (v1.4.1 NEW!)
|
|
175
|
+
npx musubix ontology validate -f <file> # 知識グラフ整合性検証
|
|
176
|
+
npx musubix ontology check-circular -f <file> # 循環依存チェック
|
|
177
|
+
npx musubix ontology stats -f <file> # 統計表示
|
|
178
|
+
|
|
179
|
+
# Interactive REPL (v1.5.0 NEW!)
|
|
180
|
+
npx musubix repl # 対話的シェルを起動
|
|
181
|
+
npx musubix repl --history <file> # カスタム履歴ファイル
|
|
182
|
+
npx musubix repl --no-color # 色なしモード
|
|
183
|
+
|
|
184
|
+
# KGPR - Knowledge Graph Pull Request (v1.6.4 - DEPRECATED)
|
|
185
|
+
# KGPRは廃止されました。通常のGit PRワークフローを使用してください。
|
|
186
|
+
|
|
187
|
+
# SDDプロジェクトスキャフォールド (v1.6.7 NEW!, v3.3.0 Enhanced!)
|
|
188
|
+
npx musubix scaffold domain-model <name> # DDDプロジェクト生成
|
|
189
|
+
npx musubix scaffold domain-model <name> -e "Entity1,Entity2" # エンティティ指定
|
|
190
|
+
npx musubix scaffold domain-model <name> -d DOMAIN # ドメイン接頭辞指定
|
|
191
|
+
npx musubix scaffold domain-model <name> -v "Price,Email" # Value Object生成 (v3.1.0 NEW!)
|
|
192
|
+
npx musubix scaffold domain-model <name> -s "Order,Task" # ステータス遷移生成 (v3.1.0 NEW!)
|
|
193
|
+
npx musubix scaffold domain-model <name> -s "Order=pending,Task=open" # 初期状態指定 (v3.3.0 NEW!)
|
|
194
|
+
npx musubix scaffold minimal <name> # 最小構成プロジェクト
|
|
195
|
+
|
|
196
|
+
# プログラム合成 (v2.2.0 NEW!)
|
|
197
|
+
npx musubix synthesize <examples.json> # 例からプログラム合成
|
|
198
|
+
npx musubix synthesize pbe <examples.json> # PBE特化合成
|
|
199
|
+
npx musubix syn <examples.json> # エイリアス
|
|
200
|
+
|
|
201
|
+
# パターンライブラリ管理 (v2.2.0 NEW!)
|
|
202
|
+
npx musubix library learn <file> # コードからパターン学習
|
|
203
|
+
npx musubix library query <query> # パターン検索
|
|
204
|
+
npx musubix library stats # 統計表示
|
|
205
|
+
npx musubix lib stats # エイリアス
|
|
206
|
+
|
|
207
|
+
# ヘルプ
|
|
208
|
+
npx musubix --help
|
|
209
|
+
npx musubix help <command>
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## 🔌 MCP Server
|
|
215
|
+
|
|
216
|
+
### 起動方法
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
npx @nahisaho/musubix-mcp-server
|
|
220
|
+
npx musubix-mcp --transport stdio
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### ツール一覧(61ツール)
|
|
224
|
+
|
|
225
|
+
#### SDD基本ツール(7ツール)
|
|
226
|
+
|
|
227
|
+
| ツール名 | 説明 |
|
|
228
|
+
|---------|------|
|
|
229
|
+
| `sdd_create_requirements` | EARS形式の要件ドキュメント作成 |
|
|
230
|
+
| `sdd_validate_requirements` | 要件のEARS検証・憲法準拠チェック |
|
|
231
|
+
| `sdd_create_design` | C4モデル設計ドキュメント作成 |
|
|
232
|
+
| `sdd_validate_design` | 設計の要件トレーサビリティ検証 |
|
|
233
|
+
| `sdd_create_tasks` | 設計から実装タスク生成 |
|
|
234
|
+
| `sdd_validate_constitution` | 10憲法条項への準拠検証 |
|
|
235
|
+
| `sdd_validate_traceability` | 要件↔設計↔タスクのトレーサビリティ検証 |
|
|
236
|
+
|
|
237
|
+
#### パターン統合ツール(7ツール)- v1.3.0 NEW!
|
|
238
|
+
|
|
239
|
+
| ツール名 | 説明 |
|
|
240
|
+
|---------|------|
|
|
241
|
+
| `pattern_extract` | コードからパターンを抽出 |
|
|
242
|
+
| `pattern_compress` | パターンの抽象化・圧縮 |
|
|
243
|
+
| `pattern_store` | パターンライブラリへの保存 |
|
|
244
|
+
| `pattern_query` | パターンの検索・取得 |
|
|
245
|
+
| `pattern_consolidate` | 類似パターンの統合 |
|
|
246
|
+
| `ontology_query` | オントロジーグラフへのクエリ |
|
|
247
|
+
| `ontology_infer` | オントロジーによる推論実行 |
|
|
248
|
+
|
|
249
|
+
#### オントロジー検証ツール(3ツール)- v1.4.1 NEW!
|
|
250
|
+
|
|
251
|
+
| ツール名 | 説明 |
|
|
252
|
+
|---------|------|
|
|
253
|
+
| `consistency_validate` | 知識グラフの整合性検証 |
|
|
254
|
+
| `validate_triple` | 単一トリプルの事前検証 |
|
|
255
|
+
| `check_circular` | 循環依存の検出 |
|
|
256
|
+
|
|
257
|
+
#### Synthesisツール(5ツール)- v2.2.0 NEW!
|
|
258
|
+
|
|
259
|
+
| ツール名 | 説明 |
|
|
260
|
+
|---------|------|
|
|
261
|
+
| `synthesis_from_examples` | 例からプログラム合成 |
|
|
262
|
+
| `synthesis_analyze_examples` | 例題品質分析 |
|
|
263
|
+
| `synthesis_learn_patterns` | パターン学習 |
|
|
264
|
+
| `synthesis_query_patterns` | パターン検索 |
|
|
265
|
+
| `synthesis_get_stats` | 統計取得 |
|
|
266
|
+
|
|
267
|
+
#### Agent Orchestratorツール(4ツール)- v2.4.0 NEW!
|
|
268
|
+
|
|
269
|
+
| ツール名 | 説明 |
|
|
270
|
+
|---------|------|
|
|
271
|
+
| `agent_analyze_complexity` | タスク複雑度分析・サブエージェント分散判定 |
|
|
272
|
+
| `agent_dispatch` | サブエージェントへのタスクディスパッチ |
|
|
273
|
+
| `agent_collect_results` | サブエージェント結果の収集・統合 |
|
|
274
|
+
| `agent_get_status` | エージェント実行状態の取得 |
|
|
275
|
+
|
|
276
|
+
#### Workflow Engineツール(5ツール)- v2.4.0 NEW!
|
|
277
|
+
|
|
278
|
+
| ツール名 | 説明 |
|
|
279
|
+
|---------|------|
|
|
280
|
+
| `workflow_create` | 新規ワークフロー作成(5フェーズ制御) |
|
|
281
|
+
| `workflow_advance_phase` | 次フェーズへの遷移(品質ゲート検証付き) |
|
|
282
|
+
| `workflow_set_approval` | ユーザー承認状態の設定 |
|
|
283
|
+
| `workflow_get_status` | ワークフロー現在状態の取得 |
|
|
284
|
+
| `workflow_validate_transition` | フェーズ遷移の事前検証 |
|
|
285
|
+
|
|
286
|
+
#### Skill Managerツール(5ツール)- v2.4.0 NEW!
|
|
287
|
+
|
|
288
|
+
| ツール名 | 説明 |
|
|
289
|
+
|---------|------|
|
|
290
|
+
| `skill_register` | 新規スキルの登録 |
|
|
291
|
+
| `skill_execute` | スキルの実行 |
|
|
292
|
+
| `skill_list` | 登録済みスキル一覧の取得 |
|
|
293
|
+
| `skill_get_info` | スキル詳細情報の取得 |
|
|
294
|
+
| `skill_validate` | スキル定義の検証 |
|
|
295
|
+
|
|
296
|
+
#### Knowledge Storeツール(6ツール)- v3.0.0 NEW!
|
|
297
|
+
|
|
298
|
+
| ツール名 | 説明 |
|
|
299
|
+
|---------|------|
|
|
300
|
+
| `knowledge_put_entity` | エンティティの作成・更新 |
|
|
301
|
+
| `knowledge_get_entity` | エンティティの取得 |
|
|
302
|
+
| `knowledge_delete_entity` | エンティティの削除 |
|
|
303
|
+
| `knowledge_add_relation` | リレーションの追加 |
|
|
304
|
+
| `knowledge_query` | グラフクエリによる検索 |
|
|
305
|
+
| `knowledge_traverse` | グラフ走査による関連エンティティ探索 |
|
|
306
|
+
|
|
307
|
+
#### Policy Engineツール(4ツール)- v3.0.0 NEW!
|
|
308
|
+
|
|
309
|
+
| ツール名 | 説明 |
|
|
310
|
+
|---------|------|
|
|
311
|
+
| `policy_validate` | プロジェクトのポリシー検証 |
|
|
312
|
+
| `policy_list` | 登録済みポリシー一覧 |
|
|
313
|
+
| `policy_get` | ポリシー詳細取得 |
|
|
314
|
+
| `policy_check_file` | 単一ファイルのポリシー検証 |
|
|
315
|
+
|
|
316
|
+
#### Decision Recordsツール(8ツール)- v3.0.0 NEW!
|
|
317
|
+
|
|
318
|
+
| ツール名 | 説明 |
|
|
319
|
+
|---------|------|
|
|
320
|
+
| `decision_create` | ADRの作成 |
|
|
321
|
+
| `decision_list` | ADR一覧取得 |
|
|
322
|
+
| `decision_get` | ADR詳細取得 |
|
|
323
|
+
| `decision_accept` | ADRの承認 |
|
|
324
|
+
| `decision_deprecate` | ADRの廃止 |
|
|
325
|
+
| `decision_search` | ADRのキーワード検索 |
|
|
326
|
+
| `decision_find_by_requirement` | 要件からADR検索 |
|
|
327
|
+
| `decision_generate_index` | ADRインデックス生成 |
|
|
328
|
+
|
|
329
|
+
### プロンプト一覧(5プロンプト)
|
|
330
|
+
|
|
331
|
+
| プロンプト名 | 説明 |
|
|
332
|
+
|-------------|------|
|
|
333
|
+
| `sdd_requirements_analysis` | 機能説明からEARS形式要件を生成 |
|
|
334
|
+
| `sdd_requirements_review` | 要件の完全性・憲法準拠レビュー |
|
|
335
|
+
| `sdd_design_generation` | 要件からC4モデル設計を生成 |
|
|
336
|
+
| `synthesis_guidance` | 合成ガイダンス (v2.2.0 NEW!) |
|
|
337
|
+
| `synthesis_explain_pattern` | パターン説明 (v2.2.0 NEW!) |
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## 📋 10憲法条項(Constitutional Articles)
|
|
342
|
+
|
|
343
|
+
すべての開発活動を統治する不変のルールです。
|
|
344
|
+
|
|
345
|
+
| 条項 | 名称 | 概要 |
|
|
346
|
+
|-----|------|------|
|
|
347
|
+
| **I** | Library-First | 機能は独立ライブラリとして開始 |
|
|
348
|
+
| **II** | CLI Interface | すべてのライブラリはCLI公開必須 |
|
|
349
|
+
| **III** | Test-First | Red-Green-Blueサイクルでテスト先行 |
|
|
350
|
+
| **IV** | EARS Format | 要件はEARS形式で記述 |
|
|
351
|
+
| **V** | Traceability | 要件↔設計↔コード↔テストの100%追跡 |
|
|
352
|
+
| **VI** | Project Memory | steering/を参照してから決定 |
|
|
353
|
+
| **VII** | Design Patterns | 設計パターン適用の文書化 |
|
|
354
|
+
| **VIII** | Decision Records | すべての決定をADRで記録 |
|
|
355
|
+
| **IX** | Quality Gates | フェーズ移行前の品質検証 |
|
|
356
|
+
| **X** | **Implementation Prerequisites** | **要件・設計・タスクなしの実装禁止** |
|
|
357
|
+
|
|
358
|
+
### ⛔ Article X: Implementation Prerequisites (v3.0.9)
|
|
359
|
+
|
|
360
|
+
**絶対ルール**: 要件定義書・設計書・タスク分解が承認されていない限り、実装を開始してはならない。
|
|
361
|
+
|
|
362
|
+
```
|
|
363
|
+
⛔ 禁止: Phase 2 (設計) → Phase 4 (実装) の直接遷移
|
|
364
|
+
✅ 必須: Phase 1 → Phase 2 → Phase 3 → Phase 4 の順序遵守
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
実装開始前に`workflow-engine`が自動検証:
|
|
368
|
+
- ✅ Phase 1 (要件定義) が承認済みかつ成果物あり
|
|
369
|
+
- ✅ Phase 2 (設計) が承認済みかつ成果物あり
|
|
370
|
+
- ✅ Phase 3 (タスク分解) が承認済みかつ成果物あり
|
|
371
|
+
|
|
372
|
+
**詳細**: [steering/rules/constitution.md](steering/rules/constitution.md)
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## 📁 プロジェクトメモリ(Steering)
|
|
377
|
+
|
|
378
|
+
AIエージェントは決定前に必ずこれらのファイルを参照してください。
|
|
379
|
+
|
|
380
|
+
| ファイル | 内容 |
|
|
381
|
+
|---------|------|
|
|
382
|
+
| `steering/structure.ja.md` | アーキテクチャパターン、レイヤー構造 |
|
|
383
|
+
| `steering/tech.ja.md` | 技術スタック(TypeScript, Node.js 20+) |
|
|
384
|
+
| `steering/product.ja.md` | プロダクトコンテキスト |
|
|
385
|
+
| `steering/rules/constitution.md` | 10憲法条項 |
|
|
386
|
+
| `steering/project.yml` | プロジェクト設定 |
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## 📂 ストレージ構造
|
|
391
|
+
|
|
392
|
+
| パス | 内容 |
|
|
393
|
+
|-----|------|
|
|
394
|
+
| `storage/specs/` | 要件(REQ-*)、設計(DES-*)、タスク(TSK-*) |
|
|
395
|
+
| `storage/design/` | 設計ドキュメント、C4ダイアグラム |
|
|
396
|
+
| `storage/traceability/` | トレーサビリティマトリクス |
|
|
397
|
+
| `storage/reviews/` | コードレビュー、検証結果 |
|
|
398
|
+
| `storage/changes/` | 変更履歴 |
|
|
399
|
+
| `storage/archive/` | アーカイブ |
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
## 🧪 開発コマンド
|
|
404
|
+
|
|
405
|
+
```bash
|
|
406
|
+
# 依存関係インストール
|
|
407
|
+
npm install
|
|
408
|
+
|
|
409
|
+
# 全パッケージビルド
|
|
410
|
+
npm run build
|
|
411
|
+
|
|
412
|
+
# テスト実行
|
|
413
|
+
npm run test # 全テスト
|
|
414
|
+
npm run test:unit # ユニットテスト
|
|
415
|
+
npm run test:integration # 統合テスト
|
|
416
|
+
npm run test:coverage # カバレッジ計測
|
|
417
|
+
|
|
418
|
+
# コード品質
|
|
419
|
+
npm run lint # ESLint
|
|
420
|
+
npm run lint:fix # ESLint 自動修正
|
|
421
|
+
npm run typecheck # TypeScript型チェック
|
|
422
|
+
|
|
423
|
+
# クリーンアップ
|
|
424
|
+
npm run clean
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## 🔑 主要機能
|
|
430
|
+
|
|
431
|
+
### 1. Neuro-Symbolic統合(REQ-INT-001〜003準拠)
|
|
432
|
+
- **Neural(LLM)**: 創造的なコード生成、自然言語理解
|
|
433
|
+
- **Symbolic(Ontology)**: オントロジーによる精密な推論、一貫性検証
|
|
434
|
+
- **信頼度評価ルール** (REQ-INT-002):
|
|
435
|
+
| シンボリック結果 | ニューラル信頼度 | 最終決定 |
|
|
436
|
+
|-----------------|-----------------|---------|
|
|
437
|
+
| invalid | - | ニューラル結果を棄却 |
|
|
438
|
+
| valid | ≥0.8 | ニューラル結果を採用 |
|
|
439
|
+
| valid | <0.8 | シンボリック結果を優先 |
|
|
440
|
+
|
|
441
|
+
### 2. EARS要件分析
|
|
442
|
+
5つのEARSパターンで要件を形式化(REQ-RA-001準拠):
|
|
443
|
+
|
|
444
|
+
| パターン | 構文 | 用途 |
|
|
445
|
+
|---------|------|------|
|
|
446
|
+
| Ubiquitous | `THE [system] SHALL [requirement]` | システムが常に満たすべき要件 |
|
|
447
|
+
| Event-driven | `WHEN [event], THE [system] SHALL [response]` | 特定イベント発生時の要件 |
|
|
448
|
+
| State-driven | `WHILE [state], THE [system] SHALL [response]` | 特定状態における要件 |
|
|
449
|
+
| Unwanted | `THE [system] SHALL NOT [behavior]` | 回避すべき動作の要件 |
|
|
450
|
+
| Optional | `IF [condition], THEN THE [system] SHALL [response]` | 条件付き要件 |
|
|
451
|
+
|
|
452
|
+
**要件総数**: 41要件(REQ-MUSUBIX-001定義)
|
|
453
|
+
**優先度**: P0(必須)、P1(重要)、P2(任意)
|
|
454
|
+
|
|
455
|
+
### 3. C4モデル設計
|
|
456
|
+
4つのレベルで設計を構造化:
|
|
457
|
+
- **Context**: システム境界と外部アクター
|
|
458
|
+
- **Container**: 技術選択とコンテナ構成
|
|
459
|
+
- **Component**: コンテナ内部構造
|
|
460
|
+
- **Code**: 実装詳細
|
|
461
|
+
|
|
462
|
+
**C4コード生成** (v1.0.12 NEW!):
|
|
463
|
+
```bash
|
|
464
|
+
# C4設計ドキュメントからTypeScriptスケルトンコードを自動生成
|
|
465
|
+
npx musubix codegen generate <design.md> --output src/
|
|
466
|
+
```
|
|
467
|
+
- 設計パターン(Repository, Service, Factory等)を自動検出
|
|
468
|
+
- コンポーネントごとにTypeScriptファイル生成
|
|
469
|
+
- 設計との完全なトレーサビリティを維持
|
|
470
|
+
|
|
471
|
+
### 4. 完全なトレーサビリティ
|
|
472
|
+
```
|
|
473
|
+
要件(REQ-*) → 設計(DES-*) → タスク(TSK-*) → コード → テスト
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
### 5. 自己学習システム(REQ-LEARN-001〜006準拠)
|
|
477
|
+
- **フィードバック収集**: accept/reject/modifyの記録と分析
|
|
478
|
+
- **パターン抽出**: 繰り返しパターンの自動検出・登録
|
|
479
|
+
- **適応的推論**: 学習済みパターンに基づく推論調整
|
|
480
|
+
- **プライバシー保護**: 機密情報の自動フィルタリング(ローカルストレージのみ)
|
|
481
|
+
|
|
482
|
+
```
|
|
483
|
+
フィードバック → パターン候補 → 閾値超過 → パターン登録 → 推論に適用
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### 6. Wake-Sleep学習サイクル(v1.3.0 NEW!)
|
|
487
|
+
|
|
488
|
+
Wake-Sleepアルゴリズムに基づいた継続的学習システム:
|
|
489
|
+
|
|
490
|
+
| フェーズ | 処理内容 |
|
|
491
|
+
|---------|----------|
|
|
492
|
+
| **Wake** | コード観察 → パターン抽出 → 知識グラフ更新 |
|
|
493
|
+
| **Sleep** | パターン統合 → 類似パターン圧縮 → メモリ最適化 |
|
|
494
|
+
|
|
495
|
+
```
|
|
496
|
+
Wake Phase: observe() → extractPatterns() → updateKnowledge()
|
|
497
|
+
Sleep Phase: consolidate() → compress() → optimize()
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
**主要コンポーネント**:
|
|
501
|
+
- `WakeSleepCycle`: 学習サイクル全体の制御
|
|
502
|
+
- `PatternLibrary`: 学習済みパターンの永続化管理
|
|
503
|
+
- `PatternOntologyBridge`: パターン↔オントロジー相互変換
|
|
504
|
+
- `N3Store`: RDF/OWLベースの知識グラフストレージ
|
|
505
|
+
|
|
506
|
+
### 7. Git-Native Knowledge System(v3.0.0 NEW!)
|
|
507
|
+
|
|
508
|
+
サーバーレス・Git-friendlyな知識グラフシステム:
|
|
509
|
+
|
|
510
|
+
| 特徴 | 説明 |
|
|
511
|
+
|------|------|
|
|
512
|
+
| **サーバーレス** | データベース不要、JSONファイルで完結 |
|
|
513
|
+
| **Git-friendly** | diff/merge/PR対応、バージョン管理可能 |
|
|
514
|
+
| **軽量** | ゼロ依存(外部ライブラリ不要) |
|
|
515
|
+
| **階層型ID** | `requirement:REQ-001`、`design:DES-001` |
|
|
516
|
+
|
|
517
|
+
```
|
|
518
|
+
.knowledge/
|
|
519
|
+
└── graph.json # 全エンティティ・リレーション
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
**主要API**:
|
|
523
|
+
```typescript
|
|
524
|
+
import { createKnowledgeStore } from '@musubix/knowledge';
|
|
525
|
+
|
|
526
|
+
const store = createKnowledgeStore('.knowledge');
|
|
527
|
+
|
|
528
|
+
// エンティティ操作
|
|
529
|
+
await store.putEntity({
|
|
530
|
+
id: 'requirement:REQ-001',
|
|
531
|
+
type: 'requirement',
|
|
532
|
+
name: 'User Authentication',
|
|
533
|
+
properties: { ears: 'WHEN user logs in...' },
|
|
534
|
+
tags: ['security', 'auth'],
|
|
535
|
+
});
|
|
536
|
+
|
|
537
|
+
const req = await store.getEntity('requirement:REQ-001');
|
|
538
|
+
|
|
539
|
+
// リレーション追加
|
|
540
|
+
await store.addRelation({
|
|
541
|
+
source: 'requirement:REQ-001',
|
|
542
|
+
target: 'design:DES-001',
|
|
543
|
+
type: 'tracesTo',
|
|
544
|
+
properties: { confidence: 0.95 },
|
|
545
|
+
});
|
|
546
|
+
|
|
547
|
+
// クエリ
|
|
548
|
+
const entities = await store.query({ type: 'requirement', tags: ['security'] });
|
|
549
|
+
|
|
550
|
+
// グラフ走査
|
|
551
|
+
const related = await store.traverse('requirement:REQ-001', {
|
|
552
|
+
direction: 'outgoing',
|
|
553
|
+
relationTypes: ['tracesTo'],
|
|
554
|
+
maxDepth: 2,
|
|
555
|
+
});
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
**関連パッケージ**:
|
|
559
|
+
- `@musubix/policy`: 10憲法条項の自動検証
|
|
560
|
+
- `@musubix/decisions`: Architecture Decision Records管理
|
|
561
|
+
|
|
562
|
+
**ドキュメント**: [docs/packages/knowledge.md](docs/packages/knowledge.md)
|
|
563
|
+
|
|
564
|
+
### 8. Advanced Learning Enhancement(v2.2.0 NEW!)
|
|
565
|
+
|
|
566
|
+
3パッケージに高度な学習機能を追加:
|
|
567
|
+
|
|
568
|
+
#### Neural Search強化
|
|
569
|
+
```typescript
|
|
570
|
+
import {
|
|
571
|
+
ContextAwareEmbedder, // コンテキスト認識埋め込み
|
|
572
|
+
HybridRanker, // BM25 + ベクトル類似度
|
|
573
|
+
EmbeddingCache, // LRU + TTL キャッシュ
|
|
574
|
+
createTrajectoryLogger, // 検索軌跡ロギング
|
|
575
|
+
} from '@nahisaho/musubix-neural-search';
|
|
576
|
+
|
|
577
|
+
const logger = createTrajectoryLogger();
|
|
578
|
+
logger.logBranch({ depth: 1, score: 0.85, action: 'expand' });
|
|
579
|
+
const parquet = logger.export('parquet');
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
#### Library Learner強化
|
|
583
|
+
```typescript
|
|
584
|
+
import {
|
|
585
|
+
SemanticChunker, // AST境界認識チャンキング
|
|
586
|
+
PatternVersionManager, // Git風バージョン管理
|
|
587
|
+
createMetricsExporter, // メトリクスエクスポート
|
|
588
|
+
} from '@nahisaho/musubix-library-learner';
|
|
589
|
+
|
|
590
|
+
const exporter = createMetricsExporter(library);
|
|
591
|
+
const markdown = exporter.export('markdown');
|
|
592
|
+
const summary = exporter.getSummary(); // { healthStatus: 'good' }
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
#### Synthesis強化
|
|
596
|
+
```typescript
|
|
597
|
+
import {
|
|
598
|
+
createMetaLearningEngine, // メタ学習エンジン
|
|
599
|
+
createExampleAnalyzer, // 例題品質分析
|
|
600
|
+
createExplanationGenerator, // 説明生成
|
|
601
|
+
} from '@nahisaho/musubix-synthesis';
|
|
602
|
+
|
|
603
|
+
const explainer = createExplanationGenerator();
|
|
604
|
+
const explanation = explainer.generate(program);
|
|
605
|
+
const summary = explainer.summarize(program);
|
|
606
|
+
// "Converts to uppercase"
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
### 9. Performance Optimization(v3.1.0 NEW!)
|
|
610
|
+
|
|
611
|
+
CLI・パターン処理の性能最適化ユーティリティ:
|
|
612
|
+
|
|
613
|
+
#### 性能計測
|
|
614
|
+
```typescript
|
|
615
|
+
import {
|
|
616
|
+
PerformanceTimer,
|
|
617
|
+
measureAsync,
|
|
618
|
+
measureSync,
|
|
619
|
+
PerformanceCollector,
|
|
620
|
+
createPerformanceCollector,
|
|
621
|
+
formatPerformanceReport,
|
|
622
|
+
} from '@nahisaho/musubix-core/cli';
|
|
623
|
+
|
|
624
|
+
// 非同期処理の計測
|
|
625
|
+
const { result, performance } = await measureAsync('api-call', async () => {
|
|
626
|
+
return await fetchData();
|
|
627
|
+
});
|
|
628
|
+
console.log(`Duration: ${performance.durationMs}ms`);
|
|
629
|
+
|
|
630
|
+
// 性能レポート生成
|
|
631
|
+
const collector = createPerformanceCollector();
|
|
632
|
+
collector.addResult(performance);
|
|
633
|
+
const report = collector.generateReport();
|
|
634
|
+
console.log(formatPerformanceReport(report));
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
#### 遅延読み込み
|
|
638
|
+
```typescript
|
|
639
|
+
import {
|
|
640
|
+
createLazyLoader,
|
|
641
|
+
LazyModuleRegistry,
|
|
642
|
+
globalLazyRegistry,
|
|
643
|
+
BatchLoader,
|
|
644
|
+
} from '@nahisaho/musubix-core/cli';
|
|
645
|
+
|
|
646
|
+
// モジュールの遅延読み込み
|
|
647
|
+
const heavyModule = createLazyLoader(() => import('./heavy-module'));
|
|
648
|
+
const module = await heavyModule(); // 初回アクセス時にのみ読み込み
|
|
649
|
+
|
|
650
|
+
// バッチ読み込み
|
|
651
|
+
const loader = new BatchLoader(async (keys) => {
|
|
652
|
+
const results = await fetchMany(keys);
|
|
653
|
+
return new Map(keys.map((k, i) => [k, results[i]]));
|
|
654
|
+
});
|
|
655
|
+
const [a, b, c] = await Promise.all([
|
|
656
|
+
loader.load('a'),
|
|
657
|
+
loader.load('b'),
|
|
658
|
+
loader.load('c'),
|
|
659
|
+
]); // 1回のバッチリクエストで取得
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
#### パターンキャッシュ
|
|
663
|
+
```typescript
|
|
664
|
+
import {
|
|
665
|
+
LRUCache,
|
|
666
|
+
PatternCache,
|
|
667
|
+
globalPatternCache,
|
|
668
|
+
memoize,
|
|
669
|
+
memoizeAsync,
|
|
670
|
+
} from '@nahisaho/musubix-core/learning';
|
|
671
|
+
|
|
672
|
+
// LRUキャッシュ(TTL対応)
|
|
673
|
+
const cache = new LRUCache<string, Pattern>({
|
|
674
|
+
maxSize: 100,
|
|
675
|
+
ttlMs: 60000, // 1分
|
|
676
|
+
});
|
|
677
|
+
cache.set('pattern-1', patternData);
|
|
678
|
+
const pattern = cache.get('pattern-1');
|
|
679
|
+
|
|
680
|
+
// 関数メモ化
|
|
681
|
+
const expensiveFn = memoize((x: number) => {
|
|
682
|
+
// 重い計算
|
|
683
|
+
return x * 2;
|
|
684
|
+
});
|
|
685
|
+
|
|
686
|
+
// 非同期関数メモ化
|
|
687
|
+
const fetchUser = memoizeAsync(async (id: string) => {
|
|
688
|
+
return await api.getUser(id);
|
|
689
|
+
});
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
### 10. Scaffold Enhancement & Pattern Learning Integration(v3.3.0 NEW!)
|
|
693
|
+
|
|
694
|
+
スキャフォールドコマンドとパターン学習システムの統合強化:
|
|
695
|
+
|
|
696
|
+
#### Value Object Generator
|
|
697
|
+
```typescript
|
|
698
|
+
import {
|
|
699
|
+
generators,
|
|
700
|
+
type generators.ValueObjectSpec,
|
|
701
|
+
} from '@nahisaho/musubix-core';
|
|
702
|
+
|
|
703
|
+
const generator = generators.createValueObjectGenerator();
|
|
704
|
+
const spec: generators.ValueObjectSpec = {
|
|
705
|
+
name: 'Price',
|
|
706
|
+
fields: [
|
|
707
|
+
{ name: 'amount', type: 'number', validation: { min: 100, max: 1000000 } },
|
|
708
|
+
{ name: 'currency', type: 'string', validation: { pattern: 'JPY|USD|EUR' } }
|
|
709
|
+
],
|
|
710
|
+
domainPrefix: 'SHOP'
|
|
711
|
+
};
|
|
712
|
+
|
|
713
|
+
const files = generator.generate(spec);
|
|
714
|
+
// → [{ path: 'price.ts', content: '...' }, { path: 'price.test.ts', content: '...' }]
|
|
715
|
+
```
|
|
716
|
+
|
|
717
|
+
#### Status Machine Generator
|
|
718
|
+
```typescript
|
|
719
|
+
import {
|
|
720
|
+
generators,
|
|
721
|
+
type generators.StatusMachineSpec,
|
|
722
|
+
} from '@nahisaho/musubix-core';
|
|
723
|
+
|
|
724
|
+
const generator = generators.createStatusMachineGenerator();
|
|
725
|
+
const spec: generators.StatusMachineSpec = {
|
|
726
|
+
name: 'Order',
|
|
727
|
+
statuses: ['pending', 'confirmed', 'shipped', 'delivered', 'cancelled'],
|
|
728
|
+
initialStatus: 'pending', // v3.3.0: 初期状態を明示指定可能
|
|
729
|
+
transitions: [
|
|
730
|
+
{ from: 'pending', to: 'confirmed' },
|
|
731
|
+
{ from: 'pending', to: 'cancelled' },
|
|
732
|
+
{ from: 'confirmed', to: 'shipped' },
|
|
733
|
+
// ...
|
|
734
|
+
],
|
|
735
|
+
domainPrefix: 'SHOP'
|
|
736
|
+
};
|
|
737
|
+
|
|
738
|
+
const files = generator.generate(spec);
|
|
739
|
+
// → [{ path: 'order-status.ts', content: '...' }, { path: 'order-status.test.ts', content: '...' }]
|
|
740
|
+
```
|
|
741
|
+
|
|
742
|
+
#### Pattern Learning Service(新規)
|
|
743
|
+
```typescript
|
|
744
|
+
import { generators } from '@nahisaho/musubix-core';
|
|
745
|
+
|
|
746
|
+
// スキャフォールド生成結果からパターンを学習
|
|
747
|
+
const service = generators.createPatternLearningService();
|
|
748
|
+
|
|
749
|
+
// コードからパターン抽出
|
|
750
|
+
await service.learnFromCode(generatedCode);
|
|
751
|
+
|
|
752
|
+
// 学習したパターンを次回生成に活用
|
|
753
|
+
const suggestions = await service.getSuggestions(context);
|
|
754
|
+
// → [{ pattern: 'ValueObject+ResultType', confidence: 0.95 }]
|
|
755
|
+
|
|
756
|
+
// 学習状況のサマリー
|
|
757
|
+
const summary = await service.getSummary();
|
|
758
|
+
// → { totalPatterns: 15, healthStatus: 'good' }
|
|
759
|
+
```
|
|
760
|
+
|
|
761
|
+
#### Expert Integration(AIエキスパート委譲統合)
|
|
762
|
+
```typescript
|
|
763
|
+
import { generators } from '@nahisaho/musubix-core';
|
|
764
|
+
|
|
765
|
+
const expert = generators.createExpertIntegration({
|
|
766
|
+
...generators.DEFAULT_EXPERT_CONFIG,
|
|
767
|
+
timeout: 30000, // ADR-v3.3.0-002: 30秒タイムアウト
|
|
768
|
+
fallbackEnabled: true, // タイムアウト時フォールバック有効
|
|
769
|
+
});
|
|
770
|
+
|
|
771
|
+
// スキャフォールド生成にAIエキスパートを活用
|
|
772
|
+
const recommendation = await expert.consultForScaffold({
|
|
773
|
+
type: 'value-object',
|
|
774
|
+
spec: valueObjectSpec,
|
|
775
|
+
context: projectContext,
|
|
776
|
+
});
|
|
777
|
+
// → { validationRules: [...], suggestedPatterns: [...] }
|
|
778
|
+
```
|
|
779
|
+
|
|
780
|
+
#### CLI使用例(v3.3.0強化)
|
|
781
|
+
```bash
|
|
782
|
+
# 初期状態を明示指定してステータスマシンを生成
|
|
783
|
+
npx musubix scaffold domain-model shop -s "Order=pending,Task=open"
|
|
784
|
+
|
|
785
|
+
# 上記コマンドで生成されるファイル:
|
|
786
|
+
# - order-status.ts (初期状態: 'pending')
|
|
787
|
+
# - task-status.ts (初期状態: 'open')
|
|
788
|
+
# - *.test.ts (対応テスト)
|
|
789
|
+
```
|
|
790
|
+
|
|
791
|
+
---
|
|
792
|
+
|
|
793
|
+
## 📚 学習済みベストプラクティス(v1.1.10 Updated!)
|
|
794
|
+
|
|
795
|
+
Project-07〜14の実装から学習したパターンです。
|
|
796
|
+
|
|
797
|
+
### コードパターン
|
|
798
|
+
|
|
799
|
+
| ID | 名称 | 概要 | 信頼度 |
|
|
800
|
+
|----|------|------|--------|
|
|
801
|
+
| BP-CODE-001 | Entity Input DTO | エンティティ作成にInput DTOオブジェクトを使用 | 95% |
|
|
802
|
+
| BP-CODE-002 | Date-based ID Format | PREFIX-YYYYMMDD-NNN形式でIDを生成 | 90% |
|
|
803
|
+
| BP-CODE-003 | Value Objects | ドメイン概念にValue Objectを使用 | 90% |
|
|
804
|
+
| BP-CODE-004 | Function-based Value Objects | クラスではなくinterface+factory関数でVO実装 | 95% |
|
|
805
|
+
| BP-CODE-005 | Result Type | 失敗可能な操作にResult<T, E>を使用 | 95% |
|
|
806
|
+
|
|
807
|
+
**Function-based Value Object例**:
|
|
808
|
+
```typescript
|
|
809
|
+
// ✅ 推奨: Interface + Factory Function
|
|
810
|
+
interface Price {
|
|
811
|
+
readonly amount: number;
|
|
812
|
+
readonly currency: 'JPY';
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
function createPrice(amount: number): Result<Price, ValidationError> {
|
|
816
|
+
if (amount < 100 || amount > 1_000_000) {
|
|
817
|
+
return err(new ValidationError('Price must be between 100 and 1,000,000 JPY'));
|
|
818
|
+
}
|
|
819
|
+
return ok({ amount, currency: 'JPY' });
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
// ❌ 非推奨: クラスベース(構造的型付けと相性が悪い)
|
|
823
|
+
class Price {
|
|
824
|
+
private constructor(readonly amount: number) {}
|
|
825
|
+
static create(amount: number): Price { ... }
|
|
826
|
+
}
|
|
827
|
+
```
|
|
828
|
+
|
|
829
|
+
### 設計パターン
|
|
830
|
+
|
|
831
|
+
| ID | 名称 | 概要 | 信頼度 |
|
|
832
|
+
|----|------|------|--------|
|
|
833
|
+
| BP-DESIGN-001 | Status Transition Map | 有効なステータス遷移をMapで定義 | 95% |
|
|
834
|
+
| BP-DESIGN-002 | Repository Async Pattern | 将来のDB移行に備えてasync化 | 85% |
|
|
835
|
+
| BP-DESIGN-003 | Service Layer with DI | リポジトリをDIしたService層 | 90% |
|
|
836
|
+
| BP-DESIGN-004 | Optimistic Locking | 同時編集検出のためのversion管理 | 90% |
|
|
837
|
+
| BP-DESIGN-005 | AuditService | データ変更の監査ログ記録 | 85% |
|
|
838
|
+
| BP-DESIGN-006 | Entity Counter Reset | テスト用のresetXxxCounter()関数を提供 | 95% |
|
|
839
|
+
| BP-DESIGN-007 | Expiry Time Logic | 有効期限をexpiresAtフィールドで明示管理 | 90% |
|
|
840
|
+
|
|
841
|
+
**Status Transition Map例**:
|
|
842
|
+
```typescript
|
|
843
|
+
const validStatusTransitions: Record<Status, Status[]> = {
|
|
844
|
+
draft: ['active', 'cancelled'],
|
|
845
|
+
active: ['completed', 'cancelled'],
|
|
846
|
+
completed: [],
|
|
847
|
+
cancelled: [],
|
|
848
|
+
};
|
|
849
|
+
```
|
|
850
|
+
|
|
851
|
+
### テストパターン
|
|
852
|
+
|
|
853
|
+
| ID | 名称 | 概要 | 信頼度 |
|
|
854
|
+
|----|------|------|--------|
|
|
855
|
+
| BP-TEST-001 | Test Counter Reset | beforeEachでIDカウンターをリセット | 95% |
|
|
856
|
+
| BP-TEST-002 | Verify API Before Test | テスト前にAPIシグネチャを確認 | 80% |
|
|
857
|
+
| BP-TEST-003 | Vitest ESM Configuration | Vitest + TypeScript ESM構成 | 85% |
|
|
858
|
+
| BP-TEST-004 | Result Type Test Pattern | isOk()/isErr()で両方のケースをテスト | 95% |
|
|
859
|
+
| BP-TEST-005 | Status Transition Testing | 有効・無効な遷移を網羅的にテスト | 90% |
|
|
860
|
+
|
|
861
|
+
**Result Type Test例**:
|
|
862
|
+
```typescript
|
|
863
|
+
describe('createPrice', () => {
|
|
864
|
+
it('should create valid price', () => {
|
|
865
|
+
const result = createPrice(1000);
|
|
866
|
+
expect(result.isOk()).toBe(true);
|
|
867
|
+
if (result.isOk()) {
|
|
868
|
+
expect(result.value.amount).toBe(1000);
|
|
869
|
+
}
|
|
870
|
+
});
|
|
871
|
+
|
|
872
|
+
it('should reject price below minimum', () => {
|
|
873
|
+
const result = createPrice(50);
|
|
874
|
+
expect(result.isErr()).toBe(true);
|
|
875
|
+
if (result.isErr()) {
|
|
876
|
+
expect(result.error.message).toContain('100');
|
|
877
|
+
}
|
|
878
|
+
});
|
|
879
|
+
});
|
|
880
|
+
```
|
|
881
|
+
|
|
882
|
+
### CLIでベストプラクティスを表示
|
|
883
|
+
|
|
884
|
+
```bash
|
|
885
|
+
# 全ベストプラクティス表示
|
|
886
|
+
npx musubix learn best-practices
|
|
887
|
+
|
|
888
|
+
# カテゴリ別フィルタ
|
|
889
|
+
npx musubix learn best-practices --category code
|
|
890
|
+
npx musubix learn best-practices --category design
|
|
891
|
+
npx musubix learn best-practices --category test
|
|
892
|
+
|
|
893
|
+
# 高信頼度パターンのみ
|
|
894
|
+
npx musubix learn best-practices --high-confidence
|
|
895
|
+
|
|
896
|
+
# Markdown出力
|
|
897
|
+
npx musubix learn best-practices --format markdown
|
|
898
|
+
```
|
|
899
|
+
|
|
900
|
+
---
|
|
901
|
+
|
|
902
|
+
## �📚 ドキュメント
|
|
903
|
+
|
|
904
|
+
| ドキュメント | 説明 |
|
|
905
|
+
|-------------|------|
|
|
906
|
+
| [docs/INSTALL-GUIDE.md](docs/INSTALL-GUIDE.md) | インストールガイド |
|
|
907
|
+
| [docs/USER-GUIDE.md](docs/USER-GUIDE.md) | ユーザーガイド |
|
|
908
|
+
| [docs/API-REFERENCE.md](docs/API-REFERENCE.md) | APIリファレンス |
|
|
909
|
+
| [README.md](README.md) | 英語版README |
|
|
910
|
+
| [README.ja.md](README.ja.md) | 日本語版README |
|
|
911
|
+
|
|
912
|
+
---
|
|
913
|
+
|
|
914
|
+
## 🤝 AI Agent向けガイドライン
|
|
915
|
+
|
|
916
|
+
### コード生成時の注意点
|
|
917
|
+
|
|
918
|
+
1. **憲法条項の遵守**: 9条項を必ず確認
|
|
919
|
+
2. **steering/参照**: 決定前にproject memoryを確認
|
|
920
|
+
3. **EARS形式**: 要件は必ずEARS形式で記述
|
|
921
|
+
4. **トレーサビリティ**: コードコメントに要件IDを記載
|
|
922
|
+
5. **テスト先行**: Red-Green-Blueサイクルを遵守
|
|
923
|
+
6. **モノレポ構造**: パッケージ間の依存関係に注意
|
|
924
|
+
|
|
925
|
+
### 要件定義時の自動ヒアリング(v3.3.9 NEW!)
|
|
926
|
+
|
|
927
|
+
「○○の要件定義を開始」と依頼された場合、コンテキストが不足しているときは自動的にヒアリングを行います。
|
|
928
|
+
|
|
929
|
+
#### ヒアリングフロー
|
|
930
|
+
|
|
931
|
+
```
|
|
932
|
+
ユーザー: 「ログイン機能の要件定義を開始」
|
|
933
|
+
↓
|
|
934
|
+
AIエージェント: sdd_create_requirements(featureName: "login") を呼び出し
|
|
935
|
+
↓
|
|
936
|
+
MCPサーバー: needsClarification: true を返却
|
|
937
|
+
↓
|
|
938
|
+
AIエージェント: 以下の質問をユーザーに提示
|
|
939
|
+
```
|
|
940
|
+
|
|
941
|
+
#### 5つの核心質問
|
|
942
|
+
|
|
943
|
+
| # | 観点 | 質問 |
|
|
944
|
+
|---|------|------|
|
|
945
|
+
| 1 | **WHY** | この機能で解決したい「本当の課題」は何ですか? |
|
|
946
|
+
| 2 | **WHO** | この機能を最も必要としているのは誰ですか? |
|
|
947
|
+
| 3 | **WHAT-IF** | もしこの機能が完璧に動作したら、何が変わりますか? |
|
|
948
|
+
| 4 | **CONSTRAINT** | この機能で「絶対にやってはいけないこと」はありますか? |
|
|
949
|
+
| 5 | **SUCCESS** | この機能が「成功した」と言えるのはどんな状態ですか? |
|
|
950
|
+
|
|
951
|
+
#### 質問提示フォーマット
|
|
952
|
+
|
|
953
|
+
```
|
|
954
|
+
📋 要件を明確にするため、いくつか質問させてください:
|
|
955
|
+
|
|
956
|
+
1. この機能で解決したい「本当の課題」は何ですか?
|
|
957
|
+
2. この機能を最も必要としているのは誰ですか?
|
|
958
|
+
3. もしこの機能が完璧に動作したら、何が変わりますか?
|
|
959
|
+
4. この機能で「絶対にやってはいけないこと」はありますか?
|
|
960
|
+
5. この機能が「成功した」と言えるのはどんな状態ですか?
|
|
961
|
+
|
|
962
|
+
回答をお願いします。
|
|
963
|
+
```
|
|
964
|
+
|
|
965
|
+
#### コンテキスト収集後の再呼び出し
|
|
966
|
+
|
|
967
|
+
```typescript
|
|
968
|
+
// ユーザーが回答を提供した後
|
|
969
|
+
sdd_create_requirements({
|
|
970
|
+
projectName: "MyProject",
|
|
971
|
+
featureName: "login",
|
|
972
|
+
context: {
|
|
973
|
+
purpose: "ログイン処理を簡素化し、UXを向上させる",
|
|
974
|
+
targetUser: "一般ユーザー(技術レベル:初〜中級)",
|
|
975
|
+
successState: "2秒以内にログイン完了、エラー率1%未満",
|
|
976
|
+
constraints: "パスワードを平文で保存しない、ログイン試行回数制限",
|
|
977
|
+
successCriteria: "ログイン成功率99%以上、平均ログイン時間2秒以下",
|
|
978
|
+
},
|
|
979
|
+
})
|
|
980
|
+
```
|
|
981
|
+
|
|
982
|
+
#### コンテキスト充足度レベル
|
|
983
|
+
|
|
984
|
+
| レベル | 条件 | アクション |
|
|
985
|
+
|--------|------|-----------|
|
|
986
|
+
| **complete** | 5つの質問すべてに回答あり | 要件生成を開始 |
|
|
987
|
+
| **partial** | 2-4つの質問に回答あり | 不足分の質問を返す |
|
|
988
|
+
| **minimal** | 0-1つの質問に回答あり | 5つの核心質問すべてを返す |
|
|
989
|
+
|
|
990
|
+
### 推奨ワークフロー
|
|
991
|
+
|
|
992
|
+
> **⚠️ 重要ルール**: Phase 1〜3(要件定義・設計・タスク分解)は、**レビュー結果をユーザーに表示し、修正か次ステップかを確認すること**。ユーザーから明示的な承認を得るまで次フェーズに進んではならない。
|
|
993
|
+
>
|
|
994
|
+
> **🚫 絶対禁止**: **設計(Phase 2)から直接実装(Phase 4)に進むことは禁止**。必ずタスク分解(Phase 3)を経ること。タスク分解なしでの実装開始は憲法違反とみなす。
|
|
995
|
+
|
|
996
|
+
```
|
|
997
|
+
【Phase 1: 要件定義】
|
|
998
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
999
|
+
│ 1. steering/ を読む │
|
|
1000
|
+
│ 2. 要件定義書を作成(EARS形式) │
|
|
1001
|
+
│ 3. ユーザーに提示 │
|
|
1002
|
+
│ │
|
|
1003
|
+
│ 4. セルフレビュー実施 │
|
|
1004
|
+
│ - 既存実装との整合性チェック │
|
|
1005
|
+
│ - EARS形式の検証 │
|
|
1006
|
+
│ - 要件の網羅性・完全性確認 │
|
|
1007
|
+
│ │
|
|
1008
|
+
│ 5. レビュー結果を表示 │
|
|
1009
|
+
│ ┌───────────────────────────────────────────────────────┐│
|
|
1010
|
+
│ │ 📋 レビュー結果: ││
|
|
1011
|
+
│ │ ✅ EARS形式: 準拠 ││
|
|
1012
|
+
│ │ ✅ 優先度設定: 完了 ││
|
|
1013
|
+
│ │ ⚠️ 整合性: 既存REQ-XXXと重複の可能性あり ││
|
|
1014
|
+
│ │ ││
|
|
1015
|
+
│ │ 👉 修正しますか?それとも次に進みますか? ││
|
|
1016
|
+
│ │ - 「修正」→ 指摘箇所を修正して再提示 ││
|
|
1017
|
+
│ │ - 「承認」→ Phase 2(設計)へ進む ││
|
|
1018
|
+
│ └───────────────────────────────────────────────────────┘│
|
|
1019
|
+
│ │
|
|
1020
|
+
│ 6. ユーザー応答待ち │
|
|
1021
|
+
│ - 修正指示 → 修正して3へ戻る │
|
|
1022
|
+
│ - 承認 → Phase 2へ │
|
|
1023
|
+
└─────────────────────────────────────────────────────────────┘
|
|
1024
|
+
|
|
1025
|
+
【Phase 2: 設計】
|
|
1026
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
1027
|
+
│ 1. 設計書を作成(C4モデル) │
|
|
1028
|
+
│ 2. ユーザーに提示 │
|
|
1029
|
+
│ │
|
|
1030
|
+
│ 3. セルフレビュー実施 │
|
|
1031
|
+
│ - 既存実装との型・インターフェース整合性 │
|
|
1032
|
+
│ - 要件トレーサビリティ(REQ-* → DES-*) │
|
|
1033
|
+
│ - 設計パターン・SOLID原則の適用確認 │
|
|
1034
|
+
│ - 後方互換性・移行パスの確認 │
|
|
1035
|
+
│ │
|
|
1036
|
+
│ 4. レビュー結果を表示 │
|
|
1037
|
+
│ ┌───────────────────────────────────────────────────────┐│
|
|
1038
|
+
│ │ 📋 レビュー結果: ││
|
|
1039
|
+
│ │ ✅ トレーサビリティ: REQ-001→DES-001 完了 ││
|
|
1040
|
+
│ │ ✅ 型整合性: 既存インターフェースと互換 ││
|
|
1041
|
+
│ │ ✅ 設計パターン: Repository, Service適用 ││
|
|
1042
|
+
│ │ ││
|
|
1043
|
+
│ │ 👉 修正しますか?それとも次に進みますか? ││
|
|
1044
|
+
│ │ - 「修正」→ 指摘箇所を修正して再提示 ││
|
|
1045
|
+
│ │ - 「承認」→ Phase 3(タスク分解)へ進む ││
|
|
1046
|
+
│ │ ⚠️ 実装への直接遷移は禁止!必ずタスク分解を経る ││
|
|
1047
|
+
│ └───────────────────────────────────────────────────────┘│
|
|
1048
|
+
│ │
|
|
1049
|
+
│ 5. ユーザー応答待ち │
|
|
1050
|
+
│ - 修正指示 → 修正して2へ戻る │
|
|
1051
|
+
│ - 承認 → Phase 3へ(※Phase 4への直接遷移は禁止) │
|
|
1052
|
+
└─────────────────────────────────────────────────────────────┘
|
|
1053
|
+
|
|
1054
|
+
【Phase 3: タスク分解】⚠️ 必須フェーズ - スキップ禁止
|
|
1055
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
1056
|
+
│ 1. タスク分解書を作成(設計→実装タスク) │
|
|
1057
|
+
│ 2. ユーザーに提示 │
|
|
1058
|
+
│ │
|
|
1059
|
+
│ 3. セルフレビュー実施 │
|
|
1060
|
+
│ - 設計との対応確認(DES-* → TSK-*) │
|
|
1061
|
+
│ - タスクサイズの適切性 │
|
|
1062
|
+
│ - 依存関係・実行順序の妥当性 │
|
|
1063
|
+
│ - 工数見積もりの現実性 │
|
|
1064
|
+
│ │
|
|
1065
|
+
│ 4. レビュー結果を表示 │
|
|
1066
|
+
│ ┌───────────────────────────────────────────────────────┐│
|
|
1067
|
+
│ │ 📋 レビュー結果: ││
|
|
1068
|
+
│ │ ✅ トレーサビリティ: DES-001→TSK-001〜003 完了 ││
|
|
1069
|
+
│ │ ✅ タスクサイズ: 各2-4時間で適切 ││
|
|
1070
|
+
│ │ ✅ 依存関係: TSK-001→TSK-002→TSK-003 明確 ││
|
|
1071
|
+
│ │ ││
|
|
1072
|
+
│ │ 👉 修正しますか?それとも実装に進みますか? ││
|
|
1073
|
+
│ │ - 「修正」→ 指摘箇所を修正して再提示 ││
|
|
1074
|
+
│ │ - 「承認」→ Phase 4(実装)へ進む ││
|
|
1075
|
+
│ └───────────────────────────────────────────────────────┘│
|
|
1076
|
+
│ │
|
|
1077
|
+
│ 5. ユーザー応答待ち │
|
|
1078
|
+
│ - 修正指示 → 修正して2へ戻る │
|
|
1079
|
+
│ - 承認 → Phase 4へ │
|
|
1080
|
+
└─────────────────────────────────────────────────────────────┘
|
|
1081
|
+
|
|
1082
|
+
【Phase 4: 実装】⚠️ 前提条件: Phase 3(タスク分解)の承認が必須
|
|
1083
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
1084
|
+
│ ⛔ 開始前チェック: │
|
|
1085
|
+
│ □ Phase 3(タスク分解)が完了し、ユーザー承認済みか? │
|
|
1086
|
+
│ □ TSK-* が定義されているか? │
|
|
1087
|
+
│ → 未完了の場合、Phase 3に戻ること │
|
|
1088
|
+
│ │
|
|
1089
|
+
│ タスクごとに: │
|
|
1090
|
+
│ 1. テスト作成(Red) │
|
|
1091
|
+
│ 2. 実装(Green) │
|
|
1092
|
+
│ 3. リファクタリング(Blue) │
|
|
1093
|
+
│ 4. ユニットテスト実行・合格確認 │
|
|
1094
|
+
│ 5. 必要に応じて統合テスト │
|
|
1095
|
+
└─────────────────────────────────────────────────────────────┘
|
|
1096
|
+
|
|
1097
|
+
【Phase 5: 完了】
|
|
1098
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
1099
|
+
│ 1. CHANGELOG.md を更新 │
|
|
1100
|
+
│ 2. 必要に応じてその他ドキュメント更新 │
|
|
1101
|
+
│ 3. Git コミット・プッシュ │
|
|
1102
|
+
└─────────────────────────────────────────────────────────────┘
|
|
1103
|
+
```
|
|
1104
|
+
|
|
1105
|
+
### レビュー結果の表示フォーマット
|
|
1106
|
+
|
|
1107
|
+
各フェーズ終了時に以下の形式でレビュー結果を表示:
|
|
1108
|
+
|
|
1109
|
+
```
|
|
1110
|
+
📋 **レビュー結果**
|
|
1111
|
+
|
|
1112
|
+
| 観点 | 状態 | 詳細 |
|
|
1113
|
+
|------|------|------|
|
|
1114
|
+
| チェック項目1 | ✅ OK | 説明 |
|
|
1115
|
+
| チェック項目2 | ⚠️ 警告 | 要確認事項 |
|
|
1116
|
+
| チェック項目3 | ❌ NG | 修正が必要 |
|
|
1117
|
+
|
|
1118
|
+
👉 **次のアクションを選択してください:**
|
|
1119
|
+
- 「修正」/ 具体的な修正指示 → 修正して再提示
|
|
1120
|
+
- 「承認」/「OK」/「進める」 → 次フェーズへ
|
|
1121
|
+
```
|
|
1122
|
+
|
|
1123
|
+
### 承認キーワード
|
|
1124
|
+
|
|
1125
|
+
ユーザーが以下のキーワードを使用した場合、次フェーズへ進む:
|
|
1126
|
+
- `承認` / `approve` / `LGTM` / `進める` / `OK` / `実装`
|
|
1127
|
+
|
|
1128
|
+
> **⚠️ 注意**: 「実装」キーワードが使われても、**現在のフェーズがPhase 2(設計)の場合は、必ずPhase 3(タスク分解)を先に実行すること**。タスク分解をスキップして実装に進むことは禁止されている。
|
|
1129
|
+
|
|
1130
|
+
---
|
|
1131
|
+
|
|
1132
|
+
**Agent**: GitHub Copilot / Claude
|
|
1133
|
+
**Last Updated**: 2026-01-11
|
|
1134
|
+
**Version**: 3.0.0
|