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
@@ -20,12 +20,12 @@ EXPLAIN SELECT * FROM orders WHERE user_id = 123;
20
20
 
21
21
  ### Common Query Plan Issues
22
22
 
23
- | Issue | Symptom | Solution |
24
- |-------|---------|----------|
25
- | Seq Scan | Full table scan | Add index |
26
- | Nested Loop | Slow joins | Review join strategy |
27
- | Sort | Excessive sorting | Add sorted index |
28
- | Hash Join | Large hash tables | Increase work_mem |
23
+ | Issue | Symptom | Solution |
24
+ | ----------- | ----------------- | -------------------- |
25
+ | Seq Scan | Full table scan | Add index |
26
+ | Nested Loop | Slow joins | Review join strategy |
27
+ | Sort | Excessive sorting | Add sorted index |
28
+ | Hash Join | Large hash tables | Increase work_mem |
29
29
 
30
30
  ---
31
31
 
@@ -52,12 +52,12 @@ CREATE INDEX idx_users_lower_email ON users(LOWER(email));
52
52
 
53
53
  ### Index Types
54
54
 
55
- | Type | Use Case | PostgreSQL | MySQL |
56
- |------|----------|------------|-------|
57
- | B-tree | Equality, range | Default | Default |
58
- | Hash | Equality only | `USING HASH` | Memory only |
59
- | GIN | Full-text, JSONB | `USING GIN` | N/A |
60
- | GiST | Geometric, range | `USING GIST` | N/A |
55
+ | Type | Use Case | PostgreSQL | MySQL |
56
+ | ------ | ---------------- | ------------ | ----------- |
57
+ | B-tree | Equality, range | Default | Default |
58
+ | Hash | Equality only | `USING HASH` | Memory only |
59
+ | GIN | Full-text, JSONB | `USING GIN` | N/A |
60
+ | GiST | Geometric, range | `USING GIST` | N/A |
61
61
 
62
62
  ### Avoid Over-Indexing
63
63
 
@@ -103,8 +103,8 @@ reserve_pool_size = 5
103
103
  const pool = new Pool({
104
104
  host: 'localhost',
105
105
  database: 'mydb',
106
- max: 20, // Maximum connections
107
- min: 5, // Minimum connections
106
+ max: 20, // Maximum connections
107
+ min: 5, // Minimum connections
108
108
  idleTimeoutMillis: 30000,
109
109
  connectionTimeoutMillis: 2000,
110
110
  });
@@ -173,7 +173,7 @@ long_query_time = 1
173
173
  -- PostgreSQL: Enable pg_stat_statements
174
174
  CREATE EXTENSION pg_stat_statements;
175
175
 
176
- SELECT
176
+ SELECT
177
177
  query,
178
178
  calls,
179
179
  total_exec_time / 1000 AS total_seconds,
@@ -188,7 +188,7 @@ LIMIT 10;
188
188
 
189
189
  ```sql
190
190
  -- PostgreSQL: Tables with sequential scans
191
- SELECT
191
+ SELECT
192
192
  schemaname,
193
193
  relname,
194
194
  seq_scan,
@@ -205,7 +205,7 @@ LIMIT 10;
205
205
 
206
206
  ```sql
207
207
  -- PostgreSQL: Unused indexes
208
- SELECT
208
+ SELECT
209
209
  schemaname,
210
210
  tablename,
211
211
  indexname,
@@ -247,7 +247,7 @@ ALTER TABLE tablename SET (
247
247
  ANALYZE tablename;
248
248
 
249
249
  -- View statistics
250
- SELECT
250
+ SELECT
251
251
  attname,
252
252
  n_distinct,
253
253
  most_common_vals,
@@ -271,16 +271,17 @@ CREATE TABLE orders (
271
271
  created_at TIMESTAMP
272
272
  ) PARTITION BY RANGE (created_at);
273
273
 
274
- CREATE TABLE orders_2024_01
274
+ CREATE TABLE orders_2024_01
275
275
  PARTITION OF orders
276
276
  FOR VALUES FROM ('2024-01-01') TO ('2024-02-01');
277
277
 
278
- CREATE TABLE orders_2024_02
278
+ CREATE TABLE orders_2024_02
279
279
  PARTITION OF orders
280
280
  FOR VALUES FROM ('2024-02-01') TO ('2024-03-01');
281
281
  ```
282
282
 
283
283
  ### Benefits of Partitioning
284
+
284
285
  - Faster queries with partition pruning
285
286
  - Easier data archival (drop old partitions)
286
287
  - Smaller indexes per partition
@@ -291,23 +292,27 @@ CREATE TABLE orders_2024_02
291
292
  ## Performance Checklist
292
293
 
293
294
  ### Query Level
295
+
294
296
  - [ ] Query plan analyzed
295
297
  - [ ] Appropriate indexes exist
296
298
  - [ ] No unnecessary columns selected
297
299
  - [ ] Pagination implemented
298
300
 
299
301
  ### Configuration Level
302
+
300
303
  - [ ] Buffer pool sized appropriately
301
304
  - [ ] Connection pool configured
302
305
  - [ ] Slow query logging enabled
303
306
 
304
307
  ### Maintenance Level
308
+
305
309
  - [ ] Regular VACUUM/ANALYZE
306
310
  - [ ] Index bloat monitored
307
311
  - [ ] Unused indexes removed
308
312
  - [ ] Table statistics current
309
313
 
310
314
  ### Monitoring Level
315
+
311
316
  - [ ] Query performance tracked
312
317
  - [ ] Connection count monitored
313
318
  - [ ] Disk I/O monitored
@@ -9,6 +9,7 @@ Best practices for designing database schemas.
9
9
  ## Naming Conventions
10
10
 
11
11
  ### Tables
12
+
12
13
  ```sql
13
14
  -- Use plural, lowercase, snake_case
14
15
  users
@@ -21,6 +22,7 @@ user_profiles
21
22
  ```
22
23
 
23
24
  ### Columns
25
+
24
26
  ```sql
25
27
  -- Use lowercase snake_case
26
28
  first_name
@@ -39,6 +41,7 @@ can_edit
39
41
  ```
40
42
 
41
43
  ### Indexes
44
+
42
45
  ```sql
43
46
  -- idx_table_column
44
47
  CREATE INDEX idx_users_email ON users(email);
@@ -50,6 +53,7 @@ CREATE INDEX idx_orders_user_id_created_at ON orders(user_id, created_at);
50
53
  ## Primary Keys
51
54
 
52
55
  ### Auto-increment
56
+
53
57
  ```sql
54
58
  CREATE TABLE users (
55
59
  id BIGSERIAL PRIMARY KEY,
@@ -58,6 +62,7 @@ CREATE TABLE users (
58
62
  ```
59
63
 
60
64
  ### UUID
65
+
61
66
  ```sql
62
67
  CREATE TABLE users (
63
68
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
@@ -66,6 +71,7 @@ CREATE TABLE users (
66
71
  ```
67
72
 
68
73
  ### Composite Key
74
+
69
75
  ```sql
70
76
  CREATE TABLE order_items (
71
77
  order_id BIGINT,
@@ -80,6 +86,7 @@ CREATE TABLE order_items (
80
86
  ## Common Patterns
81
87
 
82
88
  ### Timestamps
89
+
83
90
  ```sql
84
91
  CREATE TABLE users (
85
92
  id BIGSERIAL PRIMARY KEY,
@@ -104,6 +111,7 @@ CREATE TRIGGER users_updated_at
104
111
  ```
105
112
 
106
113
  ### Soft Delete
114
+
107
115
  ```sql
108
116
  CREATE TABLE users (
109
117
  id BIGSERIAL PRIMARY KEY,
@@ -117,6 +125,7 @@ CREATE INDEX idx_users_active ON users(id) WHERE deleted_at IS NULL;
117
125
  ```
118
126
 
119
127
  ### Audit Trail
128
+
120
129
  ```sql
121
130
  CREATE TABLE audit_log (
122
131
  id BIGSERIAL PRIMARY KEY,
@@ -135,6 +144,7 @@ CREATE TABLE audit_log (
135
144
  ## Relationships
136
145
 
137
146
  ### One-to-Many
147
+
138
148
  ```sql
139
149
  CREATE TABLE users (
140
150
  id BIGSERIAL PRIMARY KEY,
@@ -151,6 +161,7 @@ CREATE INDEX idx_orders_user_id ON orders(user_id);
151
161
  ```
152
162
 
153
163
  ### Many-to-Many
164
+
154
165
  ```sql
155
166
  CREATE TABLE users (
156
167
  id BIGSERIAL PRIMARY KEY,
@@ -171,6 +182,7 @@ CREATE TABLE user_roles (
171
182
  ```
172
183
 
173
184
  ### Self-Referencing
185
+
174
186
  ```sql
175
187
  CREATE TABLE categories (
176
188
  id BIGSERIAL PRIMARY KEY,
@@ -187,21 +199,21 @@ CREATE INDEX idx_categories_parent ON categories(parent_id);
187
199
 
188
200
  ### PostgreSQL Types
189
201
 
190
- | Use Case | Type |
191
- |----------|------|
192
- | Auto ID | BIGSERIAL |
193
- | UUID | UUID |
194
- | Short text | VARCHAR(n) |
195
- | Long text | TEXT |
196
- | Integer | INT, BIGINT |
197
- | Decimal | NUMERIC(p,s), DECIMAL |
198
- | Money | NUMERIC(10,2) |
199
- | Boolean | BOOLEAN |
200
- | Date | DATE |
201
- | Timestamp | TIMESTAMP WITH TIME ZONE |
202
- | JSON | JSONB |
203
- | Array | INTEGER[], TEXT[] |
204
- | Enum | Custom ENUM or VARCHAR |
202
+ | Use Case | Type |
203
+ | ---------- | ------------------------ |
204
+ | Auto ID | BIGSERIAL |
205
+ | UUID | UUID |
206
+ | Short text | VARCHAR(n) |
207
+ | Long text | TEXT |
208
+ | Integer | INT, BIGINT |
209
+ | Decimal | NUMERIC(p,s), DECIMAL |
210
+ | Money | NUMERIC(10,2) |
211
+ | Boolean | BOOLEAN |
212
+ | Date | DATE |
213
+ | Timestamp | TIMESTAMP WITH TIME ZONE |
214
+ | JSON | JSONB |
215
+ | Array | INTEGER[], TEXT[] |
216
+ | Enum | Custom ENUM or VARCHAR |
205
217
 
206
218
  ### Enums vs Lookup Tables
207
219
 
@@ -235,27 +247,27 @@ CREATE TABLE orders (
235
247
  ```sql
236
248
  CREATE TABLE products (
237
249
  id BIGSERIAL PRIMARY KEY,
238
-
250
+
239
251
  -- NOT NULL
240
252
  name VARCHAR(100) NOT NULL,
241
-
253
+
242
254
  -- UNIQUE
243
255
  sku VARCHAR(50) UNIQUE,
244
-
256
+
245
257
  -- CHECK
246
258
  price DECIMAL(10,2) CHECK (price >= 0),
247
259
  quantity INT CHECK (quantity >= 0),
248
-
260
+
249
261
  -- DEFAULT
250
262
  status VARCHAR(20) DEFAULT 'draft',
251
263
  created_at TIMESTAMP DEFAULT NOW(),
252
-
264
+
253
265
  -- FOREIGN KEY
254
266
  category_id BIGINT REFERENCES categories(id)
255
267
  );
256
268
 
257
269
  -- Named constraints
258
- ALTER TABLE products ADD CONSTRAINT chk_price_positive
270
+ ALTER TABLE products ADD CONSTRAINT chk_price_positive
259
271
  CHECK (price >= 0);
260
272
  ```
261
273
 
@@ -283,7 +295,7 @@ CREATE TABLE users (
283
295
  password_hash VARCHAR(255) NOT NULL,
284
296
  name VARCHAR(100) NOT NULL,
285
297
  status user_status DEFAULT 'active',
286
-
298
+
287
299
  -- Timestamps
288
300
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
289
301
  updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
@@ -310,26 +322,31 @@ COMMENT ON COLUMN users.status IS 'Account status: active, inactive, suspended';
310
322
  ## Schema Checklist
311
323
 
312
324
  ### Naming
325
+
313
326
  - [ ] Consistent naming convention
314
327
  - [ ] Descriptive names
315
328
  - [ ] No reserved words
316
329
 
317
330
  ### Structure
331
+
318
332
  - [ ] Appropriate primary keys
319
333
  - [ ] Proper data types
320
334
  - [ ] Necessary constraints
321
335
 
322
336
  ### Performance
337
+
323
338
  - [ ] Indexes on foreign keys
324
339
  - [ ] Indexes on filtered columns
325
340
  - [ ] Indexes on sorted columns
326
341
 
327
342
  ### Integrity
343
+
328
344
  - [ ] Foreign key relationships
329
345
  - [ ] NOT NULL where required
330
346
  - [ ] CHECK constraints
331
347
 
332
348
  ### Audit
349
+
333
350
  - [ ] Created/updated timestamps
334
351
  - [ ] Soft delete if needed
335
352
  - [ ] Audit trail for sensitive data
@@ -29,19 +29,19 @@ jobs:
29
29
  runs-on: ubuntu-latest
30
30
  steps:
31
31
  - uses: actions/checkout@v4
32
-
32
+
33
33
  - name: Setup Node.js
34
34
  uses: actions/setup-node@v4
35
35
  with:
36
36
  node-version: ${{ env.NODE_VERSION }}
37
37
  cache: 'npm'
38
-
38
+
39
39
  - name: Install dependencies
40
40
  run: npm ci
41
-
41
+
42
42
  - name: Lint
43
43
  run: npm run lint
44
-
44
+
45
45
  - name: Type check
46
46
  run: npm run typecheck
47
47
 
@@ -61,21 +61,21 @@ jobs:
61
61
  - 5432:5432
62
62
  steps:
63
63
  - uses: actions/checkout@v4
64
-
64
+
65
65
  - name: Setup Node.js
66
66
  uses: actions/setup-node@v4
67
67
  with:
68
68
  node-version: ${{ env.NODE_VERSION }}
69
69
  cache: 'npm'
70
-
70
+
71
71
  - name: Install dependencies
72
72
  run: npm ci
73
-
73
+
74
74
  - name: Run tests
75
75
  run: npm test -- --coverage
76
76
  env:
77
77
  DATABASE_URL: postgres://postgres:postgres@localhost:5432/test
78
-
78
+
79
79
  - name: Upload coverage
80
80
  uses: codecov/codecov-action@v3
81
81
 
@@ -83,10 +83,10 @@ jobs:
83
83
  runs-on: ubuntu-latest
84
84
  steps:
85
85
  - uses: actions/checkout@v4
86
-
86
+
87
87
  - name: Run security audit
88
88
  run: npm audit --audit-level=high
89
-
89
+
90
90
  - name: Run Trivy vulnerability scanner
91
91
  uses: aquasecurity/trivy-action@master
92
92
  with:
@@ -104,17 +104,17 @@ jobs:
104
104
  image-tag: ${{ steps.meta.outputs.tags }}
105
105
  steps:
106
106
  - uses: actions/checkout@v4
107
-
107
+
108
108
  - name: Set up Docker Buildx
109
109
  uses: docker/setup-buildx-action@v3
110
-
110
+
111
111
  - name: Log in to Container registry
112
112
  uses: docker/login-action@v3
113
113
  with:
114
114
  registry: ${{ env.REGISTRY }}
115
115
  username: ${{ github.actor }}
116
116
  password: ${{ secrets.GITHUB_TOKEN }}
117
-
117
+
118
118
  - name: Extract metadata
119
119
  id: meta
120
120
  uses: docker/metadata-action@v5
@@ -123,7 +123,7 @@ jobs:
123
123
  tags: |
124
124
  type=sha
125
125
  type=ref,event=branch
126
-
126
+
127
127
  - name: Build and push
128
128
  uses: docker/build-push-action@v5
129
129
  with:
@@ -169,8 +169,8 @@ stages:
169
169
  - deploy
170
170
 
171
171
  variables:
172
- PIP_CACHE_DIR: "$CI_PROJECT_DIR/.pip-cache"
173
- DOCKER_TLS_CERTDIR: "/certs"
172
+ PIP_CACHE_DIR: '$CI_PROJECT_DIR/.pip-cache'
173
+ DOCKER_TLS_CERTDIR: '/certs'
174
174
 
175
175
  .python-setup:
176
176
  image: python:3.11
@@ -282,35 +282,35 @@ stages:
282
282
  - task: UseDotNet@2
283
283
  inputs:
284
284
  version: $(dotnetVersion)
285
-
285
+
286
286
  - task: DotNetCoreCLI@2
287
287
  displayName: 'Restore'
288
288
  inputs:
289
289
  command: restore
290
-
290
+
291
291
  - task: DotNetCoreCLI@2
292
292
  displayName: 'Build'
293
293
  inputs:
294
294
  command: build
295
295
  arguments: '--configuration $(buildConfiguration) --no-restore'
296
-
296
+
297
297
  - task: DotNetCoreCLI@2
298
298
  displayName: 'Test'
299
299
  inputs:
300
300
  command: test
301
301
  arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code Coverage"'
302
-
302
+
303
303
  - task: PublishCodeCoverageResults@2
304
304
  inputs:
305
305
  codeCoverageTool: 'Cobertura'
306
306
  summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
307
-
307
+
308
308
  - task: DotNetCoreCLI@2
309
309
  displayName: 'Publish'
310
310
  inputs:
311
311
  command: publish
312
312
  arguments: '--configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
313
-
313
+
314
314
  - task: PublishBuildArtifacts@1
315
315
  inputs:
316
316
  pathToPublish: '$(Build.ArtifactStagingDirectory)'
@@ -425,18 +425,21 @@ CMD ["python", "-m", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "
425
425
  ## Best Practices Checklist
426
426
 
427
427
  ### Pipeline Security
428
+
428
429
  - [ ] Secrets in vault/variables (not in code)
429
430
  - [ ] Minimal permissions for CI/CD
430
431
  - [ ] Scan for vulnerabilities
431
432
  - [ ] Sign artifacts/images
432
433
 
433
434
  ### Quality Gates
435
+
434
436
  - [ ] Unit tests pass
435
437
  - [ ] Code coverage threshold
436
438
  - [ ] Linting passes
437
439
  - [ ] Security scan passes
438
440
 
439
441
  ### Deployment
442
+
440
443
  - [ ] Environment-specific configs
441
444
  - [ ] Rollback capability
442
445
  - [ ] Health checks
@@ -30,17 +30,14 @@ Provides automated issue analysis and resolution planning:
30
30
  - **Impact Analysis**: Estimate scope, effort, and risk
31
31
 
32
32
  **Usage Example**:
33
+
33
34
  ```javascript
34
- const {
35
- IssueResolver,
36
- IssueInfo,
37
- IssueType
38
- } = require('musubi/src/resolvers/issue-resolver');
35
+ const { IssueResolver, IssueInfo, IssueType } = require('musubi/src/resolvers/issue-resolver');
39
36
 
40
37
  // Create resolver
41
38
  const resolver = new IssueResolver({
42
39
  projectRoot: process.cwd(),
43
- autoCreateBranch: false
40
+ autoCreateBranch: false,
44
41
  });
45
42
 
46
43
  // Create issue info from GitHub API data
@@ -62,7 +59,7 @@ The login button doesn't work on mobile devices.
62
59
  3. Nothing happens
63
60
  `,
64
61
  labels: ['bug', 'mobile'],
65
- assignees: ['developer1']
62
+ assignees: ['developer1'],
66
63
  });
67
64
 
68
65
  // Get issue type
@@ -71,8 +68,8 @@ console.log(issue.type); // 'bug'
71
68
  // Resolve the issue
72
69
  const result = await resolver.resolve(issue);
73
70
 
74
- console.log(result.branchName); // 'fix/42-login-button-not-responding'
75
- console.log(result.requirements); // ['Fix touch event handling', ...]
71
+ console.log(result.branchName); // 'fix/42-login-button-not-responding'
72
+ console.log(result.requirements); // ['Fix touch event handling', ...]
76
73
  console.log(result.impactAnalysis); // { scope: 'medium', effort: 'small', ... }
77
74
  ```
78
75
 
@@ -87,7 +84,7 @@ const issue = new IssueInfo({
87
84
  number: issueNumber,
88
85
  title: issueTitle,
89
86
  body: issueBody,
90
- labels: issueLabels
87
+ labels: issueLabels,
91
88
  });
92
89
 
93
90
  // Automatic type detection
@@ -97,6 +94,7 @@ const type = issue.type; // 'bug' | 'feature' | 'documentation' | 'refactor' | '
97
94
  ### Step 2: Requirement Extraction
98
95
 
99
96
  The resolver automatically extracts requirements from:
97
+
100
98
  - **Checkboxes**: `- [ ] Requirement text`
101
99
  - **Keywords**: Lines containing "should", "must", "needs to"
102
100
 
@@ -110,7 +108,7 @@ const requirements = resolver.extractRequirements(issue);
110
108
  Semantic branch names based on issue type:
111
109
 
112
110
  | Issue Type | Branch Prefix |
113
- |---------------|---------------|
111
+ | ------------- | ------------- |
114
112
  | Bug | `fix/` |
115
113
  | Feature | `feat/` |
116
114
  | Documentation | `docs/` |
@@ -198,12 +196,12 @@ The ImpactAnalysis class provides:
198
196
 
199
197
  ```javascript
200
198
  const impact = new ImpactAnalysis({
201
- scope: 'medium', // 'small' | 'medium' | 'large'
202
- effort: 'small', // 'trivial' | 'small' | 'medium' | 'large' | 'epic'
203
- risk: 'low', // 'low' | 'medium' | 'high' | 'critical'
199
+ scope: 'medium', // 'small' | 'medium' | 'large'
200
+ effort: 'small', // 'trivial' | 'small' | 'medium' | 'large' | 'epic'
201
+ risk: 'low', // 'low' | 'medium' | 'high' | 'critical'
204
202
  affectedAreas: ['components/LoginButton', 'utils/touchHandler'],
205
203
  dependencies: ['react-native-gesture-handler'],
206
- breakingChanges: false
204
+ breakingChanges: false,
207
205
  });
208
206
 
209
207
  console.log(impact.toMarkdown());
@@ -223,26 +221,31 @@ console.log(impact.toMarkdown());
223
221
  **Status**: ✅ Completed
224
222
 
225
223
  ### Branch
224
+
226
225
  `fix/42-login-button-not-responding`
227
226
 
228
227
  ### Requirements Extracted
228
+
229
229
  1. Fix touch event handling
230
230
  2. Add loading indicator
231
231
  3. Add error handling
232
232
 
233
233
  ### Impact Analysis
234
- | Aspect | Value |
235
- |--------|-------|
236
- | Scope | Medium |
237
- | Effort | Small |
238
- | Risk | Low |
239
- | Breaking Changes | No |
234
+
235
+ | Aspect | Value |
236
+ | ---------------- | ------ |
237
+ | Scope | Medium |
238
+ | Effort | Small |
239
+ | Risk | Low |
240
+ | Breaking Changes | No |
240
241
 
241
242
  ### Affected Areas
243
+
242
244
  - `components/LoginButton`
243
245
  - `utils/touchHandler`
244
246
 
245
247
  ### SDD Workflow
248
+
246
249
  1. ✅ Requirements documented
247
250
  2. ⬜ Design review pending
248
251
  3. ⬜ Task breakdown pending