musubi-sdd 5.9.6 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +15 -10
- package/README.md +12 -7
- package/bin/musubi-init.js +1 -1
- package/package.json +1 -1
- package/src/templates/agents/claude-code/skills/constitution-enforcer/SKILL.md +1 -1
- package/src/templates/agents/claude-code/skills/constitution-enforcer/phase-minus-one-gates.md +3 -3
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/SKILL.md +1 -1
- package/src/templates/agents/claude-code/skills/steering/auto-update-rules.md +6 -6
- package/src/templates/agents/claude-code/skills/traceability-auditor/SKILL.md +4 -4
- package/src/templates/agents/claude-code/skills/traceability-auditor/coverage-matrix-template.md +3 -3
- package/src/templates/agents/claude-code/skills/traceability-auditor/gap-detection-rules.md +3 -3
- package/src/templates/agents/github-copilot/commands/{sdd-requirements.md → sdd-requirements.prompt.md} +216 -42
- /package/src/templates/agents/github-copilot/commands/{sdd-change-apply.md → sdd-change-apply.prompt.md} +0 -0
- /package/src/templates/agents/github-copilot/commands/{sdd-change-archive.md → sdd-change-archive.prompt.md} +0 -0
- /package/src/templates/agents/github-copilot/commands/{sdd-change-init.md → sdd-change-init.prompt.md} +0 -0
- /package/src/templates/agents/github-copilot/commands/{sdd-design.md → sdd-design.prompt.md} +0 -0
- /package/src/templates/agents/github-copilot/commands/{sdd-implement.md → sdd-implement.prompt.md} +0 -0
- /package/src/templates/agents/github-copilot/commands/{sdd-steering.md → sdd-steering.prompt.md} +0 -0
- /package/src/templates/agents/github-copilot/commands/{sdd-tasks.md → sdd-tasks.prompt.md} +0 -0
- /package/src/templates/agents/github-copilot/commands/{sdd-validate.md → sdd-validate.prompt.md} +0 -0
package/README.ja.md
CHANGED
|
@@ -262,10 +262,10 @@ musubi init -r owner/repo@develop
|
|
|
262
262
|
|
|
263
263
|
MUSUBIは7つのAIコーディングエージェントに対応し、それぞれに最適化された設定を提供します。
|
|
264
264
|
|
|
265
|
-
| エージェント | スキルAPI | 27スキル | コマンド形式 | コマンドファイル形式
|
|
266
|
-
| ------------------ | ------------- | -------------- | ---------------- |
|
|
267
|
-
| **Claude Code** | ✅ (27スキル) | ✅ | `/sdd-*` | Markdown
|
|
268
|
-
| **GitHub Copilot** | ❌ | ✅ (AGENTS.md) |
|
|
265
|
+
| エージェント | スキルAPI | 27スキル | コマンド形式 | コマンドファイル形式 | インストールディレクトリ |
|
|
266
|
+
| ------------------ | ------------- | -------------- | ---------------- | ------------------------- | --------------------------------------------- |
|
|
267
|
+
| **Claude Code** | ✅ (27スキル) | ✅ | `/sdd-*` | Markdown (.md) | `.claude/skills/`, `.claude/commands/` |
|
|
268
|
+
| **GitHub Copilot** | ❌ | ✅ (AGENTS.md) | `/sdd-*` | プロンプトファイル (.prompt.md) | `.github/prompts/`, `.github/AGENTS.md` |
|
|
269
269
|
| **Cursor IDE** | ❌ | ✅ (AGENTS.md) | `/sdd-*` | Markdown + AGENTS.md | `.cursor/commands/`, `.cursor/AGENTS.md` |
|
|
270
270
|
| **Gemini CLI** | ❌ | ✅ (GEMINI.md) | `/sdd-*` | TOML + GEMINI.md | `.gemini/commands/`, `GEMINI.md` |
|
|
271
271
|
| **Codex CLI** | ❌ | ✅ (AGENTS.md) | `/prompts:sdd-*` | Markdown + AGENTS.md | `.codex/prompts/`, `.codex/AGENTS.md` |
|
|
@@ -277,6 +277,7 @@ MUSUBIは7つのAIコーディングエージェントに対応し、それぞ
|
|
|
277
277
|
- スキルAPIはClaude Code専用です
|
|
278
278
|
- **全7プラットフォームが27スキルに対応**(Skills APIまたはAGENTS.md経由)
|
|
279
279
|
- v5.9.0で5つの組み込みオーケストレータースキルを追加(release, workflow, package, constitution-level, project-config)
|
|
280
|
+
- **GitHub CopilotはVS Code公式ドキュメントに従い `.prompt.md` 拡張子を使用**
|
|
280
281
|
- AGENTS.md: OpenAI仕様、GitHub Copilot & Cursorが公式サポート
|
|
281
282
|
- Gemini CLIはTOML形式 + GEMINI.md統合を使用
|
|
282
283
|
- その他のエージェントはMarkdown形式 + AGENTS.mdを使用
|
|
@@ -535,8 +536,11 @@ your-project/
|
|
|
535
536
|
|
|
536
537
|
```text
|
|
537
538
|
your-project/
|
|
538
|
-
├── .github/prompts/ # GitHub Copilot
|
|
539
|
-
│ ├──
|
|
539
|
+
├── .github/prompts/ # GitHub Copilot用(/sdd-*、.prompt.md)
|
|
540
|
+
│ ├── sdd-steering.prompt.md # プロンプトファイルは .prompt.md 拡張子
|
|
541
|
+
│ ├── sdd-requirements.prompt.md
|
|
542
|
+
│ ├── ... (9つのプロンプトファイル)
|
|
543
|
+
│ └── AGENTS.md # 27エージェント定義(公式サポート)
|
|
540
544
|
│ または
|
|
541
545
|
├── .cursor/commands/ # Cursor用(/sdd-*、Markdown)
|
|
542
546
|
│ ├── AGENTS.md # 25エージェント定義(公式サポート)
|
|
@@ -563,11 +567,12 @@ your-project/
|
|
|
563
567
|
|
|
564
568
|
**主な違い**:
|
|
565
569
|
|
|
566
|
-
- **Claude Code**:
|
|
567
|
-
- **GitHub Copilot
|
|
568
|
-
- **
|
|
570
|
+
- **Claude Code**: 27 Skills API(専用) + コマンド(Markdown)
|
|
571
|
+
- **GitHub Copilot**: AGENTS.md(公式サポート) + プロンプトファイル (`.prompt.md`)
|
|
572
|
+
- **Cursor**: AGENTS.md(公式サポート) + コマンド(Markdown)
|
|
573
|
+
- **Gemini CLI**: GEMINI.md統合(27エージェント) + TOMLコマンド(ユニーク)
|
|
569
574
|
- **その他**: AGENTS.md(互換) + Markdownコマンド
|
|
570
|
-
- **全プラットフォーム**: 同じ
|
|
575
|
+
- **全プラットフォーム**: 同じ27エージェント、異なる実装形式
|
|
571
576
|
|
|
572
577
|
## 使用方法
|
|
573
578
|
|
package/README.md
CHANGED
|
@@ -365,10 +365,10 @@ const result = await validator.validateAll(projectPath);
|
|
|
365
365
|
|
|
366
366
|
MUSUBI supports 7 AI coding agents, each with tailored configurations:
|
|
367
367
|
|
|
368
|
-
| Agent | Skills API | 27 Skills | Command Format | Command File Format
|
|
369
|
-
| ------------------ | -------------- | -------------- | ---------------- |
|
|
370
|
-
| **Claude Code** | ✅ (27 skills) | ✅ | `/sdd-*` | Markdown
|
|
371
|
-
| **GitHub Copilot** | ❌ | ✅ (AGENTS.md) |
|
|
368
|
+
| Agent | Skills API | 27 Skills | Command Format | Command File Format | Installation Directory |
|
|
369
|
+
| ------------------ | -------------- | -------------- | ---------------- | ------------------------- | --------------------------------------------- |
|
|
370
|
+
| **Claude Code** | ✅ (27 skills) | ✅ | `/sdd-*` | Markdown (.md) | `.claude/skills/`, `.claude/commands/` |
|
|
371
|
+
| **GitHub Copilot** | ❌ | ✅ (AGENTS.md) | `/sdd-*` | Prompt File (.prompt.md) | `.github/prompts/`, `.github/AGENTS.md` |
|
|
372
372
|
| **Cursor IDE** | ❌ | ✅ (AGENTS.md) | `/sdd-*` | Markdown + AGENTS.md | `.cursor/commands/`, `.cursor/AGENTS.md` |
|
|
373
373
|
| **Gemini CLI** | ❌ | ✅ (GEMINI.md) | `/sdd-*` | TOML + GEMINI.md | `.gemini/commands/`, `GEMINI.md` |
|
|
374
374
|
| **Codex CLI** | ❌ | ✅ (AGENTS.md) | `/prompts:sdd-*` | Markdown + AGENTS.md | `.codex/prompts/`, `.codex/AGENTS.md` |
|
|
@@ -380,6 +380,7 @@ MUSUBI supports 7 AI coding agents, each with tailored configurations:
|
|
|
380
380
|
- Skills API is exclusive to Claude Code
|
|
381
381
|
- **All 7 platforms now support 27 skills** via Skills API (Claude Code) or AGENTS.md (others)
|
|
382
382
|
- v5.9.0 added 5 built-in orchestrator skills (release, workflow, package, constitution-level, project-config)
|
|
383
|
+
- **GitHub Copilot uses `.prompt.md` extension** per VS Code official documentation
|
|
383
384
|
- AGENTS.md: OpenAI specification, officially supported by GitHub Copilot & Cursor
|
|
384
385
|
- Gemini CLI uses TOML format + GEMINI.md integration
|
|
385
386
|
|
|
@@ -646,8 +647,11 @@ your-project/
|
|
|
646
647
|
|
|
647
648
|
```text
|
|
648
649
|
your-project/
|
|
649
|
-
├── .github/prompts/ # For GitHub Copilot (
|
|
650
|
-
│ ├──
|
|
650
|
+
├── .github/prompts/ # For GitHub Copilot (/sdd-*, .prompt.md)
|
|
651
|
+
│ ├── sdd-steering.prompt.md # Prompt files use .prompt.md extension
|
|
652
|
+
│ ├── sdd-requirements.prompt.md
|
|
653
|
+
│ ├── ... (9 prompt files)
|
|
654
|
+
│ └── AGENTS.md # 27 skills definition (official support)
|
|
651
655
|
│ OR
|
|
652
656
|
├── .cursor/commands/ # For Cursor (/sdd-*, Markdown)
|
|
653
657
|
│ ├── AGENTS.md # 27 skills definition (official support)
|
|
@@ -684,7 +688,8 @@ your-project/
|
|
|
684
688
|
**Key Differences**:
|
|
685
689
|
|
|
686
690
|
- **Claude Code**: 27 Skills (25 + 5 built-in) + commands (Markdown)
|
|
687
|
-
- **GitHub Copilot
|
|
691
|
+
- **GitHub Copilot**: AGENTS.md (official support) + prompt files (`.prompt.md`)
|
|
692
|
+
- **Cursor**: AGENTS.md (official support) + commands (Markdown)
|
|
688
693
|
- **Gemini CLI**: GEMINI.md integration (27 skills) + TOML commands (unique)
|
|
689
694
|
- **Others**: AGENTS.md (compatible) + Markdown commands
|
|
690
695
|
- **All platforms**: Same 27 skills, different implementation formats
|
package/bin/musubi-init.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "musubi-sdd",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"description": "Ultimate Specification Driven Development Tool with 27 Agents for 7 AI Coding Platforms + MCP Integration (Claude Code, GitHub Copilot, Cursor, Gemini CLI, Windsurf, Codex, Qwen Code)",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -616,4 +616,4 @@ Before finishing:
|
|
|
616
616
|
- [ ] Failures documented with severity
|
|
617
617
|
- [ ] Remediation plan provided
|
|
618
618
|
- [ ] Overall status determined (APPROVED/BLOCKED)
|
|
619
|
-
- [ ] Report saved to `storage/
|
|
619
|
+
- [ ] Report saved to `storage/specs/[feature]/constitutional-compliance.md`
|
package/src/templates/agents/claude-code/skills/constitution-enforcer/phase-minus-one-gates.md
CHANGED
|
@@ -192,9 +192,9 @@ def validate_traceability_setup(feature_name):
|
|
|
192
192
|
Verify traceability chain is ready.
|
|
193
193
|
"""
|
|
194
194
|
required_artifacts = {
|
|
195
|
-
"requirements": f"storage/
|
|
196
|
-
"design": f"storage/
|
|
197
|
-
"tasks": f"storage/
|
|
195
|
+
"requirements": f"storage/specs/{feature_name}/requirements.md",
|
|
196
|
+
"design": f"storage/specs/{feature_name}/design.md",
|
|
197
|
+
"tasks": f"storage/specs/{feature_name}/tasks.md",
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
for artifact, path in required_artifacts.items():
|
|
@@ -318,7 +318,7 @@ app.get('/health/live', (req, res) => {
|
|
|
318
318
|
|
|
319
319
|
### Phase 1: SLO Definition (Based on Requirements)
|
|
320
320
|
|
|
321
|
-
1. Read `storage/
|
|
321
|
+
1. Read `storage/specs/[feature]-requirements.md`
|
|
322
322
|
2. Identify non-functional requirements (performance, availability)
|
|
323
323
|
3. Define SLIs and SLOs
|
|
324
324
|
4. Calculate error budgets
|
|
@@ -107,7 +107,7 @@ git diff --name-only | grep -E "(webpack|vite|rollup|esbuild)\.config\."
|
|
|
107
107
|
|
|
108
108
|
```bash
|
|
109
109
|
# New feature directories
|
|
110
|
-
git diff --name-only --diff-filter=A | grep "storage/
|
|
110
|
+
git diff --name-only --diff-filter=A | grep "storage/specs/"
|
|
111
111
|
|
|
112
112
|
# New requirement files
|
|
113
113
|
git diff --name-only --diff-filter=A | grep "requirements\.md"
|
|
@@ -154,7 +154,7 @@ git diff --name-only --diff-filter=A | grep "requirements\.md"
|
|
|
154
154
|
|
|
155
155
|
### memories/architecture_decisions.md
|
|
156
156
|
|
|
157
|
-
**Trigger**: New ADR created in `storage/
|
|
157
|
+
**Trigger**: New ADR created in `storage/specs/*/design.md`
|
|
158
158
|
|
|
159
159
|
**Action**:
|
|
160
160
|
|
|
@@ -245,8 +245,8 @@ diff <(grep "dependencies" steering/tech.md) <(cat package.json | jq '.dependenc
|
|
|
245
245
|
# 2. Check if structure.md directories match actual structure
|
|
246
246
|
diff <(grep -E "^-\s+" steering/structure.md | cut -d' ' -f2) <(find src -type d -maxdepth 2)
|
|
247
247
|
|
|
248
|
-
# 3. Check if product.md features match storage/
|
|
249
|
-
diff <(grep "Feature" steering/product.md) <(ls storage/
|
|
248
|
+
# 3. Check if product.md features match storage/specs/
|
|
249
|
+
diff <(grep "Feature" steering/product.md) <(ls storage/specs/)
|
|
250
250
|
```
|
|
251
251
|
|
|
252
252
|
### Report Divergence
|
|
@@ -268,7 +268,7 @@ diff <(grep "Feature" steering/product.md) <(ls storage/features/)
|
|
|
268
268
|
|
|
269
269
|
### product.md
|
|
270
270
|
|
|
271
|
-
- ⚠️ Missing feature: payment-integration (in storage/
|
|
271
|
+
- ⚠️ Missing feature: payment-integration (in storage/specs/)
|
|
272
272
|
|
|
273
273
|
## Recommendations
|
|
274
274
|
|
|
@@ -310,7 +310,7 @@ on:
|
|
|
310
310
|
paths:
|
|
311
311
|
- 'package.json'
|
|
312
312
|
- 'src/**'
|
|
313
|
-
- 'storage/
|
|
313
|
+
- 'storage/specs/**'
|
|
314
314
|
|
|
315
315
|
jobs:
|
|
316
316
|
check-steering:
|
|
@@ -101,9 +101,9 @@ Test Suite (tests/auth/service.test.ts)
|
|
|
101
101
|
|
|
102
102
|
### Phase 1: Collect Artifacts
|
|
103
103
|
|
|
104
|
-
1. Read `storage/
|
|
105
|
-
2. Read `storage/
|
|
106
|
-
3. Read `storage/
|
|
104
|
+
1. Read `storage/specs/[feature]-requirements.md`
|
|
105
|
+
2. Read `storage/specs/[feature]-design.md`
|
|
106
|
+
3. Read `storage/specs/[feature]-tasks.md`
|
|
107
107
|
4. Scan source code for implementation
|
|
108
108
|
5. Scan test files for test cases
|
|
109
109
|
|
|
@@ -290,7 +290,7 @@ coverage_test = (requirements_with_tests / requirements_total) * 100
|
|
|
290
290
|
- **After**:
|
|
291
291
|
- If gaps found → orchestrator triggers missing skills
|
|
292
292
|
- If complete → quality-assurance approves release
|
|
293
|
-
- **Uses**: All spec files in `storage/
|
|
293
|
+
- **Uses**: All spec files in `storage/specs/` and `storage/changes/`
|
|
294
294
|
|
|
295
295
|
## Gap Detection Rules
|
|
296
296
|
|
package/src/templates/agents/claude-code/skills/traceability-auditor/coverage-matrix-template.md
CHANGED
|
@@ -99,9 +99,9 @@ Template for creating traceability coverage matrices that ensure 100% compliance
|
|
|
99
99
|
def generate_traceability_matrix(feature_name):
|
|
100
100
|
"""Generate traceability matrix for a feature."""
|
|
101
101
|
|
|
102
|
-
requirements = parse_requirements(f"storage/
|
|
103
|
-
design = parse_design(f"storage/
|
|
104
|
-
tasks = parse_tasks(f"storage/
|
|
102
|
+
requirements = parse_requirements(f"storage/specs/{feature_name}-requirements.md")
|
|
103
|
+
design = parse_design(f"storage/specs/{feature_name}-design.md")
|
|
104
|
+
tasks = parse_tasks(f"storage/specs/{feature_name}-tasks.md")
|
|
105
105
|
code_files = find_code_files(f"src/{feature_name}/")
|
|
106
106
|
test_files = find_test_files(f"tests/{feature_name}/")
|
|
107
107
|
|
|
@@ -94,8 +94,8 @@ for ref in all_references:
|
|
|
94
94
|
#!/bin/bash
|
|
95
95
|
# find-orphaned-requirements.sh
|
|
96
96
|
|
|
97
|
-
REQ_FILE="storage/
|
|
98
|
-
DESIGN_FILE="storage/
|
|
97
|
+
REQ_FILE="storage/specs/$1-requirements.md"
|
|
98
|
+
DESIGN_FILE="storage/specs/$1-design.md"
|
|
99
99
|
|
|
100
100
|
# Extract requirement IDs
|
|
101
101
|
grep -oP 'REQ-[\w-]+' "$REQ_FILE" | sort -u > /tmp/reqs.txt
|
|
@@ -212,7 +212,7 @@ name: Traceability Check
|
|
|
212
212
|
on:
|
|
213
213
|
pull_request:
|
|
214
214
|
paths:
|
|
215
|
-
- 'storage/
|
|
215
|
+
- 'storage/specs/**'
|
|
216
216
|
- 'src/**'
|
|
217
217
|
- 'tests/**'
|
|
218
218
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# SDD Requirements Command
|
|
2
2
|
|
|
3
|
-
Create EARS-format requirements specification.
|
|
3
|
+
Create EARS-format requirements specification through interactive dialogue.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## Instructions for
|
|
7
|
+
## Instructions for AI Agent
|
|
8
8
|
|
|
9
9
|
You are executing the `/sdd-requirements [feature-name]` command to create a requirements specification.
|
|
10
10
|
|
|
@@ -18,7 +18,14 @@ You are executing the `/sdd-requirements [feature-name]` command to create a req
|
|
|
18
18
|
|
|
19
19
|
### Your Task
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
**CRITICAL**: Before generating requirements, you MUST engage in an interactive 1-on-1 dialogue with the user to uncover the TRUE PURPOSE behind their request. Surface-level requirements often hide deeper needs.
|
|
22
|
+
|
|
23
|
+
### Output Directory
|
|
24
|
+
|
|
25
|
+
**Requirements documents are saved to**: `storage/specs/`
|
|
26
|
+
|
|
27
|
+
- English: `storage/specs/{{feature-name}}-requirements.md`
|
|
28
|
+
- Japanese: `storage/specs/{{feature-name}}-requirements.ja.md`
|
|
22
29
|
|
|
23
30
|
---
|
|
24
31
|
|
|
@@ -44,28 +51,103 @@ steering/tech.md # Technology stack
|
|
|
44
51
|
|
|
45
52
|
---
|
|
46
53
|
|
|
47
|
-
### 2.
|
|
54
|
+
### 2. Interactive True Purpose Discovery (1-on-1 Dialogue)
|
|
55
|
+
|
|
56
|
+
**CRITICAL**: Conduct a 1-question-at-a-time dialogue to uncover the TRUE PURPOSE.
|
|
57
|
+
|
|
58
|
+
#### Phase 1: Surface Purpose → True Purpose Discovery
|
|
59
|
+
|
|
60
|
+
**Ask ONE question at a time. Wait for the user's response before proceeding.**
|
|
61
|
+
|
|
62
|
+
**Question Flow**:
|
|
48
63
|
|
|
49
|
-
**
|
|
64
|
+
1. **Why Question** (Dig deeper into purpose)
|
|
65
|
+
- "この機能で解決したい『本当の課題』は何ですか?"
|
|
66
|
+
- "この機能がないと、誰がどのように困りますか?"
|
|
50
67
|
|
|
51
|
-
|
|
68
|
+
2. **Who Question** (Identify stakeholders)
|
|
69
|
+
- "この機能を最も必要としているのは誰ですか?"
|
|
70
|
+
- "この機能の成功を判断する人は誰ですか?"
|
|
52
71
|
|
|
53
|
-
|
|
72
|
+
3. **What-If Question** (Validate assumptions)
|
|
73
|
+
- "もしこの機能が完璧に動作したら、何が変わりますか?"
|
|
74
|
+
- "この機能なしで、代替手段はありますか?"
|
|
54
75
|
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
|
|
59
|
-
|
|
76
|
+
4. **Constraint Question** (Uncover hidden limits)
|
|
77
|
+
- "この機能で『絶対にやってはいけないこと』はありますか?"
|
|
78
|
+
- "技術的・ビジネス的な制約はありますか?"
|
|
79
|
+
|
|
80
|
+
5. **Success Criteria Question** (Define done)
|
|
81
|
+
- "この機能が『成功した』と言えるのはどんな状態ですか?"
|
|
82
|
+
- "具体的な数値目標(KPI)はありますか?"
|
|
83
|
+
|
|
84
|
+
**IMPORTANT**:
|
|
85
|
+
- Ask only ONE question and wait for response
|
|
86
|
+
- Based on the answer, ask follow-up questions
|
|
87
|
+
- Continue until the TRUE PURPOSE is clear
|
|
88
|
+
- Summarize understanding and confirm with user
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
### 3. MECE Analysis (Comprehensive Coverage)
|
|
93
|
+
|
|
94
|
+
**After understanding the TRUE PURPOSE, apply MECE to ensure completeness.**
|
|
95
|
+
|
|
96
|
+
#### MECE Dimensions for Requirements
|
|
97
|
+
|
|
98
|
+
**Dimension 1: User Journey (Who × When × Where)**
|
|
99
|
+
| Stage | Questions to Cover |
|
|
100
|
+
|-------|--------------------|
|
|
101
|
+
| Before | How do users discover/access this feature? |
|
|
102
|
+
| During | What is the core interaction flow? |
|
|
103
|
+
| After | What happens after completion? Notifications? |
|
|
104
|
+
| Error | What happens when something goes wrong? |
|
|
105
|
+
|
|
106
|
+
**Dimension 2: Data Lifecycle (CRUD)**
|
|
107
|
+
| Operation | Check |
|
|
108
|
+
|-----------|-------|
|
|
109
|
+
| Create | What data is created? By whom? |
|
|
110
|
+
| Read | Who can view? What format? |
|
|
111
|
+
| Update | What can be modified? By whom? |
|
|
112
|
+
| Delete | Soft delete? Hard delete? Retention? |
|
|
113
|
+
|
|
114
|
+
**Dimension 3: Cross-Cutting Concerns**
|
|
115
|
+
| Concern | Requirements |
|
|
116
|
+
|---------|-------------|
|
|
117
|
+
| Security | Authentication, Authorization, Encryption |
|
|
118
|
+
| Performance | Response time, Throughput, Concurrency |
|
|
119
|
+
| Reliability | Error handling, Recovery, Failover |
|
|
120
|
+
| Scalability | Load limits, Growth capacity |
|
|
121
|
+
| Compliance | GDPR, SOC2, PCI-DSS (if applicable) |
|
|
122
|
+
|
|
123
|
+
**Dimension 4: Integration Points**
|
|
124
|
+
| Integration | Check |
|
|
125
|
+
|-------------|-------|
|
|
126
|
+
| Upstream | What systems feed data to this feature? |
|
|
127
|
+
| Downstream | What systems consume this feature's output? |
|
|
128
|
+
| External | Any third-party APIs or services? |
|
|
129
|
+
|
|
130
|
+
**MECE Completeness Check**:
|
|
131
|
+
- [ ] All user types covered?
|
|
132
|
+
- [ ] All states (normal, edge, error) covered?
|
|
133
|
+
- [ ] All data flows covered?
|
|
134
|
+
- [ ] All integration points covered?
|
|
135
|
+
- [ ] No overlapping requirements?
|
|
136
|
+
|
|
137
|
+
---
|
|
60
138
|
|
|
61
|
-
|
|
139
|
+
### 4. Research Existing System (Brownfield)
|
|
140
|
+
|
|
141
|
+
**If modifying existing functionality**:
|
|
62
142
|
|
|
63
143
|
- Search for existing implementation: `grep -r "{{feature}}" src/`
|
|
64
144
|
- Read related code
|
|
65
145
|
- Identify current behavior
|
|
66
146
|
- Document what needs to change (delta spec)
|
|
67
147
|
|
|
68
|
-
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
### 5. Contextual Research
|
|
69
151
|
|
|
70
152
|
- Analyze steering/product.md for user types
|
|
71
153
|
- Review existing requirements docs
|
|
@@ -73,7 +155,9 @@ Use `AskUserQuestion` tool to ask:
|
|
|
73
155
|
|
|
74
156
|
---
|
|
75
157
|
|
|
76
|
-
###
|
|
158
|
+
### 6. Generate Requirements Document
|
|
159
|
+
|
|
160
|
+
**Output Directory**: `storage/specs/`
|
|
77
161
|
|
|
78
162
|
Use template from `templates/requirements.md`:
|
|
79
163
|
|
|
@@ -84,13 +168,41 @@ Use template from `templates/requirements.md`:
|
|
|
84
168
|
|
|
85
169
|
## Overview
|
|
86
170
|
|
|
87
|
-
- Purpose
|
|
171
|
+
- Purpose (True Purpose discovered through dialogue)
|
|
88
172
|
- Scope (in/out)
|
|
89
173
|
- Business context (from steering/product.md)
|
|
90
174
|
|
|
175
|
+
## True Purpose Statement
|
|
176
|
+
|
|
177
|
+
[Summary of TRUE PURPOSE uncovered through dialogue]
|
|
178
|
+
|
|
179
|
+
- Surface Request: [What user initially asked for]
|
|
180
|
+
- True Purpose: [What user actually needs]
|
|
181
|
+
- Key Insight: [Critical understanding gained]
|
|
182
|
+
|
|
91
183
|
## Stakeholders
|
|
92
184
|
|
|
93
|
-
[Table of roles]
|
|
185
|
+
[Table of roles identified through dialogue]
|
|
186
|
+
|
|
187
|
+
## MECE Coverage Summary
|
|
188
|
+
|
|
189
|
+
### User Journey Coverage
|
|
190
|
+
- [ ] Before: Entry/Discovery
|
|
191
|
+
- [ ] During: Core Flow
|
|
192
|
+
- [ ] After: Completion
|
|
193
|
+
- [ ] Error: Exception Handling
|
|
194
|
+
|
|
195
|
+
### Data Lifecycle Coverage
|
|
196
|
+
- [ ] Create
|
|
197
|
+
- [ ] Read
|
|
198
|
+
- [ ] Update
|
|
199
|
+
- [ ] Delete
|
|
200
|
+
|
|
201
|
+
### Cross-Cutting Concerns
|
|
202
|
+
- [ ] Security
|
|
203
|
+
- [ ] Performance
|
|
204
|
+
- [ ] Reliability
|
|
205
|
+
- [ ] Scalability
|
|
94
206
|
|
|
95
207
|
## Functional Requirements
|
|
96
208
|
|
|
@@ -98,6 +210,8 @@ Use template from `templates/requirements.md`:
|
|
|
98
210
|
|
|
99
211
|
[EARS Pattern - choose appropriate pattern]
|
|
100
212
|
|
|
213
|
+
**MECE Category**: [User Journey Stage | Data Operation | etc.]
|
|
214
|
+
|
|
101
215
|
**Acceptance Criteria**:
|
|
102
216
|
|
|
103
217
|
- [Testable criterion 1]
|
|
@@ -119,6 +233,10 @@ Use template from `templates/requirements.md`:
|
|
|
119
233
|
|
|
120
234
|
### REQ-AVAIL-001: Availability
|
|
121
235
|
|
|
236
|
+
## MECE Gap Analysis
|
|
237
|
+
|
|
238
|
+
[List any gaps identified during MECE analysis]
|
|
239
|
+
|
|
122
240
|
## Requirements Coverage Matrix
|
|
123
241
|
|
|
124
242
|
[Initial table - will be filled during design/implementation]
|
|
@@ -126,7 +244,7 @@ Use template from `templates/requirements.md`:
|
|
|
126
244
|
|
|
127
245
|
---
|
|
128
246
|
|
|
129
|
-
###
|
|
247
|
+
### 7. Apply EARS Format (Article IV)
|
|
130
248
|
|
|
131
249
|
**CRITICAL**: All requirements MUST use one of 5 EARS patterns.
|
|
132
250
|
|
|
@@ -150,10 +268,11 @@ Each requirement MUST have:
|
|
|
150
268
|
- [ ] Testable acceptance criteria
|
|
151
269
|
- [ ] Priority (P0/P1/P2/P3)
|
|
152
270
|
- [ ] Status (Draft initially)
|
|
271
|
+
- [ ] MECE Category (for traceability)
|
|
153
272
|
|
|
154
273
|
---
|
|
155
274
|
|
|
156
|
-
###
|
|
275
|
+
### 8. Assign Requirement IDs
|
|
157
276
|
|
|
158
277
|
**Format**: `REQ-[COMPONENT]-[NUMBER]`
|
|
159
278
|
|
|
@@ -172,7 +291,7 @@ Each requirement MUST have:
|
|
|
172
291
|
|
|
173
292
|
---
|
|
174
293
|
|
|
175
|
-
###
|
|
294
|
+
### 9. Add Non-Functional Requirements (from MECE Cross-Cutting Concerns)
|
|
176
295
|
|
|
177
296
|
Always include these categories:
|
|
178
297
|
|
|
@@ -221,7 +340,7 @@ The {{COMPONENT}} SHALL maintain 99.9% uptime.
|
|
|
221
340
|
|
|
222
341
|
---
|
|
223
342
|
|
|
224
|
-
###
|
|
343
|
+
### 10. Brownfield: Create Delta Specification
|
|
225
344
|
|
|
226
345
|
If this is a change to existing system, add delta sections:
|
|
227
346
|
|
|
@@ -266,7 +385,7 @@ The authentication system SHALL hash passwords using bcrypt cost 12.
|
|
|
266
385
|
|
|
267
386
|
---
|
|
268
387
|
|
|
269
|
-
###
|
|
388
|
+
### 11. Constitutional Validation
|
|
270
389
|
|
|
271
390
|
Validate requirements against constitutional articles:
|
|
272
391
|
|
|
@@ -290,10 +409,12 @@ Run validation:
|
|
|
290
409
|
|
|
291
410
|
---
|
|
292
411
|
|
|
293
|
-
###
|
|
412
|
+
### 12. Save Document (Bilingual)
|
|
294
413
|
|
|
295
414
|
**IMPORTANT**: Create BOTH English and Japanese versions.
|
|
296
415
|
|
|
416
|
+
**Output Directory**: `storage/specs/`
|
|
417
|
+
|
|
297
418
|
**English version (Primary/Reference)**:
|
|
298
419
|
Save to: `storage/specs/{{feature-name}}-requirements.md`
|
|
299
420
|
|
|
@@ -323,7 +444,7 @@ Save to: `storage/specs/{{feature-name}}-requirements.ja.md`
|
|
|
323
444
|
|
|
324
445
|
---
|
|
325
446
|
|
|
326
|
-
###
|
|
447
|
+
### 13. Generate Summary
|
|
327
448
|
|
|
328
449
|
Present summary to user:
|
|
329
450
|
|
|
@@ -331,11 +452,25 @@ Present summary to user:
|
|
|
331
452
|
## ✅ Requirements Specification Complete
|
|
332
453
|
|
|
333
454
|
**Feature**: {{FEATURE_NAME}}
|
|
455
|
+
**Output Directory**: `storage/specs/`
|
|
334
456
|
**Files**:
|
|
335
457
|
|
|
336
458
|
- English: storage/specs/{{feature-name}}-requirements.md
|
|
337
459
|
- Japanese: storage/specs/{{feature-name}}-requirements.ja.md
|
|
338
460
|
|
|
461
|
+
### True Purpose Discovery:
|
|
462
|
+
|
|
463
|
+
- Surface Request: [What user initially asked]
|
|
464
|
+
- True Purpose: [What user actually needs]
|
|
465
|
+
- Key Insight: [Critical understanding gained]
|
|
466
|
+
|
|
467
|
+
### MECE Coverage:
|
|
468
|
+
|
|
469
|
+
- User Journey: ✅ All stages covered
|
|
470
|
+
- Data Lifecycle: ✅ CRUD covered
|
|
471
|
+
- Cross-Cutting: ✅ Security/Performance/Reliability/Scalability
|
|
472
|
+
- Integrations: ✅ Upstream/Downstream/External
|
|
473
|
+
|
|
339
474
|
### Summary:
|
|
340
475
|
|
|
341
476
|
- **Total Requirements**: [N]
|
|
@@ -381,28 +516,54 @@ Present summary to user:
|
|
|
381
516
|
### User Command:
|
|
382
517
|
|
|
383
518
|
```bash
|
|
384
|
-
|
|
519
|
+
#sdd-requirements authentication
|
|
385
520
|
```
|
|
386
521
|
|
|
387
|
-
###
|
|
522
|
+
### AI Agent Actions:
|
|
388
523
|
|
|
389
524
|
1. **Read Steering**:
|
|
390
525
|
- `steering/product.md` → Target users: B2B SaaS companies
|
|
391
526
|
- `steering/tech.md` → Stack: Next.js, PostgreSQL, Prisma
|
|
392
527
|
- `steering/structure.md` → Pattern: Library-first
|
|
393
528
|
|
|
394
|
-
2. **
|
|
529
|
+
2. **Interactive Dialogue (1-on-1)**:
|
|
395
530
|
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
531
|
+
**AI**: 「認証機能について、この機能で解決したい『本当の課題』は何ですか?」
|
|
532
|
+
|
|
533
|
+
**User**: 「ユーザーがログインできるようにしたい」
|
|
534
|
+
|
|
535
|
+
**AI**: 「なるほど。では、この機能がないと、誰がどのように困りますか?」
|
|
536
|
+
|
|
537
|
+
**User**: 「顧客がサービスを使えない。また、管理者が顧客データを保護できない」
|
|
538
|
+
|
|
539
|
+
**AI**: 「顧客データの保護が重要なのですね。この機能で『絶対にやってはいけないこと』はありますか?」
|
|
402
540
|
|
|
403
|
-
|
|
541
|
+
**User**: 「データ漏洩。SOC2準拠が必要」
|
|
542
|
+
|
|
543
|
+
**AI**: 「SOC2準拠が必要とのこと。この機能が『成功した』と言えるのはどんな状態ですか?」
|
|
544
|
+
|
|
545
|
+
**User**: 「ログイン成功率99%以上、不正アクセスゼロ」
|
|
546
|
+
|
|
547
|
+
**AI**: 「理解しました。確認させてください:
|
|
548
|
+
- **表面的要求**: ユーザーがログインできること
|
|
549
|
+
- **真の目的**: SOC2準拠でセキュアな顧客データ保護
|
|
550
|
+
- **成功基準**: ログイン成功率99%以上、不正アクセスゼロ
|
|
551
|
+
この理解で正しいですか?」
|
|
552
|
+
|
|
553
|
+
3. **MECE Analysis**:
|
|
554
|
+
- User Journey: Login → Session → Logout → Error handling
|
|
555
|
+
- Data: Credentials(C), Session(RUD), Audit Log(CR)
|
|
556
|
+
- Security: Authentication, Authorization, Encryption, Audit
|
|
557
|
+
|
|
558
|
+
4. **Generate Requirements**:
|
|
404
559
|
|
|
405
560
|
```markdown
|
|
561
|
+
## True Purpose Statement
|
|
562
|
+
|
|
563
|
+
- Surface Request: ユーザーログイン機能
|
|
564
|
+
- True Purpose: SOC2準拠のセキュアな顧客データ保護基盤
|
|
565
|
+
- Key Insight: 単なるログインではなく、コンプライアンス要件が重要
|
|
566
|
+
|
|
406
567
|
### REQ-AUTH-001: User Login
|
|
407
568
|
|
|
408
569
|
WHEN a user provides valid credentials,
|
|
@@ -410,19 +571,19 @@ Present summary to user:
|
|
|
410
571
|
AND the system SHALL create a session
|
|
411
572
|
AND the system SHALL redirect to dashboard.
|
|
412
573
|
|
|
413
|
-
|
|
574
|
+
**MECE Category**: User Journey - During
|
|
414
575
|
|
|
415
|
-
|
|
576
|
+
### REQ-AUTH-002: Audit Logging (SOC2)
|
|
416
577
|
|
|
417
|
-
|
|
418
|
-
|
|
578
|
+
The authentication system SHALL log all authentication events
|
|
579
|
+
with timestamp, user ID, IP address, and result.
|
|
419
580
|
|
|
420
|
-
|
|
581
|
+
**MECE Category**: Cross-Cutting - Security/Compliance
|
|
421
582
|
```
|
|
422
583
|
|
|
423
|
-
|
|
584
|
+
5. **Save to Output Directory**: `storage/specs/authentication-requirements.md`
|
|
424
585
|
|
|
425
|
-
|
|
586
|
+
6. **Summarize**: Present summary with MECE coverage report
|
|
426
587
|
|
|
427
588
|
---
|
|
428
589
|
|
|
@@ -446,15 +607,18 @@ Present summary to user:
|
|
|
446
607
|
|
|
447
608
|
Before completing, verify:
|
|
448
609
|
|
|
610
|
+
- [ ] Interactive dialogue conducted (TRUE PURPOSE discovered)
|
|
611
|
+
- [ ] MECE analysis completed (all dimensions covered)
|
|
449
612
|
- [ ] Steering context read and applied
|
|
450
613
|
- [ ] All requirements in EARS format
|
|
451
614
|
- [ ] Requirement IDs assigned (REQ-XXX-NNN)
|
|
615
|
+
- [ ] MECE category assigned to each requirement
|
|
452
616
|
- [ ] Acceptance criteria defined for each requirement
|
|
453
617
|
- [ ] Priority assigned (P0/P1/P2/P3)
|
|
454
618
|
- [ ] Non-functional requirements included
|
|
455
619
|
- [ ] Constitutional validation passed
|
|
456
620
|
- [ ] Document saved to storage/specs/
|
|
457
|
-
- [ ] Summary presented to user
|
|
621
|
+
- [ ] Summary with MECE coverage presented to user
|
|
458
622
|
|
|
459
623
|
---
|
|
460
624
|
|
|
@@ -486,4 +650,14 @@ If `storage/specs/{{feature-name}}-requirements.md` exists:
|
|
|
486
650
|
|
|
487
651
|
---
|
|
488
652
|
|
|
653
|
+
**Output Directory Summary**:
|
|
654
|
+
- Requirements documents: `storage/specs/{{feature-name}}-requirements.md`
|
|
655
|
+
- Japanese version: `storage/specs/{{feature-name}}-requirements.ja.md`
|
|
656
|
+
|
|
657
|
+
---
|
|
658
|
+
|
|
659
|
+
**Execution**: Begin interactive dialogue now for the specified feature.
|
|
660
|
+
|
|
661
|
+
---
|
|
662
|
+
|
|
489
663
|
**Execution**: Begin requirements generation now for the specified feature.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/templates/agents/github-copilot/commands/{sdd-design.md → sdd-design.prompt.md}
RENAMED
|
File without changes
|
/package/src/templates/agents/github-copilot/commands/{sdd-implement.md → sdd-implement.prompt.md}
RENAMED
|
File without changes
|
/package/src/templates/agents/github-copilot/commands/{sdd-steering.md → sdd-steering.prompt.md}
RENAMED
|
File without changes
|
|
File without changes
|
/package/src/templates/agents/github-copilot/commands/{sdd-validate.md → sdd-validate.prompt.md}
RENAMED
|
File without changes
|