musubi-sdd 5.1.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.
Files changed (232) hide show
  1. package/README.ja.md +106 -48
  2. package/README.md +110 -32
  3. package/bin/musubi-analyze.js +74 -67
  4. package/bin/musubi-browser.js +27 -26
  5. package/bin/musubi-change.js +48 -47
  6. package/bin/musubi-checkpoint.js +10 -7
  7. package/bin/musubi-convert.js +25 -25
  8. package/bin/musubi-costs.js +27 -10
  9. package/bin/musubi-gui.js +52 -46
  10. package/bin/musubi-init.js +1952 -10
  11. package/bin/musubi-orchestrate.js +327 -239
  12. package/bin/musubi-remember.js +69 -56
  13. package/bin/musubi-resolve.js +53 -45
  14. package/bin/musubi-trace.js +51 -22
  15. package/bin/musubi-validate.js +39 -30
  16. package/bin/musubi-workflow.js +33 -34
  17. package/bin/musubi.js +39 -2
  18. package/package.json +1 -1
  19. package/src/agents/agent-loop.js +94 -95
  20. package/src/agents/agentic/code-generator.js +119 -109
  21. package/src/agents/agentic/code-reviewer.js +105 -108
  22. package/src/agents/agentic/index.js +4 -4
  23. package/src/agents/browser/action-executor.js +13 -13
  24. package/src/agents/browser/ai-comparator.js +11 -10
  25. package/src/agents/browser/context-manager.js +6 -6
  26. package/src/agents/browser/index.js +5 -5
  27. package/src/agents/browser/nl-parser.js +31 -46
  28. package/src/agents/browser/screenshot.js +2 -2
  29. package/src/agents/browser/test-generator.js +6 -4
  30. package/src/agents/function-tool.js +71 -65
  31. package/src/agents/index.js +7 -7
  32. package/src/agents/schema-generator.js +98 -94
  33. package/src/analyzers/ast-extractor.js +158 -146
  34. package/src/analyzers/codegraph-auto-update.js +858 -0
  35. package/src/analyzers/complexity-analyzer.js +536 -0
  36. package/src/analyzers/context-optimizer.js +241 -126
  37. package/src/analyzers/impact-analyzer.js +1 -1
  38. package/src/analyzers/large-project-analyzer.js +766 -0
  39. package/src/analyzers/repository-map.js +77 -81
  40. package/src/analyzers/security-analyzer.js +19 -11
  41. package/src/analyzers/stuck-detector.js +19 -17
  42. package/src/converters/index.js +78 -57
  43. package/src/converters/ir/types.js +12 -12
  44. package/src/converters/parsers/musubi-parser.js +134 -126
  45. package/src/converters/parsers/openapi-parser.js +70 -53
  46. package/src/converters/parsers/speckit-parser.js +239 -175
  47. package/src/converters/writers/musubi-writer.js +123 -118
  48. package/src/converters/writers/speckit-writer.js +124 -113
  49. package/src/generators/rust-migration-generator.js +512 -0
  50. package/src/gui/public/index.html +1365 -1211
  51. package/src/gui/server.js +41 -40
  52. package/src/gui/services/file-watcher.js +23 -8
  53. package/src/gui/services/project-scanner.js +26 -20
  54. package/src/gui/services/replanning-service.js +27 -23
  55. package/src/gui/services/traceability-service.js +8 -8
  56. package/src/gui/services/workflow-service.js +14 -7
  57. package/src/index.js +151 -0
  58. package/src/integrations/cicd.js +90 -104
  59. package/src/integrations/codegraph-mcp.js +643 -0
  60. package/src/integrations/documentation.js +142 -103
  61. package/src/integrations/examples.js +95 -80
  62. package/src/integrations/github-client.js +17 -17
  63. package/src/integrations/index.js +5 -5
  64. package/src/integrations/mcp/index.js +21 -21
  65. package/src/integrations/mcp/mcp-context-provider.js +76 -78
  66. package/src/integrations/mcp/mcp-discovery.js +74 -72
  67. package/src/integrations/mcp/mcp-tool-registry.js +99 -94
  68. package/src/integrations/mcp-connector.js +70 -66
  69. package/src/integrations/platforms.js +50 -49
  70. package/src/integrations/tool-discovery.js +37 -31
  71. package/src/llm-providers/anthropic-provider.js +11 -11
  72. package/src/llm-providers/base-provider.js +16 -18
  73. package/src/llm-providers/copilot-provider.js +22 -19
  74. package/src/llm-providers/index.js +26 -25
  75. package/src/llm-providers/ollama-provider.js +11 -11
  76. package/src/llm-providers/openai-provider.js +12 -12
  77. package/src/managers/agent-memory.js +36 -24
  78. package/src/managers/checkpoint-manager.js +4 -8
  79. package/src/managers/delta-spec.js +19 -19
  80. package/src/managers/index.js +13 -4
  81. package/src/managers/memory-condenser.js +35 -45
  82. package/src/managers/repo-skill-manager.js +57 -31
  83. package/src/managers/skill-loader.js +25 -22
  84. package/src/managers/skill-tools.js +36 -72
  85. package/src/managers/workflow.js +30 -22
  86. package/src/monitoring/cost-tracker.js +48 -46
  87. package/src/monitoring/incident-manager.js +116 -106
  88. package/src/monitoring/index.js +144 -134
  89. package/src/monitoring/observability.js +75 -62
  90. package/src/monitoring/quality-dashboard.js +45 -41
  91. package/src/monitoring/release-manager.js +63 -53
  92. package/src/orchestration/agent-skill-binding.js +39 -47
  93. package/src/orchestration/error-handler.js +65 -107
  94. package/src/orchestration/guardrails/base-guardrail.js +26 -24
  95. package/src/orchestration/guardrails/guardrail-rules.js +50 -64
  96. package/src/orchestration/guardrails/index.js +5 -5
  97. package/src/orchestration/guardrails/input-guardrail.js +58 -45
  98. package/src/orchestration/guardrails/output-guardrail.js +104 -81
  99. package/src/orchestration/guardrails/safety-check.js +79 -79
  100. package/src/orchestration/index.js +38 -55
  101. package/src/orchestration/mcp-tool-adapters.js +96 -99
  102. package/src/orchestration/orchestration-engine.js +21 -21
  103. package/src/orchestration/pattern-registry.js +60 -45
  104. package/src/orchestration/patterns/auto.js +34 -47
  105. package/src/orchestration/patterns/group-chat.js +59 -65
  106. package/src/orchestration/patterns/handoff.js +67 -65
  107. package/src/orchestration/patterns/human-in-loop.js +51 -72
  108. package/src/orchestration/patterns/nested.js +25 -40
  109. package/src/orchestration/patterns/sequential.js +35 -34
  110. package/src/orchestration/patterns/swarm.js +63 -56
  111. package/src/orchestration/patterns/triage.js +150 -109
  112. package/src/orchestration/reasoning/index.js +9 -9
  113. package/src/orchestration/reasoning/planning-engine.js +143 -140
  114. package/src/orchestration/reasoning/reasoning-engine.js +206 -144
  115. package/src/orchestration/reasoning/self-correction.js +121 -128
  116. package/src/orchestration/replanning/adaptive-goal-modifier.js +107 -112
  117. package/src/orchestration/replanning/alternative-generator.js +37 -42
  118. package/src/orchestration/replanning/config.js +63 -59
  119. package/src/orchestration/replanning/goal-progress-tracker.js +98 -100
  120. package/src/orchestration/replanning/index.js +24 -20
  121. package/src/orchestration/replanning/plan-evaluator.js +49 -50
  122. package/src/orchestration/replanning/plan-monitor.js +32 -28
  123. package/src/orchestration/replanning/proactive-path-optimizer.js +175 -178
  124. package/src/orchestration/replanning/replan-history.js +33 -26
  125. package/src/orchestration/replanning/replanning-engine.js +106 -108
  126. package/src/orchestration/skill-executor.js +107 -109
  127. package/src/orchestration/skill-registry.js +85 -89
  128. package/src/orchestration/workflow-examples.js +228 -231
  129. package/src/orchestration/workflow-executor.js +65 -68
  130. package/src/orchestration/workflow-orchestrator.js +72 -73
  131. package/src/phase4-integration.js +47 -40
  132. package/src/phase5-integration.js +89 -30
  133. package/src/reporters/coverage-report.js +82 -30
  134. package/src/reporters/hierarchical-reporter.js +498 -0
  135. package/src/reporters/traceability-matrix-report.js +29 -20
  136. package/src/resolvers/issue-resolver.js +43 -31
  137. package/src/steering/advanced-validation.js +133 -124
  138. package/src/steering/auto-updater.js +60 -73
  139. package/src/steering/index.js +6 -6
  140. package/src/steering/quality-metrics.js +41 -35
  141. package/src/steering/steering-auto-update.js +83 -86
  142. package/src/steering/steering-validator.js +98 -106
  143. package/src/steering/template-constraints.js +53 -54
  144. package/src/templates/agents/claude-code/CLAUDE.md +32 -32
  145. package/src/templates/agents/claude-code/skills/agent-assistant/SKILL.md +13 -5
  146. package/src/templates/agents/claude-code/skills/ai-ml-engineer/mlops-guide.md +23 -23
  147. package/src/templates/agents/claude-code/skills/ai-ml-engineer/model-card-template.md +60 -41
  148. package/src/templates/agents/claude-code/skills/api-designer/api-patterns.md +27 -19
  149. package/src/templates/agents/claude-code/skills/api-designer/openapi-template.md +11 -7
  150. package/src/templates/agents/claude-code/skills/bug-hunter/SKILL.md +4 -3
  151. package/src/templates/agents/claude-code/skills/bug-hunter/root-cause-analysis.md +37 -15
  152. package/src/templates/agents/claude-code/skills/change-impact-analyzer/dependency-graph-patterns.md +36 -42
  153. package/src/templates/agents/claude-code/skills/change-impact-analyzer/impact-analysis-template.md +69 -60
  154. package/src/templates/agents/claude-code/skills/cloud-architect/aws-patterns.md +31 -38
  155. package/src/templates/agents/claude-code/skills/cloud-architect/azure-patterns.md +28 -23
  156. package/src/templates/agents/claude-code/skills/code-reviewer/SKILL.md +61 -0
  157. package/src/templates/agents/claude-code/skills/code-reviewer/best-practices.md +27 -0
  158. package/src/templates/agents/claude-code/skills/code-reviewer/review-checklist.md +29 -10
  159. package/src/templates/agents/claude-code/skills/code-reviewer/review-standards.md +29 -24
  160. package/src/templates/agents/claude-code/skills/constitution-enforcer/SKILL.md +8 -6
  161. package/src/templates/agents/claude-code/skills/constitution-enforcer/constitutional-articles.md +62 -26
  162. package/src/templates/agents/claude-code/skills/constitution-enforcer/phase-minus-one-gates.md +35 -16
  163. package/src/templates/agents/claude-code/skills/database-administrator/backup-recovery.md +27 -17
  164. package/src/templates/agents/claude-code/skills/database-administrator/tuning-guide.md +25 -20
  165. package/src/templates/agents/claude-code/skills/database-schema-designer/schema-patterns.md +39 -22
  166. package/src/templates/agents/claude-code/skills/devops-engineer/ci-cd-templates.md +25 -22
  167. package/src/templates/agents/claude-code/skills/issue-resolver/SKILL.md +24 -21
  168. package/src/templates/agents/claude-code/skills/orchestrator/SKILL.md +148 -63
  169. package/src/templates/agents/claude-code/skills/orchestrator/patterns.md +35 -16
  170. package/src/templates/agents/claude-code/skills/orchestrator/selection-matrix.md +69 -64
  171. package/src/templates/agents/claude-code/skills/performance-engineer/optimization-playbook.md +47 -47
  172. package/src/templates/agents/claude-code/skills/performance-optimizer/SKILL.md +69 -0
  173. package/src/templates/agents/claude-code/skills/performance-optimizer/benchmark-template.md +63 -45
  174. package/src/templates/agents/claude-code/skills/performance-optimizer/optimization-patterns.md +33 -35
  175. package/src/templates/agents/claude-code/skills/project-manager/SKILL.md +7 -6
  176. package/src/templates/agents/claude-code/skills/project-manager/agile-ceremonies.md +47 -28
  177. package/src/templates/agents/claude-code/skills/project-manager/project-templates.md +94 -78
  178. package/src/templates/agents/claude-code/skills/quality-assurance/SKILL.md +20 -17
  179. package/src/templates/agents/claude-code/skills/quality-assurance/qa-plan-template.md +63 -49
  180. package/src/templates/agents/claude-code/skills/release-coordinator/SKILL.md +5 -5
  181. package/src/templates/agents/claude-code/skills/release-coordinator/feature-flag-guide.md +30 -26
  182. package/src/templates/agents/claude-code/skills/release-coordinator/release-plan-template.md +67 -35
  183. package/src/templates/agents/claude-code/skills/requirements-analyst/ears-format.md +54 -42
  184. package/src/templates/agents/claude-code/skills/requirements-analyst/validation-rules.md +36 -33
  185. package/src/templates/agents/claude-code/skills/security-auditor/SKILL.md +77 -19
  186. package/src/templates/agents/claude-code/skills/security-auditor/audit-checklists.md +24 -24
  187. package/src/templates/agents/claude-code/skills/security-auditor/owasp-top-10.md +61 -20
  188. package/src/templates/agents/claude-code/skills/security-auditor/vulnerability-patterns.md +43 -11
  189. package/src/templates/agents/claude-code/skills/site-reliability-engineer/SKILL.md +1 -0
  190. package/src/templates/agents/claude-code/skills/site-reliability-engineer/incident-response-template.md +55 -25
  191. package/src/templates/agents/claude-code/skills/site-reliability-engineer/observability-patterns.md +78 -68
  192. package/src/templates/agents/claude-code/skills/site-reliability-engineer/slo-sli-guide.md +73 -53
  193. package/src/templates/agents/claude-code/skills/software-developer/solid-principles.md +83 -37
  194. package/src/templates/agents/claude-code/skills/software-developer/test-first-workflow.md +38 -31
  195. package/src/templates/agents/claude-code/skills/steering/SKILL.md +1 -0
  196. package/src/templates/agents/claude-code/skills/steering/auto-update-rules.md +31 -0
  197. package/src/templates/agents/claude-code/skills/system-architect/adr-template.md +25 -7
  198. package/src/templates/agents/claude-code/skills/system-architect/c4-model-guide.md +74 -61
  199. package/src/templates/agents/claude-code/skills/technical-writer/doc-templates/documentation-templates.md +70 -52
  200. package/src/templates/agents/claude-code/skills/test-engineer/SKILL.md +2 -0
  201. package/src/templates/agents/claude-code/skills/test-engineer/ears-test-mapping.md +75 -71
  202. package/src/templates/agents/claude-code/skills/test-engineer/test-types.md +85 -63
  203. package/src/templates/agents/claude-code/skills/traceability-auditor/coverage-matrix-template.md +39 -36
  204. package/src/templates/agents/claude-code/skills/traceability-auditor/gap-detection-rules.md +22 -17
  205. package/src/templates/agents/claude-code/skills/ui-ux-designer/SKILL.md +1 -0
  206. package/src/templates/agents/claude-code/skills/ui-ux-designer/accessibility-guidelines.md +49 -75
  207. package/src/templates/agents/claude-code/skills/ui-ux-designer/design-system-components.md +71 -59
  208. package/src/templates/agents/codex/AGENTS.md +74 -42
  209. package/src/templates/agents/cursor/AGENTS.md +74 -42
  210. package/src/templates/agents/gemini-cli/GEMINI.md +74 -42
  211. package/src/templates/agents/github-copilot/AGENTS.md +83 -51
  212. package/src/templates/agents/qwen-code/QWEN.md +74 -42
  213. package/src/templates/agents/windsurf/AGENTS.md +74 -42
  214. package/src/templates/architectures/README.md +41 -0
  215. package/src/templates/architectures/clean-architecture/README.md +113 -0
  216. package/src/templates/architectures/event-driven/README.md +162 -0
  217. package/src/templates/architectures/hexagonal/README.md +130 -0
  218. package/src/templates/index.js +6 -1
  219. package/src/templates/locale-manager.js +16 -16
  220. package/src/templates/shared/delta-spec-template.md +20 -13
  221. package/src/templates/shared/github-actions/musubi-issue-resolver.yml +5 -5
  222. package/src/templates/shared/github-actions/musubi-security-check.yml +3 -3
  223. package/src/templates/shared/github-actions/musubi-validate.yml +4 -4
  224. package/src/templates/shared/steering/structure.md +95 -0
  225. package/src/templates/skills/browser-agent.md +21 -16
  226. package/src/templates/skills/web-gui.md +8 -0
  227. package/src/templates/template-constraints.js +50 -53
  228. package/src/validators/advanced-validation.js +30 -36
  229. package/src/validators/constitutional-validator.js +77 -73
  230. package/src/validators/critic-system.js +49 -59
  231. package/src/validators/delta-format.js +59 -55
  232. package/src/validators/traceability-validator.js +7 -11
@@ -16,14 +16,15 @@ This document defines the validation rules for EARS requirements in MUSUBI SDD.
16
16
  def validate_unique_ids(requirements):
17
17
  ids = [req.id for req in requirements]
18
18
  duplicates = [id for id in ids if ids.count(id) > 1]
19
-
19
+
20
20
  if duplicates:
21
21
  FAIL(f"Duplicate requirement IDs: {duplicates}")
22
-
22
+
23
23
  PASS("All requirement IDs are unique")
24
24
  ```
25
25
 
26
26
  **Examples**:
27
+
27
28
  ```
28
29
  ✅ PASS: REQ-001, REQ-002, REQ-003
29
30
  ❌ FAIL: REQ-001, REQ-002, REQ-001 (duplicate)
@@ -48,7 +49,7 @@ def validate_ears_pattern(requirement):
48
49
  for pattern in EARS_PATTERNS:
49
50
  if re.match(pattern, requirement.text, re.IGNORECASE):
50
51
  return PASS(f"{requirement.id} follows EARS pattern")
51
-
52
+
52
53
  return FAIL(f"{requirement.id} does not follow EARS pattern")
53
54
  ```
54
55
 
@@ -66,11 +67,11 @@ FORBIDDEN_KEYWORDS = [
66
67
 
67
68
  def validate_no_ambiguous_keywords(requirement):
68
69
  text_lower = requirement.text.lower()
69
-
70
+
70
71
  for keyword in FORBIDDEN_KEYWORDS:
71
72
  if keyword in text_lower:
72
73
  FAIL(f"{requirement.id} contains ambiguous keyword: '{keyword}'")
73
-
74
+
74
75
  PASS(f"{requirement.id} has no ambiguous keywords")
75
76
  ```
76
77
 
@@ -87,7 +88,7 @@ def validate_mandatory_keywords(requirement):
87
88
  for keyword in REQUIRED_KEYWORDS:
88
89
  if keyword in requirement.text.upper():
89
90
  return PASS(f"{requirement.id} contains '{keyword}'")
90
-
91
+
91
92
  return FAIL(f"{requirement.id} missing SHALL or MUST")
92
93
  ```
93
94
 
@@ -108,7 +109,7 @@ def validate_atomic(requirement):
108
109
  for pattern in ATOMIC_VIOLATIONS:
109
110
  if re.search(pattern, requirement.text, re.IGNORECASE):
110
111
  WARN(f"{requirement.id} may not be atomic - consider splitting")
111
-
112
+
112
113
  PASS(f"{requirement.id} appears atomic")
113
114
  ```
114
115
 
@@ -131,11 +132,11 @@ MEASUREMENT_PATTERNS = [
131
132
  def validate_measurable(requirement):
132
133
  if not re.match(NF_REQUIREMENT_PATTERN, requirement.id):
133
134
  return PASS(f"{requirement.id} is functional requirement")
134
-
135
+
135
136
  for pattern in MEASUREMENT_PATTERNS:
136
137
  if re.search(pattern, requirement.text):
137
138
  return PASS(f"{requirement.id} has measurable criteria")
138
-
139
+
139
140
  return WARN(f"{requirement.id} (non-functional) may lack measurable criteria")
140
141
  ```
141
142
 
@@ -160,7 +161,7 @@ def validate_testable(requirement):
160
161
  for pattern in UNTESTABLE_PATTERNS:
161
162
  if re.search(pattern, requirement.text, re.IGNORECASE):
162
163
  WARN(f"{requirement.id} contains vague term '{pattern}' - make testable")
163
-
164
+
164
165
  PASS(f"{requirement.id} appears testable")
165
166
  ```
166
167
 
@@ -185,7 +186,7 @@ def validate_no_implementation(requirement):
185
186
  for pattern in IMPLEMENTATION_PATTERNS:
186
187
  if re.search(pattern, requirement.text):
187
188
  WARN(f"{requirement.id} contains implementation detail: '{pattern}'")
188
-
189
+
189
190
  PASS(f"{requirement.id} appears technology-agnostic")
190
191
  ```
191
192
 
@@ -205,7 +206,7 @@ def validate_terminology(requirements, glossary):
205
206
  for synonym in synonyms:
206
207
  if synonym in req.text and term not in req.text:
207
208
  WARN(f"{req.id}: Use '{term}' instead of '{synonym}'")
208
-
209
+
209
210
  PASS("Terminology is consistent")
210
211
  ```
211
212
 
@@ -219,13 +220,13 @@ def validate_terminology(requirements, glossary):
219
220
  def validate_no_conflicts(requirements):
220
221
  # Group by subject
221
222
  by_subject = group_by_subject(requirements)
222
-
223
+
223
224
  for subject, reqs in by_subject.items():
224
225
  # Check for conflicting actions
225
226
  actions = [extract_action(req) for req in reqs]
226
227
  if has_conflicts(actions):
227
228
  FAIL(f"Conflicting requirements for {subject}")
228
-
229
+
229
230
  PASS("No conflicts detected")
230
231
  ```
231
232
 
@@ -242,11 +243,11 @@ def validate_coverage(requirements, use_cases):
242
243
  use_case = extract_use_case(req)
243
244
  if use_case:
244
245
  covered.add(use_case)
245
-
246
+
246
247
  missing = set(use_cases) - covered
247
248
  if missing:
248
249
  WARN(f"Use cases without requirements: {missing}")
249
-
250
+
250
251
  coverage_percent = len(covered) / len(use_cases) * 100
251
252
  REPORT(f"Use case coverage: {coverage_percent:.1f}%")
252
253
  ```
@@ -265,10 +266,10 @@ def validate_forward_traceability(requirements, design):
265
266
  for req in requirements:
266
267
  if req.id not in design.requirement_references:
267
268
  untraced.append(req.id)
268
-
269
+
269
270
  if untraced:
270
271
  FAIL(f"Requirements not traced to design: {untraced}")
271
-
272
+
272
273
  PASS("All requirements traced to design")
273
274
  ```
274
275
 
@@ -282,15 +283,15 @@ def validate_forward_traceability(requirements, design):
282
283
  def validate_backward_traceability(design, requirements):
283
284
  req_ids = {req.id for req in requirements}
284
285
  orphaned = []
285
-
286
+
286
287
  for component in design.components:
287
288
  for ref in component.requirement_refs:
288
289
  if ref not in req_ids:
289
290
  orphaned.append((component.name, ref))
290
-
291
+
291
292
  if orphaned:
292
293
  WARN(f"Design references non-existent requirements: {orphaned}")
293
-
294
+
294
295
  PASS("All design elements trace to valid requirements")
295
296
  ```
296
297
 
@@ -307,22 +308,24 @@ def validate_backward_traceability(design, requirements):
307
308
 
308
309
  ## Summary
309
310
 
310
- | Rule | Status | Issues |
311
- |------|--------|--------|
312
- | Unique IDs | ✅ PASS | 0 |
313
- | EARS Pattern | ✅ PASS | 0 |
314
- | No Ambiguous Keywords | ✅ PASS | 0 |
315
- | Mandatory Keywords | ✅ PASS | 0 |
316
- | Atomic Requirements | ⚠️ WARN | 2 |
317
- | Measurable Criteria | ⚠️ WARN | 1 |
318
- | Testable | ✅ PASS | 0 |
319
- | No Implementation | ✅ PASS | 0 |
320
- | Forward Traceability | ✅ PASS | 0 |
311
+ | Rule | Status | Issues |
312
+ | --------------------- | ------- | ------ |
313
+ | Unique IDs | ✅ PASS | 0 |
314
+ | EARS Pattern | ✅ PASS | 0 |
315
+ | No Ambiguous Keywords | ✅ PASS | 0 |
316
+ | Mandatory Keywords | ✅ PASS | 0 |
317
+ | Atomic Requirements | ⚠️ WARN | 2 |
318
+ | Measurable Criteria | ⚠️ WARN | 1 |
319
+ | Testable | ✅ PASS | 0 |
320
+ | No Implementation | ✅ PASS | 0 |
321
+ | Forward Traceability | ✅ PASS | 0 |
321
322
 
322
323
  ## Total: 15 requirements validated
323
324
 
324
325
  ### Passed: 15 (100%)
326
+
325
327
  ### Warnings: 3
328
+
326
329
  ### Failures: 0
327
330
 
328
331
  ## Issues
@@ -330,7 +333,7 @@ def validate_backward_traceability(design, requirements):
330
333
  ### Warnings
331
334
 
332
335
  1. **REQ-USER-003**: May not be atomic - consider splitting
333
- 2. **REQ-AUTH-005**: May not be atomic - consider splitting
336
+ 2. **REQ-AUTH-005**: May not be atomic - consider splitting
334
337
  3. **REQ-NF-002**: May lack measurable criteria
335
338
 
336
339
  ## Recommendations
@@ -103,15 +103,12 @@ The SecurityAnalyzer module provides automated security risk detection for code,
103
103
  ### Module Usage
104
104
 
105
105
  ```javascript
106
- const {
107
- SecurityAnalyzer,
108
- RiskLevel
109
- } = require('musubi/src/analyzers/security-analyzer');
106
+ const { SecurityAnalyzer, RiskLevel } = require('musubi/src/analyzers/security-analyzer');
110
107
 
111
108
  const analyzer = new SecurityAnalyzer({
112
- strictMode: true, // Block critical risks
109
+ strictMode: true, // Block critical risks
113
110
  allowedCommands: ['npm', 'git', 'node'],
114
- ignorePaths: ['node_modules', '.git', 'test']
111
+ ignorePaths: ['node_modules', '.git', 'test'],
115
112
  });
116
113
 
117
114
  // Analyze code content
@@ -120,7 +117,7 @@ const result = analyzer.analyzeContent(code, 'src/auth/login.js');
120
117
  // Check validation status
121
118
  const validation = analyzer.validateAction({
122
119
  type: 'command',
123
- command: 'rm -rf /tmp/cache'
120
+ command: 'rm -rf /tmp/cache',
124
121
  });
125
122
 
126
123
  if (validation.blocked) {
@@ -133,12 +130,12 @@ const report = analyzer.generateReport(result);
133
130
 
134
131
  ### Detection Categories
135
132
 
136
- | Category | Examples |
137
- |----------|----------|
138
- | **Secrets** | API keys, passwords, tokens, private keys |
139
- | **Dangerous Commands** | `rm -rf /`, `chmod 777`, `curl \| bash` |
140
- | **Vulnerabilities** | eval(), innerHTML, SQL injection |
141
- | **Network Risks** | Insecure HTTP, disabled TLS verification |
133
+ | Category | Examples |
134
+ | ---------------------- | ----------------------------------------- |
135
+ | **Secrets** | API keys, passwords, tokens, private keys |
136
+ | **Dangerous Commands** | `rm -rf /`, `chmod 777`, `curl \| bash` |
137
+ | **Vulnerabilities** | eval(), innerHTML, SQL injection |
138
+ | **Network Risks** | Insecure HTTP, disabled TLS verification |
142
139
 
143
140
  ### Risk Levels
144
141
 
@@ -162,6 +159,65 @@ musubi-analyze security --scan ./src --report markdown
162
159
 
163
160
  ---
164
161
 
162
+ ## MUSUBI RustMigrationGenerator Module (v5.5.0+)
163
+
164
+ **Available Module**: `src/generators/rust-migration-generator.js`
165
+
166
+ The RustMigrationGenerator module assists in migrating C/C++ code to Rust for improved memory safety.
167
+
168
+ ### Module Usage
169
+
170
+ ```javascript
171
+ const { RustMigrationGenerator, UNSAFE_PATTERNS, SECURITY_COMPONENTS } = require('musubi-sdd');
172
+
173
+ const generator = new RustMigrationGenerator();
174
+ const analysis = await generator.analyzeRustMigration('src/buffer.c');
175
+
176
+ console.log(`Risk Score: ${analysis.riskScore}`);
177
+ console.log(`Unsafe Patterns Found: ${analysis.unsafePatterns.length}`);
178
+ console.log(`Security Components: ${analysis.securityComponents.length}`);
179
+ ```
180
+
181
+ ### Unsafe Pattern Detection (27 Types)
182
+
183
+ | Category | Patterns |
184
+ | ---------------------- | ------------------------------------------ |
185
+ | **Memory Management** | malloc, calloc, realloc, free |
186
+ | **Buffer Overflow** | strcpy, strcat, sprintf, gets |
187
+ | **Pointer Operations** | Pointer arithmetic, casts, double pointers |
188
+ | **Concurrency** | pthread misuse, volatile misuse |
189
+ | **Format Strings** | printf with variable format |
190
+
191
+ ### Security Component Identification
192
+
193
+ - Stack protection (`_FORTIFY_SOURCE`, stack canaries)
194
+ - Sanitizers (AddressSanitizer, MemorySanitizer)
195
+ - Cryptography (OpenSSL, libsodium)
196
+ - Authentication (PAM, SASL)
197
+
198
+ ### Risk Scoring
199
+
200
+ ```javascript
201
+ // Risk weights
202
+ const RISK_WEIGHTS = {
203
+ buffer_overflow: 10, // Critical: strcpy, gets, etc.
204
+ memory_management: 8, // High: malloc/free misuse
205
+ pointer_operation: 7, // High: pointer arithmetic
206
+ format_string: 9, // Critical: format string vulns
207
+ concurrency: 6, // Medium: race conditions
208
+ };
209
+
210
+ // Calculate total risk
211
+ const totalRisk = analysis.riskScore; // 0-100 scale
212
+ ```
213
+
214
+ ### Integration with Security Audit
215
+
216
+ 1. **Identify unsafe code** in C/C++ projects
217
+ 2. **Prioritize migration** based on risk score
218
+ 3. **Generate migration roadmap** for Rust rewrite
219
+ 4. **Track security improvements** post-migration
220
+
165
221
  ---
166
222
 
167
223
  ## Project Memory (Steering System)
@@ -1286,14 +1342,15 @@ security-audit/
1286
1342
 
1287
1343
  Use MUSUBI Guardrails for automated security validation:
1288
1344
 
1289
- | Command | Purpose | Example |
1290
- |---------|---------|---------|
1291
- | `musubi-validate guardrails --type input` | Input validation (injection prevention) | `npx musubi-validate guardrails "user input" --type input` |
1292
- | `musubi-validate guardrails --type output --redact` | Output sanitization with PII redaction | `npx musubi-validate guardrails "output" --type output --redact` |
1293
- | `musubi-validate guardrails --type safety` | Safety check with threat detection | `npx musubi-validate guardrails "code" --type safety --level high` |
1294
- | `musubi-validate guardrails-chain` | Run complete security guardrail chain | `npx musubi-validate guardrails-chain "content" --parallel` |
1345
+ | Command | Purpose | Example |
1346
+ | --------------------------------------------------- | --------------------------------------- | ------------------------------------------------------------------ |
1347
+ | `musubi-validate guardrails --type input` | Input validation (injection prevention) | `npx musubi-validate guardrails "user input" --type input` |
1348
+ | `musubi-validate guardrails --type output --redact` | Output sanitization with PII redaction | `npx musubi-validate guardrails "output" --type output --redact` |
1349
+ | `musubi-validate guardrails --type safety` | Safety check with threat detection | `npx musubi-validate guardrails "code" --type safety --level high` |
1350
+ | `musubi-validate guardrails-chain` | Run complete security guardrail chain | `npx musubi-validate guardrails-chain "content" --parallel` |
1295
1351
 
1296
1352
  **Security Presets**:
1353
+
1297
1354
  ```bash
1298
1355
  # Input validation with strict security
1299
1356
  npx musubi-validate guardrails --type input --preset strict
@@ -1306,6 +1363,7 @@ npx musubi-validate guardrails --type safety --constitutional --level critical
1306
1363
  ```
1307
1364
 
1308
1365
  **Batch Security Scan**:
1366
+
1309
1367
  ```bash
1310
1368
  # Scan all source files
1311
1369
  npx musubi-validate guardrails --type safety --file "src/**/*.js" --level high
@@ -161,18 +161,18 @@ Comprehensive security checklists for application and infrastructure audits.
161
161
 
162
162
  ### OWASP Top 10 (2021)
163
163
 
164
- | # | Vulnerability | Key Controls |
165
- |---|---------------|--------------|
166
- | A01 | Broken Access Control | RBAC, ABAC, deny by default |
167
- | A02 | Cryptographic Failures | TLS, encryption at rest |
168
- | A03 | Injection | Input validation, parameterized |
169
- | A04 | Insecure Design | Threat modeling, secure patterns |
170
- | A05 | Security Misconfiguration | Hardening, minimal install |
171
- | A06 | Vulnerable Components | SCA, dependency updates |
172
- | A07 | Auth Failures | MFA, session security |
173
- | A08 | Integrity Failures | CI/CD security, signing |
174
- | A09 | Logging Failures | Audit logs, monitoring |
175
- | A10 | SSRF | Input validation, allowlists |
164
+ | # | Vulnerability | Key Controls |
165
+ | --- | ------------------------- | -------------------------------- |
166
+ | A01 | Broken Access Control | RBAC, ABAC, deny by default |
167
+ | A02 | Cryptographic Failures | TLS, encryption at rest |
168
+ | A03 | Injection | Input validation, parameterized |
169
+ | A04 | Insecure Design | Threat modeling, secure patterns |
170
+ | A05 | Security Misconfiguration | Hardening, minimal install |
171
+ | A06 | Vulnerable Components | SCA, dependency updates |
172
+ | A07 | Auth Failures | MFA, session security |
173
+ | A08 | Integrity Failures | CI/CD security, signing |
174
+ | A09 | Logging Failures | Audit logs, monitoring |
175
+ | A10 | SSRF | Input validation, allowlists |
176
176
 
177
177
  ### Security Headers
178
178
 
@@ -210,27 +210,27 @@ Permissions-Policy: geolocation=(), camera=()
210
210
 
211
211
  ### Critical (Immediately address)
212
212
 
213
- | ID | Finding | Risk | Recommendation |
214
- |----|---------|------|----------------|
215
- | C1 | [Finding] | Critical | [Fix] |
213
+ | ID | Finding | Risk | Recommendation |
214
+ | --- | --------- | -------- | -------------- |
215
+ | C1 | [Finding] | Critical | [Fix] |
216
216
 
217
217
  ### High (Address within 7 days)
218
218
 
219
- | ID | Finding | Risk | Recommendation |
220
- |----|---------|------|----------------|
221
- | H1 | [Finding] | High | [Fix] |
219
+ | ID | Finding | Risk | Recommendation |
220
+ | --- | --------- | ---- | -------------- |
221
+ | H1 | [Finding] | High | [Fix] |
222
222
 
223
223
  ### Medium (Address within 30 days)
224
224
 
225
- | ID | Finding | Risk | Recommendation |
226
- |----|---------|------|----------------|
227
- | M1 | [Finding] | Medium | [Fix] |
225
+ | ID | Finding | Risk | Recommendation |
226
+ | --- | --------- | ------ | -------------- |
227
+ | M1 | [Finding] | Medium | [Fix] |
228
228
 
229
229
  ### Low (Address as resources allow)
230
230
 
231
- | ID | Finding | Risk | Recommendation |
232
- |----|---------|------|----------------|
233
- | L1 | [Finding] | Low | [Fix] |
231
+ | ID | Finding | Risk | Recommendation |
232
+ | --- | --------- | ---- | -------------- |
233
+ | L1 | [Finding] | Low | [Fix] |
234
234
 
235
235
  ## Positive Findings
236
236