musubi-sdd 6.2.2 → 6.3.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 (93) hide show
  1. package/README.ja.md +44 -5
  2. package/README.md +44 -5
  3. package/bin/musubi-dashboard.js +22 -13
  4. package/bin/musubi-design.js +3 -3
  5. package/bin/musubi-gaps.js +9 -9
  6. package/bin/musubi-init.js +16 -1310
  7. package/bin/musubi-requirements.js +1 -1
  8. package/bin/musubi-tasks.js +5 -5
  9. package/bin/musubi-trace.js +23 -23
  10. package/bin/musubi-upgrade.js +7 -2
  11. package/bin/musubi.js +1 -1
  12. package/package.json +2 -2
  13. package/src/analyzers/gap-detector.js +3 -3
  14. package/src/analyzers/traceability.js +17 -17
  15. package/src/cli/dashboard-cli.js +54 -60
  16. package/src/cli/init-generators.js +464 -0
  17. package/src/cli/init-helpers.js +884 -0
  18. package/src/constitutional/checker.js +67 -65
  19. package/src/constitutional/ci-reporter.js +50 -43
  20. package/src/constitutional/index.js +2 -2
  21. package/src/constitutional/phase-minus-one.js +22 -25
  22. package/src/constitutional/steering-sync.js +28 -39
  23. package/src/dashboard/index.js +2 -2
  24. package/src/dashboard/sprint-planner.js +17 -19
  25. package/src/dashboard/sprint-reporter.js +46 -37
  26. package/src/dashboard/transition-recorder.js +12 -18
  27. package/src/dashboard/workflow-dashboard.js +27 -38
  28. package/src/enterprise/error-recovery.js +109 -49
  29. package/src/enterprise/experiment-report.js +62 -36
  30. package/src/enterprise/index.js +5 -5
  31. package/src/enterprise/rollback-manager.js +28 -29
  32. package/src/enterprise/tech-article.js +41 -35
  33. package/src/generators/design.js +8 -3
  34. package/src/generators/requirements.js +5 -3
  35. package/src/generators/tasks.js +2 -2
  36. package/src/integrations/platforms.js +1 -1
  37. package/src/templates/agents/claude-code/CLAUDE.md +3 -3
  38. package/src/templates/agents/claude-code/commands/sdd-change-init.md +1 -1
  39. package/src/templates/agents/claude-code/commands/sdd-design.md +8 -8
  40. package/src/templates/agents/claude-code/commands/sdd-implement.md +4 -4
  41. package/src/templates/agents/claude-code/commands/sdd-tasks.md +7 -7
  42. package/src/templates/agents/claude-code/commands/sdd-validate.md +2 -2
  43. package/src/templates/agents/claude-code/skills/design-reviewer/SKILL.md +132 -113
  44. package/src/templates/agents/claude-code/skills/requirements-reviewer/SKILL.md +85 -56
  45. package/src/templates/agents/claude-code/skills/steering/auto-update-rules.md +1 -1
  46. package/src/templates/agents/claude-code/skills/traceability-auditor/SKILL.md +2 -2
  47. package/src/templates/agents/claude-code/skills/traceability-auditor/coverage-matrix-template.md +2 -2
  48. package/src/templates/agents/claude-code/skills/traceability-auditor/gap-detection-rules.md +1 -1
  49. package/src/templates/agents/codex/AGENTS.md +2 -2
  50. package/src/templates/agents/codex/commands/sdd-change-init.md +1 -1
  51. package/src/templates/agents/codex/commands/sdd-design.md +8 -8
  52. package/src/templates/agents/codex/commands/sdd-implement.md +4 -4
  53. package/src/templates/agents/codex/commands/sdd-tasks.md +7 -7
  54. package/src/templates/agents/codex/commands/sdd-validate.md +2 -2
  55. package/src/templates/agents/cursor/AGENTS.md +2 -2
  56. package/src/templates/agents/cursor/commands/sdd-change-init.md +1 -1
  57. package/src/templates/agents/cursor/commands/sdd-design.md +8 -8
  58. package/src/templates/agents/cursor/commands/sdd-implement.md +4 -4
  59. package/src/templates/agents/cursor/commands/sdd-tasks.md +7 -7
  60. package/src/templates/agents/cursor/commands/sdd-validate.md +2 -2
  61. package/src/templates/agents/gemini-cli/GEMINI.md +2 -2
  62. package/src/templates/agents/gemini-cli/commands/sdd-design.toml +2 -2
  63. package/src/templates/agents/gemini-cli/commands/sdd-implement.toml +2 -2
  64. package/src/templates/agents/gemini-cli/commands/sdd-tasks.toml +3 -3
  65. package/src/templates/agents/gemini-cli/commands/sdd-validate.toml +2 -2
  66. package/src/templates/agents/github-copilot/AGENTS.md +2 -2
  67. package/src/templates/agents/github-copilot/commands/sdd-change-init.prompt.md +1 -1
  68. package/src/templates/agents/github-copilot/commands/sdd-design.prompt.md +8 -8
  69. package/src/templates/agents/github-copilot/commands/sdd-implement.prompt.md +4 -4
  70. package/src/templates/agents/github-copilot/commands/sdd-requirements.prompt.md +23 -4
  71. package/src/templates/agents/github-copilot/commands/sdd-tasks.prompt.md +7 -7
  72. package/src/templates/agents/github-copilot/commands/sdd-validate.prompt.md +2 -2
  73. package/src/templates/agents/qwen-code/QWEN.md +2 -2
  74. package/src/templates/agents/qwen-code/commands/sdd-change-init.md +1 -1
  75. package/src/templates/agents/qwen-code/commands/sdd-design.md +8 -8
  76. package/src/templates/agents/qwen-code/commands/sdd-implement.md +4 -4
  77. package/src/templates/agents/qwen-code/commands/sdd-tasks.md +7 -7
  78. package/src/templates/agents/qwen-code/commands/sdd-validate.md +2 -2
  79. package/src/templates/agents/shared/AGENTS.md +1 -1
  80. package/src/templates/agents/windsurf/AGENTS.md +2 -2
  81. package/src/templates/agents/windsurf/commands/sdd-change-init.md +1 -1
  82. package/src/templates/agents/windsurf/commands/sdd-design.md +8 -8
  83. package/src/templates/agents/windsurf/commands/sdd-implement.md +4 -4
  84. package/src/templates/agents/windsurf/commands/sdd-tasks.md +7 -7
  85. package/src/templates/agents/windsurf/commands/sdd-validate.md +2 -2
  86. package/src/templates/skills/browser-agent.md +1 -1
  87. package/src/traceability/extractor.js +21 -20
  88. package/src/traceability/gap-detector.js +19 -17
  89. package/src/traceability/index.js +2 -2
  90. package/src/traceability/matrix-storage.js +20 -22
  91. package/src/validators/constitution.js +5 -2
  92. package/src/validators/critic-system.js +6 -6
  93. package/src/validators/traceability-validator.js +3 -3
package/README.ja.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  **究極の仕様駆動開発ツール**
6
6
 
7
- [![CI](https://github.com/nahisaho/musubi/actions/workflows/ci.yml/badge.svg)](https://github.com/nahisaho/musubi/actions/workflows/ci.yml)
7
+ [![CI](https://github.com/nahisaho/MUSUBI/actions/workflows/ci.yml/badge.svg)](https://github.com/nahisaho/MUSUBI/actions/workflows/ci.yml)
8
8
  [![npm version](https://badge.fury.io/js/musubi-sdd.svg)](https://www.npmjs.com/package/musubi-sdd)
9
9
  [![npm downloads](https://img.shields.io/npm/dm/musubi-sdd.svg)](https://www.npmjs.com/package/musubi-sdd)
10
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -71,6 +71,45 @@ musubi init --windsurf # Windsurf IDE
71
71
 
72
72
  ---
73
73
 
74
+ ## 📊 v6.3.0 の新機能
75
+
76
+ ### SDD ドキュメントパス統一 📂
77
+
78
+ ドキュメント種別の完全な分離による整理と明確化。
79
+
80
+ #### ストレージ構造
81
+
82
+ | ドキュメント種別 | 保存先 | ファイル名パターン |
83
+ |----------------|--------|-------------------|
84
+ | **要件定義書** | `storage/specs/` | `{feature}-requirements.md` |
85
+ | **設計書** | `storage/design/` | `{feature}-design.md` |
86
+ | **タスク** | `storage/tasks/` | `{feature}-tasks.md` |
87
+ | **検証レポート** | `storage/validation/` | `{feature}-validation-report.md` |
88
+
89
+ ```
90
+ storage/
91
+ ├── specs/ # 要件定義書のみ
92
+ │ └── auth-requirements.md
93
+ ├── design/ # 設計書のみ
94
+ │ └── auth-design.md
95
+ ├── tasks/ # タスクのみ
96
+ │ └── auth-tasks.md
97
+ └── validation/ # 検証レポート
98
+ └── auth-validation-report.md
99
+ ```
100
+
101
+ #### 全7エージェントプラットフォーム更新
102
+
103
+ 全プロンプト・テンプレートを正しい保存先パスに更新:
104
+ - Claude Code, GitHub Copilot, Cursor, Gemini CLI, Codex CLI, Qwen Code, Windsurf
105
+
106
+ #### テスト結果
107
+
108
+ - **単体テスト**: 4,827件パス ✅
109
+ - **統合テスト**: 660件パス ✅
110
+
111
+ ---
112
+
74
113
  ## 📊 v6.2.0 の新機能
75
114
 
76
115
  ### Review Gate Engine 🛡️
@@ -907,8 +946,8 @@ AND システムSHALLセッションを作成する。
907
946
  **仕様**:
908
947
 
909
948
  - `storage/specs/auth-requirements.md` + `storage/specs/auth-requirements.ja.md`
910
- - `storage/specs/auth-design.md` + `storage/specs/auth-design.ja.md`
911
- - `storage/specs/auth-tasks.md` + `storage/specs/auth-tasks.ja.md`
949
+ - `storage/design/auth-design.md` + `storage/design/auth-design.ja.md`
950
+ - `storage/tasks/auth-tasks.md` + `storage/tasks/auth-tasks.ja.md`
912
951
 
913
952
  ### 生成順序
914
953
 
@@ -1107,7 +1146,7 @@ steering/rules/constitution.md
1107
1146
 
1108
1147
  ```bash
1109
1148
  # リポジトリをクローン
1110
- git clone https://github.com/your-org/musubi.git
1149
+ git clone https://github.com/nahisaho/MUSUBI.git
1111
1150
  cd musubi
1112
1151
 
1113
1152
  # 依存関係をインストール
@@ -1163,7 +1202,7 @@ MUSUBIは以下のフレームワークから機能を統合しています。
1163
1202
 
1164
1203
  **🎋 MUSUBI** - むすび - 仕様、設計、コードを結びつける。
1165
1204
 
1166
- [![GitHub stars](https://img.shields.io/github/stars/nahisaho/musubi?style=social)](https://github.com/nahisaho/musubi)
1205
+ [![GitHub stars](https://img.shields.io/github/stars/nahisaho/musubi?style=social)](https://github.com/nahisaho/MUSUBI)
1167
1206
 
1168
1207
  Made with ❤️ for the AI Coding Community
1169
1208
 
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  **Ultimate Specification Driven Development Tool**
6
6
 
7
- [![CI](https://github.com/nahisaho/musubi/actions/workflows/ci.yml/badge.svg)](https://github.com/nahisaho/musubi/actions/workflows/ci.yml)
7
+ [![CI](https://github.com/nahisaho/MUSUBI/actions/workflows/ci.yml/badge.svg)](https://github.com/nahisaho/MUSUBI/actions/workflows/ci.yml)
8
8
  [![npm version](https://badge.fury.io/js/musubi-sdd.svg)](https://www.npmjs.com/package/musubi-sdd)
9
9
  [![npm downloads](https://img.shields.io/npm/dm/musubi-sdd.svg)](https://www.npmjs.com/package/musubi-sdd)
10
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -71,6 +71,45 @@ musubi init --windsurf # Windsurf IDE
71
71
 
72
72
  ---
73
73
 
74
+ ## 📊 What's New in v6.3.0
75
+
76
+ ### SDD Document Path Unification 📂
77
+
78
+ Complete separation of document types for better organization and clarity.
79
+
80
+ #### Storage Structure
81
+
82
+ | Document Type | Storage Path | Naming Pattern |
83
+ |---------------|--------------|----------------|
84
+ | **Requirements** | `storage/specs/` | `{feature}-requirements.md` |
85
+ | **Design** | `storage/design/` | `{feature}-design.md` |
86
+ | **Tasks** | `storage/tasks/` | `{feature}-tasks.md` |
87
+ | **Validation** | `storage/validation/` | `{feature}-validation-report.md` |
88
+
89
+ ```
90
+ storage/
91
+ ├── specs/ # Requirements only
92
+ │ └── auth-requirements.md
93
+ ├── design/ # Design documents only
94
+ │ └── auth-design.md
95
+ ├── tasks/ # Tasks only
96
+ │ └── auth-tasks.md
97
+ └── validation/ # Validation reports
98
+ └── auth-validation-report.md
99
+ ```
100
+
101
+ #### Updated All 7 Agent Platforms
102
+
103
+ All prompts and templates updated with correct storage paths:
104
+ - Claude Code, GitHub Copilot, Cursor, Gemini CLI, Codex CLI, Qwen Code, Windsurf
105
+
106
+ #### Test Results
107
+
108
+ - **Unit Tests**: 4,827 passing ✅
109
+ - **Integration Tests**: 660 passing ✅
110
+
111
+ ---
112
+
74
113
  ## 📊 What's New in v6.2.0
75
114
 
76
115
  ### Review Gate Engine 🛡️
@@ -1187,8 +1226,8 @@ AND the system SHALL create a session.
1187
1226
  **Specifications**:
1188
1227
 
1189
1228
  - `storage/specs/auth-requirements.md` + `storage/specs/auth-requirements.ja.md`
1190
- - `storage/specs/auth-design.md` + `storage/specs/auth-design.ja.md`
1191
- - `storage/specs/auth-tasks.md` + `storage/specs/auth-tasks.ja.md`
1229
+ - `storage/design/auth-design.md` + `storage/design/auth-design.ja.md`
1230
+ - `storage/tasks/auth-tasks.md` + `storage/tasks/auth-tasks.ja.md`
1192
1231
 
1193
1232
  ### Generation Order
1194
1233
 
@@ -1414,7 +1453,7 @@ steering/rules/constitution.md
1414
1453
 
1415
1454
  ```bash
1416
1455
  # Clone repository
1417
- git clone https://github.com/nahisaho/musubi.git
1456
+ git clone https://github.com/nahisaho/MUSUBI.git
1418
1457
  cd musubi
1419
1458
 
1420
1459
  # Install dependencies
@@ -1476,7 +1515,7 @@ MUSUBI synthesizes features from:
1476
1515
 
1477
1516
  **🎋 MUSUBI** - むすび - Bringing specifications, design, and code together.
1478
1517
 
1479
- [![GitHub stars](https://img.shields.io/github/stars/nahisaho/musubi?style=social)](https://github.com/nahisaho/musubi)
1518
+ [![GitHub stars](https://img.shields.io/github/stars/nahisaho/musubi?style=social)](https://github.com/nahisaho/MUSUBI)
1480
1519
 
1481
1520
  Made with ❤️ for the AI Coding Community
1482
1521
 
@@ -2,9 +2,9 @@
2
2
 
3
3
  /**
4
4
  * MUSUBI Dashboard CLI
5
- *
5
+ *
6
6
  * Workflow dashboard for progress visualization and management.
7
- *
7
+ *
8
8
  * Usage:
9
9
  * musubi-dashboard show <feature> Show workflow status
10
10
  * musubi-dashboard create <feature> Create new workflow
@@ -12,7 +12,7 @@
12
12
  * musubi-dashboard blocker <feature> Manage blockers
13
13
  * musubi-dashboard sprint <action> Sprint management
14
14
  * musubi-dashboard trace <action> Traceability management
15
- *
15
+ *
16
16
  * Requirement: IMP-6.2-003-05
17
17
  */
18
18
 
@@ -70,13 +70,13 @@ async function main() {
70
70
  result = await cli.execute('blocker:add', [subcommand], {
71
71
  stage: options.stage || 'current',
72
72
  description: options.add,
73
- severity: options.severity || 'medium'
73
+ severity: options.severity || 'medium',
74
74
  });
75
75
  console.log(`\n✅ Blocker added: ${options.add}`);
76
76
  } else if (options.resolve) {
77
77
  result = await cli.execute('blocker:resolve', [subcommand], {
78
78
  blockerId: options.resolve,
79
- resolution: options.resolution || 'Resolved'
79
+ resolution: options.resolution || 'Resolved',
80
80
  });
81
81
  console.log(`\n✅ Blocker resolved`);
82
82
  } else {
@@ -213,7 +213,7 @@ function formatWorkflowStatus(workflow) {
213
213
 
214
214
  function formatBlockers(result) {
215
215
  const blockers = result.blockers || [];
216
-
216
+
217
217
  if (blockers.length === 0) {
218
218
  console.log('\n✅ No blockers');
219
219
  return;
@@ -241,10 +241,12 @@ function formatSprintStatus(sprint) {
241
241
  console.log('═'.repeat(50));
242
242
  console.log(`Status: ${sprint.status || 'unknown'}`);
243
243
  console.log(`Tasks: ${sprint.tasks?.length || 0}`);
244
-
244
+
245
245
  if (sprint.metrics) {
246
246
  console.log(`Completion: ${sprint.metrics.completionPercentage || 0}%`);
247
- console.log(`Points: ${sprint.metrics.completedPoints || 0}/${sprint.metrics.totalPoints || 0}`);
247
+ console.log(
248
+ `Points: ${sprint.metrics.completedPoints || 0}/${sprint.metrics.totalPoints || 0}`
249
+ );
248
250
  }
249
251
  }
250
252
 
@@ -268,7 +270,14 @@ function formatGaps(result) {
268
270
 
269
271
  Object.entries(bySeverity).forEach(([severity, items]) => {
270
272
  if (items.length > 0) {
271
- const icon = severity === 'critical' ? '🔴' : severity === 'high' ? '🟠' : severity === 'medium' ? '🟡' : '🟢';
273
+ const icon =
274
+ severity === 'critical'
275
+ ? '🔴'
276
+ : severity === 'high'
277
+ ? '🟠'
278
+ : severity === 'medium'
279
+ ? '🟡'
280
+ : '🟢';
272
281
  console.log(`\n${icon} ${severity.toUpperCase()} (${items.length}):`);
273
282
  items.forEach(gap => {
274
283
  console.log(` - ${gap.requirementId}: ${gap.gapType}`);
@@ -282,11 +291,11 @@ function formatGaps(result) {
282
291
 
283
292
  function getStatusIcon(status) {
284
293
  const icons = {
285
- 'completed': '✅',
294
+ completed: '✅',
286
295
  'in-progress': '🔄',
287
- 'blocked': '🚫',
288
- 'pending': '⬜',
289
- 'not-started': '⬜'
296
+ blocked: '🚫',
297
+ pending: '⬜',
298
+ 'not-started': '⬜',
290
299
  };
291
300
  return icons[status] || '⬜';
292
301
  }
@@ -41,10 +41,10 @@ program
41
41
  program
42
42
  .command('init <feature>')
43
43
  .description('Initialize design document for a feature')
44
- .option('-o, --output <path>', 'Output directory', 'docs/design')
44
+ .option('-o, --output <path>', 'Output directory', 'storage/design')
45
45
  .option('-a, --author <name>', 'Author name')
46
46
  .option('--project <name>', 'Project name')
47
- .option('-r, --requirements <path>', 'Requirements file path')
47
+ .option('-r, --requirements <path>', 'Requirements directory path', 'storage/specs')
48
48
  .option('--dry-run', 'Show what would be created without writing files')
49
49
  .option('--verbose', 'Show detailed output')
50
50
  .option('--json', 'Output result as JSON')
@@ -59,7 +59,7 @@ program
59
59
  console.log(chalk.dim(` Output: ${options.output}`));
60
60
  console.log(chalk.dim(` Author: ${options.author || 'Not specified'}`));
61
61
  console.log(chalk.dim(` Project: ${options.project || 'Not specified'}`));
62
- console.log(chalk.dim(` Requirements: ${options.requirements || 'Not specified'}`));
62
+ console.log(chalk.dim(` Requirements: ${options.requirements}`));
63
63
  console.log(chalk.dim(` Dry run: ${options.dryRun || false}`));
64
64
  console.log();
65
65
  }
@@ -19,9 +19,9 @@ program
19
19
  program
20
20
  .command('detect')
21
21
  .description('Detect all gaps (requirements, code, tests)')
22
- .option('--requirements <dir>', 'Requirements directory', 'docs/requirements')
23
- .option('--design <dir>', 'Design directory', 'docs/design')
24
- .option('--tasks <dir>', 'Tasks directory', 'docs/tasks')
22
+ .option('--requirements <dir>', 'Requirements directory', 'storage/specs')
23
+ .option('--design <dir>', 'Design directory', 'storage/design')
24
+ .option('--tasks <dir>', 'Tasks directory', 'storage/tasks')
25
25
  .option('--src <dir>', 'Source code directory', 'src')
26
26
  .option('--tests <dir>', 'Test directory', 'tests')
27
27
  .option('--format <format>', 'Output format (table|json|markdown)', 'table')
@@ -70,9 +70,9 @@ program
70
70
  program
71
71
  .command('requirements')
72
72
  .description('Detect orphaned requirements (no design/code)')
73
- .option('--requirements <dir>', 'Requirements directory', 'docs/requirements')
74
- .option('--design <dir>', 'Design directory', 'docs/design')
75
- .option('--tasks <dir>', 'Tasks directory', 'docs/tasks')
73
+ .option('--requirements <dir>', 'Requirements directory', 'storage/specs')
74
+ .option('--design <dir>', 'Design directory', 'storage/design')
75
+ .option('--tasks <dir>', 'Tasks directory', 'storage/tasks')
76
76
  .option('--format <format>', 'Output format (table|json|markdown)', 'table')
77
77
  .action(async options => {
78
78
  try {
@@ -148,9 +148,9 @@ program
148
148
  program
149
149
  .command('coverage')
150
150
  .description('Calculate coverage statistics')
151
- .option('--requirements <dir>', 'Requirements directory', 'docs/requirements')
152
- .option('--design <dir>', 'Design directory', 'docs/design')
153
- .option('--tasks <dir>', 'Tasks directory', 'docs/tasks')
151
+ .option('--requirements <dir>', 'Requirements directory', 'storage/specs')
152
+ .option('--design <dir>', 'Design directory', 'storage/design')
153
+ .option('--tasks <dir>', 'Tasks directory', 'storage/tasks')
154
154
  .option('--src <dir>', 'Source code directory', 'src')
155
155
  .option('--tests <dir>', 'Test directory', 'tests')
156
156
  .option('--min-coverage <percent>', 'Minimum required coverage', '100')