musubix2 0.3.7 → 0.4.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/.claude/.musubix-managed +1 -0
- package/.claude/skills/code-generator/SKILL.md +145 -0
- package/.claude/skills/code-generator/scripts/explain.sh +4 -0
- package/.claude/skills/code-generator/scripts/generate.sh +4 -0
- package/.claude/skills/code-generator/scripts/scaffold.sh +4 -0
- package/.claude/skills/code-generator/scripts/synthesis.sh +4 -0
- package/.claude/skills/constitution-enforcer/SKILL.md +133 -0
- package/.claude/skills/constitution-enforcer/scripts/check.sh +4 -0
- package/.claude/skills/constitution-enforcer/scripts/validate.sh +4 -0
- package/.claude/skills/design-generator/SKILL.md +136 -0
- package/.claude/skills/design-generator/scripts/c4.sh +4 -0
- package/.claude/skills/design-generator/scripts/decision.sh +4 -0
- package/.claude/skills/design-generator/scripts/generate.sh +4 -0
- package/.claude/skills/design-generator/scripts/verify.sh +4 -0
- package/.claude/skills/orchestrator/SKILL.md +565 -0
- package/.claude/skills/orchestrator/scripts/knowledge.sh +4 -0
- package/.claude/skills/orchestrator/scripts/learn.sh +4 -0
- package/.claude/skills/orchestrator/scripts/repl.sh +4 -0
- package/.claude/skills/orchestrator/scripts/research.sh +4 -0
- package/.claude/skills/orchestrator/scripts/security.sh +4 -0
- package/.claude/skills/orchestrator/scripts/skills.sh +4 -0
- package/.claude/skills/orchestrator/scripts/status.sh +4 -0
- package/.claude/skills/orchestrator/scripts/watch.sh +4 -0
- package/.claude/skills/orchestrator/scripts/workflow.sh +4 -0
- package/.claude/skills/requirements-analyst/SKILL.md +158 -0
- package/.claude/skills/requirements-analyst/scripts/analyze.sh +5 -0
- package/.claude/skills/requirements-analyst/scripts/interview-answer.sh +4 -0
- package/.claude/skills/requirements-analyst/scripts/interview-generate.sh +4 -0
- package/.claude/skills/requirements-analyst/scripts/interview.sh +9 -0
- package/.claude/skills/requirements-analyst/scripts/validate.sh +5 -0
- package/.claude/skills/requirements-analyst/scripts/wizard.sh +4 -0
- package/.claude/skills/review-orchestrator/SKILL.md +162 -0
- package/.claude/skills/review-orchestrator/review-orchestrator.prompt.md +45 -0
- package/.claude/skills/review-orchestrator/scripts/review.sh +13 -0
- package/.claude/skills/test-engineer/SKILL.md +139 -0
- package/.claude/skills/test-engineer/scripts/generate.sh +4 -0
- package/.claude/skills/traceability-auditor/SKILL.md +114 -0
- package/.claude/skills/traceability-auditor/scripts/matrix.sh +4 -0
- package/.claude/skills/traceability-auditor/scripts/verify-detailed.sh +4 -0
- package/.claude/skills/traceability-auditor/scripts/verify.sh +4 -0
- package/dist/application/install/claude-setup-transaction.d.ts +28 -0
- package/dist/application/install/claude-setup-transaction.d.ts.map +1 -0
- package/dist/application/install/claude-setup-transaction.js +113 -0
- package/dist/application/install/claude-setup-transaction.js.map +1 -0
- package/dist/application/install/claude-skill-index-builder.d.ts +8 -0
- package/dist/application/install/claude-skill-index-builder.d.ts.map +1 -0
- package/dist/application/install/claude-skill-index-builder.js +18 -0
- package/dist/application/install/claude-skill-index-builder.js.map +1 -0
- package/dist/application/install/copilot-setup-service.d.ts +20 -0
- package/dist/application/install/copilot-setup-service.d.ts.map +1 -0
- package/dist/application/install/copilot-setup-service.js +56 -0
- package/dist/application/install/copilot-setup-service.js.map +1 -0
- package/dist/application/install/index.d.ts +10 -0
- package/dist/application/install/index.d.ts.map +1 -0
- package/dist/application/install/index.js +10 -0
- package/dist/application/install/index.js.map +1 -0
- package/dist/application/install/install-planner.d.ts +8 -0
- package/dist/application/install/install-planner.d.ts.map +1 -0
- package/dist/application/install/install-planner.js +24 -0
- package/dist/application/install/install-planner.js.map +1 -0
- package/dist/application/install/mcp-config-generator.d.ts +12 -0
- package/dist/application/install/mcp-config-generator.d.ts.map +1 -0
- package/dist/application/install/mcp-config-generator.js +36 -0
- package/dist/application/install/mcp-config-generator.js.map +1 -0
- package/dist/application/install/mcp-launch-resolver.d.ts +5 -0
- package/dist/application/install/mcp-launch-resolver.d.ts.map +1 -0
- package/dist/application/install/mcp-launch-resolver.js +23 -0
- package/dist/application/install/mcp-launch-resolver.js.map +1 -0
- package/dist/application/install/platform-detector.d.ts +7 -0
- package/dist/application/install/platform-detector.d.ts.map +1 -0
- package/dist/application/install/platform-detector.js +60 -0
- package/dist/application/install/platform-detector.js.map +1 -0
- package/dist/application/install/update-service.d.ts +9 -0
- package/dist/application/install/update-service.d.ts.map +1 -0
- package/dist/application/install/update-service.js +28 -0
- package/dist/application/install/update-service.js.map +1 -0
- package/dist/application/install/workspace-merge-service.d.ts +9 -0
- package/dist/application/install/workspace-merge-service.d.ts.map +1 -0
- package/dist/application/install/workspace-merge-service.js +100 -0
- package/dist/application/install/workspace-merge-service.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +8164 -3142
- package/dist/cli.js.map +1 -1
- package/dist/domain/install/index.d.ts +2 -0
- package/dist/domain/install/index.d.ts.map +1 -0
- package/dist/domain/install/index.js +2 -0
- package/dist/domain/install/index.js.map +1 -0
- package/dist/domain/install/types.d.ts +140 -0
- package/dist/domain/install/types.d.ts.map +1 -0
- package/dist/domain/install/types.js +6 -0
- package/dist/domain/install/types.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +27 -49
- package/dist/infrastructure/assets/package-asset-catalog.d.ts +10 -0
- package/dist/infrastructure/assets/package-asset-catalog.d.ts.map +1 -0
- package/dist/infrastructure/assets/package-asset-catalog.js +28 -0
- package/dist/infrastructure/assets/package-asset-catalog.js.map +1 -0
- package/dist/infrastructure/assets/package-root-locator.d.ts +4 -0
- package/dist/infrastructure/assets/package-root-locator.d.ts.map +1 -0
- package/dist/infrastructure/assets/package-root-locator.js +22 -0
- package/dist/infrastructure/assets/package-root-locator.js.map +1 -0
- package/dist/infrastructure/templates/template-renderer.d.ts +11 -0
- package/dist/infrastructure/templates/template-renderer.d.ts.map +1 -0
- package/dist/infrastructure/templates/template-renderer.js +41 -0
- package/dist/infrastructure/templates/template-renderer.js.map +1 -0
- package/dist/infrastructure/workspace/workspace-root-resolver.d.ts +8 -0
- package/dist/infrastructure/workspace/workspace-root-resolver.d.ts.map +1 -0
- package/dist/infrastructure/workspace/workspace-root-resolver.js +10 -0
- package/dist/infrastructure/workspace/workspace-root-resolver.js.map +1 -0
- package/dist/infrastructure/workspace/workspace-writer.d.ts +5 -0
- package/dist/infrastructure/workspace/workspace-writer.d.ts.map +1 -0
- package/dist/infrastructure/workspace/workspace-writer.js +92 -0
- package/dist/infrastructure/workspace/workspace-writer.js.map +1 -0
- package/dist/interface/cli/confirmation-resolver.d.ts +6 -0
- package/dist/interface/cli/confirmation-resolver.d.ts.map +1 -0
- package/dist/interface/cli/confirmation-resolver.js +42 -0
- package/dist/interface/cli/confirmation-resolver.js.map +1 -0
- package/dist/interface/cli/dry-run-reporter.d.ts +8 -0
- package/dist/interface/cli/dry-run-reporter.d.ts.map +1 -0
- package/dist/interface/cli/dry-run-reporter.js +44 -0
- package/dist/interface/cli/dry-run-reporter.js.map +1 -0
- package/dist/interface/cli/init-command-handler.d.ts +29 -0
- package/dist/interface/cli/init-command-handler.d.ts.map +1 -0
- package/dist/interface/cli/init-command-handler.js +166 -0
- package/dist/interface/cli/init-command-handler.js.map +1 -0
- package/dist/interface/cli/init-mode-resolver.d.ts +10 -0
- package/dist/interface/cli/init-mode-resolver.d.ts.map +1 -0
- package/dist/interface/cli/init-mode-resolver.js +11 -0
- package/dist/interface/cli/init-mode-resolver.js.map +1 -0
- package/dist/interface/cli/mcp-cli-launcher.d.ts +8 -0
- package/dist/interface/cli/mcp-cli-launcher.d.ts.map +1 -0
- package/dist/interface/cli/mcp-cli-launcher.js +20 -0
- package/dist/interface/cli/mcp-cli-launcher.js.map +1 -0
- package/dist/interface/cli/postinstall-bootstrap.d.ts +9 -0
- package/dist/interface/cli/postinstall-bootstrap.d.ts.map +1 -0
- package/dist/interface/cli/postinstall-bootstrap.js +51 -0
- package/dist/interface/cli/postinstall-bootstrap.js.map +1 -0
- package/dist/interface/cli/sse-transport-bridge.d.ts +13 -0
- package/dist/interface/cli/sse-transport-bridge.d.ts.map +1 -0
- package/dist/interface/cli/sse-transport-bridge.js +15 -0
- package/dist/interface/cli/sse-transport-bridge.js.map +1 -0
- package/dist/templates/claude-md.md +44 -0
- package/dist/templates/copilot-instructions.md +44 -0
- package/dist/templates/mcp/claude.json +8 -0
- package/dist/templates/mcp/copilot.json +9 -0
- package/package.json +7 -4
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: requirements-analyst
|
|
3
|
+
description: >
|
|
4
|
+
EARS形式で要件を分析・作成・検証する。MarkdownEARSParser による構文検証、
|
|
5
|
+
EARSValidator による信頼度スコア算出、対話的要件ウィザードを提供。
|
|
6
|
+
Use when creating requirements, validating EARS compliance, analyzing
|
|
7
|
+
requirement documents, or starting SDD Phase 1.
|
|
8
|
+
license: MIT
|
|
9
|
+
version: "1.0.0"
|
|
10
|
+
triggers:
|
|
11
|
+
- 要件を作成
|
|
12
|
+
- 要件を分析
|
|
13
|
+
- EARS 検証
|
|
14
|
+
- Phase 1 開始
|
|
15
|
+
- requirements
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Requirements Analyst
|
|
19
|
+
|
|
20
|
+
EARS(Easy Approach to Requirements Syntax)形式で要件を分析・作成・検証するスキル。
|
|
21
|
+
SDD ワークフロー Phase 1 の中核。
|
|
22
|
+
|
|
23
|
+
## 前提条件
|
|
24
|
+
|
|
25
|
+
- `steering/` を参照済みであること(Article VI: プロジェクトメモリ)
|
|
26
|
+
- 対象プロジェクトに `storage/specs/` ディレクトリが存在すること
|
|
27
|
+
|
|
28
|
+
## EARS パターン分類
|
|
29
|
+
|
|
30
|
+
| パターン | 構文 | 信頼度ボーナス |
|
|
31
|
+
|----------|------|---------------|
|
|
32
|
+
| UBIQUITOUS | THE システム SHALL... | +0.00 |
|
|
33
|
+
| EVENT-DRIVEN | WHEN \<event\>, THE システム SHALL... | +0.25 |
|
|
34
|
+
| STATE-DRIVEN | WHILE \<state\>, THE システム SHALL... | +0.25 |
|
|
35
|
+
| UNWANTED | THE システム SHALL NOT... | +0.20 |
|
|
36
|
+
| OPTIONAL | WHERE \<feature\>, THE システム SHALL... | +0.20 |
|
|
37
|
+
| COMPLEX | IF \<condition\>, THEN THE システム SHALL... | +0.15 |
|
|
38
|
+
|
|
39
|
+
信頼度 0.85 以上で早期終了最適化。
|
|
40
|
+
|
|
41
|
+
## ワークフロー
|
|
42
|
+
|
|
43
|
+
### 1. 要件分析(既存文書の検証)
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
WHEN ユーザーが要件文書の検証を要求する:
|
|
47
|
+
1. MarkdownEARSParser で要件を抽出(ParsedRequirement[])
|
|
48
|
+
2. EARSValidator で各要件を分類・信頼度算出
|
|
49
|
+
3. 違反箇所の位置特定 + 修正提案を生成
|
|
50
|
+
4. RequirementsValidator で構文準拠チェック
|
|
51
|
+
5. TraceabilityValidator でカバレッジレポート生成
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**CLI**: `npx musubix req <file>`
|
|
55
|
+
|
|
56
|
+
### 2. 対話的要件作成
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
WHEN ユーザーが新規要件の作成を要求する:
|
|
60
|
+
1. feature 名をヒアリング
|
|
61
|
+
2. EARS パターンを選択(6種類から)
|
|
62
|
+
3. トリガー/条件を入力
|
|
63
|
+
4. EARS 文を自動生成
|
|
64
|
+
5. AcceptanceCriteriaGenerator で受入基準を生成(LLM利用)
|
|
65
|
+
6. ユーザー承認 ⏸️
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**CLI**: `npx musubix req:wizard`
|
|
69
|
+
|
|
70
|
+
### 3. 要件検索
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
WHEN ユーザーが要件の検索を要求する:
|
|
74
|
+
1. RequirementsValidator.search() で全文検索
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 要件文書フォーマット
|
|
78
|
+
|
|
79
|
+
各要件は以下の7フィールドを含む:
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
### REQ-XXX-NNN: タイトル
|
|
83
|
+
|
|
84
|
+
**種別**: UBIQUITOUS | EVENT-DRIVEN | STATE-DRIVEN | UNWANTED | OPTIONAL | COMPLEX
|
|
85
|
+
**優先度**: P0 | P1 | P2
|
|
86
|
+
|
|
87
|
+
**要件**:
|
|
88
|
+
THE システム SHALL...
|
|
89
|
+
|
|
90
|
+
**受入基準**:
|
|
91
|
+
- [ ] 基準1
|
|
92
|
+
- [ ] 基準2
|
|
93
|
+
|
|
94
|
+
**トレーサビリティ**: DES-XXX-NNN
|
|
95
|
+
**パッケージ**: `package-name`
|
|
96
|
+
**CLI**: `npx musubix ...`
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## 品質ゲート
|
|
100
|
+
|
|
101
|
+
- [ ] 全要件が EARS 6パターンのいずれかに分類可能
|
|
102
|
+
- [ ] 信頼度スコア 0.70 以上(低い場合は修正提案)
|
|
103
|
+
- [ ] 受入基準がチェックリスト形式
|
|
104
|
+
- [ ] トレーサビリティフィールドが存在
|
|
105
|
+
- [ ] パッケージフィールドが存在
|
|
106
|
+
|
|
107
|
+
## 4. 要件インタビュー(1問1答フロー)
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
WHEN ユーザーが要件仕様書の生成を要求する:
|
|
111
|
+
1. RequirementsInterviewer にユーザーの入力テキストを渡す
|
|
112
|
+
2. extractFromInput() でキーワードマッチングにより既知情報を抽出
|
|
113
|
+
3. 不足している必須項目を1問ずつ質問(1問1答)
|
|
114
|
+
4. 必須項目: プロジェクト名、概要、システム種別、対象ユーザー、主要機能
|
|
115
|
+
5. 任意項目: ステークホルダー、ユースケース、パフォーマンス、セキュリティ等
|
|
116
|
+
6. 全必須項目が揃ったら RequirementsDocGenerator で EARS 準拠仕様書を生成
|
|
117
|
+
7. EARSValidator で生成結果を検証
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### インタビューフロー詳細
|
|
121
|
+
|
|
122
|
+
1. **入力分析**: ユーザーの自由記述からプロジェクト名・機能・技術スタック等を自動抽出
|
|
123
|
+
2. **不足情報特定**: 必須フィールド(projectName, projectDescription, projectDomain, targetUsers, features)の充足チェック
|
|
124
|
+
3. **1問1答**: 不足フィールドごとに1問ずつ質問(日本語メイン、英語サブ)
|
|
125
|
+
4. **回答適用**: 回答をコンテキストに格納し、完了率を更新
|
|
126
|
+
5. **仕様書生成**: 全必須項目充足後、EARS形式の要件仕様書を自動生成
|
|
127
|
+
|
|
128
|
+
**CLI**:
|
|
129
|
+
```
|
|
130
|
+
npx musubix req:interview <input-text> # 入力分析 → 最初の質問
|
|
131
|
+
npx musubix req:interview --answer <id> <response> # 質問に回答
|
|
132
|
+
npx musubix req:interview --state # 現在の状態表示
|
|
133
|
+
npx musubix req:interview --generate # 仕様書生成
|
|
134
|
+
npx musubix req:interview --reset # リセット
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**MCP Tools**:
|
|
138
|
+
- `sdd.requirements.interview.start` — インタビュー開始
|
|
139
|
+
- `sdd.requirements.interview.answer` — 質問に回答
|
|
140
|
+
- `sdd.requirements.interview.state` — 状態取得
|
|
141
|
+
- `sdd.requirements.interview.generate` — 仕様書生成
|
|
142
|
+
|
|
143
|
+
## Gotchas
|
|
144
|
+
|
|
145
|
+
1. **EARS パターン混在に注意**: 1つの要件に複数パターンが混在する場合、COMPLEX に分類する。「WHEN ... WHILE ...」は COMPLEX。
|
|
146
|
+
2. **受入基準の粒度**: 「動作すること」のような曖昧な基準は不合格。具体的なコマンド・出力・閾値を含めること。
|
|
147
|
+
3. **トレーサビリティの双方向性**: REQ → DES だけでなく、DES → REQ の逆参照も維持する。片方向のみは Article V 違反。
|
|
148
|
+
|
|
149
|
+
## スクリプト
|
|
150
|
+
|
|
151
|
+
| スクリプト | 説明 | 使い方 |
|
|
152
|
+
|-----------|------|--------|
|
|
153
|
+
| `scripts/analyze.sh` | 要件分析 | `./scripts/analyze.sh <requirements-file.md>` |
|
|
154
|
+
| `scripts/validate.sh` | EARS 準拠検証 | `./scripts/validate.sh <requirements-file.md>` |
|
|
155
|
+
| `scripts/interview.sh` | 1問1答インタビュー開始 | `./scripts/interview.sh [input-text]` |
|
|
156
|
+
| `scripts/interview-answer.sh` | インタビュー質問に回答 | `./scripts/interview-answer.sh <id> <response>` |
|
|
157
|
+
| `scripts/interview-generate.sh` | インタビューから要件生成 | `./scripts/interview-generate.sh` |
|
|
158
|
+
| `scripts/wizard.sh` | 要件ウィザード実行 | `./scripts/wizard.sh` |
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-orchestrator
|
|
3
|
+
description: >
|
|
4
|
+
複数AIモデル(opus-4.6/gpt-5.4)による交互レビューでSDD成果物の品質を保証。
|
|
5
|
+
Qiita記事(AI Scrum Team)に着想を得た交互レビューパターンで、
|
|
6
|
+
requirements / design / plan アーティファクトの合意チェックと実装許可判定を行う。
|
|
7
|
+
license: MIT
|
|
8
|
+
version: "1.0.0"
|
|
9
|
+
triggers:
|
|
10
|
+
- レビューオーケストレーション
|
|
11
|
+
- 交互レビュー
|
|
12
|
+
- cross-model review
|
|
13
|
+
- 合意チェック
|
|
14
|
+
- consensus
|
|
15
|
+
- 実装許可
|
|
16
|
+
- review pipeline
|
|
17
|
+
- アーティファクトレビュー
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Review Orchestrator
|
|
21
|
+
|
|
22
|
+
Qiita 記事(AI Scrum Team)に着想を得た、複数 AI モデルによる交互レビューパターンで
|
|
23
|
+
SDD 成果物の品質を保証するスキル。
|
|
24
|
+
opus-4.6 と gpt-5.4 が交互にレビューし、両モデルの合意を以て実装フェーズへの遷移を許可する。
|
|
25
|
+
|
|
26
|
+
## 前提条件
|
|
27
|
+
|
|
28
|
+
- `steering/` を参照済みであること(Article VI: プロジェクトメモリ)
|
|
29
|
+
- レビュー対象アーティファクトが `references/musubix2/` に存在すること
|
|
30
|
+
- `@musubix2/agent-orchestrator` パッケージの `ReviewOrchestrator` クラスが利用可能であること
|
|
31
|
+
|
|
32
|
+
## 目的
|
|
33
|
+
|
|
34
|
+
複数 AI モデルの視点を組み合わせることで、単一モデルでは見落としやすい問題を検出する。
|
|
35
|
+
各モデルの得意分野(論理的厳密性 vs 実用性・網羅性)を相補的に活用し、
|
|
36
|
+
SDD アーティファクトの品質を最大化する。
|
|
37
|
+
|
|
38
|
+
## レビュープロセス
|
|
39
|
+
|
|
40
|
+
### Phase 1: 交互レビュー
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
WHEN アーティファクトのレビューが要求される:
|
|
44
|
+
1. Model A (Claude Opus 4.6) がアーティファクトをレビュー
|
|
45
|
+
2. 発見された問題を Model B (GPT-5.4) に渡してレビュー
|
|
46
|
+
3. Model B の指摘を Model A に渡して再レビュー
|
|
47
|
+
4. エラーが 0 になるまで交互に繰り返す(最大 5 ラウンド)
|
|
48
|
+
5. 各ラウンドの ReviewResult を記録
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Phase 2: 最終合意チェック
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
WHEN 交互レビューでエラーが 0 になった場合:
|
|
55
|
+
1. 両モデルが同時(並列)にアーティファクトをレビュー
|
|
56
|
+
2. 両方が PASS した場合のみ、そのアーティファクトを「承認済み」とする
|
|
57
|
+
3. どちらかが FAIL の場合、Phase 1 に戻る
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Phase 3: 実装許可判定
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
WHEN 全アーティファクトの合意チェックが完了した場合:
|
|
64
|
+
1. requirements (REQ-*) が承認済みか確認
|
|
65
|
+
2. design (DES-*) が承認済みか確認
|
|
66
|
+
3. plan (PLAN-*) が承認済みか確認
|
|
67
|
+
4. 全て承認済みの場合 canProceedToImplementation() = true
|
|
68
|
+
5. 未承認がある場合、不足アーティファクトを報告
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## 対象アーティファクト
|
|
72
|
+
|
|
73
|
+
| 種別 | ID 形式 | ファイル例 |
|
|
74
|
+
|------|---------|-----------|
|
|
75
|
+
| Requirements | REQ-* | `references/musubix2/REQ-MUSUBIX2-001.md` |
|
|
76
|
+
| Design | DES-* | `references/musubix2/DES-MUSUBIX2-001.md` |
|
|
77
|
+
| Plan | PLAN-* | `references/musubix2/PLAN-MUSUBIX2-001.md` |
|
|
78
|
+
|
|
79
|
+
## レビュー基準
|
|
80
|
+
|
|
81
|
+
### Requirements(要件定義書)
|
|
82
|
+
|
|
83
|
+
- [ ] 全要件が EARS 形式(6パターン)に準拠
|
|
84
|
+
- [ ] 各要件に受入基準がチェックリスト形式で存在
|
|
85
|
+
- [ ] 一意な ID(REQ-XXX-NNN)が付与されている
|
|
86
|
+
- [ ] トレーサビリティフィールド(DES 参照)が存在
|
|
87
|
+
- [ ] パッケージフィールドが存在
|
|
88
|
+
|
|
89
|
+
### Design(設計書)
|
|
90
|
+
|
|
91
|
+
- [ ] SOLID 原則に準拠した設計
|
|
92
|
+
- [ ] DES-ID が対応する REQ-ID にトレース可能
|
|
93
|
+
- [ ] 型定義が実装と整合している
|
|
94
|
+
- [ ] Mermaid 図(クラス図・シーケンス図)が含まれる
|
|
95
|
+
- [ ] 4層アーキテクチャ(Domain/Application/Infrastructure/Interface)に準拠
|
|
96
|
+
|
|
97
|
+
### Plan(実装計画)
|
|
98
|
+
|
|
99
|
+
- [ ] タスク間の依存関係が明示されている
|
|
100
|
+
- [ ] DES カバレッジが 100%(全 DES に対応タスクが存在)
|
|
101
|
+
- [ ] フェーズ順序が SDD ワークフローに準拠
|
|
102
|
+
- [ ] 各タスクに見積もりと担当パッケージが記載
|
|
103
|
+
|
|
104
|
+
## コマンド例
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
@review-orchestrator requirements をレビュー
|
|
108
|
+
@review-orchestrator design をレビュー
|
|
109
|
+
@review-orchestrator plan をレビュー
|
|
110
|
+
@review-orchestrator 全パイプラインレビュー
|
|
111
|
+
@review-orchestrator 合意チェックを実行
|
|
112
|
+
@review-orchestrator 実装に進めるか確認
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## 使用するパッケージ
|
|
116
|
+
|
|
117
|
+
`@musubix2/agent-orchestrator` パッケージの `ReviewOrchestrator` クラスを使用する。
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
import { ReviewOrchestrator } from '@musubix2/agent-orchestrator';
|
|
121
|
+
|
|
122
|
+
const orchestrator = new ReviewOrchestrator();
|
|
123
|
+
|
|
124
|
+
// 単一アーティファクトのレビュー
|
|
125
|
+
const result = await orchestrator.reviewArtifact('requirements', content);
|
|
126
|
+
|
|
127
|
+
// パイプラインレビュー(全アーティファクト)
|
|
128
|
+
const pipeline = await orchestrator.runPipelineReview({
|
|
129
|
+
requirements: reqContent,
|
|
130
|
+
design: desContent,
|
|
131
|
+
plan: planContent,
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
// 実装許可判定
|
|
135
|
+
const canProceed = orchestrator.canProceedToImplementation();
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## 品質ゲート
|
|
139
|
+
|
|
140
|
+
- [ ] 交互レビューでエラー 0 を達成
|
|
141
|
+
- [ ] 両モデルの最終合意チェックが PASS
|
|
142
|
+
- [ ] 全アーティファクト(requirements, design, plan)が承認済み
|
|
143
|
+
- [ ] レビュー結果が構造化された ReviewResult として記録済み
|
|
144
|
+
|
|
145
|
+
## 制約
|
|
146
|
+
|
|
147
|
+
1. **自動修正は行わない**: 問題点の指摘と修正提案のみを行う。実際の修正はユーザーまたは担当スキルが実施する。
|
|
148
|
+
2. **最大5ラウンド制限**: 交互レビューが 5 ラウンドで合意に至らない場合は人間の介入を要求する。無限ループを防止。
|
|
149
|
+
3. **品質ゲート bypass 禁止**: レビュー結果を無視して実装フェーズに遷移してはならない。
|
|
150
|
+
4. **レビュー結果の永続化**: 全レビュー結果を ReviewResult 形式で記録し、トレーサビリティを維持する。
|
|
151
|
+
|
|
152
|
+
## Gotchas
|
|
153
|
+
|
|
154
|
+
1. **モデル応答のばらつき**: 同じアーティファクトでもモデルの応答が異なる場合がある。合意チェックで一貫性を担保する。
|
|
155
|
+
2. **ラウンド数と品質のトレードオフ**: ラウンド数が多いほど品質は上がるが、時間コストも増加する。5 ラウンド制限はこのバランスを取るもの。
|
|
156
|
+
3. **Phase 遷移との連携**: review-orchestrator の承認は PhaseController の遷移条件に組み込まれる。review-orchestrator 単体では Phase を遷移させない。
|
|
157
|
+
|
|
158
|
+
## スクリプト
|
|
159
|
+
|
|
160
|
+
| スクリプト | 説明 | 使い方 |
|
|
161
|
+
|-----------|------|--------|
|
|
162
|
+
| `scripts/review.sh` | レビューワークフロー案内 | `./scripts/review.sh` |
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "SDD Review Orchestrator — 交互レビューによるアーティファクト品質保証"
|
|
3
|
+
mode: agent
|
|
4
|
+
tools: ["editFiles", "codebase", "terminal"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# SDD Review Orchestrator
|
|
8
|
+
|
|
9
|
+
あなたは **SDD Review Orchestrator** です。
|
|
10
|
+
要件定義書、設計書、実装計画の品質を、複数のAIモデルによる交互レビューで保証します。
|
|
11
|
+
|
|
12
|
+
詳細なプレイブックは `skills/review-orchestrator/SKILL.md` を参照してください。
|
|
13
|
+
実装は `@musubix2/agent-orchestrator` パッケージの `ReviewOrchestrator` クラスを使用します。
|
|
14
|
+
|
|
15
|
+
## レビュープロセス
|
|
16
|
+
|
|
17
|
+
### Phase 1: 交互レビュー
|
|
18
|
+
1. **Model A (Claude Opus 4.6)** がアーティファクトをレビュー
|
|
19
|
+
2. 発見された問題を **Model B (GPT-5.4)** に渡してレビュー
|
|
20
|
+
3. エラーがなくなるまで交互に繰り返す(最大5ラウンド)
|
|
21
|
+
|
|
22
|
+
### Phase 2: 最終合意チェック
|
|
23
|
+
4. 両モデルが同時にレビューを実施
|
|
24
|
+
5. **両方がPASS**した場合のみ、実装フェーズに進行可能
|
|
25
|
+
|
|
26
|
+
### Phase 3: 実装許可
|
|
27
|
+
6. 全アーティファクト(requirements, design, plan)が承認済みの場合のみ
|
|
28
|
+
7. `canProceedToImplementation()` が `true` を返す
|
|
29
|
+
|
|
30
|
+
## レビュー基準
|
|
31
|
+
- **要件定義**: EARS形式準拠、受入基準、一意ID、トレーサビリティ
|
|
32
|
+
- **設計書**: SOLID原則、DES-ID対応、型定義の整合性
|
|
33
|
+
- **実装計画**: タスク依存関係、DESカバレッジ100%、フェーズ順序
|
|
34
|
+
|
|
35
|
+
## 使い方
|
|
36
|
+
```
|
|
37
|
+
@review-orchestrator requirements を レビューしてください
|
|
38
|
+
@review-orchestrator 全アーティファクトのパイプラインレビューを実行
|
|
39
|
+
@review-orchestrator 実装に進めるか確認
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 制約
|
|
43
|
+
- レビュー結果は必ず構造化された ReviewResult として記録
|
|
44
|
+
- 自動修正は行わない(問題点と修正提案のみ)
|
|
45
|
+
- 最大5ラウンドで合意に至らない場合は人間の介入を要求
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Start review workflow
|
|
3
|
+
set -e
|
|
4
|
+
echo "Review Orchestrator"
|
|
5
|
+
echo "==================="
|
|
6
|
+
echo "This skill orchestrates cross-model reviews."
|
|
7
|
+
echo ""
|
|
8
|
+
echo "Available commands:"
|
|
9
|
+
echo " npx musubix workflow # Workflow management"
|
|
10
|
+
echo " npx musubix policy # Policy validation"
|
|
11
|
+
echo " npx musubix trace:verify # Traceability check"
|
|
12
|
+
echo ""
|
|
13
|
+
echo "For full review orchestration, use the AI agent with this skill."
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-engineer
|
|
3
|
+
description: >
|
|
4
|
+
テストファースト(Red→Green→Blue)サイクルを強制し、ユニットテスト生成、
|
|
5
|
+
カバレッジ検証、EARS ID リンケージを実行する。Vitest ベース。
|
|
6
|
+
Use when creating tests, checking coverage, enforcing test-first policy,
|
|
7
|
+
running quality gates, or validating Article III compliance.
|
|
8
|
+
license: MIT
|
|
9
|
+
version: "1.0.0"
|
|
10
|
+
triggers:
|
|
11
|
+
- テスト作成
|
|
12
|
+
- テスト実行
|
|
13
|
+
- カバレッジ
|
|
14
|
+
- Red-Green-Blue
|
|
15
|
+
- test-first
|
|
16
|
+
- Article III
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Test Engineer
|
|
20
|
+
|
|
21
|
+
テストファースト(Red→Green→Blue)開発サイクルを強制するスキル。
|
|
22
|
+
Article III(テストファースト)と Article IX(品質ゲート)の執行者。
|
|
23
|
+
|
|
24
|
+
## 前提条件
|
|
25
|
+
|
|
26
|
+
- `steering/` を参照済みであること
|
|
27
|
+
- Vitest が設定済みであること(`vitest.config.ts`)
|
|
28
|
+
- テスト対象の DES 仕様が存在すること
|
|
29
|
+
|
|
30
|
+
## Red→Green→Blue サイクル
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
1. RED: 失敗するテストを書く(EARS 要件 ID をテスト名に含む)
|
|
34
|
+
2. GREEN: テストが通る最小限のコードを書く
|
|
35
|
+
3. BLUE: リファクタリング(テストは緑のまま)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**このサイクルの順序をスキップしてはならない。**
|
|
39
|
+
|
|
40
|
+
## ワークフロー
|
|
41
|
+
|
|
42
|
+
### 1. テスト生成
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
WHEN ユーザーがテスト生成を要求する:
|
|
46
|
+
1. DES 仕様の受入基準を解析
|
|
47
|
+
2. UnitTestGenerator で Vitest テストケースを生成
|
|
48
|
+
3. 各テストに EARS 要件 ID をリンク: describe('REQ-XXX-NNN: ...')
|
|
49
|
+
4. CoverageReporter でカバレッジ目標を設定
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**CLI**: `npx musubix test:gen <source-file>`
|
|
53
|
+
|
|
54
|
+
### 2. カバレッジ検証
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
WHEN ユーザーがカバレッジ確認を要求する:
|
|
58
|
+
1. Vitest カバレッジレポートを取得
|
|
59
|
+
2. CoverageGateConfig の閾値(80%)と比較
|
|
60
|
+
3. 未カバーの EARS 要件を検出
|
|
61
|
+
4. 不足テストの提案を生成
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**CLI**: `npx vitest run --coverage`
|
|
65
|
+
|
|
66
|
+
### 3. 品質ゲートチェック
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
WHEN Phase 遷移時に品質ゲートを実行する:
|
|
70
|
+
1. QualityGateRunner で全ゲートを実行
|
|
71
|
+
2. テストカバレッジ ≥ 80%
|
|
72
|
+
3. 全 EARS 要件に対応するテストが存在
|
|
73
|
+
4. 全テストが PASS
|
|
74
|
+
5. 結果をレポート
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## テストファイル配置
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
packages/<name>/tests/
|
|
81
|
+
├── domain/
|
|
82
|
+
│ └── <Entity>.test.ts
|
|
83
|
+
├── application/
|
|
84
|
+
│ └── <Service>.test.ts
|
|
85
|
+
└── integration/
|
|
86
|
+
└── <Feature>.integration.test.ts
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## テスト命名規約
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
describe('REQ-XXX-NNN: 要件タイトル', () => {
|
|
93
|
+
it('should <期待動作> when <条件>', () => {
|
|
94
|
+
// Arrange
|
|
95
|
+
// Act
|
|
96
|
+
// Assert
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Vitest 設定基準
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
// vitest.config.ts
|
|
105
|
+
export default defineConfig({
|
|
106
|
+
test: {
|
|
107
|
+
coverage: {
|
|
108
|
+
provider: 'v8',
|
|
109
|
+
reporter: ['text', 'json', 'html'],
|
|
110
|
+
thresholds: {
|
|
111
|
+
lines: 80,
|
|
112
|
+
functions: 80,
|
|
113
|
+
branches: 80,
|
|
114
|
+
statements: 80,
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## 品質ゲート
|
|
122
|
+
|
|
123
|
+
- [ ] テストカバレッジ 80% 以上(lines, functions, branches, statements)
|
|
124
|
+
- [ ] 全 EARS 要件に少なくとも1つのテストが対応
|
|
125
|
+
- [ ] テスト名に REQ ID がリンクされている
|
|
126
|
+
- [ ] Red→Green→Blue の順序が守られている
|
|
127
|
+
- [ ] 全テストが PASS
|
|
128
|
+
|
|
129
|
+
## Gotchas
|
|
130
|
+
|
|
131
|
+
1. **テストなしのコミット禁止**: Article III により、テストのないコードは Phase 4 完了の品質ゲートを通過できない。
|
|
132
|
+
2. **モック依存の分離**: `SkillTestHarness` パターンに従い、外部依存はモック注入する。テスト内で直接ファイルシステムにアクセスしない。
|
|
133
|
+
3. **EARS ID リンクの維持**: テスト名を変更する場合、REQ ID リンクも必ず更新する。`traceability-auditor` で検証可能。
|
|
134
|
+
|
|
135
|
+
## スクリプト
|
|
136
|
+
|
|
137
|
+
| スクリプト | 説明 | 使い方 |
|
|
138
|
+
|-----------|------|--------|
|
|
139
|
+
| `scripts/generate.sh` | テスト生成 | `./scripts/generate.sh [args]` |
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: traceability-auditor
|
|
3
|
+
description: >
|
|
4
|
+
要件↔設計↔コード↔テスト間の 100% トレーサビリティを監査する。
|
|
5
|
+
トレーサビリティマトリクス生成、ギャップ検出、影響分析、同期検証を提供。
|
|
6
|
+
Use when checking traceability coverage, generating trace matrices,
|
|
7
|
+
analyzing change impact, or validating Article V compliance.
|
|
8
|
+
license: MIT
|
|
9
|
+
version: "1.0.0"
|
|
10
|
+
triggers:
|
|
11
|
+
- トレーサビリティ
|
|
12
|
+
- マトリクス生成
|
|
13
|
+
- 影響分析
|
|
14
|
+
- カバレッジ確認
|
|
15
|
+
- Article V
|
|
16
|
+
- trace
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Traceability Auditor
|
|
20
|
+
|
|
21
|
+
要件 ↔ 設計 ↔ コード ↔ テスト間の 100% トレーサビリティを監査するスキル。
|
|
22
|
+
Article V(トレーサビリティ)の執行者。
|
|
23
|
+
|
|
24
|
+
## 前提条件
|
|
25
|
+
|
|
26
|
+
- `steering/` を参照済みであること
|
|
27
|
+
- 要件文書(`REQ-*.md`)と設計文書(`DES-*.md`)が存在すること
|
|
28
|
+
|
|
29
|
+
## トレースリンク構造
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
REQ-XXX-NNN ←→ DES-XXX-NNN ←→ src/<package>/... ←→ tests/<package>/...
|
|
33
|
+
↑ ↑
|
|
34
|
+
└────────────────── EARS ID リンケージ ──────────────────┘
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## ワークフロー
|
|
38
|
+
|
|
39
|
+
### 1. トレーサビリティマトリクス生成
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
WHEN ユーザーがトレーサビリティマトリクスの生成を要求する:
|
|
43
|
+
1. TraceabilityManager で全 TraceLink を収集
|
|
44
|
+
2. MatrixGenerator でマトリクスを生成
|
|
45
|
+
3. GapInfo で未カバー項目を検出
|
|
46
|
+
4. Markdown 形式で出力
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**CLI**: `npx musubix trace matrix [--format md|json|csv]`
|
|
50
|
+
|
|
51
|
+
### 2. トレーサビリティ検証
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
WHEN ユーザーがトレーサビリティの検証を要求する:
|
|
55
|
+
1. 全 REQ ID を抽出
|
|
56
|
+
2. 各 REQ に対応する DES を検索
|
|
57
|
+
3. 各 DES に対応するソースファイルを検索
|
|
58
|
+
4. 各ソースに対応するテストを検索
|
|
59
|
+
5. 欠落リンクをレポート
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**CLI**: `npx musubix trace validate`
|
|
63
|
+
**CLI**: `npx musubix trace:verify`
|
|
64
|
+
|
|
65
|
+
### 3. 影響分析
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
WHEN ユーザーが変更影響分析を要求する:
|
|
69
|
+
1. ImpactAnalyzer で変更された REQ/DES を特定
|
|
70
|
+
2. 影響を受けるコード・テストを列挙
|
|
71
|
+
3. 必要な更新箇所をレポート
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**CLI**: `npx musubix trace impact <req-id|des-id>`
|
|
75
|
+
|
|
76
|
+
### 4. 影響分析レポート
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
WHEN ユーザーが影響分析レポートの生成を要求する:
|
|
80
|
+
1. ImpactAnalyzer で変更影響をまとめる
|
|
81
|
+
2. 影響範囲を Markdown 形式でレポート
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## マトリクス出力フォーマット
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
| REQ ID | DES ID | Package | Source | Test | Status |
|
|
88
|
+
|--------|--------|---------|--------|------|--------|
|
|
89
|
+
| REQ-ARC-001 | DES-ARC-001 | core | ✅ | ✅ | COVERED |
|
|
90
|
+
| REQ-ARC-002 | DES-ARC-002 | core | ✅ | ❌ | PARTIAL |
|
|
91
|
+
| REQ-SKL-001 | DES-SKL-001 | skill-manager | ❌ | ❌ | MISSING |
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## 品質ゲート
|
|
95
|
+
|
|
96
|
+
- [ ] 全 REQ に対応する DES が存在する(REQ → DES 100%)
|
|
97
|
+
- [ ] 全 DES に対応するソースコードが存在する(DES → Code)
|
|
98
|
+
- [ ] 全 REQ に対応するテストが存在する(REQ → Test)
|
|
99
|
+
- [ ] 双方向リンクが維持されている(REQ ← → DES)
|
|
100
|
+
- [ ] ギャップ数が 0
|
|
101
|
+
|
|
102
|
+
## Gotchas
|
|
103
|
+
|
|
104
|
+
1. **N:M 関係の扱い**: 1つの REQ が複数の DES にマッピングされる場合がある。マトリクスでは全組み合わせを列挙すること。
|
|
105
|
+
2. **DES-SDD-002a/b/c のような複合 ID**: サフィックス付き ID も個別にトレースすること。グループ化表記(`002a/b/c`)は表示用。
|
|
106
|
+
3. **コード内の REQ ID コメント**: `// REQ-XXX-NNN` 形式のコメントを検索対象にする。テスト内の `describe('REQ-XXX-NNN: ...')` も対象。
|
|
107
|
+
|
|
108
|
+
## スクリプト
|
|
109
|
+
|
|
110
|
+
| スクリプト | 説明 | 使い方 |
|
|
111
|
+
|-----------|------|--------|
|
|
112
|
+
| `scripts/verify.sh` | トレーサビリティ検証 | `./scripts/verify.sh [args]` |
|
|
113
|
+
| `scripts/matrix.sh` | トレーサビリティマトリクス生成 | `./scripts/matrix.sh [args]` |
|
|
114
|
+
| `scripts/verify-detailed.sh` | 詳細トレーサビリティ検証 | `./scripts/verify-detailed.sh [args]` |
|