@nahisaho/musubix-core 1.6.2 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +42 -9
- package/dist/cli/commands/design.d.ts.map +1 -1
- package/dist/cli/commands/design.js +54 -1
- package/dist/cli/commands/design.js.map +1 -1
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +15 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/kgpr.d.ts +14 -0
- package/dist/cli/commands/kgpr.d.ts.map +1 -0
- package/dist/cli/commands/kgpr.js +464 -0
- package/dist/cli/commands/kgpr.js.map +1 -0
- package/dist/cli/commands/learn.d.ts.map +1 -1
- package/dist/cli/commands/learn.js +533 -0
- package/dist/cli/commands/learn.js.map +1 -1
- package/dist/cli/commands/requirements.d.ts.map +1 -1
- package/dist/cli/commands/requirements.js +57 -1
- package/dist/cli/commands/requirements.js.map +1 -1
- package/dist/cli/commands/scaffold.d.ts +40 -0
- package/dist/cli/commands/scaffold.d.ts.map +1 -0
- package/dist/cli/commands/scaffold.js +881 -0
- package/dist/cli/commands/scaffold.js.map +1 -0
- package/dist/cli/commands/tasks.d.ts +50 -0
- package/dist/cli/commands/tasks.d.ts.map +1 -0
- package/dist/cli/commands/tasks.js +286 -0
- package/dist/cli/commands/tasks.js.map +1 -0
- package/dist/cli/commands/trace.d.ts.map +1 -1
- package/dist/cli/commands/trace.js +86 -8
- package/dist/cli/commands/trace.js.map +1 -1
- package/dist/cli/middleware/auto-learn.d.ts +98 -0
- package/dist/cli/middleware/auto-learn.d.ts.map +1 -0
- package/dist/cli/middleware/auto-learn.js +130 -0
- package/dist/cli/middleware/auto-learn.js.map +1 -0
- package/dist/cli/middleware/index.d.ts +8 -0
- package/dist/cli/middleware/index.d.ts.map +1 -0
- package/dist/cli/middleware/index.js +8 -0
- package/dist/cli/middleware/index.js.map +1 -0
- package/dist/codegen/__tests__/enhanced-generator.test.d.ts +9 -0
- package/dist/codegen/__tests__/enhanced-generator.test.d.ts.map +1 -0
- package/dist/codegen/__tests__/enhanced-generator.test.js +528 -0
- package/dist/codegen/__tests__/enhanced-generator.test.js.map +1 -0
- package/dist/codegen/enhanced-generator.d.ts +315 -0
- package/dist/codegen/enhanced-generator.d.ts.map +1 -0
- package/dist/codegen/enhanced-generator.js +1104 -0
- package/dist/codegen/enhanced-generator.js.map +1 -0
- package/dist/codegen/index.d.ts +2 -0
- package/dist/codegen/index.d.ts.map +1 -1
- package/dist/codegen/index.js +5 -0
- package/dist/codegen/index.js.map +1 -1
- package/dist/learning/inference/context-analyzer.d.ts +230 -0
- package/dist/learning/inference/context-analyzer.d.ts.map +1 -0
- package/dist/learning/inference/context-analyzer.js +365 -0
- package/dist/learning/inference/context-analyzer.js.map +1 -0
- package/dist/learning/inference/index.d.ts +4 -0
- package/dist/learning/inference/index.d.ts.map +1 -1
- package/dist/learning/inference/index.js +4 -0
- package/dist/learning/inference/index.js.map +1 -1
- package/dist/learning/inference/pattern-recommender.d.ts +263 -0
- package/dist/learning/inference/pattern-recommender.d.ts.map +1 -0
- package/dist/learning/inference/pattern-recommender.js +353 -0
- package/dist/learning/inference/pattern-recommender.js.map +1 -0
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
|
|
9
9
|
| 項目 | 詳細 |
|
|
10
10
|
|------|------|
|
|
11
|
-
| **バージョン** | 1.
|
|
11
|
+
| **バージョン** | 1.7.0 (YATA Platform Enhancements) |
|
|
12
12
|
| **言語** | TypeScript |
|
|
13
13
|
| **ランタイム** | Node.js >= 20.0.0 |
|
|
14
14
|
| **パッケージマネージャ** | npm >= 10.0.0 |
|
|
15
15
|
| **ビルドシステム** | モノレポ(npm workspaces) |
|
|
16
16
|
| **テストフレームワーク** | Vitest |
|
|
17
|
-
| **テスト数** |
|
|
17
|
+
| **テスト数** | 1386 (全合格) |
|
|
18
18
|
| **コンポーネント数** | 249 (62ドメイン対応) |
|
|
19
19
|
| **Agent Skills** | 12 (Claude Code対応) |
|
|
20
20
|
|
|
@@ -29,10 +29,13 @@ packages/
|
|
|
29
29
|
├── core/ # @nahisaho/musubix-core
|
|
30
30
|
├── mcp-server/ # @nahisaho/musubix-mcp-server
|
|
31
31
|
├── yata-client/ # @nahisaho/musubix-yata-client
|
|
32
|
-
├──
|
|
33
|
-
├──
|
|
34
|
-
├──
|
|
35
|
-
|
|
32
|
+
├── yata-local/ # @nahisaho/yata-local
|
|
33
|
+
├── yata-global/ # @nahisaho/yata-global
|
|
34
|
+
├── yata-ui/ # @nahisaho/yata-ui (NEW!)
|
|
35
|
+
├── pattern-mcp/ # @nahisaho/musubix-pattern-mcp
|
|
36
|
+
├── ontology-mcp/ # @nahisaho/musubix-ontology-mcp
|
|
37
|
+
├── wake-sleep/ # @nahisaho/musubix-wake-sleep
|
|
38
|
+
└── sdd-ontology/ # @nahisaho/musubix-sdd-ontology
|
|
36
39
|
```
|
|
37
40
|
|
|
38
41
|
| パッケージ | npm | 役割 |
|
|
@@ -40,6 +43,9 @@ packages/
|
|
|
40
43
|
| `packages/core/` | `@nahisaho/musubix-core` | コアライブラリ - CLI、EARS検証、コード生成、設計パターン |
|
|
41
44
|
| `packages/mcp-server/` | `@nahisaho/musubix-mcp-server` | MCPサーバー - 19ツール、3プロンプト |
|
|
42
45
|
| `packages/yata-client/` | `@nahisaho/musubix-yata-client` | YATAクライアント - 知識グラフ連携 |
|
|
46
|
+
| `packages/yata-local/` | `@nahisaho/yata-local` | **YATA Local** - SQLiteベースローカル知識グラフ |
|
|
47
|
+
| `packages/yata-global/` | `@nahisaho/yata-global` | **YATA Global** - 分散型知識グラフプラットフォーム |
|
|
48
|
+
| `packages/yata-ui/` | `@nahisaho/yata-ui` | **YATA UI** - Web可視化・管理インターフェース (NEW!) |
|
|
43
49
|
| `packages/pattern-mcp/` | `@nahisaho/musubix-pattern-mcp` | パターン学習 - 抽出・圧縮・ライブラリ |
|
|
44
50
|
| `packages/ontology-mcp/` | `@nahisaho/musubix-ontology-mcp` | オントロジー - N3Store・推論エンジン |
|
|
45
51
|
| `packages/wake-sleep/` | `@nahisaho/musubix-wake-sleep` | Wake-Sleep学習サイクル |
|
|
@@ -96,8 +102,11 @@ npx musubix test coverage <dir> # カバレッジ測定
|
|
|
96
102
|
|
|
97
103
|
# トレーサビリティ
|
|
98
104
|
npx musubix trace matrix # トレーサビリティマトリクス
|
|
105
|
+
npx musubix trace matrix -p <project> # 指定プロジェクトのマトリクス
|
|
99
106
|
npx musubix trace impact <id> # 影響分析
|
|
100
107
|
npx musubix trace validate # リンク検証
|
|
108
|
+
npx musubix trace sync # トレースマトリクス自動更新 (v1.6.7 NEW!)
|
|
109
|
+
npx musubix trace sync --dry-run # プレビューのみ
|
|
101
110
|
|
|
102
111
|
# 説明生成
|
|
103
112
|
npx musubix explain why <id> # 決定理由の説明
|
|
@@ -126,6 +135,21 @@ npx musubix repl # 対話的シェルを起動
|
|
|
126
135
|
npx musubix repl --history <file> # カスタム履歴ファイル
|
|
127
136
|
npx musubix repl --no-color # 色なしモード
|
|
128
137
|
|
|
138
|
+
# KGPR - Knowledge Graph Pull Request (v1.6.4 NEW!)
|
|
139
|
+
npx musubix kgpr create -t "title" # KGPR作成
|
|
140
|
+
npx musubix kgpr diff # 差分プレビュー
|
|
141
|
+
npx musubix kgpr list # KGPR一覧
|
|
142
|
+
npx musubix kgpr submit <id> # KGPR送信
|
|
143
|
+
npx musubix kgpr show <id> # KGPR詳細表示
|
|
144
|
+
npx musubix kgpr close <id> # KGPRクローズ
|
|
145
|
+
# オプション: --namespace <ns>, --entity-types <types>, --privacy <strict|moderate|none>
|
|
146
|
+
|
|
147
|
+
# SDDプロジェクトスキャフォールド (v1.6.7 NEW!)
|
|
148
|
+
npx musubix scaffold domain-model <name> # DDDプロジェクト生成
|
|
149
|
+
npx musubix scaffold domain-model <name> -e "Entity1,Entity2" # エンティティ指定
|
|
150
|
+
npx musubix scaffold domain-model <name> -d DOMAIN # ドメイン接頭辞指定
|
|
151
|
+
npx musubix scaffold minimal <name> # 最小構成プロジェクト
|
|
152
|
+
|
|
129
153
|
# ヘルプ
|
|
130
154
|
npx musubix --help
|
|
131
155
|
npx musubix help <command>
|
|
@@ -142,7 +166,7 @@ npx @nahisaho/musubix-mcp-server
|
|
|
142
166
|
npx musubix-mcp --transport stdio
|
|
143
167
|
```
|
|
144
168
|
|
|
145
|
-
### ツール一覧(
|
|
169
|
+
### ツール一覧(24ツール)
|
|
146
170
|
|
|
147
171
|
#### SDD基本ツール(9ツール)
|
|
148
172
|
|
|
@@ -178,6 +202,16 @@ npx musubix-mcp --transport stdio
|
|
|
178
202
|
| `validate_triple` | 単一トリプルの事前検証 |
|
|
179
203
|
| `check_circular` | 循環依存の検出 |
|
|
180
204
|
|
|
205
|
+
#### KGPRツール(5ツール)- v1.6.4 NEW!
|
|
206
|
+
|
|
207
|
+
| ツール名 | 説明 |
|
|
208
|
+
|---------|------|
|
|
209
|
+
| `kgpr_create` | KGPR作成(ローカルKGからドラフト作成) |
|
|
210
|
+
| `kgpr_diff` | 差分プレビュー |
|
|
211
|
+
| `kgpr_list` | KGPR一覧表示 |
|
|
212
|
+
| `kgpr_submit` | KGPR送信(レビュー用) |
|
|
213
|
+
| `kgpr_review` | KGPRレビュー(approve/changes_requested/commented) |
|
|
214
|
+
|
|
181
215
|
### プロンプト一覧(3プロンプト)
|
|
182
216
|
|
|
183
217
|
| プロンプト名 | 説明 |
|
|
@@ -488,5 +522,4 @@ npx musubix learn best-practices --format markdown
|
|
|
488
522
|
|
|
489
523
|
**Agent**: GitHub Copilot / Claude
|
|
490
524
|
**Last Updated**: 2026-01-06
|
|
491
|
-
**Version**: 1.
|
|
492
|
-
**Repository**: https://github.com/nahisaho/MUSUBIX
|
|
525
|
+
**Version**: 1.6.4
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/design.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/design.ts"],"names":[],"mappings":"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"}
|
|
@@ -201,19 +201,72 @@ export function registerDesignCommand(program) {
|
|
|
201
201
|
.command('validate <file>')
|
|
202
202
|
.description('Validate SOLID compliance')
|
|
203
203
|
.option('--strict', 'Enable strict mode', false)
|
|
204
|
+
.option('--auto-learn', 'Auto-register to YATA Local', false)
|
|
205
|
+
.option('--db <path>', 'YATA Local database path', './.yata-local.db')
|
|
204
206
|
.action(async (file, options) => {
|
|
205
207
|
const globalOpts = getGlobalOptions(program);
|
|
208
|
+
const autoLearn = options.autoLearn || process.env.MUSUBIX_AUTO_LEARN === 'true';
|
|
206
209
|
try {
|
|
207
210
|
const filePath = resolve(process.cwd(), file);
|
|
208
211
|
const content = await readFile(filePath, 'utf-8');
|
|
209
212
|
const { violations, gaps } = validateDesign(content, options.strict ?? false);
|
|
213
|
+
// Auto-register to YATA Local if enabled
|
|
214
|
+
let yataLocalRegistered = 0;
|
|
215
|
+
if (autoLearn && violations.length === 0) {
|
|
216
|
+
try {
|
|
217
|
+
const yataLocalModule = await import('@nahisaho/yata-local');
|
|
218
|
+
const { createYataLocal } = yataLocalModule;
|
|
219
|
+
const yataLocal = createYataLocal({ path: options.db ?? './.yata-local.db' });
|
|
220
|
+
await yataLocal.open();
|
|
221
|
+
// Extract design document ID
|
|
222
|
+
const docIdMatch = content.match(/\*\*Document ID\*\*:\s*([\w-]+)/);
|
|
223
|
+
const docId = docIdMatch ? docIdMatch[1] : 'DES-UNKNOWN';
|
|
224
|
+
// Register document as entity
|
|
225
|
+
const docEntityId = await yataLocal.addEntity({
|
|
226
|
+
name: docId,
|
|
227
|
+
type: 'module',
|
|
228
|
+
namespace: 'project-management',
|
|
229
|
+
metadata: {
|
|
230
|
+
entityKind: 'DesignDocument',
|
|
231
|
+
filePath,
|
|
232
|
+
validatedAt: new Date().toISOString()
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
yataLocalRegistered++;
|
|
236
|
+
// Extract and register components
|
|
237
|
+
const componentPattern = /###\s+(\d+\.\d+(?:\.\d+)?)\s+([^\n]+)\n/g;
|
|
238
|
+
let match;
|
|
239
|
+
while ((match = componentPattern.exec(content)) !== null) {
|
|
240
|
+
const componentId = `COMP-${match[1].replace(/\./g, '-')}`;
|
|
241
|
+
const componentName = match[2].trim();
|
|
242
|
+
const compEntityId = await yataLocal.addEntity({
|
|
243
|
+
name: componentId,
|
|
244
|
+
type: 'class',
|
|
245
|
+
namespace: 'project-management',
|
|
246
|
+
metadata: {
|
|
247
|
+
entityKind: 'Component',
|
|
248
|
+
displayName: componentName,
|
|
249
|
+
parentDocument: docId,
|
|
250
|
+
},
|
|
251
|
+
});
|
|
252
|
+
// Add relationship to document
|
|
253
|
+
await yataLocal.addRelationship(compEntityId, docEntityId, 'contains', { relationKind: 'DEFINED_IN', createdAt: new Date().toISOString() });
|
|
254
|
+
yataLocalRegistered++;
|
|
255
|
+
}
|
|
256
|
+
await yataLocal.close();
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
// YATA Local not available, skip silently
|
|
260
|
+
}
|
|
261
|
+
}
|
|
210
262
|
const result = {
|
|
211
263
|
success: true,
|
|
212
264
|
valid: violations.length === 0 && gaps.length === 0,
|
|
213
265
|
solidViolations: violations,
|
|
214
266
|
traceabilityGaps: gaps,
|
|
215
267
|
message: violations.length === 0
|
|
216
|
-
? '✅ Design is SOLID compliant'
|
|
268
|
+
? '✅ Design is SOLID compliant' +
|
|
269
|
+
(yataLocalRegistered > 0 ? ` (${yataLocalRegistered} registered to YATA Local)` : '')
|
|
217
270
|
: `❌ Found ${violations.length} SOLID violations`,
|
|
218
271
|
};
|
|
219
272
|
outputResult(result, globalOpts);
|