musubi-sdd 5.0.0 → 5.6.1
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.ja.md +106 -48
- package/README.md +110 -32
- package/bin/musubi-analyze.js +74 -67
- package/bin/musubi-browser.js +27 -26
- package/bin/musubi-change.js +48 -47
- package/bin/musubi-checkpoint.js +10 -7
- package/bin/musubi-convert.js +25 -25
- package/bin/musubi-costs.js +27 -10
- package/bin/musubi-gui.js +52 -46
- package/bin/musubi-init.js +1952 -10
- package/bin/musubi-orchestrate.js +327 -239
- package/bin/musubi-remember.js +69 -56
- package/bin/musubi-resolve.js +53 -45
- package/bin/musubi-trace.js +51 -22
- package/bin/musubi-validate.js +39 -30
- package/bin/musubi-workflow.js +33 -34
- package/bin/musubi.js +39 -2
- package/package.json +1 -1
- package/src/agents/agent-loop.js +94 -95
- package/src/agents/agentic/code-generator.js +119 -109
- package/src/agents/agentic/code-reviewer.js +105 -108
- package/src/agents/agentic/index.js +4 -4
- package/src/agents/browser/action-executor.js +13 -13
- package/src/agents/browser/ai-comparator.js +11 -10
- package/src/agents/browser/context-manager.js +6 -6
- package/src/agents/browser/index.js +5 -5
- package/src/agents/browser/nl-parser.js +31 -46
- package/src/agents/browser/screenshot.js +2 -2
- package/src/agents/browser/test-generator.js +6 -4
- package/src/agents/function-tool.js +71 -65
- package/src/agents/index.js +7 -7
- package/src/agents/schema-generator.js +98 -94
- package/src/analyzers/ast-extractor.js +164 -145
- package/src/analyzers/codegraph-auto-update.js +858 -0
- package/src/analyzers/complexity-analyzer.js +536 -0
- package/src/analyzers/context-optimizer.js +247 -125
- package/src/analyzers/impact-analyzer.js +1 -1
- package/src/analyzers/large-project-analyzer.js +766 -0
- package/src/analyzers/repository-map.js +83 -80
- package/src/analyzers/security-analyzer.js +19 -11
- package/src/analyzers/stuck-detector.js +19 -17
- package/src/converters/index.js +78 -57
- package/src/converters/ir/types.js +12 -12
- package/src/converters/parsers/musubi-parser.js +134 -126
- package/src/converters/parsers/openapi-parser.js +70 -53
- package/src/converters/parsers/speckit-parser.js +239 -175
- package/src/converters/writers/musubi-writer.js +123 -118
- package/src/converters/writers/speckit-writer.js +124 -113
- package/src/generators/rust-migration-generator.js +512 -0
- package/src/gui/public/index.html +1365 -1211
- package/src/gui/server.js +41 -40
- package/src/gui/services/file-watcher.js +23 -8
- package/src/gui/services/project-scanner.js +26 -20
- package/src/gui/services/replanning-service.js +27 -23
- package/src/gui/services/traceability-service.js +8 -8
- package/src/gui/services/workflow-service.js +14 -7
- package/src/index.js +151 -0
- package/src/integrations/cicd.js +90 -104
- package/src/integrations/codegraph-mcp.js +643 -0
- package/src/integrations/documentation.js +142 -103
- package/src/integrations/examples.js +95 -80
- package/src/integrations/github-client.js +17 -17
- package/src/integrations/index.js +5 -5
- package/src/integrations/mcp/index.js +21 -21
- package/src/integrations/mcp/mcp-context-provider.js +76 -78
- package/src/integrations/mcp/mcp-discovery.js +74 -72
- package/src/integrations/mcp/mcp-tool-registry.js +99 -94
- package/src/integrations/mcp-connector.js +70 -66
- package/src/integrations/platforms.js +50 -49
- package/src/integrations/tool-discovery.js +37 -31
- package/src/llm-providers/anthropic-provider.js +11 -11
- package/src/llm-providers/base-provider.js +16 -18
- package/src/llm-providers/copilot-provider.js +22 -19
- package/src/llm-providers/index.js +26 -25
- package/src/llm-providers/ollama-provider.js +11 -11
- package/src/llm-providers/openai-provider.js +12 -12
- package/src/managers/agent-memory.js +36 -24
- package/src/managers/checkpoint-manager.js +4 -8
- package/src/managers/delta-spec.js +19 -19
- package/src/managers/index.js +13 -4
- package/src/managers/memory-condenser.js +35 -45
- package/src/managers/repo-skill-manager.js +57 -31
- package/src/managers/skill-loader.js +25 -22
- package/src/managers/skill-tools.js +36 -72
- package/src/managers/workflow.js +30 -22
- package/src/monitoring/cost-tracker.js +53 -44
- package/src/monitoring/incident-manager.js +123 -103
- package/src/monitoring/index.js +144 -134
- package/src/monitoring/observability.js +82 -59
- package/src/monitoring/quality-dashboard.js +51 -39
- package/src/monitoring/release-manager.js +70 -50
- package/src/orchestration/agent-skill-binding.js +39 -47
- package/src/orchestration/error-handler.js +65 -107
- package/src/orchestration/guardrails/base-guardrail.js +26 -24
- package/src/orchestration/guardrails/guardrail-rules.js +50 -64
- package/src/orchestration/guardrails/index.js +5 -5
- package/src/orchestration/guardrails/input-guardrail.js +58 -45
- package/src/orchestration/guardrails/output-guardrail.js +104 -81
- package/src/orchestration/guardrails/safety-check.js +79 -79
- package/src/orchestration/index.js +38 -55
- package/src/orchestration/mcp-tool-adapters.js +96 -99
- package/src/orchestration/orchestration-engine.js +21 -21
- package/src/orchestration/pattern-registry.js +60 -45
- package/src/orchestration/patterns/auto.js +34 -47
- package/src/orchestration/patterns/group-chat.js +59 -65
- package/src/orchestration/patterns/handoff.js +67 -65
- package/src/orchestration/patterns/human-in-loop.js +51 -72
- package/src/orchestration/patterns/nested.js +25 -40
- package/src/orchestration/patterns/sequential.js +35 -34
- package/src/orchestration/patterns/swarm.js +63 -56
- package/src/orchestration/patterns/triage.js +150 -109
- package/src/orchestration/reasoning/index.js +9 -9
- package/src/orchestration/reasoning/planning-engine.js +143 -140
- package/src/orchestration/reasoning/reasoning-engine.js +206 -144
- package/src/orchestration/reasoning/self-correction.js +121 -128
- package/src/orchestration/replanning/adaptive-goal-modifier.js +107 -112
- package/src/orchestration/replanning/alternative-generator.js +37 -42
- package/src/orchestration/replanning/config.js +63 -59
- package/src/orchestration/replanning/goal-progress-tracker.js +98 -100
- package/src/orchestration/replanning/index.js +24 -20
- package/src/orchestration/replanning/plan-evaluator.js +49 -50
- package/src/orchestration/replanning/plan-monitor.js +32 -28
- package/src/orchestration/replanning/proactive-path-optimizer.js +175 -178
- package/src/orchestration/replanning/replan-history.js +33 -26
- package/src/orchestration/replanning/replanning-engine.js +106 -108
- package/src/orchestration/skill-executor.js +107 -109
- package/src/orchestration/skill-registry.js +85 -89
- package/src/orchestration/workflow-examples.js +228 -231
- package/src/orchestration/workflow-executor.js +65 -68
- package/src/orchestration/workflow-orchestrator.js +72 -73
- package/src/phase4-integration.js +47 -40
- package/src/phase5-integration.js +89 -30
- package/src/reporters/coverage-report.js +82 -30
- package/src/reporters/hierarchical-reporter.js +498 -0
- package/src/reporters/traceability-matrix-report.js +29 -20
- package/src/resolvers/issue-resolver.js +43 -31
- package/src/steering/advanced-validation.js +133 -124
- package/src/steering/auto-updater.js +60 -73
- package/src/steering/index.js +6 -6
- package/src/steering/quality-metrics.js +41 -35
- package/src/steering/steering-auto-update.js +83 -86
- package/src/steering/steering-validator.js +98 -106
- package/src/steering/template-constraints.js +53 -54
- package/src/templates/agents/claude-code/CLAUDE.md +32 -32
- package/src/templates/agents/claude-code/skills/agent-assistant/SKILL.md +13 -5
- package/src/templates/agents/claude-code/skills/ai-ml-engineer/mlops-guide.md +23 -23
- package/src/templates/agents/claude-code/skills/ai-ml-engineer/model-card-template.md +60 -41
- package/src/templates/agents/claude-code/skills/api-designer/api-patterns.md +27 -19
- package/src/templates/agents/claude-code/skills/api-designer/openapi-template.md +11 -7
- package/src/templates/agents/claude-code/skills/bug-hunter/SKILL.md +4 -3
- package/src/templates/agents/claude-code/skills/bug-hunter/root-cause-analysis.md +37 -15
- package/src/templates/agents/claude-code/skills/change-impact-analyzer/dependency-graph-patterns.md +36 -42
- package/src/templates/agents/claude-code/skills/change-impact-analyzer/impact-analysis-template.md +69 -60
- package/src/templates/agents/claude-code/skills/cloud-architect/aws-patterns.md +31 -38
- package/src/templates/agents/claude-code/skills/cloud-architect/azure-patterns.md +28 -23
- package/src/templates/agents/claude-code/skills/code-reviewer/SKILL.md +61 -0
- package/src/templates/agents/claude-code/skills/code-reviewer/best-practices.md +27 -0
- package/src/templates/agents/claude-code/skills/code-reviewer/review-checklist.md +29 -10
- package/src/templates/agents/claude-code/skills/code-reviewer/review-standards.md +29 -24
- package/src/templates/agents/claude-code/skills/constitution-enforcer/SKILL.md +8 -6
- package/src/templates/agents/claude-code/skills/constitution-enforcer/constitutional-articles.md +62 -26
- package/src/templates/agents/claude-code/skills/constitution-enforcer/phase-minus-one-gates.md +35 -16
- package/src/templates/agents/claude-code/skills/database-administrator/backup-recovery.md +27 -17
- package/src/templates/agents/claude-code/skills/database-administrator/tuning-guide.md +25 -20
- package/src/templates/agents/claude-code/skills/database-schema-designer/schema-patterns.md +39 -22
- package/src/templates/agents/claude-code/skills/devops-engineer/ci-cd-templates.md +25 -22
- package/src/templates/agents/claude-code/skills/issue-resolver/SKILL.md +24 -21
- package/src/templates/agents/claude-code/skills/orchestrator/SKILL.md +148 -63
- package/src/templates/agents/claude-code/skills/orchestrator/patterns.md +35 -16
- package/src/templates/agents/claude-code/skills/orchestrator/selection-matrix.md +69 -64
- package/src/templates/agents/claude-code/skills/performance-engineer/optimization-playbook.md +47 -47
- package/src/templates/agents/claude-code/skills/performance-optimizer/SKILL.md +69 -0
- package/src/templates/agents/claude-code/skills/performance-optimizer/benchmark-template.md +63 -45
- package/src/templates/agents/claude-code/skills/performance-optimizer/optimization-patterns.md +33 -35
- package/src/templates/agents/claude-code/skills/project-manager/SKILL.md +7 -6
- package/src/templates/agents/claude-code/skills/project-manager/agile-ceremonies.md +47 -28
- package/src/templates/agents/claude-code/skills/project-manager/project-templates.md +94 -78
- package/src/templates/agents/claude-code/skills/quality-assurance/SKILL.md +20 -17
- package/src/templates/agents/claude-code/skills/quality-assurance/qa-plan-template.md +63 -49
- package/src/templates/agents/claude-code/skills/release-coordinator/SKILL.md +5 -5
- package/src/templates/agents/claude-code/skills/release-coordinator/feature-flag-guide.md +30 -26
- package/src/templates/agents/claude-code/skills/release-coordinator/release-plan-template.md +67 -35
- package/src/templates/agents/claude-code/skills/requirements-analyst/ears-format.md +54 -42
- package/src/templates/agents/claude-code/skills/requirements-analyst/validation-rules.md +36 -33
- package/src/templates/agents/claude-code/skills/security-auditor/SKILL.md +77 -19
- package/src/templates/agents/claude-code/skills/security-auditor/audit-checklists.md +24 -24
- package/src/templates/agents/claude-code/skills/security-auditor/owasp-top-10.md +61 -20
- package/src/templates/agents/claude-code/skills/security-auditor/vulnerability-patterns.md +43 -11
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/SKILL.md +1 -0
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/incident-response-template.md +55 -25
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/observability-patterns.md +78 -68
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/slo-sli-guide.md +73 -53
- package/src/templates/agents/claude-code/skills/software-developer/solid-principles.md +83 -37
- package/src/templates/agents/claude-code/skills/software-developer/test-first-workflow.md +38 -31
- package/src/templates/agents/claude-code/skills/steering/SKILL.md +1 -0
- package/src/templates/agents/claude-code/skills/steering/auto-update-rules.md +31 -0
- package/src/templates/agents/claude-code/skills/system-architect/adr-template.md +25 -7
- package/src/templates/agents/claude-code/skills/system-architect/c4-model-guide.md +74 -61
- package/src/templates/agents/claude-code/skills/technical-writer/doc-templates/documentation-templates.md +70 -52
- package/src/templates/agents/claude-code/skills/test-engineer/SKILL.md +2 -0
- package/src/templates/agents/claude-code/skills/test-engineer/ears-test-mapping.md +75 -71
- package/src/templates/agents/claude-code/skills/test-engineer/test-types.md +85 -63
- package/src/templates/agents/claude-code/skills/traceability-auditor/coverage-matrix-template.md +39 -36
- package/src/templates/agents/claude-code/skills/traceability-auditor/gap-detection-rules.md +22 -17
- package/src/templates/agents/claude-code/skills/ui-ux-designer/SKILL.md +1 -0
- package/src/templates/agents/claude-code/skills/ui-ux-designer/accessibility-guidelines.md +49 -75
- package/src/templates/agents/claude-code/skills/ui-ux-designer/design-system-components.md +71 -59
- package/src/templates/agents/codex/AGENTS.md +74 -42
- package/src/templates/agents/cursor/AGENTS.md +74 -42
- package/src/templates/agents/gemini-cli/GEMINI.md +74 -42
- package/src/templates/agents/github-copilot/AGENTS.md +83 -51
- package/src/templates/agents/qwen-code/QWEN.md +74 -42
- package/src/templates/agents/windsurf/AGENTS.md +74 -42
- package/src/templates/architectures/README.md +41 -0
- package/src/templates/architectures/clean-architecture/README.md +113 -0
- package/src/templates/architectures/event-driven/README.md +162 -0
- package/src/templates/architectures/hexagonal/README.md +130 -0
- package/src/templates/index.js +6 -1
- package/src/templates/locale-manager.js +16 -16
- package/src/templates/shared/delta-spec-template.md +20 -13
- package/src/templates/shared/github-actions/musubi-issue-resolver.yml +5 -5
- package/src/templates/shared/github-actions/musubi-security-check.yml +3 -3
- package/src/templates/shared/github-actions/musubi-validate.yml +4 -4
- package/src/templates/shared/steering/structure.md +95 -0
- package/src/templates/skills/browser-agent.md +21 -16
- package/src/templates/skills/web-gui.md +8 -0
- package/src/templates/template-constraints.js +50 -53
- package/src/validators/advanced-validation.js +30 -36
- package/src/validators/constitutional-validator.js +77 -73
- package/src/validators/critic-system.js +49 -59
- package/src/validators/delta-format.js +59 -55
- package/src/validators/traceability-validator.js +7 -11
|
@@ -24,7 +24,7 @@ class ReplanHistory {
|
|
|
24
24
|
maxEvents: 1000,
|
|
25
25
|
persist: false,
|
|
26
26
|
filePath: 'storage/replanning-history.json',
|
|
27
|
-
...options.config
|
|
27
|
+
...options.config,
|
|
28
28
|
};
|
|
29
29
|
this.events = [];
|
|
30
30
|
this.snapshots = new Map();
|
|
@@ -33,7 +33,7 @@ class ReplanHistory {
|
|
|
33
33
|
successfulReplans: 0,
|
|
34
34
|
failedReplans: 0,
|
|
35
35
|
byTrigger: {},
|
|
36
|
-
byDecision: {}
|
|
36
|
+
byDecision: {},
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
|
|
@@ -48,7 +48,7 @@ class ReplanHistory {
|
|
|
48
48
|
...event,
|
|
49
49
|
id: event.id || this.generateEventId(),
|
|
50
50
|
timestamp: event.timestamp || Date.now(),
|
|
51
|
-
version: 1
|
|
51
|
+
version: 1,
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
// Add to events list
|
|
@@ -82,7 +82,7 @@ class ReplanHistory {
|
|
|
82
82
|
timestamp: Date.now(),
|
|
83
83
|
reason,
|
|
84
84
|
plan: JSON.parse(JSON.stringify(plan)), // Deep clone
|
|
85
|
-
version: snapshots.length + 1
|
|
85
|
+
version: snapshots.length + 1,
|
|
86
86
|
});
|
|
87
87
|
this.snapshots.set(planId, snapshots);
|
|
88
88
|
}
|
|
@@ -154,10 +154,11 @@ class ReplanHistory {
|
|
|
154
154
|
getMetrics() {
|
|
155
155
|
return {
|
|
156
156
|
...this.metrics,
|
|
157
|
-
successRate:
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
157
|
+
successRate:
|
|
158
|
+
this.metrics.totalReplans > 0
|
|
159
|
+
? this.metrics.successfulReplans / this.metrics.totalReplans
|
|
160
|
+
: 0,
|
|
161
|
+
eventCount: this.events.length,
|
|
161
162
|
};
|
|
162
163
|
}
|
|
163
164
|
|
|
@@ -187,13 +188,17 @@ Generated: ${new Date().toISOString()}
|
|
|
187
188
|
|
|
188
189
|
| Trigger | Count |
|
|
189
190
|
|---------|-------|
|
|
190
|
-
${Object.entries(metrics.byTrigger)
|
|
191
|
+
${Object.entries(metrics.byTrigger)
|
|
192
|
+
.map(([k, v]) => `| ${k} | ${v} |`)
|
|
193
|
+
.join('\n')}
|
|
191
194
|
|
|
192
195
|
## Decisions Distribution
|
|
193
196
|
|
|
194
197
|
| Decision | Count |
|
|
195
198
|
|----------|-------|
|
|
196
|
-
${Object.entries(metrics.byDecision)
|
|
199
|
+
${Object.entries(metrics.byDecision)
|
|
200
|
+
.map(([k, v]) => `| ${k} | ${v} |`)
|
|
201
|
+
.join('\n')}
|
|
197
202
|
|
|
198
203
|
## Events
|
|
199
204
|
|
|
@@ -247,12 +252,16 @@ ${Object.entries(metrics.byDecision).map(([k, v]) => `| ${k} | ${v} |`).join('\n
|
|
|
247
252
|
const events = this.getEvents(options.filter || {});
|
|
248
253
|
const metrics = this.getMetrics();
|
|
249
254
|
|
|
250
|
-
return JSON.stringify(
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
255
|
+
return JSON.stringify(
|
|
256
|
+
{
|
|
257
|
+
exportTime: Date.now(),
|
|
258
|
+
metrics,
|
|
259
|
+
events,
|
|
260
|
+
snapshots: Object.fromEntries(this.snapshots),
|
|
261
|
+
},
|
|
262
|
+
null,
|
|
263
|
+
2
|
|
264
|
+
);
|
|
256
265
|
}
|
|
257
266
|
|
|
258
267
|
/**
|
|
@@ -262,11 +271,11 @@ ${Object.entries(metrics.byDecision).map(([k, v]) => `| ${k} | ${v} |`).join('\n
|
|
|
262
271
|
importJSON(json) {
|
|
263
272
|
try {
|
|
264
273
|
const data = JSON.parse(json);
|
|
265
|
-
|
|
274
|
+
|
|
266
275
|
if (data.events) {
|
|
267
276
|
this.events = data.events;
|
|
268
277
|
}
|
|
269
|
-
|
|
278
|
+
|
|
270
279
|
if (data.snapshots) {
|
|
271
280
|
this.snapshots = new Map(Object.entries(data.snapshots));
|
|
272
281
|
}
|
|
@@ -289,7 +298,7 @@ ${Object.entries(metrics.byDecision).map(([k, v]) => `| ${k} | ${v} |`).join('\n
|
|
|
289
298
|
successfulReplans: 0,
|
|
290
299
|
failedReplans: 0,
|
|
291
300
|
byTrigger: {},
|
|
292
|
-
byDecision: {}
|
|
301
|
+
byDecision: {},
|
|
293
302
|
};
|
|
294
303
|
}
|
|
295
304
|
|
|
@@ -309,14 +318,12 @@ ${Object.entries(metrics.byDecision).map(([k, v]) => `| ${k} | ${v} |`).join('\n
|
|
|
309
318
|
|
|
310
319
|
// Track by trigger
|
|
311
320
|
if (event.trigger) {
|
|
312
|
-
this.metrics.byTrigger[event.trigger] =
|
|
313
|
-
(this.metrics.byTrigger[event.trigger] || 0) + 1;
|
|
321
|
+
this.metrics.byTrigger[event.trigger] = (this.metrics.byTrigger[event.trigger] || 0) + 1;
|
|
314
322
|
}
|
|
315
323
|
|
|
316
324
|
// Track by decision
|
|
317
325
|
if (event.decision) {
|
|
318
|
-
this.metrics.byDecision[event.decision] =
|
|
319
|
-
(this.metrics.byDecision[event.decision] || 0) + 1;
|
|
326
|
+
this.metrics.byDecision[event.decision] = (this.metrics.byDecision[event.decision] || 0) + 1;
|
|
320
327
|
}
|
|
321
328
|
}
|
|
322
329
|
|
|
@@ -330,7 +337,7 @@ ${Object.entries(metrics.byDecision).map(([k, v]) => `| ${k} | ${v} |`).join('\n
|
|
|
330
337
|
successfulReplans: 0,
|
|
331
338
|
failedReplans: 0,
|
|
332
339
|
byTrigger: {},
|
|
333
|
-
byDecision: {}
|
|
340
|
+
byDecision: {},
|
|
334
341
|
};
|
|
335
342
|
|
|
336
343
|
for (const event of this.events) {
|
|
@@ -355,10 +362,10 @@ ${Object.entries(metrics.byDecision).map(([k, v]) => `| ${k} | ${v} |`).join('\n
|
|
|
355
362
|
try {
|
|
356
363
|
const filePath = path.resolve(this.config.filePath);
|
|
357
364
|
const dir = path.dirname(filePath);
|
|
358
|
-
|
|
365
|
+
|
|
359
366
|
// Ensure directory exists
|
|
360
367
|
await fs.mkdir(dir, { recursive: true });
|
|
361
|
-
|
|
368
|
+
|
|
362
369
|
// Write history
|
|
363
370
|
await fs.writeFile(filePath, this.exportJSON(), 'utf8');
|
|
364
371
|
} catch (error) {
|